Re: max string size

Bruno Haible via clisp-devel <[email protected]> Tue, 26 Nov 2024 17:02:40 +0100
Newsgroups gmane.lisp.clisp.devel
Message-ID <6168789.0Yv95xG114@nimes>
Don Cohen wrote:
>  > array-dimension-limit is for general arrays.
> 
> I didn't realize strings were special in this sense -- 

You are aware that the string-specific limit is only minimally
smaller than the general array-dimension-limit?

> are there other special kinds of arrays with limits smaller than
> the general case?

Possibly bit-vectors; I don't remember.

> So one possibility would be to store something other than characters
> in the arrays, like char-codes of the characters.

I wouldn't recommend that. strings are optimized (vector character);
you would quite certainly lose some performance on the way.

>  > 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.

Correct. Generally you should go with the default for the particular
platform. IIRC, there are even platforms where TYPECODES does not
work at all.

>  > 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?

TYPECODES vs. not TYPECODES, I would guess?

Bruno





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