On Sun, Jun 6, 2010 at 1:02 AM, John Cowan <[email protected]> wrote:
> On Sat, Jun 5, 2010 at 12:27 PM, Charles Oliver Nutter
> <[email protected]> wrote:
>
>> I also see something else I find interesting: EObject apparently
>> implements dec() and is_ge()...I'm guessing you have implemented a
>> full set of numeric operators on EObject so that when they're
>> explicitly provided by a subtype it can be no more than an interface
>> or abstract dispatch? We've thought of doing the same for JRuby, but
>> were unsure whether it would be too cumbersome. The essential idea
>> would be that the default implementations would proceed to doing a
>> dynamic dispatch while the overridden versions would provide the
>> implementation in-place, perhaps with a guard in case someone
>> monkey-patched them. It would reduce most math operators against core
>> types to static calls (+ a two-field object comparison for the guard)
>> and greatly improve their inlinability.
>
> That's what Jcon does.  There are about 150 methods defined on the
> root class vDescriptor, most of which do nothing or throw errors.
> Jcon is a very interesting early JVM implementation of the Icon
> language, which is dynamically typed and has non-LIFO flow control; it
> was written back in 1999, and doesn't provide (AFAIK) any escape to
> Java: the JVM is treated as a pure implementation target.

ABCL adopts a similar approach, too. It has a root class, LispObject,
with many methods which in their default implementation signal a type
error.
ABCL is a Common Lisp implementation for the JVM.

-- Alessio

-- 
You received this message because you are subscribed to the Google Groups "JVM 
Languages" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/jvm-languages?hl=en.

Reply via email to