v0.16.0
breaking
- breaking: rename
parse_selectortoparse__selector_listand expose new singleparse_selectorby @bartveneman in #232
What's Changed
- Optimize lexer performance: eliminate recursion and inline hot paths by @bartveneman in #244
- Refactor lexer state management to use save/restore pattern by @bartveneman in #245
- adjust the benchmarks by @bartveneman in #248
- perf: make walking ~10% faster by @bartveneman in #247
Chores
- chore: convert to pnpm; pin gh actions by @bartveneman in #238
- chore: group all npm updates except wallace packages by @bartveneman in #242
- chore(deps-dev): bump the npm-all group with 9 updates by @dependabot[bot] in #243
- chore(deps): bump pnpm/action-setup from 4.3.0 to 6.0.8 by @dependabot[bot] in #239
Performance Benchmarks
Changes since 0.15.0
Throughput (ops/sec, higher is better)
| File | Size | Tokenize before | Tokenize after | Parse before | Parse after | Walk before | Walk after | Parse+Walk before | Parse+Walk after |
|---|---|---|---|---|---|---|---|---|---|
| Large | 3 KB | 20,497 | 23,450 (+14%) | 15,188 | 18,032 (+19%) | 89,442 | 98,520 (+10%) | 12,875 | 15,143 (+18%) |
| Bootstrap | 274 KB | 261 | 303 (+16%) | 189 | 228 (+21%) | 1,297 | 1,466 (+13%) | 164 | 197 (+20%) |
| Tailwind | 3,557 KB | 21 | 24 (+14%) | 14 | 17 (+21%) | 91 | 100 (+10%) | 12 | 15 (+25%) |
Memory usage (Parse+Walk, lower is better)
| File | Size | Before | After |
|---|---|---|---|
| Large | 3 KB | 0.2 MB | 0.2 MB |
| Bootstrap | 274 KB | 13.2 MB | 13.2 MB |
| Tailwind | 3,557 KB | 93.9 MB | 94.6 MB |
Full Changelog: v0.15.1...v0.15.2