2017-01-13 4 views
0

Quand je commence une SML REPL et de mettre enPMG dans le bloc org-mode retourne = "stdin": chaîne

print("floor is : "^(Int.toString (floor 3.1823))^"\n"); 

Je reçois

floor is : 3 
val it =() : unit 

à savoir le comportement attendu. Mais quand je fais la même chose dans un bloc source org-mode Emacs:

#+name: sml_test 
#+begin_src sml :exports both 
print("floor is : "^(Int.toString (floor 3.1823))^"\n"); 
#+end_src 

je reçois le cryptique (pour moi)

#+RESULTS: sml_test 
: val it = "stdIn" : string 

Est-ce que quelqu'un du monde ML savent ce que cela pourrait signifier?

Répondre

3

Ceci est probablement un bug dans ob-sml. Si vous visitez le * * sml tampon, et faire C-c C-c sur le bloc source, le sml REPL obtient cette entrée:

print("floor is : "^(Int.toString (floor 3.1823))^"\n"); 
; "stdIn"; 

Notez le extra "stdin" là-bas. Aussi, si vous définissez :results output sur le bloc, vous devriez obtenir la sortie standard du bloc, mais je reçois la même chose qu'avec le réglage par défaut :results value (et la même chose que vous obtenez: la chose énigmatique qui, je suppose, est le résultat de faux "stdIn" - je devrais dire que je ne sais rien à propos de ML, alors prenez tout cela avec le grain de sel de taille appropriée). J'ouvrirais un problème sur le projet ob-sml github.

+0

Je l'ai fait. Merci. – 147pm

+0

Je ne veux pas décevoir vos espoirs, mais je viens de remarquer qu'ob-sml semble avoir stagné pendant trois ans. Si vous n'obtenez aucune réponse, peut-être pourriez-vous fourrer le projet et faire quelques réparations? – Nick