I'm still here too! Probably making a big performance push with JRuby
soon that will obviously involve lots of indy and method handles.
On Tue, Aug 22, 2023 at 3:14 PM Theodore Neward wrote:
>
> Well, I’m still here. :-) Dunno if I am who you’re looking for, though, since
> I probably have more
Hey smart folks, I have a conundrum and Google is failing me.
As you may know, we have been maintaining the Java Native Runtime libraries
for providing FFI from Java pre-Panama. These libraries handle loading and
binding C functions to Java endpoints automagically.
Unfortunately, jffi -- the
On Wed, Jul 20, 2016 at 12:41 PM, Remi Forax wrote:
> yes, the rewriting part is easy, the question is more how to find the call
> you
> want to rewrite and how to find the bootstrap method and the bootstrap
> arguments associated with that call.
>
At the moment I am using my
On Mon, Feb 1, 2016 at 11:55 PM, Alexander Bertram
wrote:
> You can basically tell the compiler to map a C struct to a given java class,
> for example, mapping CRuby's VALUE to org.jruby.RubyBasicObject and import
>
> GimpleCompiler compiler = new GimpleCompiler();
>
Yay! I will have to look into this. We have an interest in compiling Ruby C
extensions to Java and providing a JVM-level implementation of Ruby's C API.
- Charlie (mobile)
On Feb 1, 2016 1:09 PM, "Alexander Bertram" wrote:
> Hi all,
>
> I've finally gotten around to
Excellent! I endorse! This will allow Mirah to support dynamic
dispatch while still not shipping any runtime.
I will jump in on the core-libs conversation after we've got our
JavaOne talk ready :-)
- Charlie
On Thu, Oct 22, 2015 at 11:24 AM, Attila Szegedi wrote:
> Hi
john.r.r...@oracle.com, Daniel Heidinga
daniel_heidi...@ca.ibm.com, Remi Forax fo...@univ-mlv.fr, Attila
Szegedi attila.szeg...@oracle.com, Vyacheslav Egorov m...@mrale.ph,
Mattias Karlsson mattias.g.karls...@gmail.com, Fredrik Öhrström
oehrstr...@gmail.com, Charles Oliver Nutter head...@headius.com
Definitely appropriate! Please repost!
- Charlie (mobile)
On Dec 27, 2013 3:43 AM, James Mitchell jimd...@jimdesu.com wrote:
Hi there,
I sent a question on MethodHandle use to the regular Sun/Oracle java forum
and didn't get any responses, and I'm wondering: is this forum appropriate
to
-- Forwarded message --
From: Martijn Verburg martijnverb...@gmail.com
Date: Oct 2, 2013 7:38 AM
Subject: JVM Language Summit (Europe)?
To: Da Vinci Machine Project mlvm-...@openjdk.java.net
Cc:
Hi all,
Hope this is the right mailing list to post on, apologies for the slight OT
I've set up a google group to discuss adding FFI to the JVM.
On the JRuby project, we've been working to improve our integration of
native libraries for years. At JVMLS 2013, I presented on the Java
Native Runtime (JNR) project, created by Wayne Meissner. We've been
using JNR for years to support
On Tue, Feb 19, 2013 at 7:35 AM, Kevin Wright kev.lee.wri...@gmail.com wrote:
On 19 February 2013 15:24, Remi Forax fo...@univ-mlv.fr wrote:
I heard somewhere that God starts to use Clojure or the opposite.
Ostensibly, yes… http://xkcd.com/224/
You know, I debated moderating this post, but I
, 3:18 am, Charles Oliver Nutter head...@headius.com wrote:
A simple way to do what you want might be sketched out like this:
* The bootstrap method returns a CallSite + handle for your
multi-dispatch logic contained in another method.
* The multi-dispatch logic receives the actual arguments
Today I have a new conundrum for you all: I need stack trace
generation on Hotspot to be considerably faster than it is now.
In order to simulate many Ruby features, JRuby (over)uses Java stack
traces. We recently (JRuby 1.6, about a year ago) moved to using the
Java stack trace as the source of
On Saturday, July 7, 2012, Alex Cruise wrote:
Forgive me if this is a naive question, but as regards the
caller/current-method question, since you have the complete AST in front of
you, why not just synthesize extra arguments to any method that happens to
use the caller or __method__ magic?
I thought this might be interesting to some folks on these lists, and
I am also interested in input on ways to improve this talk. I think it
will make a good intro to invokedynamic talk for other confs, so
I'll probably do it again.
I'm also *finally* going to do an epic blog post summarizing all
I'm filling out the remaining slides in my JAX keynote on
InvokeDynamic, and I'm interested in additional clever uses of
invokedynamic folks have discovered.
I have included the following, which we make use of in JRuby:
* Dynamic invocation (obviously)
* Lazy constants
* Multiple dispatch
I'll
On Thu, Apr 12, 2012 at 12:29 PM, Jochen Theodorou blackd...@gmx.org wrote:
I was thinking about making an invokedynamic workshop in which you show the
API, how to use it and several examples, pitfalls and maybe some tricks in a
hands-on fashion. But because I never did one before I was
Isn't that what he said?
On Thu, Apr 12, 2012 at 1:08 PM, Matt Fowles matt.fow...@gmail.com wrote:
Jochen~
I would suggest doing it as one of the more focused workshops instead of as
a general talk for the whole assembly.
Matt
On Thu, Apr 12, 2012 at 2:00 PM, Charles Oliver Nutter head
InvokeBinder is a small Java DSL for binding method handles *forward*
rather than *backward* from target endpoint.
https://github.com/headius/invokebinder/
I've finished mapping MethodHandles.* and Lookup.* to its API, and
have also added a couple convenience utilities like tryFinally and nop
I discovered a possible gap in the MethodHandles API.
Say I want to create an exception handler that does nothing but ignore
the exception. The target handle is a method that looks like this:
void foo(String)
I have my target handle pointing at foo.
I want to catch all Throwable and ignore
/invokebinder
- Charlie
On Tue, Jan 24, 2012 at 1:07 AM, Noctarius m...@noctarius.com wrote:
Hi Charly,
why not use Void and return null what behaves like using void as
the return type.
Cheers
Chris
Am 24.01.2012 08:01, schrieb Charles Oliver Nutter:
I discovered a possible gap
loaded.
Regards,
Kirk
On Dec 17, 2011, at 10:34 PM, Charles Oliver Nutter wrote:
CounterDecay is new to me...am I reading the code right when I get
that it basically decays compiled code over time, eventually forcing a
reprofile and recompile of steady-state code?
I know there's a SmallTalk
I have a mode in JRuby where I am doing essentially the same thing,
eliminating accesses to essentially final values that are
initialized lazily but never updated again. I don't have it on by
default because the additional indy+MH does tips many methods over the
inlining budget, making them slower
On Sat, Dec 17, 2011 at 1:10 PM, Rémi Forax fo...@univ-mlv.fr wrote:
So there is a bug in the way the inlining budget is computed.
The pattern doesn't use any side methods is the fast path,
only method handle adapters so it should not entail the
inlining budget at all.
I've only tested on
, Charles Oliver Nutter wrote:
On Sat, Dec 17, 2011 at 1:10 PM, Rémi Forax fo...@univ-mlv.fr wrote:
So there is a bug in the way the inlining budget is computed.
The pattern doesn't use any side methods is the fast path,
only method handle adapters so it should not entail the
inlining budget at all
I especially like the unreadable performance graph and inferred
numbers due to their stability gap.
- Charlie
On Fri, Dec 9, 2011 at 3:20 PM, Rémi Forax fo...@univ-mlv.fr wrote:
PHP will have a VM after all.
On Wed, Nov 30, 2011 at 7:26 AM, Rémi Forax fo...@univ-mlv.fr wrote:
This is something that currently doesn't work well with invokedynamic,
we need a way to ask the VM to use a different profile for a method handle
used
at different callsite.
The only way to get that currently is to generate
On Mon, Nov 28, 2011 at 10:20 AM, Jochen Theodorou blackd...@gmx.org wrote:
if the guards produce stackframes visible to Class.forName, then putting the
bootstrap method on each class, won't do it...I guess it won't do it anyway,
since I need the first time to invoke the method handle myself
On Tue, Nov 29, 2011 at 12:59 PM, Jochen Theodorou blackd...@gmx.org wrote:
I should add, that the problems I have now are still very basic ones... more
about how to use the API correctly. I have for example to replace an
argument with a new value, but no real idea how to do that.
I
On Tue, Nov 29, 2011 at 6:39 AM, Jochen Theodorou blackd...@gmx.org wrote:
Am 28.11.2011 17:38, schrieb Julien Ponge:
Is it very different from the call sites in JRuby? They have a solid
invokedynamic implementation to look at already. Might inspire you in
a few places :-)
Is it different?
I posted this to the MLVM list, but I thought it would be interesting
here. I'm happy to answer any questions about JRuby's uses of
invokedynamic.
Hello friends!
Just updating you on the status of JRuby + invokedynamic, for those of
you following along.
About halfway through this month I did
I knew it wouldn't take long :) Over the weekend perhaps?
Awesome work Remi...maybe more people will start to realize what power we
have in invokedynamic.
- Charlie (mobile)
On Oct 17, 2011 3:43 PM, Rémi Forax fo...@univ-mlv.fr wrote:
I'm please to announce that Dart (a small subset in fact)
On Sun, Jun 12, 2011 at 4:57 AM, Kirk kirk.pepperd...@gmail.com wrote:
On Jun 11, 2011, at 2:26 AM, Charles Oliver Nutter wrote:
I think I have it, and maybe I am wrong after all!
What!!! Last time I stick my neck out for you!!! ;-)
Yeah, it turns out I'm not perfect after all...disappointing
as i can.
- Charlie (mobile)
On Jun 11, 2011, at 5:18, Rémi Forax fo...@univ-mlv.fr wrote:
On 06/11/2011 02:18 AM, Charles Oliver Nutter wrote:
John Rose to the rescue... by reversing the order of foldArguments,
you can post-process the arguments *and* return value of the target.
See
Looks great! Jeroen will be there for iKVM, that's so cool. Maybe we
can get him to add invokedynamic using DLR? :D
On Fri, Jun 10, 2011 at 4:23 AM, Rémi Forax fo...@univ-mlv.fr wrote:
The agenda of the JVM Summit has been published.
On Fri, Jun 10, 2011 at 10:01 AM, Neal Gafter n...@gafter.com wrote:
Charles-
This makes a lot of sense. My concern is that such a change may break an
unknown number of other, different examples.
Rather than trying to construct an overload resolution algorithm that makes
this example work
I have a case in JRuby where I need to return one of the incoming
arguments as the result of the call, and I can't figure out how to do
it with MethodHandle alone.
Basically, any Ruby code that looks like this:
a.foo = 'bar'
...or this:
a[1] = 'bar'
...needs to return the RHS, not the result
On Fri, Jun 10, 2011 at 6:36 PM, Charles Oliver Nutter
head...@headius.com wrote:
I can handle the exceptional case with MethodHandles.catchException
ok. There's no return value because an exception was thrown, so I just
do the post logic and propagate the exception. But I can't handle the
non
On Fri, Jun 10, 2011 at 7:04 PM, Charles Oliver Nutter
head...@headius.com wrote:
Brainstorming ways this could be fixed in JSR-292, if it's not already
impossible to do so.
1. A new MethodHandles API postProcess, that receives all incoming
arguments, invokes the handle, and runs a post
On Fri, Jun 10, 2011 at 7:11 PM, Charles Oliver Nutter
head...@headius.com wrote:
Ok, John Rose pointed out on MLVM list that a finally that does not
return would be the same as foldArguments, by flipping the order:
int foo(Object arg1) {
... return some int
}
int postCall(int retVal
On Fri, Jun 10, 2011 at 7:36 PM, John Rose john.r.r...@oracle.com wrote:
Yes. Put the postCall wrapper *outside* the postException wrapper. That
way the postCall guy won't participate in the special exception processing.
If postException catches and discards the exception, then it will
Recent OpenJDK 7 builds seem to have introduced a bug into javac.
Correct me if I'm wrong.
https://gist.github.com/1016436
public class Foo {
public static void main(String[] args) {
method(str);
method(str, 1);
method(str, 1, data);
}
public static void
On Thu, Jun 9, 2011 at 1:11 PM, Attila Szegedi szege...@gmail.com wrote:
The question however is whether these solutions we perceive as intuitive
can indeed be formally valid under some set of consistent rules, without
running into a contradiction.
In answer to you and Neal, it seems there's
On Thu, Jun 9, 2011 at 5:12 PM, Rémi Forax fo...@univ-mlv.fr wrote:
You can, just consider int and Integer has the same node:
int = Integer int = Integer because int == Integer
In addition, I don't see how Integer would ever need to be considered
more specific than int, for an int input. In
On Sat, May 28, 2011 at 7:10 AM, Alex Turner
nerdscent...@googlemail.com wrote:
All,
Hi! This is my first post here. I am Alex Turner, currently technical
team lead for the JVM compiler ground at Micro Focus. I have a great
interest in invokedynamic and its performance. I created a
On Tue, May 17, 2011 at 9:39 AM, James Iry james...@gmail.com wrote:
I think all the compiled JVM languages currently create a new jvm class for
each lambda expression (by which I also include the eta expansion typically
used to turn a regular function into an function value) and allocate an
On Tue, May 17, 2011 at 10:02 AM, John Cowan johnwco...@gmail.com wrote:
FWIU, the optimal approach if you are batch-compiling is to stuff N
functions into a single class as static methods using this sort of
framework:
public class FooBarBaz {
private int _function;
private
On Tue, May 17, 2011 at 1:35 PM, John Cowan johnwco...@gmail.com wrote:
Does this mean that there are Foo, Bar, and Baz classes, each
providing a non-static apply method that calls the appropriate static
method in FooBarBaz? I don't see why that's better than just having
one class per
On Tue, Apr 19, 2011 at 6:07 PM, Rémi Forax fo...@univ-mlv.fr wrote:
And as far as I know the ARM JIT doesn't inline method,
so it's a pretty basic JIT.
I was under the impression that it's a tracing jit, so there should be
some level of cross-call optimization happening.
- Charlie
--
You
On Tue, Apr 19, 2011 at 2:55 AM, Miles Sabin mi...@milessabin.com wrote:
On Tue, Apr 19, 2011 at 4:51 AM, David Schlosnagle schlo...@gmail.com wrote:
I'd be interested to see what you find. Here are a few links [1] [2] [3]
from a few years back when I did a little investigation of isolating
On Tue, Apr 5, 2011 at 8:25 AM, Kresten Krab Thorup k...@trifork.com wrote:
Even if C_3 inlines, C_1 remains megamorphic because Hotspot treats it
as a lone call site independent of calls around it. There's no concept
of the C_1 call site when called from C_3.
That is actually not how I
On Mon, Apr 4, 2011 at 9:46 AM, Jochen Theodorou blackd...@gmx.org wrote:
public static void doSomething(MyInterface x, Object[] args) {
x.call(args) //C_1
}
public static void doSomethingSmall(){...}
MyInterface mi = new MyInterface() {
public void call(Object[] args) {
On Sun, Apr 3, 2011 at 11:48 AM, Robert Fischer smokejumpe...@gmail.com wrote:
Now, there's no way that I am aware of to go from a MethodHandle to a
java.lang.reflect.Method instance and an array of arguments, which
would then enable me to inline it at runtime. There are good reasons I
can
I'm getting deeper into JRuby optimization lately, and starting to
ponder strategies for optimizing closures (or, in the case of Clojure
and Scala, optimizing pass-through methods that make megamorphic
callbacks to functions).
First, some explanation...
In Ruby, the each method on Array receives
On Sat, Apr 2, 2011 at 5:30 PM, Robert Fischer smokejumpe...@gmail.com wrote:
I've been looking into exactly this kind of problem for my functional
programming language. The sheer amount of megamorphic love that fold
receives got me thinking about this. Although there's some work that I
could
On Thu, Feb 17, 2011 at 12:25 PM, John Rose john.r.r...@oracle.com wrote:
On Feb 17, 2011, at 9:45 AM, Patrick Wright wrote:
Medium term, I think it would be interesting if the organizers of the
summer JVM Lanugages Summit could have someone with JVM experience
address this topic in a talk,
On Thu, Feb 17, 2011 at 12:58 PM, Rémi Forax fo...@univ-mlv.fr wrote:
fork is one way to address that, by keeping a hot VM and spawning
instances of it, but JVMs that save their jit products (like Excelsior
JET) do an excellent job too (once primed. JET starts up JRuby stuff
*much* faster than
This question has come up on JRuby lists many times, and I thought I'd
take it to the JVM language crew:
Why doesn't the JVM support fork?
I understand the technical reasons: threads don't migrate, so they'd
have to be restarted (including GC, compiler, signals, finalizers,
etc); userland
didn't see this as a flaw in invokedynamic, just tuning of default
JVM settings (and especially inlining budgets) that had not happened
yet...
- Charlie
On Wed, Jan 26, 2011 at 5:09 PM, Charles Oliver Nutter
head...@headius.com wrote:
Is there still a requirement that you tweak a few JVM flags? When I
So, anyone know what the deal is with there *still* being no 64-bit
client mode in OpenJDK? We're running into more and more folks on
64-bit platforms complaining about the poor startup, and the best
suggestion we can offer them is to install a 32-bit JVM instead.
There's the possibility of the
Very nice, thanks Remi! I'll pull it into JRuby and see if I can't
update JRuby's indy stuff for JRuby 1.6.
On Mon, Dec 27, 2010 at 3:45 PM, Rémi Forax fo...@univ-mlv.fr wrote:
Hi all,
I've updated the JSR292 backport to be in sync with jdk7 b123.
On Sun, Dec 5, 2010 at 9:58 AM, Subbu Sastry sss.li...@gmail.com wrote:
So, while it is true that the runtime of a dynamic language has to
transform the dynamic language to a typed bytecode, I think it also
means that the rntime has to implement any optimizations (inlining,
type guards,
On Fri, Dec 3, 2010 at 12:21 PM, John Rose john.r.r...@oracle.com wrote:
With closures, if you are desperate to keep one entry point, you can play
around with thread-local values to pass in the data links:
static Object p = #localPutsProcBodyUsingTL;
static ThreadLocal reg42 = new
On Fri, Dec 3, 2010 at 12:21 PM, John Rose john.r.r...@oracle.com wrote:
If you are able to prove (in the JRuby compiler and runtime) that 'p' does
not escape the 'each' call, you can pass a static code pointer for 'p' and
handle the data link ('i' or a frame containing 'i') via another means.
On Sat, Dec 4, 2010 at 6:12 AM, Rémi Forax fo...@univ-mlv.fr wrote:
On 12/04/2010 10:58 AM, Charles Oliver Nutter wrote:
My current plan for the latter case is to have the compile emit a
specialized each that we dispatch to rather than the canonical,
global each. The code would be identical
On Wed, Dec 1, 2010 at 8:20 AM, Rémi Forax fo...@univ-mlv.fr wrote:
i = 1234
p = proc {|i| puts i }
You mean
p = proc {|anything_but_i| puts i }
Er, yeah :)
objs = ['foo', [:a, :b], {:a = :b}]
for j in 1..1000 do
objs[j % 3].eachp
end
...
Here objs[..].each is megamorphic. That's
On Tue, Nov 30, 2010 at 5:59 PM, Rémi Forax fo...@univ-mlv.fr wrote:
You're right.
But in that case, you always execute the same code.
So your runtime should do the stack allocation
i.e use int instead of Integer.
Well the case I'm interested in is for heap-based local variables. If
it were
On Fri, Nov 19, 2010 at 2:05 AM, David MacIver da...@drmaciver.com wrote:
One solution you could use here is to use a weak reference on the
original channel object instead of a finalizer and have a background
thread (you're already running one for the JIT or something like that,
right?)
On Thu, Nov 18, 2010 at 11:02 PM, John Rose john.r.r...@oracle.com wrote:
Suggestion: Make the close behavior optional, per wrapper.
Only set the mustClose bit on channels created via Ruby APIs.
Yes, unfortunately that seems to be the only option, since pretty much
everybody believes we need
On Fri, Nov 19, 2010 at 11:50 AM, Charles Oliver Nutter
head...@headius.com wrote:
In order for the WeakReference to show up in the queue, the Channel it
references would have to get collected...in which case I would no
longer be able to close it. Am I missing something?
It's worth saying
On Tue, Nov 9, 2010 at 9:09 AM, Rémi Forax fo...@univ-mlv.fr wrote:
Do you try profile the rails apps + your runtime ?
Yes, but unfortunately profiling either introduces so much overhead it
masks the actual startup time...and profiling isn't particularly good
at startup anyway.
As far as
On Sat, Oct 2, 2010 at 10:04 AM, Jochen Theodorou blackd...@gmx.org wrote:
runtime class mirors means what? Parsing the jars and class files?
Yes, just like javac loads classes into an internal mirror
representation, that's what you would need to do in Groovy. Mirah's
compiler also does this,
Thanks for a more complete example, Rémi :)
Also interesting to find out that C1 handles the case better. So the
manual workaround in my code (instanceof + cast) is only necessary on
C2 :(
- Charlie
On Sat, Sep 18, 2010 at 12:25 PM, Rémi Forax fo...@univ-mlv.fr wrote:
I take a little time to
.
On Mon, Sep 13, 2010 at 2:50 PM, Charles Oliver Nutter head...@headius.com
wrote:
I'm looking for a clear answer on this.
I have various places in JRuby where I've been hassled for not using
volatile fields. Specifically, on some of the method caches. These
caches have non-volatile fields
).
With kind regards
Ben
On 13 Sep., 18:49, Charles Oliver Nutter head...@headius.com wrote:
The objects in question are fully immutable with all final fields, so
it sounds like I'm good to go.
On Monday, September 13, 2010, Christian Vest Hansen
karmazi...@gmail.com wrote:
On Mon, Sep 13
On Fri, Sep 10, 2010 at 4:26 PM, Matt Fowles matt.fow...@gmail.com wrote:
Not to add to your woes, but argument length limits also bite us
periodically. The server JIT will refuse to compile any argument with
32 words of arguments, since we make heavy use of value types, we run
afoul of this
On Fri, Sep 10, 2010 at 4:53 PM, Rémi Forax fo...@univ-mlv.fr wrote:
Like Matt says, I do variable-uses analysis.
Our new compiler will be able to do that. It's too hard to do against
the AST (or hard enough that I don't want to try).
Of course banking on the new compiler is always a gamble :)
generation) {
return klass.getCacheToken() == generation;
}
then call getMetaClass() up one level of call stack?
Matt
On Tue, Sep 7, 2010 at 5:44 PM, Charles Oliver Nutter
head...@headius.com wrote:
I've been working on JRuby performance lately and ran into a peculiar
situation.
I
hierarchy.
- Charlie
On Wed, Sep 8, 2010 at 6:34 AM, Charles Oliver Nutter
head...@headius.com wrote:
I'll give that a shot, Tom, thanks. Should have thought of it myself.
On Wed, Sep 8, 2010 at 12:04 AM, Tom Rodriguez tom.rodrig...@oracle.com
wrote:
Did you run with -XX:+PrintInlining
to
inline that method? It seems like a case against using invokeinterface
if at all possible, even against a shared class hierarchy.
- Charlie
On Wed, Sep 8, 2010 at 6:34 AM, Charles Oliver Nutter
head...@headius.com wrote:
I'll give that a shot, Tom, thanks. Should have thought of it myself
On Wed, Sep 8, 2010 at 7:10 AM, John Rose john.r.r...@oracle.com wrote:
Also, to make the compiler really spill its guts, try +LogCompilation (google
for the wiki page that discusses it).
For whatever reaons, PrintInlining wouldn't show anything but
intrinsics. Perhaps it's my build. I opted
On Wed, Sep 8, 2010 at 2:29 AM, John Rose john.r.r...@oracle.com wrote:
That's exactly right. Sounds like CHA (class hierarchy analysis) under
interfaces would bail you out, at least until you created too many (1 or 2)
disjoint IRubyObject implementations.
Yes, it sounds like exactly what I
On Thu, Sep 9, 2010 at 2:53 AM, John Rose john.r.r...@oracle.com wrote:
Here's something to think about as an alternative to the
instanceof/cast/invoke dance for getting metaclasses.
At the Summit we were talking about managing metaobjects via a class-specific
analogue of ThreadLocal.
On Mon, Sep 6, 2010 at 10:42 PM, Dibyendu Majumdar
mob...@majumdar.org.uk wrote:
[snip]
The initial problem is how to load classes referred to in the source
code, i.e., how to handle imports. Do I need to use something like ASM
to locate and load references to classes, or is it possible to use
Attila: I'll be showing Mirah + invokedynamic using your dynalang
stuff, assuming I get it updated and working today. I'll be sure to
give you props :)
On Sun, Jul 25, 2010 at 1:59 AM, Attila Szegedi szege...@gmail.com wrote:
Mustang convertible is way cooler than whatever is it you rented last
(but
will unfortunately be occupied during the days and cannot attend the
actual
summit).
-tobias
On Sun, Jul 25, 2010 at 8:51 PM, Charles Oliver Nutter
head...@headius.comwrote:
Attila: I'll be showing Mirah + invokedynamic using your dynalang
stuff, assuming I get it updated and working today. I'll
On Wed, Jul 14, 2010 at 12:23 PM, Rémi Forax fo...@univ-mlv.fr wrote:
Indeed.
It was originally designed to help the adoption of JSR 292
but as far as I know few dynamic language developers use it :(
We would love to use it, if it didn't require installing an agent. The
offline weaver makes it
A bit of musing on which of these features I agree/disagree with and
what's in Mirah or planned for Mirah...
On Wed, Jul 14, 2010 at 4:52 AM, Shantanu Kumar
kumar.shant...@gmail.com wrote:
1. Data should be immutable by default. I like Clojure's
implementation of immutability and atom/ref
Looks like it is intended to be java with more language-level concurrency
primitives. Probably worth looking into, if only to steal. :)
- Charlie (from mobile)
On Jul 13, 2010 6:16 PM, Mark Derricutt m...@talios.com wrote:
Speaking about other new languages,
Has anyone here looked at JR?
Yes, that's a good reason not to implement another language :) I think
Lisp has already done everything, hasn't it? Scala shouldn't have
bothered!
On Mon, Jul 12, 2010 at 7:00 PM, Kevin Wright kev.lee.wri...@gmail.com wrote:
I think you'll find that Scala has already beaten you to it!
As a
You can certainly use JVM coroutines if you're willing to work in MLVM country:
http://classparser.blogspot.com/2010/04/jruby-coroutines-really-fast.html
Perhaps Mirah (Duby) should support JVM-native coroutines like JRuby
will? I have no qualms about adding (optional) features to Mirah that
On Mon, Jul 12, 2010 at 6:41 PM, Dibyendu Majumdar
mob...@majumdar.org.uk wrote:
Hi,
I am thinking of creating a Google Go type language which can run on
the JVM. The goal is to keep to the features supported efficiently in
Java but (taking inspiration from Go), reduce the verbosity in the
Thanks very much Kresten. That satisfies my curiousity, and it makes
perfect sense that you'd get performance close to the JRuby dynopt
version with the way this compiles. It makes me wish Ruby were as
straightforward at times :)
I also see something else I find interesting: EObject apparently
On Sat, Jun 5, 2010 at 2:06 PM, Kresten Krab Thorup k...@trifork.com wrote:
Oh, btw, ...
In HotRuby I do the same. The codegen for X + B is X.fast_plus(B,
SEL_PLUS). (SEL_PLUS is statically allocated Selector object which
is akin to a CallSite object) And then fast_plus is implemented as
Thought I'd toss this out there for folks interested (or that might be
able to help me).
John Rose has been maintaining (or at least has pointers to) a Hotspot
disassembler plugin here:
http://wikis.sun.com/display/HotSpotInternals/PrintAssembly
I've used it in the past, and although it's
On Fri, Jun 4, 2010 at 3:04 AM, John Cowan johnwco...@gmail.com wrote:
I actually tested Integers (with autoboxing) against BigIntegers on a
32-bit system (I don't have a 64-bit system at present), and I made
sure that the arithmetic operations I was performing never overflowed
32 bits. The
On Fri, Jun 4, 2010 at 1:36 PM, Rémi Forax fo...@univ-mlv.fr wrote:
Le 03/06/2010 08:17, Charles Oliver Nutter a écrit :
[...]
I'm curious why your base perf is so close to this final number, since
it seems pretty amazing to me, and still doesn't have the guards it
needs to be really valid
Wow, very interesting!
(he says, knowing full well 99% of the world would not find this
interesting at all)
I'll have to check the various JRuby-related JNI-based projects to see
if we have any potential issues.
On Fri, Jun 4, 2010 at 4:33 PM, Matt Fowles matt.fow...@gmail.com wrote:
All~
For
On Fri, Jun 4, 2010 at 5:27 PM, Rémi Forax fo...@univ-mlv.fr wrote:
Le 04/06/2010 23:08, Charles Oliver Nutter a écrit :
I'll go as far as I can with this and meanwhile Tom and Subbu will
continue working on the newer JRuby compiler that can actually do
things like constant and type
Another data point for JRuby.
JRuby has only two integer data types: Fixnum (implemented by
RubyFixnum, always containing a long) and Bignum (implemented by
RubyBignum, using BigDecimal). All Fixnum math operations have an
overflow check, and the arbitrary-precision nature of integers will
1 - 100 of 289 matches
Mail list logo