Re: max string size

[email protected] (Don Cohen) Tue, 26 Nov 2024 15:44:19 +0000
Newsgroups gmane.lisp.clisp.devel
Message-ID <[email protected]>
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.


_______________________________________________
clisp-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/clisp-devel