darcs patch: Support an interrupt flag,
and primitive... (and 4 more)
Brian Rice
water at tunes.org
Wed Oct 26 17:30:29 PDT 2005
After using the first major patch in this set to produce a new VM and
image, starting up with those gives me the following error:
water at alita.local:~/Slate/test> ./vm.new big.new.image
Bootstrapping libraries... (this may take a while. Save the image
when done).
Slate: Growing heap to 4831220 bytes.
Performing post-bootstrap actions...
Loading P'src/mobius/syntax/quote.slate'
Loading P'src/mobius/syntax/cascade.slate'
Loading P'src/lib/macro.slate'
The following condition was signaled:
The method #quote was not found for the following arguments:
{expr `cache}
No restarts are available.
I have tried combinations of the later patches being pulled (but only
once the bootstrap is made - I have not recombined patches ahead of
the bootstrap) but have not gotten different results. Perhaps the
bootstrap needs to happen differently - Nick, any ideas?
On Oct 26, 2005, at 3:07 PM, Brian Rice wrote:
> These are in main now, which make it unstable, unless you don't
> pull these patches, of course. Note that this requires two
> bootstraps as stated in comments below. I'll update alpha when I
> and others are satisfied with its stability.
>
> On Oct 26, 2005, at 2:58 PM, Tony Garnock-Jones wrote:
>
>
>> Wed Oct 26 22:35:32 BST 2005 Tony Garnock-Jones <tonyg at lshift.net>
>> * Support an interrupt flag, and primitive for building an
>> Interpreter.
>>
>> The InterruptFlag global is used to tell the "Interpreter
>> interpret"
>> method to return to its caller. This will be used in boot.c to
>> drive
>> a trampoline that allows code to switch the active Interpreter
>> instance.
>>
>> The new primitive "Interpreter initializeThreadOn:" is used to
>> create
>> suspended Interpreter instances that can be switched out using
>> (lobby globals specialOops at: 17) and the InterruptFlag.
>>
>> Wed Oct 26 22:37:52 BST 2005 Tony Garnock-Jones <tonyg at lshift.net>
>> * Modification to boot.c to drive a context-switch loop, plus
>> support code.
>>
>> The new trampoline in boot.c uses (lobby globals specialOops at:
>> 17)
>> as a register containing the currently-active interpreter. Each
>> time
>> the InterruptFlag is set, the trampoline clears it, and reenters
>> the
>> interpreter.
>>
>> The support code in thread.slate makes use of this, replacing
>> the 17th
>> specialOop as appropriate, and managing a toy round-robin
>> cooperative
>> scheduler.
>>
>> NOTE: that before you apply this patch you will need to have a
>> VM and
>> image that support InterruptFlag (in the VM), "Interpreter
>> interrupt"
>> (in the image) and "Interpreter initializeThreadOn:" (also in the
>> image).
>>
>> Wed Oct 26 22:53:55 BST 2005 Tony Garnock-Jones <tonyg at lshift.net>
>> * Remove obsolete process.slate.
>>
>> Wed Oct 26 22:54:35 BST 2005 Tony Garnock-Jones <tonyg at lshift.net>
>> * Rename thread.slate to process.slate, replacing the old
>> process.slate
>>
>> Wed Oct 26 22:57:19 BST 2005 Tony Garnock-Jones <tonyg at lshift.net>
>> * Internal symbol renames in the new process.slate.
>>
>> New patches:
>
--
-Brian
More information about the Slate
mailing list