Exupery and slang/plugin

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Exupery and slang/plugin

Nicolas Cellier-3

Looking at http://bugs.squeak.org/view.php?id=5331, it appears that
problem lie in a primitive plugin.

Obviously, this is a lot harder to maintain than smalltalk code.
I need at least:
- to load VMMaker
- to know a bit of Slang
- to know how to use VMMaker (from within Smalltalk)
- to know how to compile C code produced
Much more than a one hour squeak distraction...

And for maintainers, to compile the plugins on each and every machine,
update the sites etc... More boring than just uploading an image.

Is it a dream that Exupery could magically do exactly the same job?
(with a productivity increased x100)

The idea for such a primitive not requiring external call, is that
Exupery could be specially optimized to generate native binary code
(instead of C code) based on same slang hints. Possible ?

Just my 0.02€...

Nicolas


Reply | Threaded
Open this post in threaded view
|

Exupery and slang/plugin

Bryce Kampjes
nicolas cellier writes:
 > Is it a dream that Exupery could magically do exactly the same job?
 > (with a productivity increased x100)

It is a dream now but one that could become real. The long term goal
for Exupery has always been to provide near C speeds for normal
Smalltalk. To be that fast will require much more than will be in the
1.0 release.

The major cost left in Exupery's code is likely to be range checking
during array accesses. With a decent optimizer most range checking
should be able to be removed without compromising safety.

 > The idea for such a primitive not requiring external call, is that
 > Exupery could be specially optimized to generate native binary code
 > (instead of C code) based on same slang hints. Possible ?

It would be possible to add a pragma that stopped Exupery from
generating range checks. That might be competitive with Slang. Well
after implementing the #at: and #at:put: primitives in Exupery for the
classes used. However, the better, but larger solution is to write a
decent optimizer to allow fast safe code without any pragmas.

Exupery compiles Smalltalk, not C with Smalltalk syntax. The ideal
solution is to make Exupery fast enough that those primitives are
removed. That is my goal.

Bryce