Charles Oliver Nutter schrieb:
> Jochen Theodorou wrote:
>> ok, now I see the test... but that is no test with the receiver being null
> 
> Notice my output shows the bootstrapped method getting null for the 
> receiver argument, and also look at line 61:
> 
>          return fake(null).target(b);
> 
> This gets rewritten by AnonymousClassLoader to be a cast to Dynamic...a 
> dynamic call to target; but the receiver itself is most definitely null. 
> This would never work through the normal invoke* operations.

ah, ok, I see now.

> Unless you're referring to the fact that the target method eventually 
> bound to the call site is a static method?

that confused me, but I realize it has nothing to do with entering the 
MethodHandle.

[...]
>> I am only saying that specifying by something that is very likely to 
>> change very much is not useful. Helping to develop it is something else.
> 
> Specification and development are supposed to go hand-in-hand,

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.

[...]
>> I expect that to be a little more difficult in Groovy, because we are 
>> more in touch with the bytecode.
> 
> More in touch with the bytecode? I assume you didn't mean that as an 
> insult :)

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.

bye blackdrag

-- 
Jochen "blackdrag" Theodorou
The Groovy Project Tech Lead (http://groovy.codehaus.org)
http://blackdragsview.blogspot.com/
http://www.g2one.com/

--~--~---------~--~----~------------~-------~--~----~
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