libera/#sicl - IRC Chatlog
Search
12:40:55
bike
jackdaniel: the cleavir BIR does not work with top level or non top level forms. it's sort of a "pure" compiler that you just give code, so you can use it for compile-file, compile, whatever. you have modules, as you saw, and usually the module will have some kind of "entry point", but that's not required or imposed
12:56:44
bike
in the usual use (and what clasp does), when compile filing each top level form would get its own module, and its entry point is a thunk
15:28:35
beach
I am looking for a solution to configuring a library that supplies standard functionality, potentially as an intrinsic module. I think we have the same issue with Inravina.
15:28:47
beach
So suppose the library has a few standard low-level functions, perhaps just one, the functionality of which must be supplied by client code. Let's call such a function F. The library supplies functions G, H, etc. that can call F to get the low-level work done.
15:28:48
beach
The problem is this: How can a single instance of the library in one Common Lisp image be parameterized so that two different versions of F are called, according to the current value of some *CLIENT* variable somewhere in the system?
15:30:02
beach
And there is no time to bind *CLIENT* between the time the high-level G and H and the time they call F.
15:30:48
beach
So, as I recall, the advice I gave to yitzi was that the client has to define G and H as well, but that is kind of unsatisfactory if there are many similar functions.
15:36:07
beach
Maybe it's a non issue. I guess I'll find out as I work on the condition system. In this case, F is SIGNAL and G and H are WARN, ERROR, etc.
15:45:11
beach
For example, suppose we have a Common Lisp implementation that uses (say) Parcl (the package system) intrinsically. We would like to take advantage of the same code for cross compilation without loading it again as an extrinsic system. But then we might want to change the way some low-level function works for the purpose of cross compilation.
15:46:11
beach
Besides, we can't load it again as an extrinsic system, because the PARCL package would be defined in two different ways in the same Common Lisp image.