freenode/#clasp - IRC Chatlog
Search
20:22:08
Bike
reading things as unicode but then only allowing 0x20 seems kind of gross, but i guess by text processing standards it's hardly anything
20:22:39
Bike
personally what bugs me is that it means peek-char has to worry about readtables and stuff instead of being only a lower level stream query
20:23:54
Bike
but it does occur to me that that means that you could make a readtable where the unicode spaces are alphabetic or whatever you like
20:26:34
Bike
you know how the readtable defines a "syntax type" for every character? whitespace is a syntax type
20:26:58
Bike
peek-char isn't hardcoded to skip 0x20, it's supposed to look at the readtable and go "oh i see, in this readtable this character is whitespace"
20:27:45
Shinmera
Okey, but does the readtable have an API to influence that? IIRC all the user can do is make macro characters and set the syntax from another char that already exists
20:28:53
Bike
Well I'm not sure what you're asking. I'm pretty sure that at least you can have it so that peek-char t only skips ascii whitespace.
20:37:24
Bike
it's kind of a shame that it's so complicated but you can't use it as a general parser
20:37:49
Shinmera
Yeah. Even for formats that are very lisp-like I've ended up rolling my own because I needed more control.
20:38:31
Shinmera
Eg my chat protocol basically uses cl sexprs, but I need precise control over what happens when unknown symbols are entered and how interning happens so the reader is already out
20:47:04
Shinmera
I really wonder if they just didn't think of that one somehow (how?!) or if they knew but didn't include it for some reason (why?!)
20:48:47
Bike
probably none of the antediluvian lisp machine languages had anything like it, and so it wasn't included
21:06:52
karlosz
::notify beach err, scratch that. the variable being assigned to is what we both mean. its not a terribly complex special case to add, but i fear that any manipulation with assignment instructions will end up having to test for something similar
3:38:47
Colleen
drmeister: Bike said 7 hours, 48 minutes ago: i figure you've already seen and worked out a fix for the Reader_O removal problem- but i'm looking at it and thinking we shouldn't be parsing the arguments strings at startup anyway
3:39:55
drmeister
Because we need them to construct LambdaListHandlers when we define the functions.
3:40:25
drmeister
I got rid of Reader_O and didn't expect the bootstrapping problem that I subsequently ran into.
3:41:02
Bike
i mean, if we have that a function has arguments "(x y z)" we could somehow specify the list for startup, instead of rereading the actual string
3:41:50
drmeister
Yes, we could do that - it would be better generate code to construct the LambdaListHandler_O objects - but that would take some work.
3:46:29
drmeister
It's not a high priority right now - we can continue to parse the strings at startup and sort out a way to do it at scrape-time later.
3:49:11
drmeister
It might be - this morning I thought it would be better to just get the regular reader to parse the strings - now I'm several hours into it and it's still broken.
3:50:04
drmeister
So I made a change that calls reader macros directly when they aren't set up properly.
4:56:06
drmeister
::notify Bike The other reason to do it at runtime is that then I use the same approach for defining lambda lists in clbind. Now - we could come up with another way to write lambda-lists that uses C++ template programming... But that sounds - bleh.