13:17:15xificurC(read (process-output (sb-ext:run-program "/bin/sh" '("-c" "export-lisp") :output :stream))) is there something inherently wrong with such code? It keeps hanging in some cases even though the internal program always finishes when running from the shell directly
13:20:38flip214xificurC: run-program waits for the process to close.
13:20:50flip214but the process will block if the pipe is too small to hold all the output at once.
13:21:38flip214use UIOP:launch-program (or use :wait nil), read the stream, and then explicitly let it stop (== read the return code)
13:22:10flip214xificurC: and/or use "strace" to find out what happens exactly
13:25:42xificurCflip214: ah, I tried :wait nil and then (read (process-output process)) (process-close process) but forgot to return the read value... That works. uiop:run-program worked too so I knew it must be something me doing wrong
13:25:54xificurCflip214: I tried running strace and could only see write is waiting
13:26:13xificurCdidn't realize that means the pipe is full
14:35:11random-nickHighMemoryDaemon: reader macros work by telling the reader to call a function when encountering a certain character on the beginning of an expression
14:35:33random-nickthe function gets the input stream and it returns the read expression
14:36:29random-nickthe simplest reader macro is probably quote ('), which reads the following expression and returns it wrapped in a (quote ...) form
14:39:07antoszkaYou can use reader macros to quite trivially create, say, a literal syntax for hashes.
14:39:15sjl_it might use cl-annot for those https://github.com/m2ym/cl-annot
14:39:35HighMemoryDaemonThat is very cool. Not saying that it is worth doing at all, but using these macros, couldn't you do something like re-make the entire Python or Ruby programming languages..within Lisp?
14:39:58antoszkaHighMemoryDaemon: To some extent, yes, but why would you? :)