Each basic block declares the frame size on entry. If the exiting jump or jump/poll increases the frame size, a stack frame was allocated; if it decreases, it was deallocated. jump/poll implements a safepoint wrt stack overflow, GC and green thread scheduler. 2/
-
Show this thread
-
The polling for interrupts only needs compare the stack pointer to a "stack limit". To force an asynchronous interrupt, just bump the stack limit; the handler will distinguish an actual stack overflow from a different kind of interrupt. 3/
1 reply 0 retweets 0 likesShow this thread -
For the sake of first-class continuations, two extra lazy link slots are added to each new stack frame. Deallocation pops frame that weren't captured, up to the "stack base". The rest become GC fodder. For the sake of performance, frames are further aligned to 4 words. 4/
1 reply 0 retweets 0 likesShow this thread -
When your stack overflows its current "msection", memory is allocated for a new msection, and the now previous msection becomes heap. In that heap msection, the change of representation of frames from contiguous to using link slots is lazy. 5/
1 reply 0 retweets 0 likesShow this thread -
Immediate objects have a type tag in the two lowest bits. 00 for fixnums, 10 for immediate objects, 11 for pairs, 01 for everything else. For the sake of a simpler more uniform and faster GC, pairs still have a header like other objects, and the cdr comes before the car. 6/
1 reply 0 retweets 0 likesShow this thread -
Low 8 bits of heap object headers are 5 type bits, and 3 GC bits: permanent (never reclaimed), still (outside an msection), moveable (can be moved). For thread-safe GC, compare-and-swap is used to grab ownership of the object. 7/
1 reply 0 retweets 0 likesShow this thread -
Gambit has a library for you to do your own Run-Time Code Generation (and calling of generated code) for x86 assembly and more. Gambit has a lot of experimental, disabled, unused features and works in progress. Projects for future students! 8/
1 reply 0 retweets 1 likeShow this thread -
Brad Lucier explains his career of numerical computations in Gambit, and making it consistently competitive with or faster than lower-level code written by hand in C or assembly.
1 reply 2 retweets 2 likesShow this thread -
Samuel Yvon presents Mimosa, a unikernel written in
#Gambit Scheme, in which you can update the drivers while the machine is running.2 replies 3 retweets 5 likesShow this thread -
Replying to @Ngnghm
DuckDuckGo has nothing on “samuel yvon gambit”. Got a link?
1 reply 0 retweets 0 likes
The repository is still private but will be made public imminently, I'm told.
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.
Read my blog!