freenode/#clasp - IRC Chatlog
Search
6:32:59
CatchMe
drmeister: luabind/boost.python uses lua.h/python.h, Do you know an alternative for lisp?-I found clisp support that-
9:26:09
beach
heisig: I have been making great progress on SICL bootstrapping. I now have "ersatz" classes corresponding to all the MOP classes, and "ersatz" generic functions corresponding to all the accessors of those classes. I now need to understand why those generic functions do not have methods on them, but that's part of the job.
9:26:41
beach
An "ersatz" instance is represented as a header and a rack, using a host standard object and a host simple vector.
9:57:28
heisig
beach: Yes, I see. Congratulations on the progress. I just ran sicl-new-boot:boot, it is just beautiful.
11:29:52
beach
Well, this truly is great (or will be). I just replaced a slot in the DEFCLASS form for FUNCTION by a different one. I then re-ran the bootstrapping, and it just works.
11:33:28
makomo
beach: is that a consequence of never using slots directly but always relying on accessors?
11:34:15
beach
No, not this time. It is a result of my insisting on every class definition to be "natural" and having the bootstrapping procedure turn it into something executable.
11:34:41
beach
So this is the definition (defclass function (t) ((...) (...)) (:metaclass built-in-class))
11:39:42
heisig
Nice! The pleasures of using CLOS. I had a similar moment of joy yesterday, when I introduced a new data type in Petalisp. Thanks to CLOS, it took me 3 lines of code in the frontend and 6 lines of code in the backend.
11:40:26
makomo
beach: very nice. how exactly does the bootstrapping procedure turn it into something executable (actually, what does that even mean)?
11:41:46
beach
Well, most of my class definitions are not operational. Take this one, for instance: (defclass standard-class () (...))
11:42:05
beach
STANDARD-CLASS is an instance of STANDARD-CLASS so it must exist in order to be created.
11:42:53
beach
makomo: I solve this conundrum by having the host (in this case SBCL) execute the definition for me. But I use first-class global environments to avoid clobbering the host global environment (which would not have worked anyway).
11:47:07
beach
No existing Common Lisp implementation (that I am aware of) starts bootstrapping by building the MOP classes. :)
11:55:14
heisig
So many possibilities once the bootstrapping works... like starting with (defclass number (t) () (:metaclass built-in-class)).
11:58:29
beach
heisig: Soon-ish, I will eliminate the (old) Boot directory and replace it with what is now in New-boot.
12:01:40
heisig
Thank you for the warning. I won't mourn after the old bootstrapping code :) The new code is much easier to understand.
13:32:12
Kevslinger
More errors are coming to the surface -- I'm considering that a good thing (as opposed to having lots of phantom bugs lurking around at night)