Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2022-01-28 | Add custom allocator support | David Robillard | 1 | -1/+3 | |
2022-01-28 | Fix handling of deferred write errors that happen when closing | David Robillard | 1 | -0/+6 | |
2022-01-28 | Add "contextual" output option | David Robillard | 1 | -0/+8 | |
This is mainly for developer or power-user cases, where one wants to look at some data for investigation or debugging. In such cases, it's common for the set of prefixes to be implicitly known (because they are baked in to the application, for example), so printing them just produces a large amount of redundant noise. That said, it can also be useful programmatically, because it allows several snippets to be written independently and ultimately concatenated (with a header to define the prefixes) without redundancy. | |||||
2022-01-28 | Simplify input stream API | David Robillard | 1 | -1/+0 | |
More or less the same rationale as the previous commit, but for reading. This makes for nice symmetry with writing, at the cost of a slightly more annoying reader interface since the source doesn't know its block size or name. | |||||
2022-01-28 | Simplify output stream API | David Robillard | 1 | -1/+0 | |
This makes the paging mechanism an internal detail once again. While it's conceptually elegant to simply have a single write interface and have the block dumper just be another implementation of that, unfortunately it is not practical. The inlining of serd_block_dumper_write() is a significant performance boost, because it avoids a non-inlinable function call of overhead per character. Compared to the SerdByteSink approach, this removes the burden and overhead of needing to dynamically allocate the structure itself. | |||||
2022-01-28 | Fix pretty-printing nested empty lists and add test suite | David Robillard | 1 | -0/+2 | |
The earlier "test" was just hitting the code without actually checking the output. This new suite is a set of pretty-printed documents which serd must reproduce from a model exactly to pass. This should make it easy to add cases in the future, since each case is just a document, as it should look. | |||||
2022-01-28 | Make tools read stdin by default | David Robillard | 1 | -22/+0 | |
2022-01-28 | Replace serdi with more fine-grained tools | David Robillard | 1 | -104/+289 | |
Especially with the new functionality, the complexity of the command-line interface alone was really becoming unmanageable. The serdi implementation also had the highest cyclomatic complexity of the entire codebase by a huge margin. So, take a page from the Unix philosophy and split serdi into several more finely-honed tools that can be freely composed. Though there is still unfortunately quite a bit of option overlap between them due to the common details of reading RDF, I think the resulting tools are a lot easier to understand, both from a user and a developer perspective. | |||||
2022-01-28 | Split up test suite build definitions | David Robillard | 1 | -84/+13 | |
2022-01-28 | Collapse input and output options into a single flag | David Robillard | 1 | -4/+5 | |
2022-01-28 | Move serdi to tools subdirectory | David Robillard | 1 | -1/+1 | |
This separates the command-line tool code from the library implementation. | |||||
2022-01-28 | Replace serdi -b and -e options with a block size option | David Robillard | 1 | -6/+4 | |
This is more powerful, and reduces the number of command line options that almost nobody needs to care about. | |||||
2022-01-14 | Add statement filtering | David Robillard | 1 | -0/+18 | |
2022-01-14 | Add support for converting literals to canonical form | David Robillard | 1 | -0/+8 | |
2022-01-14 | Add model | David Robillard | 1 | -0/+2 | |
2022-01-14 | Add serd_node_from_syntax() and serd_node_to_syntax() | David Robillard | 1 | -0/+1 | |
2022-01-14 | Add extensible logging API | David Robillard | 1 | -0/+19 | |
2022-01-13 | Add support for parsing variables | David Robillard | 1 | -0/+8 | |
This adds a reader flag and serdi option for extending a syntax with support for SPARQL-like variables, for storing things like patterns or simple queries. | |||||
2022-01-13 | Make Reader always read from a ByteSource | David Robillard | 1 | -4/+12 | |
2022-01-13 | Add support for reading multiple files at once | David Robillard | 1 | -0/+5 | |
2022-01-13 | Simplify handling of input string arguments | David Robillard | 1 | -0/+1 | |
2022-01-13 | Add input base URI option | David Robillard | 1 | -0/+1 | |
2022-01-13 | Split out simple reader unit tests | David Robillard | 1 | -0/+1 | |
2022-01-13 | Make Writer always write to a ByteSink | David Robillard | 1 | -0/+9 | |
2022-01-13 | Add empty syntax type for suppressing output | David Robillard | 1 | -0/+9 | |
2022-01-13 | Add support for writing terse collections | David Robillard | 1 | -1/+12 | |
2022-01-13 | Simplify writer style options | David Robillard | 1 | -3/+0 | |
2022-01-13 | Add SerdNodes for storing a cache of interned nodes | David Robillard | 1 | -0/+1 | |
2022-01-13 | Add SerdStatement | David Robillard | 1 | -0/+1 | |
2022-01-13 | Add SerdCaret | David Robillard | 1 | -0/+1 | |
2022-01-13 | Add serd_world_get_blank() | David Robillard | 1 | -0/+1 | |
2022-01-13 | Use exess for reading and writing numeric and binary literals | David Robillard | 1 | -3/+29 | |
2022-01-13 | Improve reader error handling | David Robillard | 1 | -0/+1 | |
2022-01-13 | Use a fixed-size reader stack | David Robillard | 1 | -1/+5 | |
2022-01-13 | Add SerdSink interface and hide implementations | David Robillard | 1 | -0/+1 | |
2022-01-13 | Simplify URI API and implementation | David Robillard | 1 | -1/+1 | |
2022-01-13 | Switch to Meson | David Robillard | 1 | -0/+184 | |