Archive

C/C++ Benchmarks

With the C/C++ benchmark I wanted to test concepts of C++ like dynamic binding, the vector
class and several other things against their equivalent in C. This benchmark should
give you an overview on how much time you can save when you are optimizing you programs.

These values should only be considered during optimization. You should generally
write your programs in a clean, object-oriented, easy to maintain way. When you
identify regions in your programs which will be critical for performance you should
optimize them, but you should do that very local and encapsulated so it is transparent
for the rest of your program.

You can download the c / c++ files here:
http://deltalabs.at/download/benchmark.zip

I ran the benchmark on my machine in runlevel 3 so there should be not too much interference
by other programs. The benchmarks where compiled using GCC 4.0. The total execution times are not too
interesting, the important information is given by the execution time factors.

Explanations (for further details on the benchmarks see the source files in the benchmark zip archive):

  • C unoptimized: C - code, compiled with gcc -Wall -ansi -O0
  • C optimized: C - code, compiled with gcc -Wall -ansi -O3
  • C++ unoptimized: C++ - code, methods not declared "virtual" where possible, compiled with g++ -Wall -ansi -O0
  • C++ unoptimized (virtual): C++ - code, all methods declared "virtual", compiled with g++ -Wall -ansi -O0
  • C++ optimized: C++ - code, methods not declared "virtual" where possible, compiled with g++ -Wall -ansi -O3
  • C++ optimized (virtual): C++ - code, all methods declared "virtual", compiled with g++ -Wall -ansi -O3

Execution time factor compared to slowest execution (higher is better)

  C unoptimized C optimized C++ unoptimized C++ unoptimized (virtual) C++ optimized C++ optimized virtual
Fibonacci 1.35 2.42 1.21 1 2.16 1.06
Call by Reference 1.08 4.66 1 1.08 4.68 4.68
Call by Value 2.39 638.06 1 1.16 424.64 424.64
Nested Loops 1.06 4.03 1 1.3 4 4
Dynamic bound call 1.16 38.02 1 1.28 2.07 4.75
Create and Delete small vectors (100 elements) 9 9 1.13 1 3 3
Create and Delete medium vectors (2000 elements) 18.33 18.33 1 1.01 4.23 3.67
Create and Delete large vectors (40000 elements) 117.04 96.14 1 1.02 2.89 2.58
Create and Delete very large vectors (800000 elements) 1808.5 1722.38 1 1.01 1.9 1.79
Append to vector 1 1.03 2.3 2.3 6.94 6.92
Vector read access 6.3 29.62 1 1 44.46 44.38
Vector write access 4.3 5.5 1 1.01 5.61 5.6

Benchmark Chart

Conclusions

  • Methods declared as "virtual" are significantly slower than non-virtual methods, so where performance is
    critical you should use as much non-virtual methods as possible. Using C-Function calls instead of method
    calls is again a little bit faster.

  • Call by value is really slow compared to call by reference (for large data structures),
    so avoid it (I know this is basic CS knowledge, but you can't say it often enough). The good values with the
    optimizing compilers are because the optimizing compilers do function inlining (which means no call by value
    after all).

  • Dynamic binding can sometimes be simulated with C-style function pointers, and it performs really well.
    Anyway it's hard to maintain and understand, so you should avoid it unless performance is really critical.

  • The C++ vector class performs quite poor when it comes to creating large vectors. I know this test is
    not really fair because the vector elements can be initialized with any value while the array elements are
    initialized with 0 by calloc, but I assume that it's normally not nessessary to initialize all vector elements
    with, say, 42.

  • Appending to a C++ vector performs pretty well, but this benchmark is also a little bit unfair: The C
    version resizes the array at every append while the C++ version leaves this decision to the vector class.

  • Vector read/write: C++ outperforms C (yippie, but I don't understand why).

Total execution time [ms] (lower is better)

  C unoptimized C optimized C++ unoptimized C++ unoptimized virtual C++ optimized C++ optimized virtual
Fibonacci 77786 43237 86265 104676 48378 98415
Call by Reference 1257 290 1352 1256 289 289
Call by Value 51579 193 123146 106497 290 290
Nested Loops 65346 17148 69113 53077 17266 17264
Dynamic bound function call 47326 1448 55057 42982 26561 11592
Create and Delete small vectors (100 elements) 1 1 8 9 3 3
Create and Delete medium vectors (2000 elements) 6 6 110 109 26 30
Create and Delete large vectors (40000 elements) 23 28 2692 2651 932 1044
Create and Delete very large vectors (800000 elements) 40 42 72340 71599 38095 40336
Append to vector 11069 10708 4819 4813 1594 1599
Vector read access 4088 869 25740 25741 579 580
Vector write access 5852 4576 25169 24885 4486 4497

This week on harmony-dev (Feb. 12 - Feb. 18 2006) (back again ;) )

This article is a summary of this week's postings on the developer mailing list
of the Apache Harmony Project.
You can read all the emails in the
mailing
list archive
of the harmony-dev mailing list. Since this is a summary I have
to simplify the points of the discussion. If you think I oversimplified something
or I got something completely wrong please
contact me so I can correct it.

I know I was away from the Apache Harmony project quite some time,
the reasons where mostly related to my work and University studies
but there where private reasons too. I hope my summaries of the dev
mailing list are still welcome in the project. At least I'm glad to
see I'm still on the committers-list ;)

In the first paragraph of this summary I want to cover the most
important events in January and the first two weeks of Febuary. I won't
summarize the discussions in this period because (unfortunately) I missed
many of them - I'll only mention the major events like code donations or
votes. After that the summary for this week (Sun, 12 Feb 2006 - Sat, 18
Feb 2006) follows.

On Fri, 30 Dec 2005 Geir Magnusson Jr. posted the Result to the
"[VOTE] Accept JIRA contribution HARMONY-16 (Intel's contrib of security
code for classlib)" which was accepted with 8x +1 (5 binding) and 1x 0.
JCHEVM has been moved out of the sandbox in January 2006.
On Mon, 23 Jan 2006 Andrey Chernyshev announced the "Contribution of
beans, math and regex libraries" on behalf of intel. The vote which
followed was accepted with 5 binding +1 votes.

