<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>Ideally I could have a TextLiteral on a 64bit machine larger than 2GB or 4GB.<br>I would not be able to unpickle it on a 32bit machine and that would be ok.<br><br><br>There a long standing problem though anyway in the frontend where INTEGER<br>is used in place of TInt.T or LONGINT, giving 32bit limits to 64bit targets.<br><br><br>I put in a hack actually to change MaxBytes to be a 32bit limit, to fix<br>cross compiling from 32bit to 64bit. Maybe this is something different though.<br><br><br>I realize that is quite a TextLiteral but I think, generally, if it fits in target address space, it should work.<br>Heck, we should think about "persistant disk based" data structures that don't even fit in memory.<br>e.g. file systems, movies, etc.<br><br><br> - Jay<br><br><br><div>> Date: Sat, 3 Aug 2013 00:25:54 +0000<br>> To: m3commit@elegosoft.com<br>> From: rodney@elego.de<br>> Subject: [M3commit] CVS Update: cm3<br>> <br>> CVSROOT: /usr/cvs<br>> Changes by: rodney@birch. 13/08/03 00:25:54<br>> <br>> Modified files:<br>> cm3/m3-libs/libm3/src/pickle/ver2/: Tag: devel_unicode <br>> Pickle2.m3 <br>> <br>> Log message:<br>> An almost solution to the problem of TextLiteral.T's having MaxBytes<br>> dependent on word size, making pickling of TextLiteral.T fail across<br>> different word sizes.<br>> <br>> Hard code the fingerprint for the 64-bit case and translate it to<br>> the one for 32-bit systems, in pickles. Also vice-versa.<br>> <br>> The best long-term solution also involves making TextLiteral.MaxBytes<br>> word-size-independent. This could invalidate some preexisting pickles,<br>> but only if they contain heap objects with a field or element with<br>> declared static type TextLiteral.T, which seems quite unlikely. If<br>> such fields/methods are declared as TEXT, the actual allocated type of<br>> their referents can be TextLiteral.T and all will work.<br>> <br></div> </div></body>
</html>