On Jun 4, 2009, at 2:58 AM, Arnold Schwaighofer wrote: > On Wed, Jun 3, 2009 at 10:26 PM, John Rose <[email protected]> wrote: >> Arnold, I'll be happy to take your updated patches ASAP, assuming >> they work >> *apart* from invokedynamic. (Are you still maintaining parallel >> lazy/eager >> versions?) > Hi John, > > Wish i was at JavaOne to meet you in person. Well another time maybe.
Would it be possible for you to attend this meet-up (also in the N. California Bay Area)? http://jvmlangsummit.com There are a lot of people who would like to hear about your work and talk with you! The Scala folks are particularly interested. > Here you go. Another round of patches. This time against openjdk-b59. OK, I just pushed your b59 changes. (I needed a little JavaOne recovery time first.) > Yes i still maintain the two versions. I expect the lazy version to be > easier integratabtle with the indy/method handle stuff. I am doing some tricky adapter work, needed to stretch compiled argument areas for method handle linkage. This clearly needs to be unified with your work on tail calls, since we want as few adapter types as possible. I looked over your thesis; it's very good, one of the best expositions of Hotspot design I have seen. Here is a question about tail calls in the server compiler that's been bothering me: Suppose a function A calls B with no arguments, and B implements some state transition machine with states implemented as tai-called functions B1, B2, ... (They are all siblings.) Suppose that each Bn takes n arguments, up to (say) B20 with 20 arguments. The state machine terminates when the final Bn (say, B10) decides to return instead of tail-call another Bn. At this point, control goes back to A. It's all compiled in the server compiler, which has no frame pointer (in EBP). In order for A to be able to access its own locals, it needs ESP to be restored exactly right (since server compiler uses ESP in place of EBP). But the Bn have been bouncing ESP around all over the place to store all their arguments. How does A get its ESP back? I don't see any treatment of argument area overflow in your thesis, other than a sort of reassignment of the argument area to the callee. But that doesn't help A in the server compiler, I don't think. Best wishes, -- John _______________________________________________ mlvm-dev mailing list [email protected] http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
