[M3devel] platform-independent packing/alignment?

Rodney M. Bates rodney_bates at lcwb.coop
Mon Feb 1 21:23:53 CET 2010


One thing I recall is that there are about 3 signatures for some builtin
types that are hard-coded as constants rather than computed, and pm3
vs. cm3 pickles have them with values differing in some rather bizarre
byte-ordering differences.  In at least one of them, the order was also
inconsistent with the general algorithm used to construct most signatures.

As I recall, I fixed cm3 pickles to recognize/read both sets of signature
values.  So if you are using recent pickle code from cm3, this would not
be the cause of your problem, nor would it be if you have not written
a pickle in pm3-compiled code and tried to read it in cm3-compiled code.

I also recall putting in some better messages when things failed, such
as giving the value of an unrecognized signature.

Do you get any interesting messages when pickle reading fails?

Dragiša Durić wrote:
> MUTEX is primitive type whose typecode is fixed by compiler, IIRC - that
> code being same even if changes were made to it's basic structure... Or
> not... On the second thought, MUTEX is basically fixed, but it's
> revealations can vary. Thus making it incompatible over
> pickles/versions.
> 
> I've not looked at my code/data yet, but MUTEX was only an idea what
> went... It is OODBMS package, and mutex is not used for persistent data,
> only for tables/indexes. Thus, problem (at leat for me) remains and it
> is not pickled MUTEX.
> 



More information about the M3devel mailing list