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 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.

 

 

Reply via email to