freenode/#lisp - IRC Chatlog
Search
1:33:07
shrdlu68
What happens when you start sbcl in a terminal and paste this: http://paste.lisp.org/display/356394 ?
5:27:34
beach
Yesterday, I think I figured out how to do partial inlining of local functions using local graph rewriting.
5:31:59
beach
It is a graph of HIR (High-level Intermediate Representation) instructions in Cleavir.
5:32:22
minion
iqubic: Cleavir: A project to create an implementation-independent compilation framework for Common Lisp. Currently Cleavir is part of SICL, but that might change in the future
5:32:28
minion
iqubic: SICL: SICL is a (perhaps futile) attempt to re-implement Common Lisp from scratch, hopefully using improved programming and bootstrapping techniques. See https://github.com/robert-strandh/SICL
6:02:39
jasom
"I thought real hard about it and then I drew some figures." minion has a quote db, right? I think that's deserving
6:18:39
beach
In fact, that inlining technique creates functions with multiple entry points. Such functions can not be expressed as Common Lisp source code, but there have been languages that allow such functions of course.
6:25:51
beach
https://www.ibm.com/support/knowledgecenter/en/SSY2VQ_2.0.0/com.ibm.aix.pli.doc/lsh-procedure.htm
6:27:49
beach
I think I must stop posting links. Freenode gave me a warning that my behavior looks like spam.
6:52:10
beach
loke: In fact, the exception handling of Multics PL/I inspired the Common Lisp condition system.
6:56:20
beach
shka_: On the left, you have a caller that does (car x). On the right, you have the code for CAR.
6:57:11
beach
In fig4, the code for CAR has been partially inlined, so that the test CONSP is done in the caller, as well as the CONS-CAR (which is like CAR but must be given a CONS cell).
6:58:16
beach
So the caller now tests for CONSP, and if it is a CONS it does the CONS-CAR. Otherwise it calls the remaining CAR function that will test for NULL, etc.
6:58:39
beach
But I see an error in fig4. The caller should not RETURN. Just continue to the next instruction.
6:58:52
loke
beach: You're right. I recall reading about how Multics handled errors. It never dawned on me just how similar in concept CL is.
6:59:40
beach
loke: It is documented by Kent Pitman. He explicitly mentioned that PL/I is the inspiration for Common Lisp condition system.
7:00:28
loke
They do seem to setill market the products: https://www.ibm.com/ms-en/marketplace/pli-compiler-zos
7:11:36
beach
shka_: I updated the figures, fixing a bug and adding a variable to be assigned to the result of the call to (CAR X).
7:16:15
fouric1
I'm attempting to read from a character special file (representing a keyboard I have attached to my machine), and READ-BYTE appears to be...buffering? my reads
7:17:08
fouric1
That is, running the given snippet yields blocks of several hundred bytes at a time, which only occur after I've pressed several keys on the keyboard, and not as soon as I press a key.
7:17:27
fouric1
This *suggests* buffering, but I'm not sure how to confirm that it is, how to determine *what* it is, or how to get around it.
7:58:42
fouric
Bike: thank you for the suggestion; however, that appears to actually *clear* the buffer, instead of flushing it.
9:12:26
beach
I improved those figures and added three more. I won't give the links again, because I am now targeted by some freenode bot that has decided I am a spammer. So now it is fig1.pdf ... fig7.pdf.
10:57:48
Posterdati
please II need to pretty print an object into a string without line feed or return inside the result. I used (format nil ...) but it adds #\Newline in the string
11:13:13
_death
fouric: like you want to use an fd-stream, which allows control of buffering, for that