On 12 April 2010 17:43, Fernando olivero <olive...@lu.unisi.ch> wrote:
> Good idea! I had a similar idea when initially worked on Alien loader.
>
> I think that what is needed also is remove the dependency with the array, i 
> mean explicitly calling the indexes make the image crash if you didn't had 
> the  assumed special object array size.
>
>
> For example:
>        Smalltalk registerSpecialObject: myObject with: aName
>
>        And later you reference that special object by aName instead of an 
> index to the array.
>
>
> So it would be easier to load/unload the packages that extend the special 
> objects array, because there would be no explicit dependency to indexes.
>
Yeah, that would be nice.
But this will require VM changes.. and therefore is doomed :)
Also, this could impact the VM speed significantly, because its using
special object quite frequently.
Imagine replacing a simple index-based lookup with name(string) based.

>
> Fernando
>
> On Apr 12, 2010, at 4:17 PM, Igor Stasenko wrote:
>
>> Hello,
>>
>> i attempted to load Alien-Core package into trunk image, and it failed.
>>
>> One of the problem is override of recreateSpecialObjectsArray method..
>>
>> I wonder, maybe we should design a nicer API for extending/reserving
>> slots in special objects array,
>> so it won't require overriding this method by every package which
>> needs to extend special objects, like FFI or Alien.
>>
>> Another aspect of replacing this method is , that it makes problematic
>> to unload such package, in case one wants to unload it.
>>
>> So, my proposal is to add a simple API to SmalltalkImage class, and in
>> order to install additional special objects one should do like:
>>
>> MyClass class>>initialize
>>
>> Smalltalk registerSpecialObject: myObject at: 55.
>> Smalltalk registerSpecialObject: myObject at: 56.
>> ...
>>
>> or:
>>
>> Smalltalk registerSpecialObjects: #( x y z) startingAt: 56.
>>
>> upon package unload, a reverse scheme should be supported:
>>
>>
>> MyClass class>>unload
>>
>> Smalltalk unregisterSpecialObjectAt: 55.
>> Smalltalk unregisterSpecialObjectAt: 56.
>> ...
>>
>> or:
>>
>> Smalltalk unregisterSpecialObjects: 3 startingAt: 56.
>>
>>
>> what you think?
>>
>> --
>> Best regards,
>> Igor Stasenko AKA sig.
>>
>> _______________________________________________
>> Pharo-project mailing list
>> Pharo-project@lists.gforge.inria.fr
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project@lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>



-- 
Best regards,
Igor Stasenko AKA sig.

_______________________________________________
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to