From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: State of the compiler market
Date: Fri, 30 Jun 2017 10:10:01 +0200
Date: 2017-06-30T10:10:01+02:00 [thread overview]
Message-ID: <oj510o$1e0d$1@gioia.aioe.org> (raw)
In-Reply-To: oj4unh$9nt$1@dont-email.me
On 30/06/2017 09:34, J-P. Rosen wrote:
> Le 30/06/2017 à 09:18, Dmitry A. Kazakov a écrit :
>> Encoding must be a part of the string type. This is essential for
>> dealing with OS/API bindings. E.g. an UTF-8 string must provide a view
>> of an array of octets (for OS/API calls) and a view of an array of code
>> points (for the application). The second view must constitute a class.
>> We don't need explicit conversions between string types.
>>
> This is your opinion. I don't see why it must constitute a class.
Because there is no reason to have exponentially exploding number of
To_XXX_String functions. Semantically all strings are chains of code points.
> I tend
> to use the simplest structure available for my need, hence avoid tagged
> types unless they are the most appropriate structure.
A type need not to be tagged in order to have a class. Different string
types have different representations anyway. There is no sense to put a
tag in there, that will not make view conversion work. The tag will be
in the String'Class only.
> Moreover, encodings are useful only at the boundary between the
> application and the external world, internal processing should use the
> internal form, i.e. characters (characters are the abstract notion to
> which a code point is associated). Therefore, conversions at the
> boundary seem quite appropriate
True, however for performance reasons many applications tend to deal
with UTF-8 octets rather than with code points. I doubt anybody uses
characters at all.
>> But the point is that the language should not have string types at all.
>> The type system should be capable to define things as described above at
>> the library level.
> Then you should be happy. There is absolutely no magic about String in
> Ada (as opposed to most other languages), and string types ARE simply
> defined in a package (namely Standard). They are known to the compiler
> only for attributes that return a string type.
The magic is called array. You have to use magic spell "type ... is
array (...) of ..." with severe limitation coming with.
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
next prev parent reply other threads:[~2017-06-30 8:10 UTC|newest]
Thread overview: 82+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-23 0:26 State of the compiler market john
2017-02-23 3:17 ` Luke A. Guest
2017-02-23 5:16 ` Per Sandberg
2017-02-23 6:01 ` gautier_niouzes
2017-02-23 9:01 ` joakimds
2017-02-23 18:03 ` Jeffrey R. Carter
2017-02-24 9:23 ` Per Sandberg
2017-02-24 9:32 ` Paul Rubin
2017-02-23 21:22 ` Randy Brukardt
2017-02-24 16:36 ` john
2017-02-25 10:48 ` Ingo M.
2017-02-25 11:07 ` Jeffrey R. Carter
2017-02-25 14:25 ` Ingo M.
2017-02-25 17:30 ` Jeffrey R. Carter
2017-02-25 11:29 ` Dmitry A. Kazakov
2017-02-25 13:46 ` G.B.
2017-02-25 14:46 ` Ingo M.
2017-02-25 15:21 ` Dmitry A. Kazakov
2017-02-25 15:49 ` Ingo M.
2017-02-25 16:11 ` Dmitry A. Kazakov
2017-02-25 19:03 ` G.B.
2017-02-26 0:11 ` Luke A. Guest
2017-02-26 8:44 ` Dmitry A. Kazakov
2017-02-26 0:20 ` Luke A. Guest
2017-02-26 2:26 ` Randy Brukardt
2017-02-26 9:14 ` Paul Rubin
2017-02-26 17:35 ` antispam
2017-02-26 22:32 ` Paul Rubin
2017-02-27 2:38 ` antispam
2017-02-27 2:54 ` Paul Rubin
2017-02-27 3:54 ` antispam
2017-02-28 20:51 ` Randy Brukardt
2017-02-28 21:29 ` Luke A. Guest
2017-03-01 8:43 ` reinkor
2017-03-01 14:20 ` Adacore and licensing (again), was: " Simon Clubley
2017-03-01 17:02 ` reinert
2017-03-01 18:34 ` Simon Clubley
2017-03-05 19:38 ` Robert Eachus
2017-03-05 23:17 ` Luke A. Guest
2017-03-06 1:12 ` Dennis Lee Bieber
2017-03-06 2:56 ` Robert Eachus
2017-03-07 20:47 ` Simon Clubley
2017-03-08 0:23 ` Lucretia
2017-03-08 10:26 ` Simon Wright
2017-03-01 14:28 ` volkert
2017-03-01 15:01 ` J-P. Rosen
2017-03-01 16:05 ` G.B.
2017-03-06 23:15 ` john
2017-03-07 16:42 ` Dennis Lee Bieber
2017-06-27 8:29 ` Jacob Sparre Andersen
2017-06-28 10:40 ` Lucretia
2017-06-28 11:44 ` Dmitry A. Kazakov
2017-06-28 13:54 ` Luke A. Guest
2017-06-28 14:16 ` Dmitry A. Kazakov
2017-06-29 1:26 ` Shark8
2017-06-29 5:46 ` gautier_niouzes
2017-06-29 11:36 ` Lucretia
2017-06-29 12:23 ` gautier_niouzes
2017-06-29 12:50 ` Dmitry A. Kazakov
2017-06-29 14:47 ` Lucretia
2017-06-29 17:23 ` G.B.
2017-06-29 18:27 ` Jacob Sparre Andersen
2017-06-29 19:04 ` Lucretia
2017-06-29 19:01 ` Lucretia
2017-06-30 5:27 ` J-P. Rosen
2017-06-30 7:18 ` Dmitry A. Kazakov
2017-06-30 7:34 ` J-P. Rosen
2017-06-30 8:10 ` Dmitry A. Kazakov [this message]
2017-06-30 10:10 ` J-P. Rosen
2017-06-30 10:53 ` Dmitry A. Kazakov
2017-06-30 7:51 ` Jacob Sparre Andersen
2017-06-30 8:20 ` Dmitry A. Kazakov
2017-06-30 11:11 ` Lucretia
2017-06-30 11:23 ` Lucretia
2017-06-29 12:57 ` Petter Fryklund
2017-06-30 13:57 ` Alejandro R. Mosteo
2017-06-30 14:19 ` Lucretia
2017-07-01 8:06 ` darkestkhan
2017-07-01 9:17 ` Dmitry A. Kazakov
2017-02-26 10:14 ` Dirk Craeynest
2017-02-27 9:56 ` Ivan Levashev
2017-06-27 8:00 ` Jacob Sparre Andersen
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox