mirror of
https://github.com/anoma/juvix.git
synced 2024-12-25 16:45:20 +03:00
1ab94f5537
This PR adds support for the `anoma-encode` builtin: ``` builtin anoma-encode axiom anomaEncode : {A : Type} -> A -> Nat ``` In the backend this is compiled to a call to the Anoma / nockma stdlib `jam` function. This PR also contains: * An implementation of the `jam` function in Haskell. This is used in the Nockma evaluator. * Unit tests for `jam` * A benchmark for `jam` applied to the Anoma / nockma stdlib. Benchmark results: ``` $ juvixbench -p 'Jam' All Nockma Jam jam stdlib: OK 109 ms ± 6.2 ms ```
14 lines
227 B
Haskell
14 lines
227 B
Haskell
module Main where
|
|
|
|
import Benchmark.Effect qualified as Effect
|
|
import Benchmark.Nockma qualified as Nockma
|
|
import Juvix.Prelude
|
|
import Test.Tasty.Bench
|
|
|
|
main :: IO ()
|
|
main =
|
|
defaultMain
|
|
[ Effect.bm,
|
|
Nockma.bm
|
|
]
|