Search
Monday, 14th of January 2019, 12:44:30 UTC
14:52:08
Bike
drmeister: why does the literal compiler treat built-in-classes specially?
14:52:13
Bike
gonna try it without and see what happens
14:52:25
drmeister
Where does it do that?
14:53:36
Bike
they have their own ltv/built-in-class function and an ltvc primitive
14:53:36
drmeister
Yes - but more specifically.
14:55:06
Bike
they're treated as their own fundamental kind of thing, same as hash tables or vectors or whatever
14:55:17
Bike
it's not really a problem, i'm just wondering why, since make-load-form should be fine
14:57:17
Bike
i'm going to put something in to special case make-load-form for classes, so i'll see what happens i guess
14:58:37
drmeister
I think just because. I still don’t really understand what make-load-form is for.
14:59:07
drmeister
Like yeah - it’s to make a form that recreates the object - but when is it used?
14:59:35
drmeister
Not by print-object readably
15:00:25
Bike
well, it's for this basically.
15:00:36
Bike
i'll change it and see what happens. i was just wondering if you hit a specific problem
15:03:07
Bike
cmpliteral calls make-load-form and compiles the result into the fasl RUN-ALL, that's how it's used
18:23:59
drmeister
But what was the purpose of it in Common Lisp?
18:24:13
Bike
purpose of make-load-form?
18:42:50
drmeister
Yeah - it can't just be for compiler writers.
18:43:47
drmeister
I mean - I guess it could be just for compiler writers and Common Lisp implementers - but the person on the street - what would they ever use make-load-form for?
18:43:56
Bike
Well no, but I mean, cmpliteral calls it. If compile-file encounters a literal object, it calls make-load-form to figure out how to get the fasl loader to create that object.
18:44:11
Bike
So a programmer can put new kinds of literal objects in a file to be compiled if they just define a make-load-form method.
18:44:30
Bike
Like we have literal cleavir ASTs in files, so we have a make-load-form method for them.
18:45:10
drmeister
Oh really? So it's to provide a way to put new kinds of literals into fasls?
19:20:07
Shinmera
I've used it a couple of times
19:20:26
Shinmera
it's mostly if you want to add a new "native" data type (like vectors, etc)
19:21:18
Shinmera
Or rather, something that should feel native and unit-like, so literal treatment would make sense
19:23:05
drmeister
How do you get a new data type to compile-file as a literal? I should know the answer to this.
19:37:44
drmeister
I always thought #. was an anachronism - it's not though is it?
19:50:27
stassats
e.g. (case x (#.most-positive-fixnum 10)) can't be done with load-time-value
22:03:27
drmeister
Bike: If you have a lull - could you drop by my office? I have another programming problem that I'd like to float past you.
0:28:05
drmeister
POWERLOOP for the win!
0:29:49
drmeister
https://usercontent.irccloud-cdn.com/file/r1ghqAw7/graph.dot.pdf
0:38:50
drmeister
For those following along at home - Bike wrote this little macro for me:
0:38:51
drmeister
https://www.irccloud.com/pastebin/x0hTDp4J/
0:39:40
drmeister
I have a nested, nasty, 5-level deep LOOP macro.
Tuesday, 15th of January 2019, 0:44:30 UTC