Jochen Theodorou wrote:
> why do we discuss that? You are talking about the development process of 
> the spec itself. I not. It is simply a difference if you specify 
> something, write tests for that and then test if your implementation 
> works according to the spec, or if you use an implementation and say 
> that is my spec. The first requires a finished spec, the second a 
> finished implementation. What we really have is that we have a draft for 
> the spec and an implementation, and the spec will be updated because of 
> the implementation and the implementation will be updated because of the 
> spec... it is an incremental process to develop something. And in such 
> cases you cannot take any test as if it where your final spec.

No, but we can identify a behavior that's been implemented and has a 
test written and say "this should/will be in the spec". We can also 
identify behavior that's missing and needs a test. I have a lot of 
respect for John but he can't know all the vagaries of implementing 
Ruby. So I'm trying to make sure he understands each and every pain 
point in JRuby, to ensure that invokedynamic addresses as many of them 
as possible.

That's what I'm hoping to accomplish with a lot of back-and-forth during 
these early stages. Perhaps I just like experimenting, but it seems like 
there's a lot of value to be had from diving in right now and pushing 
the design forward.

> hehe, no, of course not. Groovy too does not use all bytecode commands, 
> that are available, only a subset. But I doubt that you in JRuby have to 
> worry about a method argument being an int or long. longs require two 
> slots, ints only one, so it influences indexes for local variables and 
> also commands when you reorder the arguments. Well I guess you know that.

JRuby uses local variables whenever possible, just like Groovy does, and 
we have to adjust incoming method signatures and local variable offsets 
the same. And there's various bits and pieces in my compiler to support 
different argument list lengths and make sure everything lines up 
correctly. We don't accept non-reference types, but it wouldn't be hard 
to add; I've prototyped some optimizations that allow exactly that. They 
weren't useful from an optimization perspective because we need to box 
the types for almost everything else anyway, but it wasn't particularly 
difficult to make the modification.

- Charlie


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "JVM 
Languages" group.
To post to this group, send email to jvm-languages@googlegroups.com
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