freenode/#clasp - IRC Chatlog
Search
14:32:00
drmeister
From what I understand - all I need is a Process_O::_ExitBarrier mutex and the Process_O::_Active condition variable.
15:38:49
drmeister
Although if you have threads running - it ends badly. We don't yet have the main thread shutting down children.
16:19:11
Bike
i think we could establish a parallel method-combination thing, but i wouldn't want to keep it around
16:19:46
Bike
for one, if we just had dispatchers use regular code instead of the special compiler, we could just write out the code, compile-file it, set it as the discriminating function during startup, and we'd be done
16:46:57
Bike
but then there might be issues if we add methods to compiler functions. which is something that would be good to be able to do, even if we didn't need it for booting.
16:49:25
beach
The safest thing would be to have two compilers, defined in two different environments. They would both be Cleavir compilers, but could behave differently thanks to different customization.
17:07:56
beach
After a long hiatus (due to work on the incremental parser, then the CST library, then CST-to-AST), I decided that I would again start working on the SICL boot procedure.
17:07:58
beach
I decided to do it softly, by trying to understand what I did before. I was surprised that I could read and understand the comments, but I also immediately saw opportunities for improvements that I had missed when I was in the middle of working on it.
17:15:59
frgo
drmeister: I wrote a set of functions that help track down what happens when a signal is received by a process. Output: https://gist.github.com/dg1sbg/a360ace6e37c877af2e7f469a958fa82 - would that help for clasp?
17:25:56
Bike
also, had a thought. if the system compiler is defined in a different environment (that is, cleavir is, and then cl:compile is defined in the normal user-accessible environment but calls the other environment's functions), signal handling would be weird
17:26:18
Bike
because when the compiler signals conditions, as it does, it would use its environment's signal, which necessarily doesn't know about the other environment's condition types
17:34:50
beach
I will definitely document the bootstrapping process. I think there is partial documentation somewhere, but I'll look for it and see if it needs updating.
17:36:40
Bike
you could do something like (deftype foo () 'some-compiler-condition) and it would only affect the user environment, so a handler-bind around the compiler with foo wouldn't work.
17:37:50
beach
People who work in such a system would have to understand the effects of what they are doing.
17:47:04
beach
The SICL specification has an entire chapter about bootstrapping. But I'll make sure it is up to date before recommending that you use it to learn about the procedure.
17:47:26
beach
There are a lot of definitions that start that chapter. I am afraid they are necessary.
17:47:54
beach
Anyway, dinner is imminent, and I am tired after a long day. See you tomorrow (UTC+1).
18:52:56
Kevslinger
drmeister: died on [625/634]: ../../src/gctools/interrupt.cc:324 Hit a fatal error in llvm: Program used external function '_FUNCALL' which could not be resolved!
19:45:34
drmeister
I didn't know there was such a thing as an anonymous package - do we have a problem?
19:47:09
Bike
there is no such thing as an anonymous package. i'm talking about the standard, not clasp
19:47:24
Bike
i thought they're how you'd do some global environment things, but perhaps i was mistaken
20:31:58
Bike
not entirely separate. if we didn't have to build generic functions by side effects it would be easier.
20:35:11
Bike
isn't it? we have a file with a bunch of defmethods, we compile it, then load the file, adding methods one at a time
20:38:28
Bike
i suppose having the generic function and its methods added "all at once", so e.g. none of the dispatcher stuff gets triggered between methods being added
21:09:51
shiho
drmeister: Our topology file and topology file from leap got same results from sander
0:38:59
Bike
drmeister: do i understand correctly that the way generic functions work is that when you define a method they go into an "invalidated" state, and then the next call compiles and installs a working discriminating function?
1:07:31
drmeister
Yes, any change to a generic function, add or remove method, invalidates the discriminating function.
1:08:07
drmeister
The only way that a discriminating file gets compiled is when the invalidated generic function is called.