langtools in b20

Jonathan Gibbons Jonathan.Gibbons at Sun.COM
Tue Sep 4 21:59:32 PDT 2007


Ted,

Well, the current build available on openjdk.java.net is b19,  
released aug30,
and we're currently on a two week cycle, so you do the math ...

There will be some docs regarding langtools in the new langtools  
area. Specifically,
look in the make/ directory and its subdirectories for README files.

As for architecture, there's not much "architecture" involved;  
langtools simply consists
of the source code for javac, javadoc, javah, javap, and apt. The  
source code is
laid out the same way it was before, the only thing that is different  
is that it is in a new
workspace (internal for now, separate external repository eventually)  
and that the
build files are different.

For this build, we chose to go with Ant, because it is a pure-Java  
workspace, and to
be able to share the same build system with IDEs, such as NetBeans.  
For compatibility
with the rest of the j2se/ workspace, there is a simple Makefile  
wrapper around the Ant
build.xml file as well, but you don't have to use that if you don't  
want to.

The layout of the make/ directory is much the same as now, albeit  
much simpler.
The build.xml file and its wrapper Makefile are in make/.  The  
NetBeans projects
are in make/netbeans/*, just like in the j2se/ workspace.

There are more NetBeans projects than before. Previously, there were  
only projects
for the compiler and javadoc. Now, there are projects for all the  
tools, although for
various reasons the javadoc tool comes with two projects -- one for  
the tool itself
and one for the standard doclets. Why more projects? Well, as a  
developer I want to
be able to work on any part of this workspace, so there has to be a  
project for each
and every part :-)

And, because it is a smaller workspace, we don't have to rely on new  
features in the
upcoming NetBeans 6.0, so you can stick with NetBeans 5.5 if you  
want, until you're
ready to upgrade.

Although there are more projects, you can actually browse the entire  
workspace and
build any/all of it from any of the projects. The only difference  
between the projects is
how the UI is hooked up -- for example, in the javac project, the  
"Clean and Rebuild"
button will rebuild javac, whereas in the javadoc project it will  
rebuild javadoc, and so on.
Most of the build smarts is in the main build.xml file, with smaller  
project-specific build.xml
files for each project.

For folk who want to build the rest of JDK, you can do it with or  
without building
langtools as well. You can either download and build everything, or  
you can just
download the j2se/ workspace, and point to a previous build of JDK  
with the
ALT_JDK_IMPORT_DIR environment variable. Conceptually, this is  
similar to
the current hotspot/ workspace. You can either build it or import it.  
If you want to get
more into what the implications were for the rest of the build, I can  
tell you more but
this isn't the right place. Suffice it to say that the ugly  
"recompile" loop in the j2se/
workspace has gone away (hooray!) and that was a major goal of this  
exercise.
The "price" is that the javac source code is constrained to be  
compilable by the
"boot javac" (i.e. from the previous release, currently 1.6.0) and  
javac, javadoc and
javah  must all be runnable using "boot java" because they are all  
used while building
j2se/ itself.

I hope this answers your questions. Let me know if you have any more.

-- Jon

P.S. I also note that by coincidence I will be on vacation when b20  
is released.
It's a coincidence, really! So I'll be around to answer any questions  
when I get back
on the following Monday, assuming I don't get eaten by bears or  
anything like that.




On Sep 4, 2007, at 9:18 PM, Ted Neward wrote:

> Where "soon" means....?
>
> Do you have any sort of dox on how the langtools project is  
> architected? I
> know there's been some blog chatter, but I was hoping for something  
> that
> reflected the state of reality in b20?
>
> Ted Neward
> Java, .NET, XML Services
> Consulting, Teaching, Speaking, Writing
> http://www.tedneward.com
>
>
>> -----Original Message-----
>> From: compiler-dev-bounces at openjdk.java.net [mailto:compiler-dev-
>> bounces at openjdk.java.net] On Behalf Of Jonathan Gibbons
>> Sent: Friday, August 31, 2007 1:42 PM
>> To: compiler-dev at openjdk.java.net
>> Subject: langtools in b20
>>
>> Gang,
>>
>> Andreas just stopped by my office to tell me that the work for the
>> langtools/ separation has made it into the master workspace this
>> morning. This means you all will be able to see it in build 20,  
>> coming
>> soon.
>>
>> -- Jon
>>
>> No virus found in this incoming message.
>> Checked by AVG Free Edition.
>> Version: 7.5.484 / Virus Database: 269.13.1/981 - Release Date:
>> 8/31/2007 6:13 AM
>>
>
> No virus found in this outgoing message.
> Checked by AVG Free Edition.
> Version: 7.5.485 / Virus Database: 269.13.5/988 - Release Date:  
> 9/4/2007
> 9:14 AM
>
>




More information about the compiler-dev mailing list