![Nick Alexander](/assets/img/avatar_default.png)
There are few reasons to do this: - it's difficult to add symbol interning to combine-based parsers like tx-parser -- literally every type changes to reflect the interner, and that means every convenience macro we've built needs to chagne. It's trivial to add interning to rust-peg-based parsers. - combine has rolled forward to 3.2, and I spent a similar amount of time investigating how to upgrade tx-parser (to take advantage of the new parser! macros in combine that I think are necessary for adapting to changing types) as I did just converting to rust-peg. - it's easy to improve the error messages in rust-peg, where-as I have tried twice to improve the nested error messages in combine and am stumped. - it's roughly 4x faster to parse strings directly as opposed to edn::ValueAndSpan, and it'll be even better when we intern directly.
37 lines
624 B
TOML
37 lines
624 B
TOML
[package]
|
|
name = "mentat_db"
|
|
version = "0.0.1"
|
|
workspace = ".."
|
|
|
|
[dependencies]
|
|
error-chain = { git = "https://github.com/rnewman/error-chain", branch = "rnewman/sync" }
|
|
indexmap = "1"
|
|
itertools = "0.7"
|
|
lazy_static = "0.2"
|
|
log = "0.4"
|
|
num = "0.1"
|
|
ordered-float = "0.5"
|
|
time = "0.1"
|
|
|
|
[dependencies.rusqlite]
|
|
version = "0.13"
|
|
features = ["limits"]
|
|
|
|
[dependencies.edn]
|
|
path = "../edn"
|
|
|
|
[dependencies.mentat_core]
|
|
path = "../core"
|
|
|
|
[dependencies.mentat_sql]
|
|
path = "../sql"
|
|
|
|
[dependencies.mentat_tx]
|
|
path = "../tx"
|
|
|
|
# Should be dev-dependencies.
|
|
[dependencies.tabwriter]
|
|
version = "1.0.3"
|
|
|
|
[dev-dependencies]
|
|
env_logger = "0.5"
|