[Soc-coordination] Jigsaw - Report 1

Guillaume Mazoyer respawneral at gmail.com
Fri Jun 3 19:37:35 UTC 2011


The beginning of this Google Summer of Code has been busy and pretty
cool. Not a lot of code was produced but I did learn a lot of things.

During this GSoC I will work on the next generation JDK. This means that
I will (and I already have) compile the JDK. That's pretty awesome but
it requires a lot of power. That's why Tom Marble created me an account
on his 8 CPUs machine to help me.
Since I'm probably going to sign some packages, I created a new GPG key
with a 4096 RSA strength.
My old key was:

    pub   1024D/F144A319 2008-10-18

And the new key is:

    pub   4096R/EE2BBBC7 2011-05-03

I cross signed my keys using this great tutorial[1]

I read some documentation about Jigsaw[2] and watch Tom's talk at
DebConf 10[3]
I have spent a little more than on week to understand the current
OpenJDK packaging to be able to rebuild it. I have learnt from where do
the sources come from. The current packaging is a little hard to
understand. There are sources that come from IcedTea[4], OpenJDK[5], and
more[6].

After being able to rebuild the OpenJDK 6 package, I have downloaded the
source of the OpenJDK 8 and Jigsaw. I used the Mercurial forest to get
the sources.

For OpenJDK 8:
    - hg clone http://hg.openjdk.java.net/jdk8/jdk8 jdk8
    - cd jdk8 && sh get_sources.sh

For Jigsaw:
    - hg clone http://hg.openjdk.java.net/jigsaw/jigsaw jigsaw
    - cd jigsaw && sh get_sources.sh

I have managed to build the sources of OpenJDK 8 and Jigsaw using the
same steps:
    - cd jigsaw
    - . jigbuild
    - . jdk/make/jdk_generic_profile.sh
    - export ALLOW_DOWNLOADS=true
    - make sanity
    - make all

Jigsaw specific:
    - make modules-sanity
    - make modules

Each build took several minutes. But they were successful. Tom helped me
a lot to build OpenJDK 8 and Jigsaw by giving me a solution. For
example, after getting the Mercurial forest, there were still missing
source files and the build failed. Tom told me that I needed to export a
environement variable: ALLOW_DOWNLOADS=true.
After building Jigsaw, I was able to see that the version string is not
legal in Debian and that is a real problem.
I have written some simple Hello World examples to compile and run with
Jigsaw. To modularize a program, it needs to contain a module-info.java
files. This file includes the modules needed to run the program and the
main class to run. For a classic hello world, the module-info.java files
looks like:

    module test.hello @ 1 {
        requires jdk.base @ 7-ea;
        class test.hello.Main;
    }

Tom gave me some packages to build: jtharness and jtreg. I succesfully
built jtharness using CDBS[7] and its Ant helper but I'll have to
repackage it to use javahelper instead of CDBS. I still don't try to
build jtreg because it requires javahelper to be built.

My next plan is to get jtharness and jtreg packaged with javahelper soon
and understand what modules does what in Jigsaw. Understaning modules
will help me to write some more complex examples. I hope to start
working on Jigsaw a little more soon (when I my internship will end
[next week]).

[1] http://people.debian.org/~anibal/ksp-dc10/ksp-dc10.html
[2] http://openjdk.java.net/projects/jigsaw/
[3] http://penta.debconf.org/dc10_schedule/events/558.en.html
[4] http://icedtea.classpath.org/download/source/
[5] http://download.java.net/openjdk/jdk6/
[6] http://cacaovm.org/
[7] http://roku.info9.net/~guillaume/jtharness/

--

Guillaume Mazoyer
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.alioth.debian.org/pipermail/soc-coordination/attachments/20110603/53791452/attachment.pgp>


More information about the Soc-coordination mailing list