[various discussions snipped.]
There are several reasonable approaches one could take to handling
64-bit systems. Our biggest current problem, I think, is that
different parts appear to be taking different approaches, so that the
whole package doesn't actually work.
Here's an example. First, I applied this trivial patch
--- parrot/packfile.c Tue Oct 2 10:30:00 2001
+++ parrot-andy/packfile.c Tue Oct 2 12:35:27 2001
@@ -14,7 +14,9 @@
#include "parrot/packfile.h"
-#define TRACE_PACKFILE 0
+#ifndef TRACE_PACKFILE
+# define TRACE_PACKFILE 0
+#endif TRACE_PACKFILE
/******************************************************************************
and then re-Configure'd (adding -DTRACE_PACKFILE=1) and here's what I get
from ./test_prog test.pbc
PackFile_unpack(): Magic verified.
PackFile_unpack(): Unpacking 0 bytes for fixup table...
PackFile_unpack(): Unpacking 0 bytes for constant table...
PackFile_ConstTable_unpack(): Unpacking 0 constants...
PackFile_ConstTable_unpack(): Unpacking constant 0...
PackFile_Constant_unpack(): Type is 0 ('s')...
PackFile_Constant_unpack(): Size is 0...
PackFile_Constant_unpack(): Unpacking string constant...
PackFile_Constant_unpack_string(): flags are 0x0000...
PackFile_Constant_unpack_string(): encoding is 0...
PackFile_Constant_unpack_string(): type is 0...
PackFile_Constant_unpack_string(): size is 0...
PackFile_ConstTable_unpack(): Unpacking constant 0...
PackFile_Constant_unpack(): Type is 0 ('s')...
PackFile_Constant_unpack(): Size is 0...
[ . . . ]
Not particularly helpful, eh?
I think the problem is twofold:
1. The reading and writing of packfiles is done by two completely different
sets of functions. Obviously, they are inconsistent in some way. Either
one, or both, is wrong.
2. I can't tell which is wrong because I don't know what the "right"
answer is. Presumably, once docs/parrotbyte.pod gets written, it will
be possible to check the functions against the specs. Until then, I'm
unsure how best to contribute.
--
Andy Dougherty [EMAIL PROTECTED]
Dept. of Physics
Lafayette College, Easton PA 18042