freenode/#clim - IRC Chatlog
Search
15:19:49
scymtym_
beach: i have been thinking about (and working on) using a pattern matching compiler backed by a generalized decision tree generator as the basis of generic function dispatch, typecase, case and, well, a pattern matcher for a long time. it seems like a very good primitive. i think i have mentioned this in a previous discussion on fastgf
15:26:08
beach
I have been trying to convince drmeister to make his code independent of the Common Lisp implementation, but I think I largely failed to do so.
15:27:40
beach
So what SICL does at the moment is what the MOP allows for the default case, i.e. cache only the result of COMPUTE-APPLICABLE-METHODS-USING-CLASSES, but that's not good enough for all cases, because for STANDARD-GENERIC-FUNCTION it is also possible to cache the result of COMPUTE-APPLICABLE-METHODS.
15:30:11
beach
scymtym_: Anyway, so if you can reduce the pattern matching to real number (like the unique class number is fast generic dispatch), you can use the SICL code.
15:30:18
scymtym_
the generalized decision tree generator i'm experimenting with tries to compute a shallow decision tree relying on a "client" (in similar sense to the client in eclector) for suggesting tests to apply in decision nodes and for partitioning remaining possible outcomes according to such tests. thus it can work on tags (ranges), layout addresses, types or other things
15:32:46
scymtym_
yes. i'm thinking/hoping it will be worth the effort because something like that seems applicable in so many situations
16:30:58
nyef``
beach: Is Satiation for /all/ classes and generic functions in a system sufficient to cause COMPUTE-DISCRIMINATING-FUNCTION to not execute barring class redefinition or definition of new classes, methods, or generic-functions?
16:54:24
beach
Speaking of which, because or (or rather, thanks to) you, I am updating the SICL specification. I am removing obsolete parts and updating others according to new thinking. Most recently, I changed the chapter on garbage collection to mention the latest idea of a malloc()/free() type memory manager for the racks.
16:55:37
nyef``
So... I should probably do a git pull and rebuild the pdf soonish, maybe tomorrow morning or so?
16:57:39
nyef``
I might want to do a proofread pass over the SICL Specification, there are a few minor things that could probably do with attention that I haven't been making a record of during my initial read-through.
16:58:21
beach
That would be great. But it's also a lot of work, so if you want to wait until I have done more updates, you will save some effort.
16:59:13
beach
I am a bit tired. Can you point me to the place in the paper where the bootstrap process is described.
17:03:47
beach
Right now, I am compiling (in my head) a complete list of things that must exist in a small viable image.
17:04:27
beach
I had to figure out a way to compute effective methods and discriminating functions without using the compiler.
17:06:01
beach
In the past, I was unable to break the circular dependence on the compiler, but now I am confident I can do it.
17:21:11
beach
nyef``: So it sounds to me like you are planning a Common Lisp implementation, that this implementation has some features in common with SICL, but also some significant differences. Am I right?
17:26:54
nyef``
Yes, though I don't know how far I'll get even with planning, let alone implementation.
17:27:54
beach
Can you give a summary of the similarities and the differences compared to SICL? Or is that too complicated?
17:29:21
nyef``
I believe in separate address spaces, cross-process debugging, and applications that can be easily deployed without including the compiler, the debugger, much of the CLOS machinery...
17:32:33
nyef``
Oh, I'm also interested in having a system which can be shown, using automated proof tools, to conform to its specification.
17:33:17
beach
About code sharing, I am often saddened by Clasp development in that drmeister often prefers to implement Clasp-specific code even when it could be implementation independent, and even when code already exists in SICL. But that's the way he does things. To learn how it works, he says.
17:43:50
beach
But then, I wish he would make his code portable and available whenever possible. Currently, that is not happening.
17:59:38
nyef``
beach: In reference to SICL Specification 16.1.4 ("Structure classes"), specifically the the two footnotes, please see CLtL2 19.2, specifically the last four paragraphs (p. 473 in my copy).
19:07:59
nyef``
Not a problem. I figured that, at worst, you'd see it in scrollback in the morning. (-: