Inside Javac Types, symbols and tables

Monday Oct 06, 2008

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

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

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

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]