> On Oct 13, 2021, at 9:08 AM, Alan M. Carroll <a...@apache.org> wrote:
>
> Libswoc (https://github.com/solidwallofcode/libswoc), "Solid Wall Of C++"
> library, is a collection of C++ utility classes. They are based on existing
> ATS core classes, except for Lexicon. Documentation is available here -
> http://docs.solidwallofcode.com/libswoc.
>
>
>
> The correspondence is
>
>
>
> swoc_meta ts_meta
>
> BufferWriter BufferWriter
>
> Errata Errata
>
> IntrusiveDList IntrusiveDList
>
> IntrusiveHashMap IntrusiveHashMap
>
> MemSpan MemSpan
>
> MemArena MemArena
>
> Scalar Scalar
>
> swoc_file ts_file
>
> TextView TextView
>
> IPSpace IPMap
>
> Lexicon *
>
>
>
> A major issue is these have undergone roughly 2 years of intensive
> development and therefore can be significantly different from the ATS
> versions. In particular, IPSpace is a far more general IP address based
> container than IPMap. TextView, Errata, and BufferWriter are much improved
> and no longer source compatible (TextView especially as I took the
> opportunity to organize and structure the method names). Libswoc is also used
> by a couple of Yahoo! internal projects and may need to be maintained as a
> distinct library for that reason.
>
>
>
> My recommendation is to treat libswoc the same way as libyaml-cpp. Drop it in
> to the source tree, update the version as needed. Libswoc development has
> wound down - the goal was to provide an updated version of some basic ATS
> utilities and that's done. There's a bit more work to do on BufferWriter but
> that's all internal (no API changes). Over time I would replace use of the
> existing
I’m ok with all this, except the “update as needed” statement. We will need a
much more rigid path:
1. Security and serious crash fixes in libswoc will be addressed with an
LTS major release.
2. We *only* update libswoc with new features etc. on every major ATS
Version.
Having had to work with autest as an external dependency has been rather
painful both on the CI and on keeping the LTS trees updated and stable. So, as
long as we can agree to treat libswoc like a stable, untouchable (except above)
thing within each LTS version, I’m ok. This is exactly how we deal with other
such dependencies as well.
— Leif
> core classes with the updated version. In some cases, such as MemSpan, this
> will be trivial. For others, such as TextView, it will be a bit more
> challenging. I hope to use Lexicon in a number of places - it is a
> bidirectional container of integral values to string views, designed to
> support translating between enumerations and names. This will help clean up
> some of the ugliness in the configuration parsing. I would also note the
> quality of the documentation for these core utilities is somewhat better than
> for the current core classes.
>
>
>
>
>