Tuesday Dec 20, 2011

Lambda Integration Plan

As some of you might have noticed, the latest developer preview of JDK 8 (b17) contains some changes related to lambda expression support. This document contains a tentative schedule for integrating lambda expression support into the main JDK 8 repository.[Read More]

Tuesday Nov 01, 2011

Testing overload resolution

Overload resolution is one of the most convoluted corners of the Java programming language. Therefore it is crucial for any compiler implementation to provide enough test coverage in this area, in order to make sure that the JLS twists and turns are properly implemented. Unfortunately, as we shall see later, testing overload resolution is anything but straightforward. In this post we provide an overview of how overload resolution testing is achieved in the javac compiler.
[Read More]

Tuesday May 24, 2011

Second milestone for Project Lambda

In the last few weeks I have been busy working at a new, improved version of the lambda prototype (see changeset). The new compiler contains several goodies, especially around the type-system, type-inference area, where Dan has been doing an outstanding job at clearing out the issues one by one. The new prototype is by no means complete, there are lots of rough edges here and there - please be patient, especially in this very early stage, and keep the bug reports flowing as usual. Your feedback has proven once again to be very valuable to us - please continue to help us make Java a better language.

Friday Jun 05, 2009

Rich diagnostics landed on javac

I and Jon presented our langtools BOF - thanks for everyone who decided to attend despite the unfortunate schedule (we were running in parallel with the 'after dark' bash!). The BOF has been mainly focused on the javac diagnostic improvements in JDK 7 (which are currently in the langtools workspace and planned for integration in M4). We showed a demo which (I hope) gave a feeling of the enhanced capabilities of the javac's new diagnostic subsystem. See the slides for more details. Some pointed out the need for full-blown XML diagnostics in modern build systems - stay tuned, as we are actually planning to do some work in this area in the JDK7 timeframe.

Friday Mar 20, 2009

Playing with formatters

It's been a while since my last post on diagnostic formatters. Since then nothing much has changed, at least in the surface; the compiler still generates the same error messages it used to; but under the hood a lot has changed - the output might look the same but the javac diagnostic subsystem is now taking advantage of a number of goodies provided by the new diagnostic formatter hierarchy - which I'll try to show you in this post.[Read More]

Monday Oct 06, 2008

Diagnosing Raw Types

Raw types - generic type whose actual type parameters are missing - have been introduced in JDK 5.0 in order to provide better support for migration compatibility. Since raw types can lead to heap-pollution, their use is strongly discouraged, and generally considered as a poor programming practice. However javac does little in order to prevent the programmer from accidental usages of raw types.[Read More]

Friday Aug 08, 2008

Improving javac diagnostics

There are a lot of requests of improvements on the diagnostics that are generated by javac. The javac diagnostic system has suffered (starting from the JDK 5.0 release) from a lack of integration with the new language constructs (like generics, wildcards, etc.) and because of that issue, some of the diagnostics that are generated by javac are difficult to understand (at best). I remember of myself scratching my head when I first saw an error like this:

incompatible types:
required: capture#492 of ? extends Object
found: Object

In this entry I'll show you what I'm working on, and what is the impact of that work on the current javac diagnostic system.[Read More]

Wednesday Jun 04, 2008

Bugs<? extends Generics & Bugs<? extends Generics & Bugs < ... >>>

Adding new features can impact on existing ones in non-trivial and often unpredictable ways. In the following entry I'll try to give you an idea of how deeply JSR14 (generic types for the Java platform) impacted on several existing features of the Java language and how all this contributed to what we (informally) call the 'generic bug storm'.[Read More]

Wednesday Apr 09, 2008

Let's have Javac to eat some good Italian food...

Hello I'm Maurizio Cimadamore (but maybe you've guessed that by looking at the huge title on top of this page) and I joined Sun Microsystems in December 2007. As Jonathan Gibbons pointed out in his great introduction, I come from the University of Bologna, Italy (I bet you guessed this, too)  where I had great time (since 2003) working on language design issues - mainly involving reification of generics/wildcards (I hope to blog about this soon).[Read More]

Maurizio Cimadamore is a member of the langtools team based in Santa Clara, CA. His efforts are mainly focused on the type-system area of the Java compiler.


« April 2014