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