paradigmxyz
solar
BlogDocsChangelog

feat(ast): change TypeSize to store bits instead of bytes

#671Merged
Comparing
onbjerg/typesize
(
437f071
) with
main
(
5e71392
)
CodSpeed Performance Gauge
+5%
Improvements
1
Untouched
34
Ignored
6

Benchmarks

Improved

Vm/lower
benches/benches/criterion.rs::benches::parser_benches::parser
CodSpeed Performance Gauge
+5%
2.9 ms2.7 ms

Passed

console/parse
benches/benches/criterion.rs::benches::parser_benches::parser
CodSpeed Performance Gauge
+3%
3.4 ms3.3 ms
console/lower
benches/benches/criterion.rs::benches::parser_benches::parser
CodSpeed Performance Gauge
+3%
5.3 ms5.2 ms
source_map/new_source_file
benches/benches/criterion.rs::benches::micro_benches::micro
CodSpeed Performance Gauge
+2%
9.4 ms9.2 ms
Solady/lower
benches/benches/criterion.rs::benches::parser_benches::parser
CodSpeed Performance Gauge
+2%
45.5 ms44.6 ms
Counter/parse
benches/benches/criterion.rs::benches::parser_benches::parser
CodSpeed Performance Gauge
+1%
45.7 µs45.1 µs
Counter/lower
benches/benches/criterion.rs::benches::parser_benches::parser
CodSpeed Performance Gauge
+1%
94.6 µs93.4 µs
Seaport/lower
benches/benches/criterion.rs::benches::parser_benches::parser
CodSpeed Performance Gauge
+1%
16.2 ms16.1 ms
Solarray/parse
benches/benches/criterion.rs::benches::parser_benches::parser
CodSpeed Performance Gauge
+1%
2.8 ms2.8 ms
Solarray/lower
benches/benches/criterion.rs::benches::parser_benches::parser
CodSpeed Performance Gauge
0%
3.9 ms3.9 ms
OptimizorClub/lower
benches/benches/criterion.rs::benches::parser_benches::parser
CodSpeed Performance Gauge
0%
1.8 ms1.8 ms
Solady/parse
benches/benches/criterion.rs::benches::parser_benches::parser
CodSpeed Performance Gauge
0%
38.8 ms38.7 ms
OptimizorClub/lex
benches/benches/criterion.rs::benches::parser_benches::parser
CodSpeed Performance Gauge
0%
510.6 µs508.8 µs
verifier/lower
benches/benches/criterion.rs::benches::parser_benches::parser
CodSpeed Performance Gauge
0%
745.9 µs743.4 µs
UniswapV3/lower
benches/benches/criterion.rs::benches::parser_benches::parser
CodSpeed Performance Gauge
0%
4.8 ms4.8 ms
console/lex
benches/benches/criterion.rs::benches::parser_benches::parser
CodSpeed Performance Gauge
0%
1.3 ms1.3 ms
UniswapV3/lex
benches/benches/criterion.rs::benches::parser_benches::parser
CodSpeed Performance Gauge
0%
1.5 ms1.5 ms
Seaport/parse
benches/benches/criterion.rs::benches::parser_benches::parser
CodSpeed Performance Gauge
0%
13.2 ms13.2 ms
Optimism/parse
benches/benches/criterion.rs::benches::parser_benches::parser
CodSpeed Performance Gauge
0%
164.1 ms163.8 ms
Vm/parse
benches/benches/criterion.rs::benches::parser_benches::parser
CodSpeed Performance Gauge
0%
2.2 ms2.2 ms
Vm/lex
benches/benches/criterion.rs::benches::parser_benches::parser
CodSpeed Performance Gauge
0%
967 µs965.7 µs
Optimism/lex
benches/benches/criterion.rs::benches::parser_benches::parser
CodSpeed Performance Gauge
0%
63.6 ms63.6 ms
UniswapV3/parse
benches/benches/criterion.rs::benches::parser_benches::parser
CodSpeed Performance Gauge
0%
3.7 ms3.7 ms
OptimizorClub/parse
benches/benches/criterion.rs::benches::parser_benches::parser
CodSpeed Performance Gauge
0%
1.3 ms1.3 ms
verifier/lex
benches/benches/criterion.rs::benches::parser_benches::parser
CodSpeed Performance Gauge
0%
195.3 µs195.3 µs
session/enter_sequential
benches/benches/criterion.rs::benches::micro_benches::micro
CodSpeed Performance Gauge
0%
75.2 µs75.2 µs
Solady/lex
benches/benches/criterion.rs::benches::parser_benches::parser
CodSpeed Performance Gauge
0%
16.8 ms16.8 ms
safeconsole/lex
benches/benches/criterion.rs::benches::parser_benches::parser
CodSpeed Performance Gauge
0%
6.9 ms6.9 ms
session/new
benches/benches/criterion.rs::benches::micro_benches::micro
CodSpeed Performance Gauge
0%
122.3 µs122.4 µs
verifier/parse
benches/benches/criterion.rs::benches::parser_benches::parser
CodSpeed Performance Gauge
0%
551.8 µs552.3 µs
Seaport/lex
benches/benches/criterion.rs::benches::parser_benches::parser
CodSpeed Performance Gauge
0%
5.9 ms5.9 ms
safeconsole/lower
benches/benches/criterion.rs::benches::parser_benches::parser
CodSpeed Performance Gauge
0%
20.7 ms20.8 ms
Solarray/lex
benches/benches/criterion.rs::benches::parser_benches::parser
CodSpeed Performance Gauge
0%
916.5 µs918 µs
safeconsole/parse
benches/benches/criterion.rs::benches::parser_benches::parser
CodSpeed Performance Gauge
0%
18.3 ms18.4 ms
empty/lower
benches/benches/criterion.rs::benches::parser_benches::parser
CodSpeed Performance Gauge
-1%
47 µs47.4 µs

Ignored

session/enter/reentrant
benches/benches/criterion.rs::benches::micro_benches::micro
Ignored
CodSpeed Performance Gauge
0%
169.8 µs169.9 µs
session/enter_sequential/reentrant
benches/benches/criterion.rs::benches::micro_benches::micro
Ignored
CodSpeed Performance Gauge
0%
80.8 µs80.8 µs
session/enter
benches/benches/criterion.rs::benches::micro_benches::micro
Ignored
CodSpeed Performance Gauge
-44%
22 µs39.1 µs
Counter/lex
benches/benches/criterion.rs::benches::parser_benches::parser
Ignored
CodSpeed Performance Gauge
+1%
11.7 µs11.7 µs
empty/parse
benches/benches/criterion.rs::benches::parser_benches::parser
Ignored
CodSpeed Performance Gauge
-1%
11.1 µs11.2 µs
empty/lex
benches/benches/criterion.rs::benches::parser_benches::parser
Ignored
CodSpeed Performance Gauge
-4%
1.6 µs1.6 µs

Commits

Click on a commit to change the comparison range
Base
main
5e71392
+0.12%
feat(ast): change TypeSize to store bits instead of bytes This enables distinguishing edge cases like 127 (fits in int8) from 128 (doesn't fit), which is needed for correct implicit and explicit integer conversions. - Changed internal storage from u8 (bytes 0-32) to u16 (bits 0-256) - TypeSize::new() now takes bits directly - Added new_fb_bytes() for fixed-bytes types that take byte counts - bits() returns stored value, bytes() computes ceil(bits/8) - mk_ty_int_literal no longer rounds to multiples of 8 Closes #650
8c0a2fc
11 days ago
by onbjerg
+0.21%
refactor: make `TypeSize::new` private
3f38d15
10 days ago
by onbjerg
+5.08%
feat(ast): add TypeSize::new_literal_bits for integer literals Add new_literal_bits and try_new_literal_bits methods to TypeSize that allow non-multiple-of-8 bit sizes for integer literals. This enables storing exact bit lengths (e.g., 7 bits for 127, 8 bits for 128) which is needed to distinguish edge cases for signed integer conversions. Update mk_ty_int_literal to use new_literal_bits instead of new_int_bits.
437f071
10 days ago
by onbjerg
© 2026 CodSpeed Technology
Home Terms Privacy Docs