freenode/#clasp - IRC Chatlog
Search
3:35:42
drmeister
Bike: These optimizations that you worked on - like member - will you will be able to incorporate them when we have first class toplevel environments and set up the new build system?
3:42:23
Bike
maybe it would be possible to just dump fasls proper, i'm not sure about some parts of the backend
3:44:32
Bike
i need to fix global special variables, and then it should be working properly except that it's still missing a lot of functionality (e.g. setf) that i need to reimplement a little
3:51:08
Bike
but i think he uses the docker image and i don't know how to incorporate anything into that
13:31:55
Bike
there are some annoying dependencies, like SIGNAL needs *BREAK-ON-SIGNALS*, and furthermore uses it for typep, and all of that is environment dependent
13:33:39
Bike
i think typep just has to be entirely rewritten, since the environment-independent of the type specifier would be, like, "fully macroexpanded"
13:37:30
beach
Type definitions would definitely be specific to some environment if that is what you mean.
13:38:48
Bike
I mean, I've been writing environment-independent versions of what functions i can. explicit:funcall is like funcall but doesn't allow designators, so you can compile and link it once, and then each environment has a funcall that resolves the designator and then calls explicit:funcall.
13:40:29
beach
I think you have the right idea. Frequently, an existing function can be decomposed into some pre-processing and some slightly simpler function. And the simpler version can be environment independent.
13:41:30
beach
And often an environment-specific function can be implemented as a trampoline to a function that takes an environment as an additional argument.
13:43:54
beach
In SICL, pretty much every function like TYPEP (with an optional environment parameter) is implemented as a trampoline to a generic function.
13:46:57
beach
It is not clear what environment should be passed to TYPEP. The compile-time environment or the run-time environment. At least I don't recall seeing anything about that.
13:47:49
Bike
but anything defined for the compiler has to be available at runtime as well, by the semantic constraints