igor

I'm confused.
Do you want to write C code in our smalltalk editor? (as in Smalltalk/X)
Where the native code is coming?
Who compiles it?
Can I edit it?

Do you have a scenario in mind to help understanding what is your vision behind 
your suggestion?
Stef

On Apr 5, 2010, at 10:13 AM, Igor Stasenko wrote:

> Hello again,
> 
> it is about running a native code , stored in compiled methods.
> 
> All we need is:
> 
> a) allow code execution for object memory. On most platforms this is
> trivial - just pass additional flags to virtual memory allocation
> functions.
> b) add a single primitive 'call a native code'
> c) use a special compiled method trailer, which will store the native
> code inside itself
> 
> Then we could place any native code inside a compiled method and use a
> single primitive to run this code.
> This is quite simple thing, given that both pharo and squeak adopted
> method trailers, so
> a primitive, before running the code, needs few checks:
> - a method's trailer format is valid (we could reserve a terminal
> byte value for that)
> - a native code, placed inside a method trailer is targeted for same
> platform as currently running on
> 
> if not, then primitive will simply fail, and interpreter will run the
> method's bytecode, which , depending on a situation, can check if it
> can recompile the code
> (if platform doesn't match) or use a workaround.
> The only limitation of such approach, that native code, placed in
> compiled method should be relocate-agnostic, i.e.
> never use absolute jumps, only relative ones and so on.
> 
> Also, we could force, that code using a specific calling convention,
> so it will be easy to fetch values from stack and other useful stuff
> from interpreter/object memory (like passing an interpreterProxy
> pointer).
> This could be a good answer in generating a trampoline code for
> FFI/Alien on the fly.
> 
> What you think?
> 
> -- 
> Best regards,
> Igor Stasenko AKA sig.
> 


_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to