harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alex Blewitt" <alex.blew...@gmail.com>
Subject [classlib][pack200] Status update
Date Fri, 10 Nov 2006 00:53:52 GMT
I'm still lurking around in the background, but I'm busier than ever
what with having to keep posting at EclipseZone where I'm editor now
... but I'm still managing to plod along with the Pack200 code. The
last patch (1994, IIRC) went down pretty badly; the subclipse plugin
didn't seem to capture all the newly created classes that I had put
together for a bit of refactoring that I did. It's also a nightmare
submitting newly created files; once they've been uploaded to JIRA
into the patch queue, I effectively have to stop work until they're
applied, because there's no way of getting SVN to figure out that the
file called ClassFile.java is the same as the ClassFile.java that's
been added by someone else on my behalf, and I have to overwrite my
local copy to update. Kinda prevents doing any sensible work on newly
created files between submission and application to be honest.

Instead, I plan to sprint (well, jog, at least) to the next stable
point, and then upload a whole wodge of code and leave it for a week
or two to be applied before picking up again. I'm fairly close to
being at that stage, but not quite. Where I am at is being able to
generate (abstract) methods with exceptions and fields with constant
(integer) values, so a bit further forward than last time. On the one
hand, it means that I understand what needs to be done (no mean feat!)
but on the other hand, there's still a fair bit to go. For a start,
I'm going to need to process the actual bytecode for non-abstract
methods (or indeed, any classes) before there's any point in it trying
to be used for real, and there's still a few missing bits (Longs,
Doubles, Floats) from the constant pools. I'm pretty sure Strings
would work, but I've not tried them yet.

Unfortunately, the code is really awful. The Segment.java is getting
on for 1500 lines of code in a single class; and the attribute parsing
contains both duplicated code and isn't as generic as it needs to be
to handle other attributes; and the (in)visible annotations like
@Overrides and similar are going to be a bit of a nightmare ...

My plan is to get the code to a stage where it can start to be useful
for extracting simple classes from a pack file, and then start
generating test data which can be used for regressions. (There's a bit
there at the moment, but it's not exactly a large coverage.) Once I've
done that, I'll start tackling some of the refactoring which will
result in less duplicated code and hopefully something that will be
easier to look after in the future.

Anyway, excuse the long rambling but I've been a bit quiet for a while
and wanted to let people know I was still alive and kicking the code


View raw message