Skip to content
Snippets Groups Projects
Select Git revision
  • 23-make-gfs-cdo-directory-configurable
  • devel default
  • 107-compilation-error-when-building-maestro-core-on-m1-apple-processors
  • 108-implement-cpu-id-query-for-apple-m1-hardware
  • 58-scripting-interface-to-maestro-core
  • 101-need-ci-test-using-installed-maestro
  • 57-sphinx-documentation
  • 105-memory-leak-in-pm-message-envelope-handling
  • 104-permit-disabling-memory-pool
  • 103-liberl-installation-issue-on-devel
  • 94-maestro-rdma-transport-ignores-max_msg_size-2
  • main protected
  • 102-possible-race-in-check_pm_redundant_interlock-test
  • 97-check-if-shm-provider-can-be-enabled-after-libfabric-1-14-is-in-our-tree-2
  • 100-include-maestro-attributes-h-cannot-include-mamba-header-from-deps-path
  • 97-check-if-shm-provider-can-be-enabled-after-libfabric-1-14-is-in-our-tree
  • 17-job-failed-282354-needs-update-of-mio-interface-and-build-rules
  • 96-test-libfabric-update-to-1-13-or-1-14
  • feature/stop-telemetry-after-all-left
  • 94-maestro-rdma-transport-ignores-max_msg_size
  • 93-improve-performance-of-mstro_attribute_val_cmp_str
  • v0.3_rc1
  • maestro_d65
  • d65_experiments_20211113
  • v0.2
  • v0.2_rc1
  • d3.3
  • d3.3-review
  • d5.5
  • d5.5-review
  • v0.1
  • d3.2
  • d3.2-draft
  • v0.0
34 results

libcyaml

Utz-Uwe Haus's avatar
Utz-Uwe Haus authored
3fe42a89a Version: Set release flag for libcyaml 1.0.1 release.
dfd2ac4d8 Merge pull request #114 from tlsa/tlsa/v1.0.1-release
b0d16857b Buildsystem: Bump version for v1.0.1 release.
bdb28606f Merge pull request #112 from tlsa/tlsa/type-check
94272f0c1 Tests: Add test for NULL pointer mapping values.
3be7c368a Tests: Fix uint test for NULL pointer values in sequence.
acf52d71d Load: Trivial whitespace fix.
a01510f91 Load: Handle NULL pointer values before doing event type checks.
c606d9c4e Merge pull request #113 from idryzhov/master
a57771d2b Buildsystem: Explicitly create directories needed for installation
e68a9eb4c Merge pull request #111 from tlsa/tlsa/v1-release
c3a2029d0 Buildsystem: Bump version for v1.0.0 release.
2cee4889d Docs: Update documentation of build variants.
be7cdf2d9 Buildsystem: Make default variant depend on VERSION_DEVEL.
b95ac43a3 Load: Squash Clang warning.
3dfef4c22 Docs: Remove status section from README.
2330b962e Merge pull request #109 from tlsa/tlsa/fix-bad-event-string
4d07d4a32 Tests: Add load test for string value with bad YAML data.
5bb470a89 Tests: Add loading test with string value at the top level.
d74f5d909 Load: Ensure that the event type gets validated for the schema type.
5ad2ef7cd Load: Minor code style change.
4fdea52ad Merge pull request #106 from tlsa/tlsa/squash-conversion-warnings
bdcf26698 Buildsystem: Enable -Wconversion.
58a1ad3f2 UTF8: Squash Wconversion warnings.
e47d464bf Save: Squash Wconversion warnings.
2988975ee Load: Squash Wconversion warnings.
bb2750950 Tests: Squash Wconversion warnings.
e593bf2e0 Data: Squash Wconversion warnings.
efe6816b8 Examples: Change type to avoid Wconversion warning.
3751a8ce5 Free: Squash -Wconversion warnings.
108d685f1 Merge pull request #104 from tlsa/tlsa/github-actions
da499b74a README: Update CI badge for change to GitHub Actions.
70e08526f CI: Switch from Travis to GitHub Actions.
16c46157e Merge pull request #102 from tlsa/tlsa/client-logging-context
60234a8af API: Allow client to provide a context pointer for logging.
b52e54a61 API: Fix to cyaml_save_data() documentation.
2b90d8681 Merge pull request #100 from tlsa/tlsa/allow-null-pointer-values
40c790ec9 Tests: Add tests for error handling in saving of NULL pointer values.
6196de87a Tests: Add tests for saving NULL pointer values.
8cc3fc5d5 Tests: Add tests for loading NULL pointer values.
9bb0cc250 Tests: Fix a test for handling of inequal sequence min/max.
a43435a39 Save: Add support for NULL pointer value flag.
27b8e35a8 Load: Add support for NULL pointer value flag.
350e24865 Save: Tiny code tidy.
519da0b34 Load: Fix a comment typo.
4109ccbf8 Util: Add helper function to test bits in value flags.
5ce153943 API: Add value flag to permit pointers to have NULL values.
5eb33f594 Merge pull request #99 from esmil/master
2098f6d83 Makefile: optionally use pkg-config to find libyaml
6f7101839 Merge pull request #95 from tlsa/tlsa/fix-comments
3ca5908a2 Save: Fix some comments.
a7e7087b5 Tests: Fix comment in strdup test.
8237e7080 Docs: Improve LGTM button alt text.
baa34c196 Merge pull request #93 from tlsa/tlsa/anchor-alias
f3f9e8c5c Docs: Mention alias/anchor support in README.
68515b668 Docs: Only need one LGTM button in README.
41bd11858 Tests: Add tests for alias/anchor edge cases.
dae05efeb Tests: Add tests for non-scalar anchors.
4c60be6ab Tests: Add tests for loading with anchored scalars.
55291b582 Tests: Add error handling test for alias to incomplete anchor.
1458f678a Tests: Add error handling test for alias to undefined anchor.
36ff99249 Tests: Make the OOM load test use aliases and anchors.
3dd10c9fa Load: Add support for aliases and anchors.
3a31773d1 API: Add error code for invalid alias.
df2feaef3 Load: Move cyaml_event enum definition.
681361183 Tests: Add test for cyaml_strdup.
c4ec99629 Mem: Add strdup implementation using client allocator.
98dc9648a Load: Store libyaml events in the load context.
9287b956d UTF8: Slight rearrangement of code for coverage.
7ea096710 Tests: Add test for saving to file with error.
48f54fc66 Tests: Do cleanup after failure reason is printed.
3544bff3b API: Add config option for YAML alias support.
88baf4908 API: Fix a few documentation typos.

