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)
15:06:15
Colleen
Shinmera: drmeister said 17 hours, 51 minutes ago: Say I loaded staple into clasp after starting everything else out. I'd like to generate some documentation for some packages. I tried (staple:generate :my-system :packages (list (find-package :chem))) but that just generated an error that it couldn't determine the project (Cannot generate documentation for :MY-PACKAGE: Could not find or infer a project.)
15:08:29
Shinmera
no idea what broke colleen now, but anyway https://shinmera.github.io/staple/#GENERIC-FUNCTION%20STAPLE%3AINFER-PROJECT
15:11:00
drmeister
Shinmera: Hmm, the examples I used were not ASDF systems. I didn't know that was a requirement. So staple needs an ASDF system definition - correct?
15:11:43
drmeister
I do have ASDF systems that I want to document - I also have a few builtin packages - I started with the builtin packages and obviously got nowhere.