Ok, now for this week's summary: almost 430 emails marked. That's
pretty much, so I'll make the summaries of the threads quite short. And
just for the stats: I started following this project in July 2005, and in
the time from July 2005 to December 2005 there where 1212 emails on
harmony-dev. From January 1st until Febuary 17th there where 1375
emails. Pretty impressive how this project develops, IMHO.

In the thread "[jchevm] porting harmony classlib to JCHEVM"
Weldon Washburn, Archie Cobbs, Geir Magnusson Jr. and Tim Ellison
discussed about how the harmony Classlib could be "glued" to GNU
Classpath compatible VM's. The idea is to provide a compatibility
layer between the two VM/classlibrary interfaces. Weldon is working
on a Thread kernel class to prove the concept.

[1][http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200602.mbox/%3c4dd1f3f00602111715w9747364odc21d9d098df80dd@mail.gmail.com%3e]

The discussions in "Using Cairo for Harmony graphic stuff?" was
mostly about where cairo could be used for Harmony, but there was
also some more general discussion about how to do all the graphics
stuff (AWT, the Java2D part of AWT, Swint, ...). Anthony Green
suggested to use jogl (JSR231) instead of cairo.

[2][http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200602.mbox/%3c20060213005325.GG6971@bali.sjc.webweaving.org%3e]

Tim Ellison, Mikhail Loenko, Geir Magnusson Jr. and others
discussed about the proposed package naming convention for the
org.apache.harmony.* packages Tim posted on the website in the
thread "Location for API extensions" [3].

[3][http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200602.mbox/%3c43F076FE.9070105@gmail.com%3e]

Geir Magnusson Jr. started the thread "[classlib] build / test
system" where he mentioned some issues with using the Eclipse
compiler in an integrated build/test system (especially for people
who don't have eclipse installed). It was suggested to either put
the nessessary jars into the SVN repository or get them from the
Maven repository at ibilio.org [4]. The thread "[tools] javac.exe"
is somewhat related here [5] - Geir asked if javac.exe should just
start the VM and then the eclipse compiler.

[4][http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200602.mbox/%3c43F0ACB4.2090903@pobox.com%3e]

[5][http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200602.mbox/%3c43F0AD75.3010608@pobox.com%3e]

In "[classlib] proposal to revisit componentization for security"
Tim Ellison and Mikhail Loenko discussed about how to group security
packages into modules [6]. Tim Ellison wrote the email "[classlib]
using cpp" where he suggests not to use C++ for the jaasnix natives
since the changes are minimal [7]. There was some discussion if we
should or should not use C++ for implementing the classlib natives.

[6][http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200602.mbox/%3c43F0B9E9.5000707@gmail.com%3e]

[7][http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200602.mbox/%3c43F0BCEC.8070300@gmail.com%3e]

There was some more discussion about "compiling JCHEVM with
GCC/Cygwin" [8]. Weldon Washburn and others discussed about how
to implement String.intern(...) in the thread "[jchevm] native
method API for _jc_new_intern_string -- do you plan to add to
_jc_ilib_entry table?" [9]. In the thread "build fails - what
next?" build problems with the classlib where discussed [10]. In
the thread "[classlib] creating a new snapshot, and planned breakage
heads-up" Tim Ellison and others discussed about when and how to
make a new binary snapshot of the classlib [11]. Some more discussion
about build problems here: "error when using sun compiler" [12].

[8][http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200602.mbox/%3c43F0C540.5080807@academ.org%3e]

[9][http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200602.mbox/%3c4dd1f3f00602131759n791c9344m61ff064ec1b6629c@mail.gmail.com%3e]

[10][http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200602.mbox/%3c43F1E3B8.6020108@gmail.com%3e]

[11][http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200602.mbox/%3c43F1EFE1.2010209@gmail.com%3e]

[12][http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200602.mbox/%3c43F23618.3020800@gmail.com%3e]

In the thread "newbie to project-where to start from" there were
several questions+answers about where to start when joining the Harmony
project. There was also some more discussion about test case naming
and other things (compatibility issues, licensing, ...) [13]. Andrey
Chernyshev re-opened the thread "repo layout again" (renamed to
"Platform dependent code placement" [14].

[13][http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200602.mbox/%3c43F39168.6050000@gmail.com%3e]

[14][http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200602.mbox/%3c6928c5160602151329r7e0c0420ib6c8aaccfba3a8f5@mail.gmail.com%3e]

In the thread "[classlib] do we need a global exclude list?" the
organisation of test case exclude lists was discussed [15]. There was
some Java Performance discussions in "I welcome J2SE 6's faster-
splash...." [16]. Geir has moved the security2 module to security and
archived the old security module: "[classlib] security moved". Some
discussion about snapshots followed [17]. Tim Ellison announced a new
snapshot: "[classlib] Snapshot build 378478 available" [18].

[15][http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200602.mbox/%3c6e47b64f0602152153r379a88f2rfcc70f34c9432fd6@mail.gmail.com%3e]

[16][http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200602.mbox/%3c52733fad0602152159m7ca78f81p9bacfa14e3a91850@mail.gmail.com%3e]

[17][http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200602.mbox/%3c43F596E4.8080401@pobox.com%3e]

[18][http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200602.mbox/%3c43F5E543.109@gmail.com%3e]

In "CLA issues Was: java.sql.*" Tor-Einar Jarnbjo, Geir Magnusson
Jr. and Leo Simons discussed some details about German laws and the
Apache Licenses [19]. There was some more legal discussion (mostly
about NDAs) in "NDA issues and acceptable use of sun source" [20].

[19][http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200602.mbox/%3c43EF8137.3090507@pobox.com%3e]

[20][http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200602.mbox/%3c20060212234641.GC6971@bali.sjc.webweaving.org%3e]

This (and last) week on harmony-dev (Nov. 28 - Dec. 11 2005)

This article is a summary of this week's postings on the developer mailing list
of the Apache Harmony Project.
You can read all the emails in the
mailing
list archive
of the harmony-dev mailing list. Since this is a summary I have
to simplify the points of the discussion. If you think I oversimplified something
or I got something completely wrong please
contact me so I can correct it.

This edition of the summaries covers two weeks of harmony development
again. In the week from Nov. 28 to Dec. 03 there was a long legal
discussion in the thread "Full Disclosure" [1] started by Leo Simmons
(Leo just wrote a few words about a meeting with Mark Wielaard and
this turned into a licensing and legal discussion). It was generally
about the compatibility of licenses (AL2 with GPL, GPL+Exception or
LGPL) and what can / should be done to achieve better interoperability
between the free Java projects. There was more legal discussion in
the thread "ASF has been shipping GPL exception stuff for years and
still is ;)" [2] started by Dalibor Topic and "[Licensing/Community] Fresh
start" [3] started by Tim Ellison, but in this thread the OSGi - discussion
(summarized later) started too. I don't really want to go into more
details about these legal discussions, I just post the links to the
first emails in the threads.

[1][http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200511.mbox/%3c20051128151614.GE18332@bali.sjc.webweaving.org%3e]

[2][http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200512.mbox/%3c20051204123107.GA18769@pogo.kaffe.org%3e]

[3][http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200512.mbox/%3c19e0530f0512050645y1f6d1925p8df8b95571ffba14@mail.gmail.com%3e]

Stepan Mishura started the thread "failed to use xml formatter on
contributions combination" where he describes a problem when running
unit tests on the combination of the contributions from Intel and
IBM. Matt Benson pointed out a bug in ant which seems to be the same
problem.

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200511.mbox/%3cBE6943E2116D1B4EB5B85C939C54CBFAB0B72B@mssmsx402nb%3e]

The vote "[vote] accept JIRA contribution HARMONY-14 (IBMs
contribution of core classlib, native support and vm/classlib
interface)" was accepted with 8 +1s (Geir's count, I counted 9.
I too counted only one of Anindo Ghosh's votes ;), no 0s or -1s.

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200511.mbox/%3c239A9855-E86F-45B1-9873-65DBDF0C5BAF@apache.org%3e]

There was some discussion I had with Archie Cobbs in the thread
"[jchevm] Porting JCHEVM to OSX/PPC" [4] where he helped me to make it
finally compile and link under OSX (although it doesn't run yet).
Later this week I have committed my work so far [5]. Geir Magnusson Jr.
renamed this thread into "Where do we put it?" [6] where we discussed
some things about our SVN policy because I have asked if I should
commit my changes to a branch. I'm still not really sure if we have
a SVN policy or not, but at least my question was answered.

[4][http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200511.mbox/%3c1133295663.2549.7.camel@Elrond.Rivendell%3e]

[5][http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200512.mbox/%3c1134056427.2543.4.camel@Elrond.Rivendell%3e]

[6][http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200512.mbox/%3cF4A8E062-854D-4510-92FF-6D17CD810467@apache.org%3e]

In the thread "Building Choices" (which was mainly an ant vs.
make vs. something else discussion in the last weeks) Andrey
Chernyshev mentioned some more problems with make and announced
that he is working on a "full ant-based build system which would
allow to build the provided class libraries contributions".

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200511.mbox/%3c6928c5160511300453o5ef19652m7a860546b02c35ac@mail.gmail.com%3e]

In "Where to place the core classlib code?" Geir Magnusson Jr.
asked where in the svn repository the classlib code should be
placed ("enhanced/trunk/classlib" vs. "enhanced/classlib/trunk").
The discussion was also about how to divide harmony into subprojects
so that they can be developed independently but that build sanity
can be guaranteed. There was also some discussion about the build
and testing process and about test suits (mauve vs. JUnit).

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200511.mbox/%3cD00E0656-FDF3-43D1-95FF-CA5C3D8F1CA2@apache.org%3e]

Dalibor Topic renamed the thread"[Licensing/Community] Fresh start"
to "[Technical] VM Interface/OSGi discussion" where the discussion
about the VM Interface and OSGi was continued. The discussion here
was if the VM/Class Library interface could be built up using OSGi
and which minimum requirements the VM must implement to achieve this.

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200512.mbox/%3c439583D3.3020605@kaffe.org%3e]

Stepan Mishura asked in "Kerberos service provider" if we should move
all Kerberos functionality to provider layer of the JAAS framework.
Peter Edworthy answered that it is already pluggable and would only
affect the class library. Aaron Hamid replied that it is pluggable at
the module level but that an app would still require reconfiguration
on different platforms because different Kerberos modules are needed,
so this question is relevant to us. He mentioned that OSGi could be
applicable to this area.

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200512.mbox/%3cBE6943E2116D1B4EB5B85C939C54CBFABD9E41@mssmsx402nb%3e]

Enrico Migliore asked when the harmony project roadmap was about
to be available and Geir Magnusson answered listing some things
which he wants to be done in the near future [7]. George Harley
asked about a problem with the MANIFEST.MF file of the security.jar
in the contribution from Intel, Stepan Mishura answered he will
add the correstponding files to the repository[8]. Remy Suen asked
where to get the kernel.jar in the contribution from IBM, George
Harley answered that this is assumed to be provided by the VM but
and that he should download the IBM Development Package for Apache
Harmony [9]. Archie Cobbs has removed more ELF-related stuff from
JCHEVM, so now porting should be easier [10].
[7][http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200512.mbox/%3c43944AC6.6090101@fatti.com%3e]

[8][http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200512.mbox/%3cOF72152DF1.492D3A31-ON802570CE.00371BE2-802570CE.003B501F@uk.ibm.com%3e]

[9][http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200512.mbox/%3c20051206035634.27282a1a@localhost%3e]

[10][http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200512.mbox/%3c439BA147.3020102@dellroad.org%3e]

This week on harmony-dev (Nov. 21 - Nov. 27 2005)

This article is a summary of this week's postings on the developer mailing list
of the Apache Harmony Project.
You can read all the emails in the
mailing
list archive
of the harmony-dev mailing list. Since this is a summary I have
to simplify the points of the discussion. If you think I oversimplified something
or I got something completely wrong please
contact me so I can correct it.

In the thread "compiling JCHEVM with MSVC", Ashish Ranjan suggested to
use MINGW and MSYS "to build native executables with gcc on ms-windows
platform". Geir Magnusson Jr. suggested to create binary snapshots of
the harmony stuff for people to play with. There was some more discussion
about the problems with JCHEVM and MSVC.

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200511.mbox/%3c4f8781f20511202103p21cdd5f2j61b712c1fd05ee08@mail.gmail.com%3e]

There was some discussion about the build process in the thread
"Code contribution to harmony" which was then renamed to "Building
choices". Andrey Chernyshev posted some some potential issues with a
mixed approach (using ant and make in the build process). Tim Ellison
answered this concerns. Graeme Johnson gave a good argument for make:
it makes the bootstrapping easier, since ant relies on an installed
java system. As a reply in this thread, Stefano Mazzocchi wrote an
interesting email called "Keeping Social Dynamics in Mind" where he
writes which social impact such a choice can have (and some other
interesting things).

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200511.mbox/%3c6928c5160511210211t117b832fl67b337cb9e534dc9@mail.gmail.com%3e]

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200511.mbox/%3c4381E301.60402@apache.org%3e]

Mikhail Loenko wrote in "Contribution of security, crypto, and x-net
libraries" that they are working on integrating the contribution with
the contribution from IBM and that they "hope to summarize the problems
shortly and mail them to harmony-dev list". Leo Simons replied that
"you are more than welcome to do such 'sorting out' on this mailing list
rather than just send out summaries when its done" so we can get more
people involved in this discussion. Later this week, Stepan Mishura
posted a summary of the integration issues, and Tim Ellison offered to
help.

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200511.mbox/%3c6694B22B6436BC43B429958787E45498D978FE@mssmsx402nb%3e]

I started the thread "[jchevm] Porting JCHEVM to OSX/PPC" when I started
to port JCHEVM to OSX because I had some questions. Archie Cobbs helped
me with some of the issues.Steve Liao answered last weeks email from
Kazuyuki Shudo with several technical details about separate jit threads
vs. using application threads and simultanious jitting. Rodrigo Kumpera,
who has offered to contribute a JVM he has written in Java some time ago,
wrote about the status of this development and mentioned that he is still
willing to contribute it but he wants to solve some problems before he
does. At the moment there's a vote to accept HARMONY-14 into the sandbox
running: "[vote] accept JIRA contribution HARMONY-14 (IBMs contribution of
core classlib, native support and vm/classlib interface)", the result should
be availiable next week.

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200511.mbox/%3c1132691903.2495.14.camel@Elrond.Rivendell%3e]

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200511.mbox/%3c7cbeaf9e0511221721k7d09369dw85eb6f7fac560fed@mail.gmail.com%3e]

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200511.mbox/%3c8cca42d80511230549v71dfd934l3aa48c7f15fdbaac@mail.gmail.com%3e]

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200511.mbox/%3cCEEB7ACD-516F-4EA2-9CAF-65DD990F70D9@apache.org%3e]

This week on harmony-dev (Nov. 13 - Nov. 20 2005)

This article is a summary of this week's postings on the developer mailing list
of the Apache Harmony Project.
You can read all the emails in the
mailing
list archive
of the harmony-dev mailing list. Since this is a summary I have
to simplify the points of the discussion. If you think I oversimplified something
or I got something completely wrong please
contact me so I can correct it.

Much of this weeks discussion was a controversy about a keyword scanning
tool and some legal issues. There where two code contributions this week:
Mikhail Loenko contributed "security, crypto, and x-net libraries" on behalf
of Intel and Zoë Slattery contributed a "perl keyword scanner and sample
files". The second contribution resulted from the discussion about keyword
scanning wich I'll cover in more detail later.

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200511.mbox/%3c6694B22B6436BC43B429958787E45498D558A8@mssmsx402nb%3e]

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200511.mbox/%3c550216269.1132149869460.JavaMail.jira@ajax.apache.org%3e]

Last Sunday, Archie Cobbs announced "JCHEVM builds and runs" which meant
it "builds and runs on Linux, FreeBSD, etc.". He then discussed with
Enrico Migliore, Jean-frederic Clere and Tom Tromey about how to build it
and how the build process could be optimized.

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200511.mbox/%3c4377BAEC.70207@dellroad.org%3e]

There was quite a lot discussion about how Harmony could better interact
with other projects under different licenses (especially GNU Classpath, which
is licensed under GPL+exception, but also projects licensed under LGPL). The
email threads where this was discussed are "Waiting for license resolutions"
and "The Unofficial 'Harmony, Licensing, the Universe and everything' FAQ".
There was lots of disussion, but I think in short we could say: There is no
solution yet nor will there be one soon, but many people are interested and
there are several people (both at the ASF and FSF) who are working hard to
find one (for example Leo Simons, Stefano Mazzocchi and others here at
harmony-dev). Stefano Mazzocchi made an interesting suggestion here: To
develop a VM interface which is neither hosted by the ASF nor by the FSF and
which is licensed licensed under a neutral MIT license. Both projects could
then implement this interface and interact in this way.

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200511.mbox/%3c4377CCF0.4070003@gmail.com%3e]

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200511.mbox/%3c4378326A.4000304@theory.org%3e]

The email "[legal] Proposed changes for the Bulk Contributor Questionnaire"
by Geir Magnusson Jr. caused a long discussion about keyword scanning tools.
This was because Geir mentioned such a tool by BlackDuck Software in the
questionnaire where he suggested that every contribution should be scanned:
"(a scan for keywords that will help identify code pedigree)". The two major
problems people had with that was the explicit mentioning of BlackDuck Software
in the questionnaire and the concern that the process might rely on the keyword
scanner too much. Later in this discussion most people agreed that using a
keyword scanner can support the process, but that it might be good to have
an open source tool for that. Because of that, Zoë Slattery contributed her
pearl keyword scanner.

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200511.mbox/%3cAFC8F3C7-1650-4BF9-A97E-B31A6B3821DE@apache.org%3e]

Mark Wielaard announced the "GNU Classpath hacker room at FOSDEM 2006"
where he invited us from Harmony to come too. Geir Magnusson Jr. and I will
be there, Leo Simons tries to come too. Kazuyuki Shudo asked Steve Liao to
clarify some points about a Re-entrant JIT in "[arch] Interpreter vs. JIT
for Harmony VM", but he got no answer yet. Geir Magnusson Jr. has started
"[vote] Accept keyword scan contribution", there will be a result next week.
Enrico Migliore discussed with Jean-frederic Clere and Archie Cobbs about
"compiling JCHEVM with MSVC". Archie mentioned: "Unfortunately JCHEVM requires

