@@ -5,10 +5,33 @@ All notable changes to this project will be documented in this file.
55The format is based on [ Keep a Changelog] ( https://keepachangelog.com/en/1.0.0/ ) ,
66and 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
0 commit comments