From: Blady <p.p11@orange.fr>
Subject: Re: [ANN] UXStrings package available (UXS_20210207).
Date: Sat, 6 Mar 2021 19:13:24 +0100 [thread overview]
Message-ID: <s20go2$1abe$1@gioia.aioe.org> (raw)
In-Reply-To: s1d2hd$75v$1@gioia.aioe.org
Le 27/02/2021 à 10:14, Blady a écrit :
> Le 11/02/2021 à 09:19, Emmanuel Briot a écrit :
>> There is clearly a need here, given the number of implementations out
>> there. I had also implemented GNATCOLL.Strings 4 years ago, with
>> similar goals to yours:
>> - unicode support (via generic formal parameters and traits
>> packages, so you can use UTF8, UTF16,... internally)
>> - unbounded strings (with optional copy-on-write)
>> - task safety (using traits to chose what kind of counter to use)
>> - performance (small-string optimization: no memory alloc for
>> strings of 18 characters or less)
>> - extended API (all missing subprograms from Ada.Strings.Unbounded)
>> - extensive testing
>>
>> I must admit I am not sure why AdaCore chose to write VSS instead of
>> improving one of their string implementations (ada.strings.unbounded,
>> gnatcoll.strings,...)
>> My initial idea had been that it would be possible to provide a nice
>> generic package, highly configurable via traits, on top of which we
>> could reimplement ada.strings.unbounded,
>> ada.strings.bounded,...) but I left AdaCore before that could be
>> accomplished.
>
> I'm preparing some optimization when the character set is reduced thus
> the internal structure will adapt to the actual content.
> But the memory management is bad, the set of API is very basic.
> I'll be glad that you can help.
>
>> I took a look at VSS and find the API confusing. Your API UXString is
>> at least much clearer (if lacking doc at the moment :-)
>
> Some documentation has been added in a form of comments of each API:
> https://github.com/Blady-Com/UXStrings/commit/2bee0ab61841f5e319533b67d2747dda66aa9bd7#diff-90cde6014508061fab9d62e58b327815a954859e5da8a1fd655fa4e5854e7ac5
>
>> I am hoping that the work on Alire (Ada package manager) will
>> ultimately help us find one implementation that is good enough for
>> everyone,
>> and could ultimately become part of the language.
UXStrings is now available with Alire
(https://alire.ada.dev/crates/uxstrings), in your Alire project, just
add UXStrings dependency:
% alr with uxstrings
Thus you can import the UXStrings package in your programs.
Pascal.
PS: for French readers, while referencing UXStrings on Alire, I make the
opportunity to write a short howto with ALire:
https://blady.pagesperso-orange.fr/a_savoir.html#alire
next prev parent reply other threads:[~2021-03-06 18:13 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-08 11:22 [ANN] UXStrings package available (UXS_20210207) Blady
2021-02-11 8:19 ` Emmanuel Briot
2021-02-27 9:14 ` Blady
2021-03-06 18:13 ` Blady [this message]
2021-04-11 8:45 ` [ANN] UXStrings package available (UXS_20210405) Blady
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox