Ah, right - yeah, for reading in it doesn't make a difference, since once it is in memory it gets reordered gratuitously anyway. I think the Sun alto preserves order that the constants are seen in the original bytecode, but as long as decompressor provides stable results then it shouldn't matter.

I think the reason the cp pool ordering is so anal when writing is to allow constant offsets to be represented by an incremental integer in the pack file.

So for reading, no, it shouldn't matter. Sorry for the objection.

Alex

Sent from my (new) iPhone

On 22 Sep 2008, at 16:11, "Sian January" <[EMAIL PROTECTED]> wrote:

I know there is a very specific ordering, but I don't think it's
related to the ordering in the original file is it?  I'm only using
ASM to read in class files for the compressor (i.e. pack200 rather
than unpack200) as we've already written our own class-file writer for
unpack200.  I'm pretty sure the constants should be sorted in
something like alphabetical order for packing.  Is that wrong?

2008/9/22 Alex Blewitt <[EMAIL PROTECTED]>:
There absolutely will be problems if you don't have access to the constant
pool. You need to ensure a very specific ordering of all bytecode and
constant pools to be compatible with pack200 - that's why ASM wasn't used in
the first place.

Alex

Sent from my (new) iPhone

On 22 Sep 2008, at 11:46, "Sian January" <[EMAIL PROTECTED]> wrote:

In the last week I've finally had some time to look at replacing BCEL
with ASM in pack200.  I preferred ASM over SERP or any other options
mainly because it is really small (43K) and also has good performance.
So I've done some prototyping work and I'm fairly confident ASM is
suitable, although there could potentially be future problems with the fact that ASM doesn't give access to the constant pool itself and just
inlines the constants, so I've tried to write my code in a way that
means it wouldn't be too hard to replace it if more functionality was
needed at some point.

So I'm planning to check in my initial work this week if no-one has
any objections. As we're not using ASM anywhere else at the moment is
it ok to just check the jar file in under the pack200 directory, or
should it be in the depends directory and have a manifest instead? Is
there anything else I need to do for bringing in BSD licensed code,
e.g. any notices or license files or source that also need to be
added?

Thanks,

Sian


--
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number
741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU




--
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 741598. Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU

Reply via email to