Fwd: [V3dot9] Fwd: FFI

Stéphane Ducasse stephane.ducasse at univ-savoie.fr
Thu Aug 10 15:50:24 UTC 2006


why FFI will be in 3.9.
I think that the email is self-explanatory.

Stef
PS: lukas has some good idea how to make FFI and other compiler  
extensions modular, but we should have interest in that.

Begin forwarded message:

> From: Marcus Denker <denker at iam.unibe.ch>
> Date: 10 août 2006 12:54:58 HAEC
> To: "3.9 Squeak" <v3dot9 at lists.squeakfoundation.org>
> Subject: [V3dot9] Fwd: FFI
>
>
>
> Begin forwarded message:
>
>> From: Marcus Denker <denker at iam.unibe.ch>
>> Date: 10. August 2006 12:46:11 GMT+02:00
>> To: Stephane Ducasse <ducasse at iam.unibe.ch>
>> Subject: FFI
>>
>> Hi,
>>
>> I am allways saying that we should not just do everything in the  
>> last second.
>> I am very much for having this as a strict rule, covering FFI,  
>> too. There was
>> time to do it, and we didn't. That's life, there is a version  
>> after 3.9 to do it.
>>
>> Unloading FFI is not as simple as people think it is:
>> There is a method "discardFFI", this contains the knowledge to  
>> unload it:
>>
>> self
>> 		at: #ExternalStructure
>> 		ifPresent: [:cls | (ChangeSet superclassOrder: cls  
>> withAllSubclasses asArray)
>> 				reverseDo: [:c | c removeFromSystem]].
>> 	SystemOrganization removeCategoriesMatching: 'FFI-*'.
>> 	self recreateSpecialObjectsArray.
>>
>> We have hidden references to FFI left over in
>>
>>  -> SpecialObjectArray
>>  -> Compiler
>>  -> the unload method itself.
>>
>> all of them are hacked to use the "Smalltalk at:  
>> #ExternalStructure" hack to not
>> leave references the system knows about, but of course, it leaved  
>> references
>> nevertheless of the kind that is un-tracable, not documented, and  
>> easily overlooked.
>>
>> What happens when we load FFI? Does is call the specialObject  
>> registration?
>> If we then clean up the image further, do we just delete the  
>> discardFFI method
>> and loose the ability to unload FFI? Will we "clean" the compiler  
>> and the specialObject
>> array at some point by accident?
>>
>> Where are those dependencies documented?
>>
>> I can do it now in the hackish way (leaving the non-tracable bits  
>> of FFI), but I wasted another
>> hour(!) for this!!!
>>
>> I want to stop. I don't care anymore. I want to finish.
>>
>>      Marcus
>>
>
> _______________________________________________
> V3dot9 mailing list
> V3dot9 at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/mailman/listinfo/v3dot9




More information about the Squeak-dev mailing list