From: <don...@is...> - 2024-11-26 15:44:30
|
Bruno Haible writes: > > whether there's an easy way to fix the issues reported in > > https://sourceforge.net/p/clisp/mailman/message/58728542/ > > array-dimension-limit is for general arrays. I didn't realize strings were special in this sense -- are there other special kinds of arrays with limits smaller than the general case? So one possibility would be to store something other than characters in the arrays, like char-codes of the characters. > The error message > *** - string too long: desired length 4194304 exceeds the supported maximum length > comes from this limit: > > #ifdef TYPECODES > #define stringsize_limit_1 ((uintL)(bit(intLsize-6)-1)) > #else > #define stringsize_limit_1 ((uintL)(bit(intLsize-10)-1)) > #endif So TYPECODES must be false. If it were true then the limit would be 16x higher. I gather TYPECODES is controlled by some build options? Impnotes seems to say there are several different ways to get different combinations including typecodes, but I can't tell from that which build options are available for this platform and what other negative (or positive) consequences would result from each. > The smaller of these limits is 2^22-1, that is, > 4 millions. > This is a good compromise of space (and thus speed) for functionality. What's the difference between ampere and intel that leads to this difference? on Ampere cat /proc/cpuinfo processor : 0 BogoMIPS : 50.00 Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp ssbs CPU implementer : 0x41 CPU architecture: 8 CPU variant : 0x3 CPU part : 0xd0c CPU revision : 1 and *features* (:READLINE :REGEXP :WILDCARD :SYSCALLS :I18N :LOOP :COMPILER :CLOS :MOP :CLISP :ANSI-CL :COMMON-LISP :LISP=CL :INTERPRETER :LOGICAL-PATHNAMES :SOCKETS :GENERIC-STREAMS :SCREEN :FFI :GETTEXT :UNICODE :BASE-CHAR=CHARACTER :WORD-SIZE=64 :UNIX) > If you need larger data structures, use arrays of arrays or arrays of strings. not so convenient for adjustable arrays I'm looking for alternatives to that approach. Using a different machine seems to be another possibility. |