Admin

Bytecodes meet Combinators: invokedynamic on the JVM

Bytecodes meet Combinators: invokedynamic on the JVM. John Rose. VMIL'09.

The Java Virtual Machine (JVM) has been widely adopted in part because of its classfile format, which is portable, compact, modular, verifiable, and reasonably easy to work with. However, it was designed for just one language—Java—and so when it is used to express programs in other source languages, there are often “pain points” which retard both development and execution. The most salient pain points show up at a familiar place, the method call site.
To generalize method calls on the JVM, the JSR 292 Expert Group has designed a new invokedynamic instruction that provides user-defined call site semantics. In the chosen design, invokedynamic serves as a hinge-point between two coexisting kinds of intermediate language: bytecode containing dynamic call sites, and combinator graphs specifying call targets. A dynamic compiler can traverse both representations simultaneously, producing optimized machine code which is the seamless union of both kinds of input. As a final twist, the user-defined linkage of a call site may change, allowing the code to adapt as the application evolves over time. The result is a system balancing the conciseness of bytecode with the dynamic flexibility of function pointers.

The abstract is pretty vague, but this paper is actually quite interesting, particularly if you're interested in meta-object protocols and if, like me, you don't have the interest or patience to read JSRs. Of course, invokedynamic has been discussed many times over the years. The wheels of Java turn slowly...

Scheduled downtime

LtU will be taken offline for some time tomorrow (Tuesday 9th) due to a data center move. The downtime could range from a few minutes to a few hours. The exact time this will occur is unknown, but you'll be able to tell because LtU will be unreachable. :-)

LtU turns 9: The year of the lurkers

Yep, it's that time of the year again: It was nine (!) years ago that LtU was born.

As is my wont, I am going to use this opportunity to say a few things in lieu a real life birthday party speech. Those of you with an historical bent may enjoy browsing the full set of birthday posts. Here they are: year one, year two, year three, year five, year six, year seven and year eight.

First, an apology. I am feeling a little guilty posting this, since I didn't post many substantive posts this year. I am still busy doing many things not directly PL related (such as this), and so have little to contribute. I prefer to lurk a bit and let others carry the burden (on this more, in a minute). I posted less home page items and more the discussion group this year, I think.

I find it hard to post as just one of the guys, a regular member of the community, however. Several times I made non-admin remarks about posts that I felt were not on topic for LtU, or - indeed - posted marginal items to the discussion group myself, only to be rebuked by many for misusing my authority or applying policies heavy handedly... So let me take this opportunity to respond from the pulpit... LtU relies on community moderation of posts. This was the mechanism we arrived when the issue of discussion quality came up. All the discussions about this are in the archives. There is no cabal. The solution was simple: members are expected to raise their concerns about problematic posts publicly, so problems and disagreements can be hashed out. Unless I or Anton post a message clearly marked as an "admin" note, which happens fairly rarely, my posts about policy issues have no more weight than those of any other regular member of the community. However, keep in mind that if I am rebuked, many others may conclude that they should refrain from voicing concerns and simply move to other sites. So instead of rebuking me when I voice my opinion - voice yours when messages are problematic (and when messages are particularly useful as well!). If you don't take care of LtU no one will.

So, the "bad news" is that many old-timers didn't carry their burden of policing, and some discussions may have suffered because of this. The "good news" is that this allowed more people to join the discussion. Not only new members (and people are signing up daily) - many people who have been lurking, sometimes for over a year, started posting regularly. This is great! Not only did this add great content, and move the discussion in new directions, it was really nice to see accounts that I presumed were dead come to life. Bet you know what's coming now, right? People who post regularly to the discussion group and think they can contribute to the home page are urged, as always, to let me know so I can make them contributing editors (that's the LtU parlance for members who post to the home page, nothing more; don't be intimidated by the title - you can post as infrequently as you want).

Another nice thing happened this year in terms of members contributing their efforts to the community. A few people volunteered to help deleting spam and spam accounts. I am not sure they want to be identified, but my thanks goes to them. I think we don't need more help on this front for the moment. Still, members should know that new spam accounts are created (and squashed) daily, and that this happens due to the efforts of several members besides the usual suspects.

