Duby dynamic dispatch has landed!

Attila Szegedi szegedia at gmail.com
Thu Mar 25 10:56:16 PDT 2010


On 2010.03.25., at 18:33, Charles Oliver Nutter wrote:

> 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?)

I did give tips for usage in DynamicLinker javadoc; the simplest you can get is:

public class MyLanguageRuntime {
    private static final DynamicLinker dynamicLinker = new DynamicLinkerFactory().createLinker();
    
    public static CallSite bootstrap(Object caller, String name, MethodType type) {
        RelinkableCallSite callSite = new MonomorphicCallSite(caller, name, type);
        dynamicLinker.link(callSite);
        return callSite;
    }
}

and then every class just does:

public class MyClass {
    static {
        Linkage.registerBootstrapMethod(MyLanguageRuntime.class, "bootstrap");
    }
    ...
}

> P.S. Switch to git :)

I will; I certainly have the intent. I do have an account on github, I created it to fork Syrinx last year to integrate it with MOP :-) I'm still learning it (Git, that is). As I lamented elsewhere: first I encountered CVS[*]. By the time I mastered CVS, Subversion comes along. By the time I decently learned Subversion, I need Mercurial (for MLVM). By the time I grasp enough Mercurial to check out OpenJDK and apply MLVM patches, cool kids go Git. It's hard keeping up with the version control system fashion... :-)

What (if any) IDE integration do you use with Git?

Attila.

[*] Actually, first was SourceSafe, but I prefer to forget mentioning that.

> 
> - Charlie


More information about the mlvm-dev mailing list