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