Re: 2GB limitation

Liste des GroupesRevenir à cl tcl 
Sujet : Re: 2GB limitation
De : avl (at) *nospam* logic.at (Andreas Leitgeb)
Groupes : comp.lang.tcl
Date : 24. Jul 2024, 17:22:53
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <slrnva2ait.1l9n7.avl@logic.at>
References : 1 2 3 4
User-Agent : slrn/1.0.3 (Linux)
Emiliano <emiliano@example.invalid> wrote:
In 9.0 the type of the 'length' member of the Tcl_Obj struct (the number of
bytes at '*bytes' member, not including the terminating null) has changed
from int to ptrdiff_t, so it will remain (1<<31)-1 => 2147483647 bytes on
32 bit platforms (unsurprisingly) and (1<<63)-1 => 9223372036854775807
(9,22 exabyte) on 64 bit platforms.

My hearsay was "generally 64 bit (minus the sign-bit)".
Are you sure that length-type is *always* ptrdiff_t, and
that this may be 32bit?

The "64bit'ness" of a platform is also a bit more complicated...
There are platforms, where pointers are 64bit, but ints are
still 32 (despite machine words being all 64bit) - in those
cases, I'd expect ptrdiff_t to be 64 bit, but on a real old
32bit machine, I don't really know for sure...

IIUC that's also the (new) number of elements for a Tcl list.
In practice the number will be less, since the length of the
string representation of such list will hit the '*bytes' max
length first.

Not all lists are ever turned to string-rep.  While they are
semantically "just strings", well written programs can avoid
the actual obtainment of the string rep, at least for those
really long lists that may be relevant here.


Date Sujet#  Auteur
22 Jul 24 * 2GB limitation8alexandru
22 Jul 24 `* Re: 2GB limitation7Andreas Leitgeb
22 Jul 24  +- Re: 2GB limitation1alexandru
22 Jul 24  `* Re: 2GB limitation5Rich
23 Jul 24   +* Re: 2GB limitation3Emiliano
24 Jul 24   i`* Re: 2GB limitation2Andreas Leitgeb
24 Jul 24   i `- Re: 2GB limitation1Emiliano
24 Jul 24   `- Re: 2GB limitation1Harald Oehlmann

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal