tweag / nickel

Better configuration for less
https://nickel-lang.org/
MIT License
2.43k stars 93 forks source link

[RFC007] Add Seal and Unseal to the new AST primops #2101

Closed yannham closed 2 days ago

yannham commented 2 days ago

While working on #2083, I realized that we do need the seal and unseal primitives (which were initially discarded as only a run time thing), since the implementation of the builtin contracts is written in pure Nickel and use those operations.

This PR adds the missing variants to Primop and missing conversion as well in bytecode::ast::compat.

github-actions[bot] commented 2 days ago

🐰 Bencher Report

Branchrfc007/add-missing-seal-ops
Testbedubuntu-latest
Click to view all benchmark results
BenchmarkLatencynanoseconds (ns)
fibonacci 10📈 view plot
🚷 view threshold
479,950.00
foldl arrays 50📈 view plot
🚷 view threshold
1,663,400.00
foldl arrays 500📈 view plot
🚷 view threshold
6,681,000.00
foldr strings 50📈 view plot
🚷 view threshold
7,055,600.00
foldr strings 500📈 view plot
🚷 view threshold
61,825,000.00
generate normal 250📈 view plot
🚷 view threshold
44,675,000.00
generate normal 50📈 view plot
🚷 view threshold
1,986,300.00
generate normal unchecked 1000📈 view plot
🚷 view threshold
3,329,500.00
generate normal unchecked 200📈 view plot
🚷 view threshold
769,200.00
pidigits 100📈 view plot
🚷 view threshold
3,179,400.00
pipe normal 20📈 view plot
🚷 view threshold
1,476,400.00
pipe normal 200📈 view plot
🚷 view threshold
10,066,000.00
product 30📈 view plot
🚷 view threshold
827,690.00
scalar 10📈 view plot
🚷 view threshold
1,501,000.00
sum 30📈 view plot
🚷 view threshold
825,130.00
🐰 View full continuous benchmarking report in Bencher