freenode/#sbcl - IRC Chatlog
Search
15:16:48
phoe
I don't really feel comfortable making bugtickets at SBCL all the time while giving nothing in return. Where and how can I support SBCL development and maintenance?
17:29:07
|3b|
if i write the function carefully enough, could i copy a lisp function to foreign memory and run it as a foreign thread?
19:10:34
|3b|
stassats: i'm wondering if i could use SBCL to generate some fairly simple code, then run it as foreign code (and so hopefully immune to GC pauses)
19:12:57
|3b|
so can i write a function that wouldn't get paused by GC? and/or run it in some special way
19:14:17
phoe
stassats: I'm trying my best while filing more bugs, and I might try using bleeding-edge SBCL for my development
19:16:03
|3b|
with maybe a semaphore or something to talk to lisp side, or just a cas flag in the shared mem or something
19:16:46
|3b|
ACTION is trying to write something to read from an spi device more or less constantly (it uses about 50% of max SPI bandwidth if i'm counting right)
19:17:46
|3b|
(doesn't matter if lisp side misses some data once in a while, and actual useful data rate is lower anyway)
19:18:51
|3b|
so foreign side would pretty much just be a loop on an ioctl, and once in a while copy some of the data it gets into a shared buffer
19:21:22
|3b|
actually i guess the spi ioctl is synchronous, so i'd probably end up waiting on that most of the time rather than precisely busy waiting
19:25:49
stassats
i think there can be a gc mode (not useful for arm32) where a thread agrees to never get stopped by the GC
19:26:55
|3b|
ACTION just had "gc stops theads" stuck in my head and missed that detail about unthreaded builds
19:28:57
|3b|
the special GC mode sounds useful aside from that though, since i have similar problems with soft-realtime 3d rendering too, where drawing old data at correct time is more important than drawing new data late
19:29:38
stassats
(or we could avoid stopping threads while in foreign code, like on safepoints (if they weren't broken))
19:30:45
|3b|
3d stuff would need to run on windows, so would have to interact with safepoints. i assume that would make it harder to do without implementation support?
19:32:05
|3b|
right, so if i tried to run lisp code as a foreign thread, presumably the safepoints would still be active
19:32:50
|3b|
so i'd either need some way to generate code without them, or some way to deactivate them while running in no-gc mode