Skip to content

Commit 22f398c

Browse files
committed
Bumps version to 0.8.0; updates CHANGELOG.md and README.md accordingly
1 parent c940dc8 commit 22f398c

File tree

3 files changed

+257
-46
lines changed

3 files changed

+257
-46
lines changed

CHANGELOG.md

Lines changed: 118 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,33 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8-
## [Unreleased]
8+
## [0.8.0] - 2025-12-20
99

1010
### Added
1111

12+
#### WASM and WASI Support (2025-12-19)
13+
- **WebAssembly compilation targets**
14+
- Full WASM support for browser and Node.js targets
15+
- WASI support for server-side WebAssembly runtimes
16+
- `wasm` feature flag enables wasm-bindgen bindings
17+
- `wasm-phonetic` feature combines WASM with phonetic rules
18+
- `ffi` feature exposes C-compatible functions for WASI/native FFI
19+
- Phonetic spellcheck example includes WASM demo application
20+
21+
#### LLev - Levenshtein Regular Expressions (2025-11-16 to 2025-12-18)
22+
- **Complete LLev Parser and NFA Engine**
23+
- New domain-specific language for phonetic pattern matching
24+
- LLRE (Levenshtein Regex) format for compact pattern specification
25+
- Full regex-like syntax: quantifiers (`*`, `+`, `?`, `{n,m}`, `{,m}`), alternation, grouping
26+
- Built-in named character classes (`[:alpha:]`, `[:digit:]`, `[:vowel:]`, etc.)
27+
- Escape shortcuts for common character categories
28+
- Cycle detection and equivalence set recovery for pattern analysis
29+
30+
- **Phonetic Spellcheck Example**
31+
- Complete demo application with dictionary caching
32+
- Interactive spellcheck with phonetic similarity matching
33+
- WASM-compatible version for browser deployment
34+
1235
#### NFA Optimizer Module (2025-12-15)
1336
- **Automatic NFA Optimization** - Reduces NFA size and improves matching performance
1437
- Epsilon elimination: Removes ε-transitions by computing transitive closure
@@ -32,6 +55,94 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
3255
- Optimization enabled by default in `compile()` function
3356
- 11 unit tests covering all optimization passes
3457

58+
#### Generic Iterator Support (2025-11-28)
59+
- **Universal iterator interface for all dictionary backends**
60+
- Consistent iteration API across PathMap, DAWG, DoubleArrayTrie, and SuffixAutomaton
61+
- Both byte-level and character-level variants supported
62+
- Enables generic algorithms over any dictionary type
63+
64+
#### Formal Verification (2025-11-15 to 2025-12-17)
65+
- **Levenshtein Automaton Proofs in Coq/Rocq**
66+
- Complete axiom-free proofs for Levenshtein distance properties
67+
- Triangle inequality proof using Wagner-Fischer trace approach
68+
- Modular decomposition with 0 Admitted lemmas in extraction
69+
- Position skipping verification: 50/50 proofs complete
70+
- Comprehensive trace composition cost bounds
71+
72+
- **Phonetic Rewrite Rules Verification**
73+
- All 5 core theorems proven in Coq
74+
- OCaml extraction infrastructure for verified code
75+
- Property-based tests mirroring Coq theorems (proptest)
76+
77+
### Performance
78+
79+
#### NFA Optimizations (2025-12-18)
80+
- **H7+H8+H9 Combined Optimizations** - 2-7× speedup for NFA operations
81+
- H7: State representation optimization
82+
- H8: Transition table compaction
83+
- H9: Hot path specialization
84+
85+
- **Phonetic Lexer Optimizations**
86+
- H1: Intern phonetic class names for 7-11% speedup
87+
- H2: Stack-based ASCII lowercase for 3-4% cold start improvement
88+
- H3 (rejected): FxHashMap caused 10-15% regression
89+
- H4 (rejected): Alternative approach showed no improvement
90+
91+
#### Phonetic Matching Optimizations (2025-11-17 to 2025-11-25)
92+
- **Position Skipping Optimization** - Up to 26.6× speedup
93+
- Skip ahead to first potential match position in phonetic patterns
94+
- Reduces unnecessary state exploration
95+
- Opt-in via explicit API call (see Deprecated section)
96+
97+
- **Phonetic Rules Allocation Elimination** - 27-30% speedup
98+
- Eliminated string allocations in successor methods
99+
- H2 conditional optimization with zero overhead
100+
101+
### Changed
102+
103+
#### API Changes
104+
- **apply_rules_seq_opt deprecated** - Position skipping is now opt-in
105+
- Use `apply_rules_with_skip()` for position skipping behavior
106+
- Default `apply_rules()` uses standard sequential matching
107+
- Migration: Replace `apply_rules_seq_opt` calls with explicit skip API
108+
109+
### Fixed
110+
111+
#### Bug Fixes
112+
- **M-type merge index overflow** - Fixed overflow bug in generalized automaton module
113+
- Added comprehensive property tests to prevent regression
114+
- Affects phonetic split operations with accumulated errors
115+
116+
### Documentation
117+
118+
#### Integration Architecture (2025-11-26 to 2025-12-02)
119+
- **MORK and PathMap Integration**
120+
- Comprehensive MeTTa query examples
121+
- Three-layer integration architecture clarification
122+
- Extended architecture layers documentation
123+
124+
- **WFST Documentation**
125+
- Weighted finite-state transducer implementation comparison
126+
- Cross-references to MeTTaIL correction documentation
127+
128+
- **Theoretical Foundations**
129+
- Pedagogical content for compiler implementers
130+
- Semantic type checking documentation
131+
- Dialogue, LLM integration, and agent learning patterns
132+
133+
#### Verification Documentation
134+
- **Comprehensive proof status tracking**
135+
- Admitted lemmas analysis and resolution
136+
- Phase-by-phase completion status
137+
- Modular proof index
138+
139+
### CI/CD
140+
141+
#### Build Infrastructure (2025-12-19)
142+
- **OCR Support in CI**
143+
- Tesseract and Leptonica installation for document processing
144+
- Ubuntu workflow updates for libtesseract-dev
145+
35146
## [0.7.0] - 2025-11-15
36147

37148
### Added
@@ -956,6 +1067,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
9561067

9571068
---
9581069

959-
[Unreleased]: https://github.com/F1R3FLY-io/liblevenshtein-rust/compare/v0.2.0...HEAD
1070+
[0.8.0]: https://github.com/F1R3FLY-io/liblevenshtein-rust/compare/v0.7.0...v0.8.0
1071+
[0.7.0]: https://github.com/F1R3FLY-io/liblevenshtein-rust/compare/v0.6.0...v0.7.0
1072+
[0.6.0]: https://github.com/F1R3FLY-io/liblevenshtein-rust/compare/v0.5.0...v0.6.0
1073+
[0.5.0]: https://github.com/F1R3FLY-io/liblevenshtein-rust/compare/v0.4.0...v0.5.0
1074+
[0.4.0]: https://github.com/F1R3FLY-io/liblevenshtein-rust/compare/v0.3.0...v0.4.0
1075+
[0.3.0]: https://github.com/F1R3FLY-io/liblevenshtein-rust/compare/v0.2.0...v0.3.0
9601076
[0.2.0]: https://github.com/F1R3FLY-io/liblevenshtein-rust/compare/v0.1.0...v0.2.0
9611077
[0.1.0]: https://github.com/F1R3FLY-io/liblevenshtein-rust/releases/tag/v0.1.0

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ resolver = "2"
55

66
[package]
77
name = "liblevenshtein"
8-
version = "0.7.0"
8+
version = "0.8.0"
99
edition = "2021"
1010
rust-version = "1.70"
1111
authors = ["Dylon Edwards <dylon.devo@gmail.com>"]

0 commit comments

Comments
 (0)