[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