[Pharo-project] Alien FFI
There is now a squeaksource project for Alien - the new FFI. See http://www.squeaksource.com/Alien.html -- Sensationsangebot nur bis 30.11: GMX FreeDSL - Telefonanschluss + DSL für nur 16,37 Euro/mtl.!* http://dsl.gmx.de/?ac=OM.AD.PD003K11308T4569a
Yes, and just to let everyone know I've not quite yet finished uploading all the parts yet. Sunday or Monday I hope to complete the upload. Likely there will be three stages (a) Uploading all the pieces to squeaksource and building a macintosh VM & plugin to support Alien. At the moment I do have a VM and plugin that works, excluding the obj-c 2.0 proxy forwarding logic, so it's a matter of moving this work into MC and ensuring others can load, build a plugin and make Alien calls. After this I have the: (b) Integration of the work done to alter the VM to return return codes from primitive calls, versus a sucess/fail flag. That will take longer. and finally the: (c) Integration of the closure compiler/VM for a 4.0.0 macintosh carbon VM with features (a) and (b) On 22-Nov-08, at 5:11 PM, Torsten Bergmann wrote:
There is now a squeaksource project for Alien - the new FFI. See http://www.squeaksource.com/Alien.html
-- Sensationsangebot nur bis 30.11: GMX FreeDSL - Telefonanschluss + DSL für nur 16,37 Euro/mtl.!* http://dsl.gmx.de/? ac=OM.AD.PD003K11308T4569a
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- = = = ======================================================================== John M. McIntosh <johnmci@smalltalkconsulting.com> Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com = = = ========================================================================
the future looks shining :) Stef On Nov 23, 2008, at 8:24 AM, John M McIntosh wrote:
Yes, and just to let everyone know I've not quite yet finished uploading all the parts yet. Sunday or Monday I hope to complete the upload.
Likely there will be three stages
(a) Uploading all the pieces to squeaksource and building a macintosh VM & plugin to support Alien. At the moment I do have a VM and plugin that works, excluding the obj-c 2.0 proxy forwarding logic, so it's a matter of moving this work into MC and ensuring others can load, build a plugin and make Alien calls.
After this I have the:
(b) Integration of the work done to alter the VM to return return codes from primitive calls, versus a sucess/fail flag. That will take longer.
and finally the:
(c) Integration of the closure compiler/VM for a 4.0.0 macintosh carbon VM with features (a) and (b)
On 22-Nov-08, at 5:11 PM, Torsten Bergmann wrote:
There is now a squeaksource project for Alien - the new FFI. See http://www.squeaksource.com/Alien.html
-- Sensationsangebot nur bis 30.11: GMX FreeDSL - Telefonanschluss + DSL für nur 16,37 Euro/mtl.!* http://dsl.gmx.de/?ac=OM.AD.PD003K11308T4569a
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- = = = = = ====================================================================== John M. McIntosh <johnmci@smalltalkconsulting.com> Corporate Smalltalk Consulting Ltd. http:// www.smalltalkconsulting.com = = = = = ======================================================================
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Ok, after much mindless poking, cross checking and testing, retesting, writing sunits today I can say the Alien FFI logic is mostly ported into Pharo. In the http://www.squeaksource.com/Alien.html MC library I would suggest someone with an eye towards "Compiler, CompileMethod, ParseNode" carefully look at the changes in "Alien-Core" to ensure I've not trashed some important part of the Pharo Compiler or Traits. I can't say if the changes are destructive or passive? you will find: For VMMaker folks Alien-VMMaker-Support which provides the changes to the latest VMMaker from squeaksource to build a Alien aware VM. Alien-VMMaker-Plugins which is the plugin logic For users of Alien Alien-Core-First - Load this first otherwise you'll get a parsing error later Alien-Core - Load this next, Compiler changes etc.. Alien-LibC - LibC support for os-x/unix/windows Alien-CoreTest - SUnits Optional stuff then is Alien-MacOSX-Core - Objective-C interface Alien-MacOSX-AppKit- Objective-C application api Alien-MacOSX-Examples- Objective-C examples Alien-Win32 - Windows examples. Lastly load Alien-Last-Class-Initialize - To ensure all the initializers were run, just in case MC loses it's mind... Oh and you need a plugin and a VM. It's midnight again and I don't have one compiled up for distribution, Monday's chore... Anyway you should be able to load the source code, point/learn about how it's used. Someone will have to build a Unix one, and a Windows one. For the moment there is NO powerpc version since that requires a bit of icky assembler. Same for the iPhone btw (icky ARM assembler). On 23-Nov-08, at 4:20 AM, Stéphane Ducasse wrote:
the future looks shining :)
Stef
-- = = = ======================================================================== John M. McIntosh <johnmci@smalltalkconsulting.com> Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com = = = ========================================================================
Great news! On Nov 24, 2008, at 09:13 , John M McIntosh wrote:
[...]
Lastly load
Alien-Last-Class-Initialize - To ensure all the initializers were run, just in case MC loses it's mind...
A small glitch: if the mac packages are not loaded, AlienMCPostInitialize class >> #initialize does not work because Smalltalk at: #ObjectiveCAlien complains about "key not found". Following should work for this case (and it does not require a temp): ((Smalltalk at: #ObjectiveCAlien ifAbsent: [ nil ]) ifNotNilDo: #initialize ... Cheers, Adrian
how about Smalltalk at: #ObjectiveCAlien ifPresent: [ :c | c initialize ] Keith
Of course. Or even simpler Smalltalk at: #ObjectiveCAlien ifPresent: #initialize Adrian On Nov 24, 2008, at 10:42 , Keith Hodges wrote:
how about
Smalltalk at: #ObjectiveCAlien ifPresent: [ :c | c initialize ]
Keith
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
participants (5)
-
Adrian Lienhard -
John M McIntosh -
Keith Hodges -
Stéphane Ducasse -
Torsten Bergmann