freenode/#lisp - IRC Chatlog
Search
8:21:39
lukego
me? I'd like to do a little ad-hoc assembler code generation in Lisp at the moment, and SBCL's interface seems a bit too unstable (examples from the blogoverse didn't work), and that lead me to asmjit, which takes its inputs via C++ code. So I'm looking for a nice way to output C++ source and wondering if c-mera is more practical than FORMAT for my purposes.
8:22:53
lukego
but not all syntax maps so nicely e.g. x86::rax becomes (from-namespace x86 rax) which is pretty verbose and it feels a bit like non-verbosity is the main selling point here
8:24:03
lukego
So it seems like I'll end up with my own doman-specific surface syntax anyway, e.g. simply :RAX, and at that point I'm not sure c-mera buys me anything over FORMAT especially in combination with a C++ pretty-printer like clang-fmt
8:25:40
lukego
having toyed with c-mera for ten minutes maybe I'll now try the ad-hoc route and come back if that feels bothersome.
10:12:42
nij
Hello! I have made a thread that calls run-program (bt:make-thread (lambda () (uiop:run-program "/some/process/that/loops" :output *sta..))).
10:13:15
nij
However, I don't know how to kill the looping shell process in lisp.. destroying the thread does not help.
10:13:55
nij
In particular, the process is ffmpeg. I can kill it by `pkill ffmpeg`.. but I hope to do that in a lispy way.
10:14:12
phoe
if it doesn't stop on stream EOF, then sending it a unix signal of sorts might be needed
10:15:01
phoe
I think so, yes - and AFAIK then RUN-PROGRAM and/or LAUNCH-PROGRAM is capable of returning a process information sort of structure
10:15:48
phoe
if you mean bt:destroy-thread then it *won't* work - it is only supposed to be used as a last measure
10:19:16
nij
No :wait, no mentioning process group.. etc https://common-lisp.net/project/asdf/uiop.html