freenode/#clasp - IRC Chatlog
Search
7:38:35
beach
I improved the SICL reader so that it handles end-of-file better. I can see two more obstacles for you to use it. One is that the source information should be possible to customize. Currently, it just returns a CONS of the file positions before and after the object read. Another is that what the backquote reader macro returns is not possible to customize. Currently, it uses QUASIQUOTE, UNQUOTE, and UNQUOTE-SPLICING.
7:39:28
beach
I use the improved reader myself now in the SICL boot procedure, so it is able to read all the code that is being loaded during that procedure.
8:07:37
Shinmera
beach: It would be great if it also tracked line and colum numbers, as that's more immediately useful for the user.
8:08:21
beach
Yes, that's what I intend to do for SICL and Second Climacs. But it has to be possible to customize it in the reader.
10:39:41
beach
How about this solution for the source position: I define a special variable *client* (value is NIL by default) which can be bound by client code before calling CST-READ. I also define a generic function SOURCE-POSITION with two arguments, a stream and a client. When source position is wanted, the function is called with the stream and the value of *client*. The default method calls CL:FILE-POSITION.
10:40:00
beach
That way, client code can specialize on the stream class, on the client class, or on both.
10:43:43
Shinmera
Reminds me of a similar strategy I used in my testing framework to allow controlling test evaluation behaviour by the current report the tests should be evaluated with.