On 29.09.2010 20:11, Nicolas Cellier wrote:
2010/9/29 Marcus Denker<marcus.denker@inria.fr>:
On Sep 29, 2010, at 6:49 PM, Nicolas Cellier wrote:
2010/9/29 Henrik Johansen<henrik.s.johansen@veloxit.no>:
Uhm, this method (and many others in the extensions-category) have been present in their expected-by-Alien form in Pharo since at least 1.0
Probably a better idea to separate the Alien-"Core" into two packages, one which is actually needed, and one which you only need to load in really old Squeak/Cuis images in order to have it work. In which case you probably won't have method trailers either, and generate: #(0 0 0 0) is the proper extension.
CompiledMethodTrailers default or mysterious #(0 0 0 0) codes both are mostly unnecessary. If I want default behaviour, why should I bother to tell what this default is exactly ? Let just call #generate, and obfuscate those details. Squeak Pharo Cuis will handle these better than us (didn't verify Cuis, but quite sure Squeak/Pharo already implement generate).
I added #generate in 3.9 and refactored everything to use it. But the closure code un-did a lot of these as it was coming from an older version (3.7 or 3.8 was the basis of Croquet, I think).
Marcus
Thank you Marcus, A bit like http://en.wikipedia.org/wiki/Sisyphus, let just redo.
Nicolas Yeah, my point was that Pharo 1.0, Pharo 1.1, Squeak 4.1, and Squeak 4.2 all contain proper versions of MethodNode>>generate. If it existed in 3.9 as well, it would probably only be needed in the scenario that you want to use Alien in 3.8 or earlier. Thus the override should be moved to an optional 3.8 package, or simply removed, as few VMs that will run 3.8 actually contains/support the Alien plugin. (it required specific changes to the core VM iirc)
Simply updating the override of the method as included in Alien-Core, to reflect the method trailer changes done between Squeak 4.0 and 4.1, and Pharo 1.0 and 1.1, as Fernando did, would definetely be the wrong solution, at least in my eyes. Cheers, Henry