the GCC compiler right now. It would take some nontrivial work to port it to
MSVC".
[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200511.mbox/%3c1131986024.29591.64.camel@localhost.localdomain%3e]
[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200511.mbox/%3c20051115.045534.343182970.shudo@aist.go.jp%3e]
[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200511.mbox/%3cB916BA2F-F8B9-4E7F-B46B-50CF6FD1FD4C@apache.org%3e]
[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200511.mbox/%3c437F627E.4010105@fatti.com%3e]

This (and last) week on harmony-dev (Oct. 31 - Nov. 13 2005)

This article is a summary of this week's postings on the developer mailing list
of the Apache Harmony Project.
You can read all the emails in the
mailing
list archive
of the harmony-dev mailing list. Since this is a summary I have
to simplify the points of the discussion. If you think I oversimplified something
or I got something completely wrong please
contact me so I can correct it.

Last week I didn't find the time to write this summary, so this week's
posting covers both weeks. It was two busy weeks on harmony-dev (I have
183 emails marked in my inbox), with a code contribution from IBM this
week: "The code comprises a concrete implementation of the interface
between virtual machine and class library that we have been discussing
recently, together with a set of core Java classes". The contribution can
be found under http://issues.apache.org/jira/browse/HARMONY-14
in JIRA. In a reply to the mailing list announcement of this contribution
Geir Magnusson Jr. made some comments which are also interesting to read.
Mark Wielaard then asked for a way to make it possible to include this
contribution in GNU Classpath too. Jean-frederic Clere had a problem
compiling it under SuSE 8.1, Tim Ellison and George Harley helped him.

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200511.mbox/%3c437082C4.2050005@gmail.com%3e]

David N. Welton started a thread called "half-baked idea? j2me" where
he suggested starting with implementing J2ME instead of J2SE because
it could be easier to implement. There was some discussion indicating
that this is not as easy as it seems first. Rodrigo Kumpera mentioned
that "IKVM, sablevm and jamvm all run on portable devices". Archie Cobbs
made an interesting point in this thread: He asked what the ideal language
to write a JVM implementation with would look like. He then meant that
Java would be pretty close to that when you extend it so you would be able
to do some C-like stuff too. Robin Garner answered that "This is exactly
how we see the dialect of Java that MMTk is written in".

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200510.mbox/%3c43669468.4090205@dedasys.com%3e]

In "[modularity] OSGi or ?", Geir Magnusson Jr., Mark Wielaard, Tim Ellison
and Dalibor Topic where discussing about ways to achieve componentization.
Mark explained that in GNU Classpath people "solve it for their own platform
separately". Tim posted a link to an earlier thread where class library
componentization was discussed. Dalibor did something like that in Kaffe but
"found the manual updating of component sets during the rush of development on
GNU Classpath to be, ugh, somewhat boring work".

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200511.mbox/%3c2A9A59B0-035F-41D0-981B-15DDF91CB797@apache.org%3e]

George Harley started the thread "Implementation comparisons" with an email
where he asks for "pinions on measuring how "correct" a new implementation
of a J2SE class is". The discussion after that was partly about problems
you could have (i.e. when the reference implementation by Sun behaves
not like required by the Spec. or when the Spec is incomplete). The other
part of the discussion was where to get the right specification. While
the Javadoc and other documents are the Spec, some people mentioned that
you should "always work from real books and not just the javadoc that IBM
and Sun publish publicly describing the core library" (and of course problems
with that where also discussed).

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200511.mbox/%3cOF797D9066.07CFA891-ON802570AE.0074F72C-802570AE.0075E8F9@uk.ibm.com%3e]

Enrico Migliore described some problems he still had when "compiling
bootJVM with MSVC". Most of this discussion was about compiler issues,
but I think the interesting part of the discussion started when Enrico
Migliore provided a link to a pthread implementation for WIN32. This
implementation is available under the LGPL and "compatibility issues between
the LGPL and Apache licenses are still unresolved". Apache is working on
that issue (it will be discussed at the ApacheCon), but for now we should
not have dependencies on LGPL libraries. Tim Ellison mentioned that in IBMs
contribution (which is not yet accepted for the sandbox) there is be
a threading implementation which will (hopefully) be part of the harmony
project soon. Enrico finally made it: "bootJVM compiled with MSVC".

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200511.mbox/%3c436B1834.3000006@fatti.com%3e]

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200511.mbox/%3c43704C60.5040402@fatti.com%3e]

Geir Magnusson Jr. started "VM/Class Library Interface (or "Storming the
Gates! Take 3!")" with an email where he explains what he expects from
such an interface and that it would be time to define it now. Dan Lydick
explained where BootJVM is now and how he wants to solve this interface.
Archie Cobbs works with "a completely 'stock' unmodified version of Classpath"
in jchevm now. Leo Simons explained how to work with a centralized version
control system like SVN (which we use here) in this thread (commit often,
how to write commit comments, ...). There was lots of details of the
interface discussed in this thread, I think everyone who is interested can
read this in the mailing list archive.

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200511.mbox/%3c89DB404C-2E97-49E8-92B6-05113E8FF0DB@apache.org%3e]

In the thread "[arch] Interpreter vs. JIT for Harmony VM" Steve Shih-wei
Liao explained in some detail the requirements for an interface between
the VM and the Execution Engine which supports both interpreters and JITs.
He wrote it "according to the 4 areas in the previous email: abstracting
over the mode of execution, asynchronous compilation, reentrancy, and
supporting the mixing of JIT and interpreter".

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200511.mbox/%3c7cbeaf9e0511080720y35948846g210a69cd65931c6d@mail.gmail.com%3e]

In other threads... Jean-frederic Clere and Dan Lydick discussed about
some configuration issues of BootJVM in "[BootJVM] configure". Archie
Cobbs and Tim Ellison where talking about some finalization issues in
"Some questions about the architecture". Archie Cobbs (who contributed
jchevm [which is not called ArchieVM :( ]) is our newes Apache Harmony
committer. Leo Simons wrote "The Unofficial "Harmony, Licensing, the
Universe and everything" FAQ" where he answeres several questions which
have always been around on the list. Mark Wielaard wrote some interesting
comments here. Leo Simons wrote about "Harmony @ Apachecon US 2005".
Dan Lydick sent in a status info for BootJVM in a mail called "Current
changes to bootJVM source base". Mark Wielaard announced "ANN: GNU Classpath
"95% and counting" 0.19 released".

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200510.mbox/%3c28398403.1130786044737.JavaMail.root@elwamui-rubis.atl.sa.earthlink.net%3e]

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200510.mbox/%3c436677B8.90203@dellroad.org%3e]

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200511.mbox/%3c135763B2-23CA-4A30-B2A1-9076E9F36999@apache.org%3e]

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200511.mbox/%3c20051109133808.GB39347@bali.sjc.webweaving.org%3e]

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200511.mbox/%3c20051107182938.GL23280@localhost.localdomain%3e]

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200511.mbox/%3c11369598.1131141869766.JavaMail.root@elwamui-lapwing.atl.sa.earthlink.net%3e]

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200511.mbox/%3c1131028605.22008.100.camel@localhost.localdomain%3e]

BTW: You might have noticed that I didn't list all people involved in
the discussions this week. I'm not sure if this is really nessessary,
but I'd really appreciate feedback about this. Would you want to be
listed here when you've been involved in a discussion, or is it enough
when I only mention some people which wrote important postings?

This week on harmony-dev (Oct. 23 - Oct. 31 2005)

This article is a summary of this week's postings on the developer mailing list
of the Apache Harmony Project.
You can read all the emails in the
mailing
list archive
of the harmony-dev mailing list. Since this is a summary I have
to simplify the points of the discussion. If you think I oversimplified something
or I got something completely wrong please
contact me so I can correct it.

I know I'm quite late this week, I'm sorry (Counter-Strike and lots
of beer got in the way ;-). Now here's what happend last week on the
harmony development mailing list. And, just because this paragraph is
off topic anyway: Happy Helloween!

In the thread "Some questions about the architecture" Robin Garner
clarified that Weldon Washburns post about a GC-VM and his own post
about the MMTk interface are just examples of existing interfaces and
that both could be improved. In the same thread Robin and others
responded to an earlier post by explaining some aspects of finalizers.
Mark Wielaard wrote about about a similar problem in GNU Classpath
(The problem in all these cases is that some code relies on finalizers
to be run). Archie Cobbs mentioned that this problem could be solved
by creating a new vm method which would "try hard" to run finalizers,
but this could cause other problems.

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200510.mbox/%3c60261.208.54.15.1.1130041463.squirrel@sqmail.anu.edu.au%3e]

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200510.mbox/%3c44897.208.54.15.1.1130042645.squirrel@sqmail.anu.edu.au%3e]

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200510.mbox/%3c1130593101.11930.20.camel@localhost.localdomain%3e]

There where more questiones about how to "Get involved on Harmony",
and Dan Lydick, Geir Magnusson Jr. and others where explaining how
the others could get involved. Mark Wielaard provided some interesting
links and tasks for getting started. Leo Simons wrote a mail with the
subject "Leadership and direction" where he clarifies how we (should)
work together. Others involved in these discussions: Ashwin Stuart and
Graham Smith. Normally the links I provide here are starting points
of the threads, but the following links are to the posts which describe
how to get started in the project. I think they are more interesting in
this case.

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200510.mbox/%3c1130595694.11930.54.camel@localhost.localdomain%3e]

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200510.mbox/%3c1130609850.11930.80.camel@localhost.localdomain%3e]

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200510.mbox/%3c20051031091444.GC32031@localhost.localdomain%3e]

In the thread "Compilers and configuration tools" Tanuj Mathur
offered to help supporting the MSVC compiler. Dan Lydick asked if
it's nessessary to support mulitple compilers and which problems
could be created. Rodrigo Kumpera mentioned the following problems:
assembly sintax, compiler extensions and c++ libraries nuanses.
There was some more discussion in this thread (about the free
availiability of compilers, what "free" actually means, and such
things). The conclusion was that we should at least support GCC,
that we won't stop people from working to support other compilers.
Dan Lydick offered to replace his configure/compile shell scripts
with Makefiles, which he did later this week.

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200510.mbox/%3cf611554c0510240244v737862b7v2121d1d67b267fa1@mail.gmail.com%3e]

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200510.mbox/%3cf611554c0510250647jeb50b3ax9b0b4d317587160a@mail.gmail.com%3e]

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200510.mbox/%3c4120051032634210170@earthlink.net%3e]

Dan Lydick and Robin Garner where discussing more aspects of
Garbage Collection, Memory Management and managing Objects and
Classes in "Questions about GC implementations". Robin mentions
that the object headers in bootjvm are too large (40 bytes), and
that the object table needs to go. He also pointed out some other
places which could become a performance problem in the future.

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200510.mbox/%3c43630F5A.3080407@anu.edu.au%3e]

Mark Wielaard wrote two replies in the thread "[legal] Bulk
contribution barrier to entry". The first explained why people
who work on GNU Classpath have to sign a document which grants
the FSF copyright. The second post was an answer to and example
from Geir Magnusson Jr. where a lawyer lawyer flagged an obvious
implementation of an Exception class as a problem. Mark explained
that in court you could easily proof that this is the only obvious
way to implement such a class, but that the problem is that you
are in a situation where you have to proof this. He wrote that this
is the reason why "projects like GNU Classpath have a rule that you
cannot study any proprietary implementation".

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200510.mbox/%3c1130590127.8000.21.camel@localhost.localdomain%3e]

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200510.mbox/%3c1130592129.11930.5.camel@localhost.localdomain%3e]

Jean-frederic Clere started the thread "[BootJVM] configure"
where he contributed configure files for BootJVM. He posted them
to JIRA: http://issues.apache.org/jira/browse/HARMONY-10
later. Jean-frederic and Dan Lydick also discussed some build problems
here. Mark Wielaard announced the release of GNU Crypto 2.1.0 and
Jessie 1.0.1. In the thread "[dev-process] Coding Style Guide" Mark
recommended that other projects adopt the coding conventions used
in GNU Classpath for Java code which mimics the standard (GNU) C and
C++ coding convention as closely as possible.

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200510.mbox/%3c43615007.80905@telefonica.net%3e]

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200510.mbox/%3c1130588374.8000.15.camel@localhost.localdomain%3e]

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200510.mbox/%3c1130594952.11930.41.camel@localhost.localdomain%3e]

