[M3devel] TextLiteral.MaxBytes again (unable to compile 64bit target on 32bit host)

Jay K jay.krell at cornell.edu
Wed Jun 3 04:51:45 CEST 2015


 Ideally:
  1 32bit host could target 64bit target   2 32bit texts could be as large as the address space/OS allows.   3 ditto 64bit texts -- larger than 4GB   4 be unpicklable between 32bit and 64bit, as long as they fit into the address space.    Currently only #4 is true.  TEXTs for any target can only be about 500MB. 

 To fix 2 and 3 requires m3front to use TInt more.  
 This fixes #1 and likely breaks #4. Cutting the limit just a little.  Can we special case somehow? Is there some construct we can use that has no stated limit, like 0..cnt - 1? Should/can we introduce one?
  jbook2:src jay$ git diff  "../src/text/TextLiteral.i3"diff --git a/m3-libs/m3core/src/text/TextLiteral.i3 b/m3-libs/m3core/src/text/TextLiteral.i3index fa72589..4d16a44 100644--- a/m3-libs/m3core/src/text/TextLiteral.i3+++ b/m3-libs/m3core/src/text/TextLiteral.i3@@ -14,7 +14,7 @@ IMPORT RTHooks, TextClass; CONST  (* DIV BITSIZE should not be here! *)  (* MaxBytes = LAST (INTEGER) DIV BITSIZE (Byte) - 7 - 8 * ORD(BITSIZE(INTEGER) = 64); *)- MaxBytes = 16_7FFFFFFF DIV BITSIZE (Byte) - 7; + MaxBytes = 16_7FFFFFFF DIV BITSIZE (Byte) - 15;      (* - 8 * ORD(BITSIZE(INTEGER) = 64) *)      (* Do not adjust this for INTEGER size.  It makes T have different         fingerprints on 32- and 64-bit machines, which undermines pickling/


otherwise we have:

new source -> compiling TextLiteral.i3"../src/text/TextLiteral.i3", line 27: CM3 restriction: record or object type is too large1 error encountered

 Ok?    - Jay 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20150603/76455152/attachment-0001.html>


More information about the M3devel mailing list