[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