Fwd from John Maloney ...
- Bert -
Begin forwarded message:
> From: John Maloney <jmaloney(a)media.mit.edu>
> Date: 16. Januar 2010 16:21:59 MEZ
> To: Bert Freudenberg <bert(a)freudenbergs.de>
> Cc: Ian Piumarta <ian(a)vpri.org>
> Subject: Re: [Vm-dev] Re: [squeak-dev] Numbered primitives in images
> Hi, Bert.
> Thanks for the alert.
> Yep, this would be a problem for Scratch. It would prevent sharing projects on the website. Normally, I would not mind sticking with an older VM, but that there is also a change in the sound support on Linux from ALSA to Pulse Audio that we need, and work on that is still ongoing. So we may need to use a current VM, at least on Linux.
> Any chance there are some other numbered primitives that could be co-opted for the closure prims? As I recall there were lots of unused numbered primitives.
> -- John
> On Jan 16, 2010, at 9:57 AM, Bert Freudenberg wrote:
>> That may be a problem ...
>> - Bert -
>> Begin forwarded message:
>>> From: "David T. Lewis" <lewis(a)mail.msen.com>
>>> Date: 16. Januar 2010 15:55:02 MEZ
>>> To: "K. K. Subramaniam" <subbukk(a)gmail.com>
>>> Cc: vm-dev(a)lists.squeakfoundation.org
>>> Subject: [Vm-dev] Re: [squeak-dev] Numbered primitives in images
>>> Reply-To: Squeak Virtual Machine Development Discussion <vm-dev(a)lists.squeakfoundation.org>
>>> On Sat, Jan 16, 2010 at 08:16:06AM +0530, K. K. Subramaniam wrote:
>>>> On Friday 15 January 2010 10:46:45 pm Bert Freudenberg wrote:
>>>>> On 15.01.2010, at 16:58, K. K. Subramaniam wrote:
>>>>>> Scratch 1.4 (Linux) of 30-Nov-2009 on 3.11-3 VM.
>>>>>> Break into Scratch and do "Socket initializeNetwork".
>>>>> So it does not occur in normal operation?
>>>> Only if you define "normal" as "offline" ;-). Any operation which uses networking
>>>> (url block) goes through this method and it will fail when run under the
>>>> 3.11.3 VM built from unix-3.11.3-vmm or svn trunk.
>>>> BTW, Scratch image is just an example which has numbered primitives.
>>>> The 3.10-4 VM has primitiveObsoleteIndexedPrimitive in slot 207 in
>>>> platforms/unix/src/vm/interp.c while the 3.11.3 tar.gz and the trunk contain
>>>> primitiveFail. The change crept in r1935 through vmm-dtl-126.
>>>> Is this intentional or an oversight?
>>> Sorry I was not able to reply earlier. The change was intentional,
>>> but the effect on Scratch was not.
>>> Some of the obsolete primitives had to be dropped when we added the
>>> block closure support. This happened in February 2009 (VMMaker-eem.114
>>> in the SqS/VMMaker). Specifically, we changed from this, which redirects
>>> the numbered primitives:
>>> "Networking Primitives (200-225) - NO LONGER INDEXED"
>>> (200 225 primitiveObsoleteIndexedPrimitive)
>>> to this, which reallocates the numbers for closure support and for
>>> future COG integration:
>>> "new closure primitives (were Networking primitives)"
>>> (200 primitiveClosureCopyWithCopiedValues)
>>> (201 primitiveClosureValue) "value"
>>> (202 primitiveClosureValue) "value:"
>>> (203 primitiveClosureValue) "value:value:"
>>> (204 primitiveClosureValue) "value:value:value:"
>>> (205 primitiveClosureValue) "value:value:value:value:"
>>> (206 primitiveClosureValueWithArgs) "valueWithArguments:"
>>> (207 209 primitiveFail) "reserved for Cog primitives"
>>> The obsolete primitive redirection had been in place for at least five
>>> years, so backward compatibility had been preserved for some time.
>>> Question for Subbu: Is this an important issue may affect a large number
>>> of Scratch users? In other words, are there kids trying to run Scratch,
>>> and their Scratch image stops working properly after Squeak gets updated
>>> to use a new VM?
>>> And a thought for the vm-dev list: I don't know if there might be a
>>> technical solution to this, but it might be possible to use a strategy
>>> in which the some of the old primitive lookups are preserved (at least
>>> for the range 207 through 225) if and only if the image format is
>>> pre-closures. Follow ups to this on vm-only.