Conlang/compiler
John e70ffd1895 cl-structures: Global (ew!) and local string interning!
- StringArena provides an arena for immutable strings, inspired by other string interners, and keeps track of the ends of every allocated string. Strings inserted into the arena are assigned a Symbol.
- intern::Interner keeps track of the hashes of each inserted string, and provides deduplication for interned strings. This allows referential comparison between interned strings
- global_intern::GlobalSym provides metered access to a Global Interner, and has a Display implementation which queries the Interner.

The global interner is planned for use in cl-ast.

TODO: the unstable raw_entry API is about to be removed from Rust. Maybe switch to hashbrown, or write my own hash table?
2024-04-24 17:11:41 -05:00
..
cl-ast cl-ast: Give Path some inherent methods 2024-04-22 21:04:30 -05:00
cl-interpret Revert "Cargo.toml: Add documentation key" 2024-04-22 00:07:44 -05:00
cl-lexer Revert "Cargo.toml: Add documentation key" 2024-04-22 00:07:44 -05:00
cl-parser cl-parser: Forego RAII scopeguard finalization pattern in impl Fold for ModuleInliner 2024-04-22 21:43:30 -05:00
cl-repl repline: Remove default-features from crossterm, since we don't use the event API 2024-04-22 02:18:57 -05:00
cl-structures cl-structures: Global (ew!) and local string interning! 2024-04-24 17:11:41 -05:00
cl-token Revert "Cargo.toml: Add documentation key" 2024-04-22 00:07:44 -05:00
cl-typeck cl-typeck: Fix list in doc comment getting mistaken for a doctest 2024-04-24 16:50:30 -05:00