Re: python text, Byte Addressability And Beyond

Liste des GroupesRevenir à c arch 
Sujet : Re: python text, Byte Addressability And Beyond
De : anton (at) *nospam* mips.complang.tuwien.ac.at (Anton Ertl)
Groupes : comp.arch
Date : 12. May 2024, 07:40:45
Autres entêtes
Organisation : Institut fuer Computersprachen, Technische Universitaet Wien
Message-ID : <2024May12.074045@mips.complang.tuwien.ac.at>
References : 1 2 3 4 5
User-Agent : xrn 10.11
John Levine <johnl@taugh.com> writes:
Python3 has a complex internal string format that stores each string
as 1, 2, or 4 byte values, depending on what the contents of the
string are, so ASCII is one byte, UCS-2 is two bytes, and strings that
contain code points beyond UCS-2 are four bytes. It's not clear how
hard they try to shrink stuff down when taking substrings.
>
https://peps.python.org/pep-0393/

This is a nice demonstration of the unnecessary complexity that the
codepoint mistake leads to.  In the general case they can have three
representations of the same string: wstr, utf8, and data; only one of
them needs to be non-NULL, and data is canonical if it is non-NULL
(not sure what is canonical if wstr and utf8 are present but data is
not).  If data is in latin1 format, but not ASCII, outputting both
UTF-8 and UTF-16 needs conversion (it's just 8bit->16bit expansion in
the UTF-16 case, but that means that a fast block copy is
insufficient).  On top of that, they specify both zero termination and
length indicators: length, utf8_length and wstr_length.

Of course Python3 has baked this mistake into their API, and once
software has been written for that API, the complexity becomes
necessary.

But if they had decided to just store the data as UTF-8 and use byte
indexes and lengths in their API, and adjusted the rest of their API
accordingly, they could have avoided this complexity and inefficiency,
and only palindrome and anagram programs that limit themselves to
character=codepoint would have become harder to write.

Python lets you subscript strings either individual items or
substrings, and I have written a fair amount of code that does that. I
realize that if I were doing semantic processing on Greek or Arabic, I
would not be subscripting and expecting it to return straightforwardly
useful results.

I don't doubt that the API works, it just leads to unnecessary
complexity in the implementation.

The string structure has a field for the length of the string in
UTF-8, but they don't seem to use it for anything, at least not yet,

My understanding from the PEP is that they use it for specifying the
length of the utf8 representation; of course, they also use zero
termination, so if the utf8 field is only passed to functions that use
zero-termination, the utf8_length field is not used.  Given that, as
soon as data has been initialized, the contents of the utf8 and wstr
fields are no longer used (they are not canonical), I expect that the
only function that is called for the utf8 field is that for converting
from utf8 to the data form.

- anton
--
'Anyone trying for "industrial quality" ISA should avoid undefined behavior.'
  Mitch Alsup, <c17fcd89-f024-40e7-a594-88a85ac10d20o@googlegroups.com>

Date Sujet#  Auteur
1 May 24 * Byte Addressability And Beyond590Lawrence D'Oliveiro
1 May 24 +* Re: Byte Addressability And Beyond431John Levine
1 May 24 i+* Re: Byte Addressability And Beyond409Lawrence D'Oliveiro
1 May 24 ii+* Re: Byte Addressability And Beyond3John Levine
1 May 24 iii+- Re: Byte Addressability And Beyond1John Levine
1 May 24 iii`- Re: Byte Addressability And Beyond1Lawrence D'Oliveiro
1 May 24 ii+- Re: Byte Addressability And Beyond1Michael S
1 May 24 ii`* Re: Byte Addressability And Beyond404John Levine
2 May 24 ii +* Re: Byte Addressability And Beyond382Lawrence D'Oliveiro
2 May 24 ii i+* Re: Byte Addressability And Beyond4John Levine
2 May 24 ii ii`* Re: Byte Addressability And Beyond3Lawrence D'Oliveiro
2 May 24 ii ii `* Re: Byte Addressability And Beyond2John Levine
5 May 24 ii ii  `- Re: Byte Addressability And Beyond1Lawrence D'Oliveiro
2 May 24 ii i+* Re: Byte Addressability And Beyond367John Savard
2 May 24 ii ii+* Re: Byte Addressability And Beyond2MitchAlsup1
11 May 24 ii iii`- Re: Byte Addressability And Beyond1John Savard
4 May 24 ii ii`* Re: Byte Addressability And Beyond364Lawrence D'Oliveiro
8 May 24 ii ii `* Re: Byte Addressability And Beyond363John Savard
8 May 24 ii ii  +* Re: Byte Addressability And Beyond2Lawrence D'Oliveiro
10 May 24 ii ii  i`- Re: Byte Addressability And Beyond1David Brown
8 May 24 ii ii  `* Re: Byte Addressability And Beyond360MitchAlsup1
8 May 24 ii ii   `* Re: Byte Addressability And Beyond359John Levine
8 May 24 ii ii    +* Re: Byte Addressability And Beyond357Lawrence D'Oliveiro
9 May 24 ii ii    i`* Re: Byte Addressability And Beyond356John Levine
10 May 24 ii ii    i +* Re: Byte Addressability And Beyond354David Brown
10 May 24 ii ii    i i`* Re: Byte Addressability And Beyond353Anton Ertl
11 May 24 ii ii    i i `* Re: Byte Addressability And Beyond352David Brown
11 May 24 ii ii    i i  `* Re: Byte Addressability And Beyond351Anton Ertl
11 May 24 ii ii    i i   +* Re: Byte Addressability And Beyond158David Brown
11 May 24 ii ii    i i   i+- Re: Byte Addressability And Beyond1Anton Ertl
27 May 24 ii ii    i i   i`* Re: Byte Addressability And Beyond156Lawrence D'Oliveiro
27 May 24 ii ii    i i   i `* Re: Byte Addressability And Beyond155John Levine
27 May 24 ii ii    i i   i  `* Re: Byte Addressability And Beyond154Lawrence D'Oliveiro
27 May 24 ii ii    i i   i   `* Re: Byte Addressability And Beyond153John Levine
27 May 24 ii ii    i i   i    +* Re: Byte Addressability And Beyond149John Levine
27 May 24 ii ii    i i   i    i+- Re: Byte Addressability And Beyond1MitchAlsup1
28 May 24 ii ii    i i   i    i`* Re: Byte Addressability And Beyond147Lawrence D'Oliveiro
28 May 24 ii ii    i i   i    i +- Re: encoding conversion, Byte Addressability And Beyond1John Levine
28 May 24 ii ii    i i   i    i `* Re: Byte Addressability And Beyond145Thomas Koenig
29 May 24 ii ii    i i   i    i  +* Re: Byte Addressability And Beyond137Lawrence D'Oliveiro
29 May 24 ii ii    i i   i    i  i`* Re: Byte Addressability And Beyond136Anton Ertl
29 May 24 ii ii    i i   i    i  i +* Re: Byte Addressability And Beyond12Stefan Monnier
29 May 24 ii ii    i i   i    i  i i+* Re: Byte Addressability And Beyond10Stefan Monnier
29 May 24 ii ii    i i   i    i  i ii+* Re: Byte Addressability And Beyond3John Levine
30 May 24 ii ii    i i   i    i  i iii`* Re: Byte Addressability And Beyond2George Neuner
4 Jun 24 ii ii    i i   i    i  i iii `- Re: Byte Addressability And Beyond1George Neuner
30 May 24 ii ii    i i   i    i  i ii`* Re: Byte Addressability And Beyond6Anton Ertl
4 Jun 24 ii ii    i i   i    i  i ii +- Re: Byte Addressability And Beyond1Lawrence D'Oliveiro
4 Jun 24 ii ii    i i   i    i  i ii `* Re: Byte Addressability And Beyond4Stefan Monnier
7 Jun 24 ii ii    i i   i    i  i ii  +- Re: Byte Addressability And Beyond1Terje Mathisen
7 Jun 24 ii ii    i i   i    i  i ii  `* Re: Character non-equivalence, was Byte Addressability And Beyond2John Levine
9 Jun 24 ii ii    i i   i    i  i ii   `- Re: Character non-equivalence, was Byte Addressability And Beyond1Lawrence D'Oliveiro
30 May 24 ii ii    i i   i    i  i i`- Re: Byte Addressability And Beyond1Lawrence D'Oliveiro
30 May 24 ii ii    i i   i    i  i +* Re: Byte Addressability And Beyond117Lawrence D'Oliveiro
30 May 24 ii ii    i i   i    i  i i+* Re: architectural goals, Byte Addressability And Beyond66John Levine
30 May 24 ii ii    i i   i    i  i ii+- Re: architectural goals, Byte Addressability And Beyond1Stephen Fuld
30 May 24 ii ii    i i   i    i  i ii+* Re: architectural goals, Byte Addressability And Beyond22Anton Ertl
30 May 24 ii ii    i i   i    i  i iii`* Re: architectural goals, Byte Addressability And Beyond21Thomas Koenig
30 May 24 ii ii    i i   i    i  i iii +* Re: architectural goals, Byte Addressability And Beyond8Michael S
30 May 24 ii ii    i i   i    i  i iii i+- Re: architectural goals, Byte Addressability And Beyond1Thomas Koenig
30 May 24 ii ii    i i   i    i  i iii i+* Re: IBM architectural goals, Byte Addressability And Beyond5John Levine
30 May 24 ii ii    i i   i    i  i iii ii+* Re: IBM architectural goals, Byte Addressability And Beyond2Michael S
30 May 24 ii ii    i i   i    i  i iii iii`- Re: IBM architectural goals, Byte Addressability And Beyond1John Levine
30 May 24 ii ii    i i   i    i  i iii ii`* Re: IBM architectural goals, Byte Addressability And Beyond2Thomas Koenig
30 May 24 ii ii    i i   i    i  i iii ii `- Re: IBM architectural goals, Byte Addressability And Beyond1John Levine
30 May 24 ii ii    i i   i    i  i iii i`- Re: architectural goals, Byte Addressability And Beyond1Anton Ertl
30 May 24 ii ii    i i   i    i  i iii +* Re: architectural goals, Byte Addressability And Beyond3Anton Ertl
30 May 24 ii ii    i i   i    i  i iii i+- Re: architectural goals, Byte Addressability And Beyond1John Levine
30 May 24 ii ii    i i   i    i  i iii i`- Re: architectural goals, Byte Addressability And Beyond1Thomas Koenig
31 May 24 ii ii    i i   i    i  i iii +* Re: architectural goals, Byte Addressability And Beyond5Terje Mathisen
1 Jun 24 ii ii    i i   i    i  i iii i`* Re: architectural goals, Byte Addressability And Beyond4Thomas Koenig
1 Jun 24 ii ii    i i   i    i  i iii i `* Re: architectural goals, Byte Addressability And Beyond3Anton Ertl
2 Jun 24 ii ii    i i   i    i  i iii i  `* Re: architectural goals, Byte Addressability And Beyond2John Levine
4 Jun 24 ii ii    i i   i    i  i iii i   `- Re: architectural goals, Byte Addressability And Beyond1Stefan Monnier
4 Jun 24 ii ii    i i   i    i  i iii `* Re: architectural goals, Byte Addressability And Beyond4Lawrence D'Oliveiro
4 Jun 24 ii ii    i i   i    i  i iii  +- Re: architectural goals, Byte Addressability And Beyond1MitchAlsup1
4 Jun 24 ii ii    i i   i    i  i iii  +- Re: architectural goals, Byte Addressability And Beyond1Lynn Wheeler
4 Jun 24 ii ii    i i   i    i  i iii  `- Re: architectural goals, Byte Addressability And Beyond1Stefan Monnier
31 May 24 ii ii    i i   i    i  i ii`* Re: architectural goals, Byte Addressability And Beyond42John Savard
31 May 24 ii ii    i i   i    i  i ii `* Re: architectural goals, Byte Addressability And Beyond41John Levine
1 Jun 24 ii ii    i i   i    i  i ii  +* Re: architectural goals, Byte Addressability And Beyond31John Savard
1 Jun 24 ii ii    i i   i    i  i ii  i+* Re: architectural goals, Byte Addressability And Beyond20Thomas Koenig
2 Jun 24 ii ii    i i   i    i  i ii  ii+* Re: architectural goals, Byte Addressability And Beyond6John Savard
2 Jun 24 ii ii    i i   i    i  i ii  iii`* Re: architectural goals, Byte Addressability And Beyond5Thomas Koenig
2 Jun 24 ii ii    i i   i    i  i ii  iii +* Re: architectural goals, Byte Addressability And Beyond3John Levine
3 Jun 24 ii ii    i i   i    i  i ii  iii i`* Re: architectural goals, Byte Addressability And Beyond2OrangeFish
3 Jun 24 ii ii    i i   i    i  i ii  iii i `- Re: architectural goals, Byte Addressability And Beyond1John Levine
4 Jun 24 ii ii    i i   i    i  i ii  iii `- Re: architectural goals, Byte Addressability And Beyond1Lawrence D'Oliveiro
4 Jun 24 ii ii    i i   i    i  i ii  ii`* Re: architectural goals, Byte Addressability And Beyond13Lawrence D'Oliveiro
5 Jun 24 ii ii    i i   i    i  i ii  ii `* Re: architectural goals, Byte Addressability And Beyond12Lawrence D'Oliveiro
5 Jun 24 ii ii    i i   i    i  i ii  ii  +- Re: architectural goals, Byte Addressability And Beyond1Lawrence D'Oliveiro
6 Jun 24 ii ii    i i   i    i  i ii  ii  `* Re: architectural goals, Byte Addressability And Beyond10George Neuner
6 Jun 24 ii ii    i i   i    i  i ii  ii   +* Re: architectural goals, Byte Addressability And Beyond6John Levine
7 Jun 24 ii ii    i i   i    i  i ii  ii   i+* Re: architectural goals, Byte Addressability And Beyond4Lawrence D'Oliveiro
7 Jun 24 ii ii    i i   i    i  i ii  ii   ii`* Re: architectural goals, Byte Addressability And Beyond3Stephen Fuld
7 Jun 24 ii ii    i i   i    i  i ii  ii   ii `* Re: architectural goals, Byte Addressability And Beyond2Lawrence D'Oliveiro
7 Jun 24 ii ii    i i   i    i  i ii  ii   ii  `- Re: architectural goals, Byte Addressability And Beyond1Stephen Fuld
7 Jun 24 ii ii    i i   i    i  i ii  ii   i`- Re: architectural goals, Byte Addressability And Beyond1Terje Mathisen
6 Jun 24 ii ii    i i   i    i  i ii  ii   +- Re: architectural goals, Byte Addressability And Beyond1Lynn Wheeler
6 Jun 24 ii ii    i i   i    i  i ii  ii   +- Re: architectural goals, Byte Addressability And Beyond1OrangeFish
7 Jun 24 ii ii    i i   i    i  i ii  ii   `- Re: architectural goals, Byte Addressability And Beyond1Lawrence D'Oliveiro
2 Jun 24 ii ii    i i   i    i  i ii  i`* Re: architectural goals, Byte Addressability And Beyond10John Dallman
2 Jun 24 ii ii    i i   i    i  i ii  +- Re: architectural goals, Byte Addressability And Beyond1Michael S
2 Jun 24 ii ii    i i   i    i  i ii  +- Re: architectural goals, Byte Addressability And Beyond1John Dallman
4 Jun 24 ii ii    i i   i    i  i ii  `* Re: architectural goals, Byte Addressability And Beyond7Lawrence D'Oliveiro
30 May 24 ii ii    i i   i    i  i i+* Re: Byte Addressability And Beyond49Stephen Fuld
30 May 24 ii ii    i i   i    i  i i`- Re: Byte Addressability And Beyond1Anton Ertl
30 May 24 ii ii    i i   i    i  i +* Re: Byte Addressability And Beyond2Lawrence D'Oliveiro
30 May 24 ii ii    i i   i    i  i `* Re: Byte Addressability And Beyond4Terje Mathisen
30 May 24 ii ii    i i   i    i  `* Re: Byte Addressability And Beyond7Terje Mathisen
28 May 24 ii ii    i i   i    `* Re: Byte Addressability And Beyond3Lawrence D'Oliveiro
12 May 24 ii ii    i i   +* Re: python text, Byte Addressability And Beyond14John Levine
12 May 24 ii ii    i i   `* Re: Byte Addressability And Beyond178Thomas Koenig
27 May 24 ii ii    i `- Re: Byte Addressability And Beyond1Lawrence D'Oliveiro
8 May 24 ii ii    `- Re: Byte Addressability And Beyond1Michael S
2 May 24 ii i`* Re: Byte Addressability And Beyond10MitchAlsup1
2 May 24 ii +* Re: Byte Addressability And Beyond3Michael S
2 May 24 ii `* Re: Byte Addressability And Beyond18Anton Ertl
1 May 24 i+* Byte Order (was: Byte Addressability And Beyond)4Anton Ertl
1 May 24 i`* Re: Byte Addressability And Beyond17Stefan Monnier
1 May 24 +* Re: Byte Addressability And Beyond40MitchAlsup1
1 May 24 +* Re: Byte Addressability And Beyond15Thomas Koenig
1 May 24 +* Re: Byte Addressability And Beyond3Michael S
2 May 24 +* Re: Byte Addressability And Beyond4Lawrence D'Oliveiro
3 May 24 +* Re: Byte Addressability And Beyond75Anton Ertl
5 May 24 +* Re: Byte Addressability And Beyond20John Savard
5 May 24 `- Re: Byte Addressability And Beyond1John Savard

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal