freenode/#clasp - IRC Chatlog
Search
2:36:28
karlosz
OK, seem to have promising results: ocf.io/~karlos/before-preparse.svg and ocf.io/~karlos/after-preparse.svg
2:37:02
karlosz
this is compiling cleavir/convert-special.lisp for 30s, before and after the lambda list parsing change
2:38:12
karlosz
if the flamegraph is accurate, this is saying that preparsing the grammars drop cst->ast time from 38% to 28%
2:42:54
karlosz
yeah, this is supposed to reduce consing, not that much runtime is really spent parsing, i think more so whatever process-parameter-groups is doing
3:09:54
drmeister
I'm adding a stack guard to catch infinite recursion. I'm tired of getting hit by segfaults.
4:27:59
drmeister
I set up a guard page at the bottom of the stack and then I run a recursive function it crashes when the stack pointer hits the guard page - but clasp doesn't catch SIGSEGV at the moment.
4:33:42
drmeister
Did someone turn off signal handling somehow? The signal handling code appears to be installed but it doesn't get triggered.
7:55:56
kpoeck
::notify drmeister regarding signal handling. We made some changes, so that most signals are handeld and can even have handlers written in lisp
7:56:54
kpoeck
::notity drmeister kill -s SIGSEGV <pid> -> Condition of type: SEGMENTATION-VIOLATION in clasp
7:56:54
Colleen
Unknown command. Possible matches: notify, 8, set, mop, get, login, roll, say, uptime, grant,
7:57:30
kpoeck
::notify drmeister kill -s SIGSEGV <pid> -> Condition of type: SEGMENTATION-VIOLATION in clasp
9:13:17
kpoeck
now it is nicely passed to lisp, or you can handle it, even with a handler written in lisp
9:41:17
frgo
kpoeck: Here: https://github.com/dg1sbg/sighandling/blob/master/sighandling/main.cc#L467 I made a first step at setting up signal handling for clasp. It shows the necessary steps.
9:44:17
kpoeck
oops that code might be overlapping with https://github.com/clasp-developers/clasp/blob/master/src/gctools/interrupt.cc#L370
12:13:44
Bike
we had sort of a vestigial use of sigaltstack before. the sigsegv handler had SA_ONSTACK but we didn't actually allocate a stack for it
12:15:07
Bike
i'm worried an alt stack will screw up nonlocal exiting from the signal handler, but hey - we can't do that anyway
13:14:32
Bike
you're right about boot-bitcode-pathnames, but cmpbundle might be used for some kind of special build drmeister does, so i dunno
13:34:22
kpoeck
I adapted the metering provided with slime to work with clasp. I also wanted to drop the use of function in the package si/core. Will make a pr to slime with all together. Hope drmeister can review all together
13:34:37
Colleen
drmeister: kpoeck said 5 hours, 38 minutes ago: regarding signal handling. We made some changes, so that most signals are handeld and can even have handlers written in lisp
13:34:37
Colleen
drmeister: kpoeck said 5 hours, 37 minutes ago: kill -s SIGSEGV <pid> -> Condition of type: SEGMENTATION-VIOLATION in clasp
13:34:37
Colleen
drmeister: kpoeck said 5 hours, 33 minutes ago: after (ext:default-interrupt :sigsegv) a sigsegv terminates clasp
13:34:37
Colleen
drmeister: frgo said 4 hours, 24 minutes ago: I think kpoeck said it all re signals.
13:37:35
drmeister
When a thread is created (or the main process is registered as a thread) the system calculates an address at the bottom of the stack that is memory page aligned and calls 'mprotect' to set a few pages to PROT_NONE
13:39:15
drmeister
I couldn't get the segmentation fault handler to catch anything last night - very frustrating.
13:40:02
kpoeck
I did change some things regarding handlers, but I believe sigsegv handling is as before
13:40:31
drmeister
Bike: cmpbundle is used by the system to figure out directories that clasp needs to run. It needs to handle development directory layouts and production directory layouts.
13:42:10
kpoeck
the question was whether https://github.com/clasp-developers/clasp/blob/master/src/lisp/kernel/cmp/cmpbundle.lsp#L411 is used anywhere or we can delete it
14:03:52
drmeister
I'm pretty sure it's not being called from there - but the buildbot will catch it if it is.
14:04:16
Bike
is there some way we could stress test cmpbundle functions that may not be used during build?
14:07:25
kpoeck
some functions are clearly only used by asdf, so testing needs to include compiling quicklisp systems