From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.5-pre1 (2020-06-20) on ip-172-31-74-118.ec2.internal X-Spam-Level: X-Spam-Status: No, score=-1.9 required=3.0 tests=BAYES_00,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.5-pre1 X-Received: by 2002:a37:6116:: with SMTP id v22mr4921961qkb.38.1613031565641; Thu, 11 Feb 2021 00:19:25 -0800 (PST) X-Received: by 2002:a25:738d:: with SMTP id o135mr10032453ybc.303.1613031565304; Thu, 11 Feb 2021 00:19:25 -0800 (PST) Path: eternal-september.org!reader02.eternal-september.org!news.mixmin.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Thu, 11 Feb 2021 00:19:25 -0800 (PST) In-Reply-To: Complaints-To: groups-abuse@google.com Injection-Info: google-groups.googlegroups.com; posting-host=87.88.29.208; posting-account=6yLzewoAAABoisbSsCJH1SPMc9UrfXBH NNTP-Posting-Host: 87.88.29.208 References: User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <23472fd3-fe53-4935-84b8-f66a6aa60cfbn@googlegroups.com> Subject: Re: [ANN] UXStrings package available (UXS_20210207). From: Emmanuel Briot Injection-Date: Thu, 11 Feb 2021 08:19:25 +0000 Content-Type: text/plain; charset="UTF-8" Xref: reader02.eternal-september.org comp.lang.ada:61344 List-Id: 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 took a look at VSS and find the API confusing. Your API UXString is at least much clearer (if lacking doc at the moment :-) 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. Emmanuel