freenode/#sicl - IRC Chatlog
Search
6:04:17
beach
ringer1: This is the right channel for discussions about Cleavir and SICL. But again, you need a lot of Common Lisp and CLOS experience to be able to actually do any substantial work.
6:04:42
beach
ringer1: If you are eager to help out, I may be able to find some tasks that don't require that much experience.
6:52:49
ringer1
I won't claim any great skills, but I do want to use this software and will try to help if that's a net positive, but I also get that trying to get someone started can be more expensive to you than it's worth
6:53:25
ringer1
I don't know much CLOS but understand it, Lisp is better; my C++ was strong but is out of date
6:53:59
ringer1
I can do Assembly (which probably isn't needed, but it mean I can also do C and LLVM)
6:55:56
ringer1
THere was an (probably) almost trivial issue on Clasp. I can pick around, maybe look at trying to get a build on Windows (for my own purposes and to document it.)
7:10:50
beach
ringer1: Cleavir is very heavy on CLOS. I suggest you stick to Clasp-specific non-CLOS code at the moment.
7:19:36
beach
The generic-function invocation protocol in environment E3 is not quite working. The reason for that is that I am faking ADD-METHOD and the fake is not doing enough. It is not updating the specializer profile, for example.
7:19:45
beach
So instead of faking it, I would like to use the production SICL version of ADD-METHOD. The problem is that ADD-METHOD is a generic function, so we have a circular dependence.
7:19:57
beach
Luckily, the code is structured so that the specified methods of all significant generic functions do nothing but call a function to do the job.
7:19:59
beach
So the solution here is to introduce the function ADD-METHOD-DEFAULT in E3 under the name ADD-METHOD. That way, generic-function invocation does not have to work for ADD-METHOD to work, and we break the circularity.
7:21:26
beach
I structured the code like this for maximum flexibility during bootstrapping, but in fact, I don't think of this particular possibility very often. I should think harder. :)
7:23:54
beach
ADD-METHOD invokes the "dependent maintenance protocol" http://metamodular.com/CLOS-MOP/dependent-maintenance-protocol.html, but that one I will definitely fake, because there are no dependents during bootstrapping. All I need to do is define MAP-DEPENDENTS to do nothing and UPDATE-DEPENDENT to call ERROR (because UPDATE-DEPENDENT should never be called).
7:52:18
beach
So I can't use the production ADD-METHOD to add a method to a generic function, because it would invoke the accessor to add the method.