freenode/#sicl - IRC Chatlog
Search
18:10:03
jcowan
IMO in SICL all functions should be at least potentially generic, since every time you add a method the gf gets a new rack anyway; there can be a fast-path rack for functions with one method.
18:29:49
Bike
jcowan: isn't the "rack" the data vector of an object? I don't understand what a "fast-path rack" is
18:37:20
jcowan
a specialized rack that will be replaced if a second method is added. There's a new rack for every new method already: see sicl.pdf (online) p. 38
19:18:39
jcowan
A normal gf dispatches to its discriminating function: with only one method, the discriminating function is just the code of the method, since there is nothing to discriminate.
19:22:24
scymtym
if all specializers are t. otherwise discrimination is needed for method execution vs. no-applicable-method
20:18:57
jcowan
yes, I forgot about no-applicable-method, though there is nothing preventing it from being called on an ordinary function whose typing has been violated.
3:50:33
beach
Contrary to what I said yesterday, I won't "tie the knot" today. Things are slightly more complicated than I thought yesterday. Not a lot, but a little. And I want to explore what I have now and clean up a few rough edges.
3:50:36
beach
I might remove the (old) Boot directory and put the one I have been working in (New-boot) in its place. I fear that the old boot is broken anyway. I just want to make sure that the "quick start" instructions in the README are still valid (or update them).
3:54:35
beach
As far as the host is concerned, everything is now either a HEADER object, or a simple vector. Not very user friendly to look at.
6:00:37
beach
I have a favor to ask (no rush): Could someone verify that the following works: (asdf:load-system #:sicl-new-boot), then (in-package #:sicl-new-boot), then (defparameter *b* (boot)), then [after around 15 minutes] (repl ee4) [you should see a SICL: prompt], then a few interactions like (defgeneric foo (x)) (defmethod foo (x) (list 234 x)) (defmethod foo ((x cons)) (list 345 (call-next-method))) (foo 234) (foo '(a))
6:01:35
beach
I don't know what size heap you need. In the end, (room) says it uses around 1GB, but I am sure it requires more to do the work. I use 10GB myself.
6:03:29
beach
And if you are interested, you can use the utility functions (at the host prompt) FC (for find-class) FBP (for fboundp) FD (for fdefinition). They all take a name and an environment. Environments can be accessed using EE1 to EE5.
6:04:18
beach
I was trying to come up with cute names like Anemic, Basic, Comfortable, Durable, Essential, Fake, etc.
6:06:34
beach
Anyway, if this works for everyone, I will remove the existing Boot directory and all its code, and rename the New-boot to Boot. Also update the README.