|
From: <Joe...@t-...> - 2017-03-10 15:20:13
|
Hi, Don Cohen wrote:: >Joe...@t-... writes: > > The memory models influence some limits, e.g. MOST-POSITIVE-FIXNUM and > > perhaps ARRAY-TOTAL-SIZE-LIMIT or one of the siblings. > > Weren't you the one once wondering about the seemingly low > > string size limit despite a 64 bit build? >Yes, in fact I found myself wondering about this again just yesterday. >And now I can't seem to find the answer. >What is the reason for this, and where should I have looked for it? I quickly scanned my archives, didn't find anything about string limits, but found the following. I've no idea whether Vladimir's observation still applies. -----Original message----- Von: Vladimir Tzankov [mailto:vtz...@gm...] Gesendet: Mittwoch, 29. Februar 2012 15:38 To: CLisp Development List Subject: problem with ARRAY-DIMENSION-LIMIT on 64 bit builds with HEAPCODES (e.g. OSX) On 64 bit OSX clisp uses HEAPCODES and encodes VRECORDs length with 24 bits. However since it is 64 bit system arraysize_limit_1 is defined as: ((uintV)(vbitm(intLsize)-1)) and ARRAY-DIMENSION-LIMIT is 4294967296. As a result creating vector with more than 2^24 elements will cause segfault on next garbage collection. Affected are also large hashtables - they create internally vectors and check sizes directly against "vbitm(oint_data_len)-1" not arraysize_limit_1. I guess every 64 bit build with HEAPCODES will experience the same problem. What is the best way to fix this? ----- Regards, Jörg |