aboutsummaryrefslogtreecommitdiff
path: root/_articles/2020-11-12-durable-persistent-trees-and-parser-combinators-building-a-database.md
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--_articles/2020-11-12-durable-persistent-trees-and-parser-combinators-building-a-database.md9
1 files changed, 6 insertions, 3 deletions
diff --git a/_articles/2020-11-12-durable-persistent-trees-and-parser-combinators-building-a-database.md b/_articles/2020-11-12-durable-persistent-trees-and-parser-combinators-building-a-database.md
index 8d13534..f81a3fb 100644
--- a/_articles/2020-11-12-durable-persistent-trees-and-parser-combinators-building-a-database.md
+++ b/_articles/2020-11-12-durable-persistent-trees-and-parser-combinators-building-a-database.md
@@ -199,16 +199,20 @@ adapt it to emit the metadata.
The alternative that rust-ffi implements relies on internals of the Rust
compiler, which isn't actually worst, just less common and less accepted.
-I've started a fork of cbindgen: [x-bindgen][x-bindgen-repo]. Right now it is
+I've started a fork of cbindgen: ~~x-bindgen~~[^x-bindgen]. Right now it is
just a copy of cbindgen verbatim, and I plan to remove all C and C++ emitting
code from it, and add a IR emitting code instead.
+[^x-bindgen]: *EDIT*: now archived, the experimentation was fun. I've started to move more towards C, so this effort became deprecated.
+
When starting working on x-bindgen, I realized I didn't know what to look for in
a header file, as I haven't written any C code in many years. So as I was
writing [libedn][libedn-repo], I didn't know how to build a good C API to
expose. So I tried porting the code to C, and right now I'm working on building
a *good* C API for a JSON parser using parser combinators:
-~~ParsecC~~ *EDIT*: now archived, the experimentation was fun.
+~~ParsecC~~ [^parsecc].
+
+[^parsecc]: *EDIT*: now also archived.
After "finishing" ParsecC I'll have a good notion of what a good C API is, and
I'll have a better direction towards how to expose code from libedn to other
@@ -220,7 +224,6 @@ and property-based testing for libedn.
[cbindgen-crate]: https://github.com/eqrion/cbindgen
[syn-crate]: https://github.com/dtolnay/syn
[rust-ffi]: https://blog.eqrion.net/future-directions-for-cbindgen/
-[x-bindgen-repo]: https://git.euandreh.xyz/x-bindgen/
[libedn-repo]: https://git.euandreh.xyz/libedn/
## Conclusion