libera/#commonlisp - IRC Chatlog
Search
0:36:25
NotThatRPG
I realized I never got back to you when you asked about reporting the ASDF issue. Would you mind posting to https://gitlab.common-lisp.net/asdf/asdf/-/issues
1:10:41
NotThatRPG
Great! Appreciate it. I'll have a look when I can. rn I'm being held back by some issues w/ testing infrastructure, but the cl.net folks are helping.
1:12:42
paulapatience
I think it has gone undetected for so long because pathnames are passed directly to :input/:output in uiop:run-program
1:13:11
paulapatience
I've been writing a wrapper around uiop:run-program, that's why I happened to see the bug
2:53:40
paulapatience
I will say that the implementation of uiop:run-program and uiop:launch-program is some of the most convoluted code I've ever read. I'm still not sure what half of it does.
2:55:47
paulapatience
In my CLOS-based wrapper equivalent of uiop:run-program, I will wrap each implementation in a separate package. It should be clearer then.
5:45:34
jackdaniel
another one is that uiop refuses to rely on the implementation behavior and instead of that it always transits data through its own streams
5:46:45
jackdaniel
say you write (uiop:run-program ... :output *my-stream*), then it calls (impl:run-program ... :output *uiop-vomiting-stream*), and marshalls all data from the vomiting stream to *my-stream*, so data is passed twice
5:51:59
jackdaniel
sensible reason is not necessarily the same thing as a technical desire of the creator ,)
6:00:14
jackdaniel
for my purposes this run-program does a job: https://turtleware.eu/static/paste/foo.lisp ; with a quirk that not all implementations support :wait nil, so a more sophisticated version could try to spawn a thread to manage such run-program instead; perhaps being able to communicate from a separate thread to a stream is the reason behind uiop's gymnastics?
7:22:17
beach
Hmm, I never noticed this before; the SBCL TRACE function prints symbols with package prefixes upon function entry but without package prefixes upon function exit.
7:48:55
jackdaniel
when trace is entered, then the package printer uses is the package FOO is defined in, and when trace returns, the package printer uses is the package user is in
7:49:10
jackdaniel
CLIM-USER> (cl-user::foo 'cl-user::hello) 0: (FOO HELLO) 0: COMMON-LISP-USER::FOO returned COMMON-LISP-USER::HELLO