darcs patch: Support an interrupt flag, and primitive... (and 4 more)

Brian Rice water at tunes.org
Wed Oct 26 17:31:17 PDT 2005


Er, I meant to address this to Tony. Sorry, Nick. :)

On Oct 26, 2005, at 5:30 PM, Brian Rice wrote:

> 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
>

--
-Brian




More information about the Slate mailing list