[M3devel] TextLiteral/MaxBytes 32bit/64bit pickling
Jay K
jay.krell at cornell.edu
Mon Aug 5 05:12:06 CEST 2013
Ideally I could have a TextLiteral on a 64bit machine larger than 2GB or 4GB.
I would not be able to unpickle it on a 32bit machine and that would be ok.
There a long standing problem though anyway in the frontend where INTEGER
is used in place of TInt.T or LONGINT, giving 32bit limits to 64bit targets.
I put in a hack actually to change MaxBytes to be a 32bit limit, to fix
cross compiling from 32bit to 64bit. Maybe this is something different though.
I realize that is quite a TextLiteral but I think, generally, if it fits in target address space, it should work.
Heck, we should think about "persistant disk based" data structures that don't even fit in memory.
e.g. file systems, movies, etc.
- Jay
> Date: Sat, 3 Aug 2013 00:25:54 +0000
> To: m3commit at elegosoft.com
> From: rodney at elego.de
> Subject: [M3commit] CVS Update: cm3
>
> CVSROOT: /usr/cvs
> Changes by: rodney at birch. 13/08/03 00:25:54
>
> Modified files:
> cm3/m3-libs/libm3/src/pickle/ver2/: Tag: devel_unicode
> Pickle2.m3
>
> Log message:
> An almost solution to the problem of TextLiteral.T's having MaxBytes
> dependent on word size, making pickling of TextLiteral.T fail across
> different word sizes.
>
> Hard code the fingerprint for the 64-bit case and translate it to
> the one for 32-bit systems, in pickles. Also vice-versa.
>
> The best long-term solution also involves making TextLiteral.MaxBytes
> word-size-independent. This could invalidate some preexisting pickles,
> but only if they contain heap objects with a field or element with
> declared static type TextLiteral.T, which seems quite unlikely. If
> such fields/methods are declared as TEXT, the actual allocated type of
> their referents can be TextLiteral.T and all will work.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20130805/c7cac1b0/attachment-0001.html>
More information about the M3devel
mailing list