Re: [Pharo-users] Alien for Squeak 4.1/Pharo 1.1?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-users] Alien for Squeak 4.1/Pharo 1.1?

Joachim Geidel

Am 09.06.10 08:06 schrieb Stéphane Ducasse:
> We would love to have a version of alien working for pharo on all platform.

IMO, this would make it necessary to move all extensions of system classes
(with the exception of the #asAlien conversion methods) to Alien-Prereqs,
and have different versions of this package for Pharo 1.0, Pharo 1.1, and
Squeak 4.1. Can this be done with Metacello, or is Metacello a Pharo-only
thing? I am a newbie here, I simply haven't had the time to look at
Metacello yet.

Also, the override of
SystemDictionary/SmalltalkImage>>recreateSpecialObjectsArray has to be
eliminated. I have seen that the current Squeak and Pharo images have a 50
element specialObjectsArray, Alien adds 5 more entries, and there is another
version in the pipeline for Squeak which adds one more for finalization
support. That leaves us with three different versions already. IMHO, it is
not acceptable to override that method. What's needed is a possibility to
extend the array using a well-defined API, intended for VM developers only,
of course.

>> In Squeak, this meant removing the Alien-Prereqs package and all
>> Parser/Scanner/MethodNode changes,
>
> what are these?

Ups, sorry for the confusion. There are changes of Parser and Scanner in
Alien-Prereqs, while Alien-Core contains methods for MethodNode, Compiler,
Decompiler, and CompiledMethod. Most of the latter only change the
printStrings of MethodNodes and CompiledMethods for primitives, and all of
them seem to be completely unnecessary in Squeak 4.1. One method in
MethodNode (MethodNode>>generate) overrides a different implementation both
in Squeak 4.1 and Pharo 1.1, and does not work in both of them. Most of the
overridden methods in Alien-Prereqs actually only changed the error messages
emitted when parsing method sources, others seem to be precursors of methods
which have been integrated into Squeak about two years ago.

>> as they are redundant or obsolete in
>> Squeak 4.1. I have a version of the Alien-Core Monticello package which
>> loads cleanly in Squeak 4.1, if anybody is interested. However, this package
>> does not load in Pharo 1.1 beta 11367 - some of the changes I removed still
>> seem to be needed there.
>
> can you point us to them?

Not yet. I didn't want to waste my time with an analysis before knowing if
someone else is working on this issue, and might already know what has to be
done.

Joachim Geidel



Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-users] Alien for Squeak 4.1/Pharo 1.1?

Stéphane Ducasse

On Jun 9, 2010, at 9:32 AM, Joachim Geidel wrote:

>
> Am 09.06.10 08:06 schrieb Stéphane Ducasse:
>> We would love to have a version of alien working for pharo on all platform.
>
> IMO, this would make it necessary to move all extensions of system classes
> (with the exception of the #asAlien conversion methods) to Alien-Prereqs,
> and have different versions of this package for Pharo 1.0, Pharo 1.1, and
> Squeak 4.1. Can this be done with Metacello, or is Metacello a Pharo-only
> thing? I am a newbie here, I simply haven't had the time to look at
> Metacello yet.
>
> Also, the override of
> SystemDictionary/SmalltalkImage>>recreateSpecialObjectsArray has to be
> eliminated. I have seen that the current Squeak and Pharo images have a 50
> element specialObjectsArray, Alien adds 5 more entries, and there is another
> version in the pipeline for Squeak which adds one more for finalization
> support.

after discussing with igor this point we decided to wait to see what was happening since
it made no sense to change this method all the time but to wait for a new VM.

> That leaves us with three different versions already. IMHO, it is
> not acceptable to override that method. What's needed is a possibility to
> extend the array using a well-defined API, intended for VM developers only,
> of course.

There is a better solution as discussed in the vm mailing-list.
Igor proposed a solution and now we are waiting.

>
>>> In Squeak, this meant removing the Alien-Prereqs package and all
>>> Parser/Scanner/MethodNode changes,
>>
>> what are these?
>
> Ups, sorry for the confusion. There are changes of Parser and Scanner in
> Alien-Prereqs, while Alien-Core contains methods for MethodNode, Compiler,
> Decompiler, and CompiledMethod. Most of the latter only change the
> printStrings of MethodNodes and CompiledMethods for primitives, and all of
> them seem to be completely unnecessary in Squeak 4.1. One method in
> MethodNode (MethodNode>>generate) overrides a different implementation both
> in Squeak 4.1 and Pharo 1.1, and does not work in both of them. Most of the
> overridden methods in Alien-Prereqs actually only changed the error messages
> emitted when parsing method sources, others seem to be precursors of methods
> which have been integrated into Squeak about two years ago.


cleaning the package would be a nice first step.

>
>>> as they are redundant or obsolete in
>>> Squeak 4.1. I have a version of the Alien-Core Monticello package which
>>> loads cleanly in Squeak 4.1, if anybody is interested. However, this package
>>> does not load in Pharo 1.1 beta 11367 - some of the changes I removed still
>>> seem to be needed there.
>>
>> can you point us to them?
>
> Not yet. I didn't want to waste my time with an analysis before knowing if
> someone else is working on this issue, and might already know what has to be
> done.
>
> Joachim Geidel
>
>
>
> _______________________________________________
> Pharo-users mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-users


Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-users] Alien for Squeak 4.1/Pharo 1.1?

Joachim Geidel
Am 09.06.10 11:35 schrieb Stéphane Ducasse:
>> Am 09.06.10 08:06 schrieb Stéphane Ducasse:
>>> We would love to have a version of alien working for pharo on all platform.
[snip]
>>>> as they are redundant or obsolete in
>>>> Squeak 4.1. I have a version of the Alien-Core Monticello package which
>>>> loads cleanly in Squeak 4.1, if anybody is interested. However, this
>>>> package
>>>> does not load in Pharo 1.1 beta 11367 - some of the changes I removed still
>>>> seem to be needed there.
>>>
>>> can you point us to them?

I had a look at Alien-Prereqs and Alien-Core. Actually, it seems that all
extensions to system classes except the conversion and utility methods can
be removed in all three platforms. The only exception is
Parser>>pragmaStatement. It is needed in Pharo 1.0, which contains an old
version of that method.

I have added a comment to Pharo issue #1360
(http://code.google.com/p/pharo/issues/detail?id=1360) with attached
Monticello versions of Pharo-Prereqs and Pharo-Core which are compatible
with Pharo 1.0, 1.1, and Squeak 4.1. Pharo-Prereqs is only needed in Pharo
1.0. The Alien tests were green on all three platforms.

I have accidentally published Alien-Core to SqueakSource, but have asked
John McIntosh to delete the version. I think that my changes should be
reviewed by someone with better knowledge of Alien and who knows how to
update the ConfigurationOfAlien, before they are released publicly. Sorry
for the inconvinience, I will be more careful next time.

Best regards,
Joachim Geidel