On Thu, Mar 25, 2010 at 1:14 PM, John Rose <john.r...@sun.com> wrote:
>> MethodHandleImpl.java:1104:in `raiseException':
>> java.lang.ClassCastException: required class [Ljava.lang.Object; but
>> encountered class java.util.Collections$UnmodifiableRandomAccessList
>>       from MethodHandle.java:357:in `invokeVarargs'
>>       from MethodHandles.java:563:in `invoke'
>>       from DynamicLinkerImpl.java:120:in `_relinkAndInvoke'
>>       from FilterGeneric.java:520:in `invoke_C0'
>>       from dynamic.duby:3:in `foo'
>> ...
>
> Do you know who is creating the UnmodifiableRandomAccessList?
>
> It looks like it needs a toArray call to create the low-level varargs list.

I don't think it does. The URAL comes from Duby's literal array syntax
(the [1,2,3] in the example) and for the error in question it's simply
the receiver of the call (getClass or size).

>> If you want to give it a shot you just need a JRuby snapshot build
>> (ci.jruby.org/snapshots), BiteScript (github.com/headius/bitescript),
>> and Duby (github.com/headius.duby). I committed my patched
>> dynalang-invoke jar in Duby's javalib dir. javac
>> src/org/jruby/duby/DynalangBootstrap.java and run jruby bin/duby <file
>> or -e> with appropriate JAVA_OPTS for invokedynamic.
>
> I did some browsing and downloading, but there are too many moving parts to 
> quickly figure out... Sorry!

We'll have a release of Duby soon...then it will simply be:

1. install JRuby somehow (unpack, run installer, whatever)
2. gem install duby
3. duby <blah>

I'll let this list know when it's available that way.

>> Speaking of that...I was surprised there's no baseline bootstrap
>> method built into dynalang/invoke. It was a trivial amount of code to
>> write, but I can imagine a lot of simple uses of dynalang/invoke will
>> just want to use the standard multimethod Java dispatch directly. If I
>> put together a patch to include my DynalangBootstrap.java, will you
>> accept it? (or maybe I have commit rights and I don't know it?)
>
> No, sorry, you don't at present, but you should have one.  However, to my 
> surprise, you are not on this list, which is the first place your name needs 
> to appear for such things:
>  https://sca.dev.java.net/CA_signatories.htm
>
> Send me link to DynalangBootstrap.java.  I browsed a couple obvious places 
> under github.com/headius/duby but didn't see it.  (And there's no download 
> page??)

Actually I think this could just go into Attila's project, unless the
baseline dynalang Java MOP stuff could get included in JSR-292 (which
would be awesome, but I know that's a huge addition and it's too
late). I just figured that people interested in "plain old Java
dynamic dispatch" would want to just specify an existing bootstrap
method in Attila's library that only does Java multi-method dispatch.

In my ideal world, JSR-292 would ship with a default bootstrapper that
just does Java dispatch (with appropriate conversions for JLS dispatch
and maybe a minimal PIC) so that adding a "dynamic" type to Java
itself would basically be a done deal. Then Attila's MOP stuff would
just fall back on that dispatcher after trying language-specific ones.

- Charlie
_______________________________________________
mlvm-dev mailing list
mlvm-dev@openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev

Reply via email to