This week on harmony-dev (Oct. 16 - Oct. 22 2005)

This article is a summary of this week's postings on the developer mailing list
of the Apache Harmony Project.
You can read all the emails in the
mailing
list archive
of the harmony-dev mailing list. Since this is a summary I have
to simplify the points of the discussion. If you think I oversimplified something
or I got something completely wrong please
contact me so I can correct it.

This week most of the discussion was about the boot jvm, but there
were some other issues too. One of the shorter discussions was in the
thread "ANN: gjdoc 0.7.6 released": David Gilbert asked what's left
to to before 1.0.0, and Julian Scheid replied that it's mainly bug
fixes for the first major release.

Enrico Migliore compared some C compilers for the speed of the
generated code. Jeroen Frijters pointed out that the code doesn't do
anything and is completely removed by some compilers (resulting in
execution time of 0.0 seconds). Tanuj Mathur helped by testing the
same code with different compilers. Florian Weimer noted that there
is "an explicit check in GCC that prevents the removal of emptyloops".

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200510.mbox/%3c43534ECC.9060108@fatti.com%3e]

Dan Lydick announced in "Changes to bootjvm 0.0.0 coming soon" that
he was working on 0.0.1, which came later this week. In the initial
email he explained which changes he plans for 0.0.1 and 0.0.2 of the
BootJVM. Dan, Rodrigo Kumpera, Archie Cobbs, Zsejki Sorin Miklós then
discussed the problems which arise when testing the java memory model
and threading.

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200510.mbox/%3c4913782.1129577614000.JavaMail.root@elwamui-mouette.atl.sa.earthlink.net%3e]

In a thread called "Status of the Harmony SVN" Dan discussed with
Rodrigo Kumpera about things to do until 0.0.1 and Dan asked Rodrigo
if he can test it under CygWin, Windows and Linux. Dan also answered
some questions from Robin Garner about the BootJVM in "Bootstrap JVM".
On wednesday, Dan announced that version 0.0.1 of the BootJVM was
available in "Harmony 'bootJVM-0.0.1' release now available". Geir
Magnusson Jr. made clear that "release" has a special meaning in the
ASF and that this was not a release.

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200510.mbox/%3c7924791.1129691175595.JavaMail.root@elwamui-karabash.atl.sa.earthlink.net%3e]

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200510.mbox/%3c12154828.1129694693275.JavaMail.root@elwamui-karabash.atl.sa.earthlink.net%3e]

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200510.mbox/%3c16314481.1129721371599.JavaMail.root@elwamui-sweet.atl.sa.earthlink.net%3e]

In the thread "Some questions about the architecture", Dan Lydick
discussed with Rodrigo Kumpera, Archie Cobbs, Robin Garner and Tom
Tromey about threads and garbage collection. Dan explained how several
things are done in the BootJVM. There was some discussion about native
threads vs. green threads and how the thread stack is scanned for
references. Robin and Dan discussed about GCs in general where Robin
posted the basic requirements for a GC and Dan explained how he wants
to solve this in BootJVM. Rodrigo, Tom and Dan discussed about
Exceptions and how much the VM has to know about them.

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200510.mbox/%3c16671063.1129744068581.JavaMail.root@elwamui-royal.atl.sa.earthlink.net%3e]

Rodrigo Kumpera started the thread "Small problems building under
cygwin" by describing some problems he had and how they could be solved.
In this discussion it was then mentioned that it's quite difficult to
support different compilers (i.e. GCC and MSVC), but Geir mentioned that
if MSVC was a requirement we'd create a barrier for people who don't
want to get commercial software to build the project. Some porting
issues where discussed in this thread. Dalibor Topic suggested to
use autotools to solve some of these problems, and then there was some
discussion about autotools. Other people involved here: Dan Lydick,
Davanum Srinivas, Leo Simons and Tom Tromey.

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200510.mbox/%3c8cca42d80510191542o2212e0eehe3461e4ec789060e@mail.gmail.com%3e]

Robin Garner posted some problems he had building BootJVM under
linux. This thread was originally named "Build problem on Linux",
Geir later renamed it to "[bootvm] Build" when he suggested to use
either ant or make for the builds. Dan Lydick gave some hints where
these problems come from, how they can be resolved and how the
project can be built. he also mentioned that he'd prefer gmake.
Matt Benson pointed out that ant could do the job with some extras
from http://ant-contrib.sourceforge.net

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200510.mbox/%3c49168.66.181.12.81.1129846843.squirrel@sqmail.anu.edu.au%3e]

Rodrigo Kumpera and Dan Lydick discussed about incremental builds
and some macros in the BootJVM code in "[BootJVM] macros that redefine
printf and others". Noel J. Bergman reminded us to bring in the Board Report,
and Geir answered that he'll be getting it in the next day. João Lopes
asked how one can get involved in the harmony development, and Dan
Lydick explained how he got involved. Dan Lydick asked in "Compilers and
configuration tools" for more comments about this topic. I wrote that I
think we need a coding style guide in "[dev-process] Coding Style Guide"
and Leo Simons posted that he disagrees with some points I made.

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200510.mbox/%3c8cca42d80510201248g2ed8ee5bhfd5074df4213c86b@mail.gmail.com%3e]

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200510.mbox/%3cNBBBJGEAGJAKLIDBKJOPIEDMEBAC.noel@devtech.com%3e]

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200510.mbox/%3cOF1B22DF47.FB430A92-ON832570A1.004A3429-832570A1.004B2B02@br.ibm.com%3e]

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200510.mbox/%3c21904995.1129922596673.JavaMail.root@elwamui-rustique.atl.sa.earthlink.net%3e]

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200510.mbox/%3c1129906709.2472.30.camel@Elrond.Rivendell%3e]

This week on harmony-dev (Oct. 9 - Oct. 15 2005)

This article is a summary of this week's postings on the developer mailing list
of the Apache Harmony Project.
You can read all the emails in the
mailing
list archive
of the harmony-dev mailing list. Since this is a summary I have
to simplify the points of the discussion. If you think I oversimplified something
or I got something completely wrong please
contact me so I can correct it.

