On Tuesday, 26 August 2014 at 06:44:52 UTC, Jacob Carlborg wrote:
On 25/08/14 22:34, "Marc Schütz" <[email protected]>" wrote:
Take Ruby as an example: Ruby is a scripting language that
cannot be
compiled to native code (though it can be JITted).
Both MacRuby [1] and RubyMotion [2] supports ahead of time
compilation. I'm pretty sure Apple doesn't allow anything else
than compiled languages on iOS. Except for HTML and JavaScript.
[1] http://macruby.org/
[2] http://www.rubymotion.com/
I've heard about them, but I don't know any details. Anyway, the
way Ruby works, they either need to restrict the language,
include a full interpreter/jitter, or at most they could only
translate it to a very abstract level. Like for an expression
like `a + b` generating a call to a helper function like
`send(_var_a, SYMBOL(":+"), _var_b);`, and hoping that the
compiler backend can eliminate this in some cases.
But this doesn't really change my point: it's just another two
ABIs, and their probably not meant to be public interfaces, to
let the implementers keep some freedom for future developments.