freenode/#lisp - IRC Chatlog
Search
0:39:22
jack-thomas
Yeah, so I tried quickloading again to no avail. I have asdf version 3.2.1 where it appears that the newest version is 3.3.3. However, it looks like nobody has modified the run-program documentation for at least a few years. Regardless, if anyone knows off the top of their head how to update asdf, let me know. Otherwise I will find a way.
0:47:06
jack-thomas
And by 'modify run-program docs' I should say 'modify run-program' (including the docstring)
0:54:47
aeth
jack-thomas: when testing this sort of thing (in any language, actually) I always use dc first because I can just use "1 1 + p q" as the input and it should print 2 and quit.
0:55:33
aeth
jack-thomas: Once I quickload UIOP with (ql:quickload :uiop :silent t) I can then do (with-input-from-string (in "1 1 + p q") (uiop:run-program "dc" :input in :output :string)) and I do get the output of a string of two characters, 2 and the newline.
0:56:08
aeth
Interestingly, *I* am getting my own issue here, where DC has the return value 1 so UIOP is erroring about that (I can just continue, though).
0:56:46
aeth
This does work for me, though. (with-input-from-string (in "1 1 + p q") (uiop:run-program "dc" :input in :output :string :ignore-error-status t))
1:17:40
moldybits
(with-input-from-string (in "1 1 + n") (uiop:run-program "dc" :input in :output :string)) works for me
1:22:14
aeth
Why does p give me an error code but not n? That's probably more of a dc question than a run-program question. I guess n is what I'd want for this test, anyway.
1:27:00
aeth
Actually, it looks like "q" always gives it a return of 1 and C-d (and reaching EOF of a UIOP input stream) a return of 0.
1:50:40
jack-thomas
aeth: well, thanks again. Hopefully some day I can give back to you and/or others in this room.
3:20:39
beach
Elronnd: In the Cleavir compiler, we represent source programs using "Concrete Syntax Trees", or CSTs: https://github.com/robert-strandh/Concrete-Syntax-Tree
3:21:07
beach
Elronnd: The main purpose is to keep source information that we can propagate through the various steps of compilation.
3:26:48
LdBeth
beach: if it's allowed for a CL compiler to reject code that will produce a runtime error
3:30:23
beach
Good question. I don't recall having seen anything about that in the Common Lisp HyperSpec.
3:31:10
pjb
LdBeth: Not really. Because you can call the function that produces the run-time error with a handler-case, and expect the condition.
3:32:11
pjb
LdBeth: on the other hand, if the compiler can determine at compilation-time that an error would always be produced at run-time, it can generate only the code that signals the error.
3:33:04
beach
That's how it is typically done, but I don't know that the Common Lisp HyperSpec has anything to say about it.
3:37:06
LdBeth
What I'm thinking is I can implement the readtable to accept only functions produce meaningful result
3:45:58
LdBeth
Rmm, it's a language behaves different to typical lisps but conforms ANSI CL in trivial cases
4:00:11
Xach
sjl: i have some time this week to fuss with more polish and finish on openpgp-enabled quicklisp stuff. i'll keep you posted wrt testing.
5:29:52
aeth
Xach: What do you use to fail on warnings in your Quicklisp tests? asdf:*compile-file-warnings-behaviour*? How do you handle packages that conflict with each other? Do you have to build each project one at a time, restarting between each build?
12:13:35
Xach
aeth: i use asdf's default behavior on sbcl. i build each system in isolation on a new process.