From: Natasha Kerensikova <lithiumcat@gmail.com>
Subject: Re: Ann: Natools.Chunked_Strings, beta 1
Date: Wed, 30 Nov 2011 13:08:01 +0000 (UTC)
Date: 2011-11-30T13:08:01+00:00 [thread overview]
Message-ID: <slrnjdcal3.1lme.lithiumcat@sigil.instinctive.eu> (raw)
In-Reply-To: op.v5q874xcule2fv@douda-yannick
Hello,
On 2011-11-30, Yannick Duchêne <yannick_duchene@yahoo.fr> wrote:
> Le Tue, 29 Nov 2011 16:37:27 +0100, Pascal Obry <pascal@obry.net> a écrit:
>> Do you have some speed/memory comparison between your Chunked_String and
>> GNAT Unbounded_String?
> Probably not relevant as a generality: depends on string lengths.
Of course, that's why the x-axis of a benchmark graph has to be string
length.
> By the way, I feel the original message is based on erroneous assumptions
> about implementations of Ada.Strings.Unbounded. Nothing in the RM requires
> an implementations to use a single array for unbounded strings, and on the
> opposite, it says `type Unbounded_String is private;`.
That is not true. The only assumption was that in the specific case of
building a somewhat large string through repeated append, an
implementation optimized for that use case would perform better than
Ada.Strings.Unbounded, which is presumably all-purpose. Hence
String_Accumulator interface.
Then it is a fact that GNAT implementation of Ada.Strings.Unbounded is a
single contiguous array that is dynamically resized, and each resize
costs a full copy of the contents (i.e. there is equivalent to C's
realloc() that may resize an array without copy.
Combined with the fact I use GNAT is enough (for me) to justify writing
Natools.Chunked_Strings.
> At least for that reason, I feel this would be even better to stick to the
> exact same interface as the one of Ada.Strings.Unbounded. If that's
> another implementation of Ada.Strings.Unbounded, then, this should expose
> the same interface. This way, the client side could easily use one or the
> other via static polymorphism.
And what exactly is preventing the client side from doing exactly that?
That's what I did in the client packages, through changes similar of
what was described about GNAT.Spitbol.
Natasha
next prev parent reply other threads:[~2011-11-30 13:08 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-29 15:16 Ann: Natools.Chunked_Strings, beta 1 Natasha Kerensikova
2011-11-29 15:37 ` Pascal Obry
2011-11-29 16:34 ` Natasha Kerensikova
2011-11-29 17:08 ` Georg Bauhaus
2011-11-30 9:51 ` Natasha Kerensikova
2011-11-29 20:25 ` Randy Brukardt
2011-11-30 10:44 ` Yannick Duchêne (Hibou57)
2011-11-30 10:39 ` Yannick Duchêne (Hibou57)
2011-11-30 10:57 ` Dmitry A. Kazakov
2011-12-01 0:11 ` Randy Brukardt
2011-12-01 8:30 ` Dmitry A. Kazakov
2011-12-01 23:26 ` Vinzent Hoefler
2011-12-02 8:27 ` Dmitry A. Kazakov
2011-12-02 9:30 ` Georg Bauhaus
2011-12-02 13:11 ` Dmitry A. Kazakov
2011-12-02 0:39 ` Randy Brukardt
2011-12-01 9:02 ` Yannick Duchêne (Hibou57)
2011-11-30 13:08 ` Natasha Kerensikova [this message]
2011-11-30 19:39 ` Jeffrey Carter
2011-12-01 10:57 ` Natasha Kerensikova
2011-12-01 19:07 ` Jeffrey Carter
2011-12-01 21:19 ` Yannick Duchêne (Hibou57)
2011-12-01 22:49 ` Natasha Kerensikova
2011-12-02 16:16 ` Tero Koskinen
2011-12-02 17:36 ` Adam Beneschan
2011-12-02 18:52 ` Tero Koskinen
2011-12-02 18:14 ` Yannick Duchêne (Hibou57)
2011-12-02 19:07 ` Adam Beneschan
2011-11-30 10:33 ` Yannick Duchêne (Hibou57)
2011-11-30 11:04 ` Natasha Kerensikova
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox