comp.lang.ada
 help / color / mirror / Atom feed
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


  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