git-subtree-dir: deps/libcyaml
git-subtree-split: 9099f54d3e298580a228425ea784d9aaf98b8ee5
2226b896
History

LibCYAML: Schema-based YAML parsing and serialisation

Build Status Code Coverage Total alerts Language grade: C/C++

LibCYAML is a C library for reading and writing structured YAML documents. It is written in ISO C11 and licensed under the ISC licence.

Overview

The fundamental idea behind CYAML is to allow applications to construct schemas which describe both the permissible structure of the YAML documents to read/write, and the C data structure(s) in which the loaded data is arranged in memory.

Goals

  • Make it easy to load YAML into client's custom C data structures.
  • Good compromise between flexibility and simplicity.

Features

  • Load, Save and Free functions.
  • Reads and writes arbitrary client data structures.
  • Schema-driven, allowing control over permitted YAML, for example:
    • Required / optional mapping fields.
    • Allowed / disallowed values.
    • Minimum / maximum sequence entry count.
    • etc...
  • Enumerations and flag words.
  • YAML backtraces make it simple for users to fix their YAML to conform to your schema.
  • Uses standard libyaml library for low-level YAML read / write.

Status

Until version 1.0.0 is released, the API and ABI are subject to change. Feedback welcome.

Building

To build the library (debug mode), run:

make

Another debug build variant which is built with address sanitiser (incompatible with valgrind) can be built with:

make VARIANT=san

To build a release version:

make VARIANT=release

Installation

To install a release version of the library, run:

make install VARIANT=release

It will install to the PREFIX /usr/local by default, and it will use DESTDIR and PREFIX from the environment if set.

Testing

To run the tests, run any of the following, which generate various levels of output verbosity (optionally setting VARIANT=release, or VARIANT=san):

make test
make test-quiet
make test-verbose
make test-debug

To run the tests under valgrind, a similar set of targets is available:

make valgrind
make valgrind-quiet
make valgrind-verbose
make valgrind-debug

To generate a test coverage report, gcovr is required:

make coverage

Documentation

To generate both public API documentation, and documentation of CYAML's internals, doxygen is required:

make docs

Alternatively, the read the API documentation directly from the cyaml.h header file.

There is also a tutorial.

Examples

In addition to the documentation, you can study the examples.