Sorry, no links to the mail archive today because the new version of
the archive doesn't work for me (Mozilla Firefox / Fedora Core 4).

This week almost all discussions on this mailing list where in the
thread "[legal] Bulk contribution barrier to entry" which was started
by Geir Magnusson Jr. The problem he mentiones there is "that for a
bulk contribution - something created elsewhere and being contributed
to harmony - we require that all authors of that work are Authorized
Contributors, meaning that they hadn't been exposed to implementations
of Java that weren't either available under an open source license, or
were owned by an entity willing to give the author permission to work
on other implementations elsewhere". He means that this standard might
be too high, because there might be contributions where it might be hard
or even impossible to track down all the authors.

He asked for suggestions for a process which is flexible enough to
allow all kinds of contributions, but which is OTOH strong enough to not
put our project at unnessessary risks. This was followed by a long
discussion about which specific permissions we need from whom and which
risks the harmony project could be exposed to. I think I won't go further
into details for this thread. There was no solution found yet. The people
involved in this discussion are: Danese Cooper, Dermot Dunnion, Leo Simons,
Dalibor Topic, Archie Cobbs and Richard Nienaber.

Geir Magnusson Jr. made some changes to BootJVM to get in working
under windows. He also got it working in OS X. Enrico Migliore posted
some benchmark results he tested out in an email called "optimization
for speed in win32".
Robin Garner announced a new version of the DaCapo benchmarks which
are "a set of real-world open-source Java benchmarks that have a
non-trivial memory load" and now come under the Apache License. Mark
Wielaard announced a new version (0.7.6) of gjdoc, which is the source
documentation framework for GNU Classpath.

This week on harmony-dev (Oct. 2 - Oct. 8 2005)

This article is a summary of this week's postings on the developer mailing list
of the Apache Harmony Project.
You can read all the emails in the
mailing
list archive
of the harmony-dev mailing list. Since this is a summary I have
to simplify the points of the discussion. If you think I oversimplified something
or I got something completely wrong please
contact me so I can correct it.

There were two votes running this week. The vote "[vote] Accept JIRA
contribution HARMONY-3 : Archie Cobbs' Contribution of JCVM" has been
accepted with 7x +1, 0x 0 and 0x -1 votes. The vote "[vote] Accept JIRA
contribution HARMONY-6 : Daniel Lydick's contribution of a new JVM" has
been accepted with 6x +1, 0x 0 and 0x -1 votes. In both cases I don't know
which votes were binding.

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200509.mbox/%3c41287D45-DD82-4276-A0DF-F7263EB5BD8B@apache.org%3e]

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200510.mbox/%3cB893CF31-912C-4E9E-A88C-2FFA346CAC6D@apache.org%3e]

In the discussion about the vote "[vote] Accept JIRA contribution
HARMONY-3 : Archie Cobbs' Contribution of JCVM" Andy Oliver, Geir
Magnusson Jr. and Tim Ellison discussed the voting mechanism. Geir and
Andy explained how it works, and both want to avoid fractional votes
and preferres written comments instead. Tim then clarified that he didn't
refer to the mechanics of voting, but he wanted to know what a "+1"
implies and wants to be sure that "'bulk' contributions have the paperwork
in order". Geir said that from now on the PPMC will have to accept the
Authorized Contributor Questionnaire as well as the Bulk Contribution
Checklist before a vote so "people will be sure that the basic safeguards
we want to have for exposure are in place".

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200510.mbox/%3c72330652.1128180677710.JavaMail.root@set.superlinksoftware.com%3e]

Andy Oliver started the thread "RT: Escape analysis" which is about
optimizations a JIT / GC can make by analyzing which objects "escape" a
thread. Andy also suggested "descoping", i.e. to have a mechanism so {}
doesn't build a new scope. Tim Ellison mentioned problems with
polymorphism and escape analysis. Robin Garner and John Whaley talked
about stack allocation in this context. Florian Weimer, Tom Tromey and
Geir Magnusson Jr. where also involved in this discussion.

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200510.mbox/%3c72145349.1128221529793.JavaMail.root@set.superlinksoftware.com%3e]

In "[project policy] Author credit and attribution" Geir Magnusson
Jr. asked if we should use author tags in the code or just maintain a
list with all the contributors like HTTPD does
(http://httpd.apache.org/contributors/).
Mark Wielaard explained how this (and other things) are done in GNU
Classpath and recommended to read the GNU Classpath Hacker Guide. In
this discussion it was also pointed out that we need a code style guide
"so that the code looks like it is part of a whole". It looks like the
we'll have a contributors page which will also contain a list of all
bulk contributions, and AUTHORS files, but no author tags in the code
for now.

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200510.mbox/%3c12ED61E0-1039-42DF-B353-C2865A440797@apache.org%3e]

Geir Magnusson Jr. asked in "opinions on structure packing in C?"
about "the use of -fpack-struct vs #pragm pack() vs just not packing"
because he ran into this issue when he tried to get Dan's bootVM to
run under windows. Several people mentioned it's too early for
optimizations. Tim Ellison suggested to use the standard layout of
the compiler and pack a struct with pragmas only when nessessary.
Dan Lydick explained why he used structure packing in the bootVM code.
Some people suggested to recompile the libc and distribute it with the
VM. Tom Tromey mentioned that this is not practical for a server or
desktop environment, since this effects other libraries too and we'd
have to rebuild a large part of a typical distro. Other people involved
in this thread were: Enrico Migliore, Archie Cobbs and Robin Garner.

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200510.mbox/%3c1D20E04B-BEC0-4015-8126-13ADFDF0A843@apache.org%3e]

(Ok, maybe I really oversimplified this thread, but people interested in
the details can just follow the link and the follow-ups ;-) ).

Steve Liao replied in "[arch] Interpreter vs. JIT for Harmony VM"
that "it seems the Harmony modular framework needs to allow both JIT and
interpreter modules to be plugged in", and that maybe a new thread about
these issues will be nessessary. I have become a committer to the Harmony
project, I'm glad and proud that the PPMC offered me the committer status.

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200510.mbox/%3c7cbeaf9e0510021617u45287e32kcd804a113c027b05@mail.gmail.com%3e]

[http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200510.mbox/%3c529CDA4D-C332-46D9-BF04-0531BF84743E@apache.org%3e]

Syndicate content