The LtU "trademark" spread its wings a bit, from they days when LtU was just this blog. This happened without my involvement. Two things worth mentioning come to mind, but let us know if I forgot something important. There is a CiteULike LtU library (originally proposed here), and the a LtU twitter account (see here).

Indeed, it seems many LtU members have flocked to twitter. I am there (@ehud/@biocomputing), but as a late comer I don't have many LtU followers. Others who are better connected may speak up if they want... I am not sure if this a a good thing or a bad thing for LtU, but I guess it was bound to happen. Contributing editors should remember that LtU expects each man to do his duty and post new stuff here first!

Our tenth anniversary is coming up soon. How are we going to celebrate? LtU is a virtual community so maybe a virtual celebration is in order. Maybe we should think about planning a virtual event of some sort or another (guest bloggers, an online conference, or some other crazy idea). Alternatively, we may try to see if we can do something non-virtual... I've always found unconferences to be an appealing idea. Or maybe just LtU beer sessions around the globe... If anyone wants to pick up the glove and organize something, I am sure many here will be delighted.

Thanks again everyone. Let the nine-year long discussion continue!

P.S
I almost forgot... We had a very successful April Fools prank this year...

LtU: Forum not blog

Due to recent changes in the community which led to less interest in programming language, and the high quality of design discussions unrelated to programming language semantics, the LtU management team has decided to remove the blog portion of the site, and make LtU into a unmoderated forum about all things related to programming, computing, math, and humor.

The blog will migrate temporarily to the url: www.no-such-thing-as-plt.org, to ease the withdrawal pains of regular readers.

This is a good opportunity to thank all the contributing editors for helping the site survive so long by managing to find actual papers about programming language theory, a field that is rumored not to exist.

Urgent update: This message was an April Fools' Day prank.

Site problems

As many have noticed we had a few problems with the site yesterday. Thanks to everyone who emailed to let me know they were experiencing difficulties.

We think the problem has been solved, and that the site should be stable now.

Admin notes

Several changes in the discussion dynamics on LtU require attention, I think.

First, and most important, is that the core business of LtU - the home page blog items posted by contributing editors - have been dwindling. What is more, the discussion forum, whose goal was to support the blog, have become very active, and often only tangentially on topic for LtU.

I have received complaints from long time members about the declining quality of the discussions, and while I haven't done any serious comparative analysis I do know that I now regularly skip threads, especially highly active threads and threads that are dominated by only a few members. I think I am not alone in this. I encourage long time members to continue publicly pointing out when threads become un-LtU-like, and remind everyone that these notes should not usually serve as opportunity for meta-discussions about policy.

