153efea5cSLisandro DalcinThis directory contains a partial and slightly modified copy of 253efea5cSLisandro Dalcin(LibYAML)[https://pyyaml.org/wiki/LibYAML] sources corresponding to 353efea5cSLisandro Dalcinrelease 0.2.5. A copy of the LibYAML [license](License) is also included. 453efea5cSLisandro Dalcin 5*a95bf149SBarry SmithThe source files are not compiled directly into the PETSc library. Rather they 6*a95bf149SBarry Smithare included in src/sys/objects/optionsyaml.c as static functions so they do not 7*a95bf149SBarry Smithpollute the public symbolic name space. 8*a95bf149SBarry Smith 953efea5cSLisandro DalcinA list of the modifications follow: 1053efea5cSLisandro Dalcin 1153efea5cSLisandro Dalcin* The emitter API and other output-related parts have been removed, 1253efea5cSLisandro Dalcin as we are only interested in the input-related parts. 1353efea5cSLisandro Dalcin* `yaml_get_version()` and `yaml_get_version_string()` have been 1453efea5cSLisandro Dalcin removed, as we do not need them. 1553efea5cSLisandro Dalcin* The constant `0` as been replaced by `NULL` in a few places to 1653efea5cSLisandro Dalcin silence `-Wzero-as-null-pointer-constant` when using C++ compilers. 1753efea5cSLisandro Dalcin* The macro `YAML_DECLARE()` in `yaml.h` has been modified to specify 1853efea5cSLisandro Dalcin `static` visibility for all LibYAML symbols. 1953efea5cSLisandro Dalcin 2053efea5cSLisandro DalcinThanks to the exceptionally good source code organization in LibYAML, 2153efea5cSLisandro Dalcinthe removals and minor modifications occur in large contiguous blocks 2253efea5cSLisandro Dalcinof code. This will make it quite easy to merge back upstream changes 2353efea5cSLisandro Dalcinto keep this copy properly synchronized and maintained, or even 2453efea5cSLisandro Dalcinincorporate some of the removed features if such need ever arises. We 2553efea5cSLisandro Dalcinrecommend using a merge tool like [`meld`](https://meldmerge.org/) to 2653efea5cSLisandro Dalcinperform these future maintenance updates. 27