I urge the LtU contributing editors to make an extra effort in the next few months to post quality items to the home page. It seems that without more emphasis on the blog, LtU will lose its relevance. I call on all members to keep in mind the style and policies of LtU (do read the spirit page, if you haven't already), and move inappropriate discussions to other forums.

The second issue is - of course - spam. We are constantly bombarded by spam, most of which you don't see since me and Anton manage usually to block the spam accounts from posting, and when spam does slip through we delete it fairly quickly. Still, in the last few days some spam messages did appear on the site, and took awhile to delete, despite our continued efforts. I apologize for that.

In previous discussions of this issue it was decided not to require approval for all new messages (however, I do moderate posts from suspicious accounts). Spam does not survive a long time on LtU, since the site is active and threads that are posted to automatically appear in the tracker, and is thus not a great concern most of the time.

I don't think the last attack was enough of a problem for us to change our policies, or spend time writing code to support advanced spam handling (there are many more exciting things we can be doing for LtU). If someone wants to help with the process of identifying suspicious accounts, deleting spam, and blocking ips, please volunteer. Help with running LtU is always appreciated.

General admin notes

We are experiencing a surge of new members, and that's great! We always value new members.

Let me remind everyone to pursue the policies document (available through the FAQ page). I want to emphasize two policy items in particular: We discourage nicknames, and when they are used encourage members to provide a url of a home page or related information in their profile. Second, LtU is in general not intended for detailed design discussions. More relevant forums are listed in the policies document.

Happy Birthday, dear Lambda!

Eight years ago LtU was born. In terms of internet phenomena that is truly remarkable longevity (heck, even google is hardly ten years old), but even in "real world" terms I think this qualifies LtU as a venerable institution.

Ever since Chris posted the first LtU birtday message back in 2001 it has become somewhat of a tradition to post a birthday message each year, and these have become a good place to reflect on the sate of LtU and the direction it is taking. Looking at the previous birthday posts sure got me reflecting. Here they are: year one, year two, year three, year five, year six, and year seven.

So how did we fare this last year? I think that overall we did pretty well, much better than I expected last year when we were in the middle of what looked like a losing battle with spammers. I think we (and by that I mean Anton, first and foremost) managed to pretty much keep spam under control without imposing unnecessary restrictions on new users. LtU was always welcoming to new users, and we strive hard to keep it that way - which leads to the second issue...

We were worried that with too many new members signing up the quality of discussions will go down, and the atmosphere of the site will change. While this happened to some extent from time to time, I think that in general most discussions remain as informative as ever - in fact, some have become too highbrow even for me... Quite a few new members have become regulars, and even contributing editors. I am very glad to see this happen, for all the obvious reasons. I am especially glad to see that we stopped attracting so many "drive-by members" who sign up only to ask one question and are then gone. LtU is not the best place for such questions, which in the past also proved to be mostly off-topic. New members, on the other hand, always add something new to the community.

Indeed, what is truly phenomenal and inspiring about LtU for me is not the continuity of the site, but the continuity of the community. I've been saying this every year, I think, but it is worth repeating. What gives LtU its unique flavor are the many members that have been part of the community for many years, some from the very early days. While not an online sewing circle, I think LtU does encourage long time members to become contributing editors, to share their interests more explicitly, and even to mention from time to time, if they so wish, their own changing circumstances. This is a professional community, but a community none the less.

The community is what holds LtU together, but it is hidden in the forum. The public face of LtU, and what should be the main focus of the discussion on the site, are the home page news items. From the early days there has been a tension between the forum and the blog aspects of LtU: while ideally all good links should be on the home page, and these should be the focus of discussion, quite often the forum takes on a life of its own. Since some members do not follow the forum discussions closely, and since the home page items are a good way to stir the direction of the site, this may be less the ideal. The solution, as always, is for the contributing editors (who are those members who manage the home page group blog) to be more active, and for more members to become contributing editors. If you are a regular, and think that you can contribute semi-regularly (i.e., as often as you want) to one or more of the LtU departments, you should consider signing up.


Let me conclude this rambling message on a more personal note. This year I moved to Menlo Park, California. Hearing from and meeting local LtU members made the move easier. It was a great experience to encounter people in various places who recognized my name, and asked "Are you the guy from LtU?" (the next question usually being "So what do you say about Scala?", by the way). Being extremely busy I didn't take advantage of all the activities around here this year, but the one time I did manage to go to a BayFP meeting was great fun.

Who knows what the next year will bring? For now, thank you all for your participation. You are LtU!

New Members

I am glad to see many new members joining the LtU daily.

This is a short reminder to all the new users to please read the FAQ and policy documents, and use LtU for the intended purposes of the site (the LtU spirit page may also be of interest). As the community gets larger it becomes more important to keep in mind the shared interests that bring most people to the site.

I also recommend reading the getting start thread (linked from the FAQ), which contains many useful reading suggestions, as well as the various other pages linked to from the navigation bar on the left.

As always old time members are urged to assist the newer members and make them feel welcome to our community.

Leave of absence

I am in the process of relocating to the United States for a couple of years (we'll be stying in the Palo-Alto area), so I will probably be less active around LtU in the next couple of weeks until I settle in. I also expect it will take me more time to respond to emails.

XML feed