Skip to content

Commit c42ff4f

Browse files
authored
[Builtins] Add constant casing for builtin unit and pair (#7221)
* Add constant casing for unit and pair, make builtin use constant casing * Update goldens * changelog * Add benchmark for comparing Pair/Unit builtins to casing * Add headList builtin vs casing bench * comments * Add conformance test for pair/unit casing * casing unit should only allow single branch * tidy * Add `casePair` and make `fromOpaque` use it * Make `FromData` use case pair * blacklist pair/unit casing conformance on agda
1 parent be38083 commit c42ff4f

File tree

184 files changed

+18652
-17686
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

184 files changed

+18652
-17686
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2041
1+
2045
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
ExBudget {exBudgetCPU = ExCPU 417755505, exBudgetMemory = ExMemory 2085068}
1+
ExBudget {exBudgetCPU = ExCPU 406467137, exBudgetMemory = ExMemory 2070956}

cardano-constitution/test/Cardano/Constitution/Validator/Data/GoldenTests/sorted.pir.golden

Lines changed: 54 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -488,18 +488,21 @@ program
488488
all a. (\a -> data -> a) a -> data -> Maybe a
489489
= /\a ->
490490
\(`$dUnsafeFromData` : (\a -> data -> a) a) (d : data) ->
491-
let
492-
!tup : pair integer (list data) = unConstrData d
493-
!index : integer = fstPair {integer} {list data} tup
494-
!args : list data = sndPair {integer} {list data} tup
495-
in
496-
case
497-
(list data -> Maybe a)
498-
index
499-
[ (\(ds : list data) ->
500-
Just {a} (`$dUnsafeFromData` (headList {data} ds)))
501-
, (\(ds : list data) -> Nothing {a}) ]
502-
args
491+
(let
492+
b = list data
493+
in
494+
/\r ->
495+
\(p : pair integer b) (f : integer -> b -> r) -> case r p [f])
496+
{Maybe a}
497+
(unConstrData d)
498+
(\(index : integer) (args : list data) ->
499+
case
500+
(list data -> Maybe a)
501+
index
502+
[ (\(ds : list data) ->
503+
Just {a} (`$dUnsafeFromData` (headList {data} ds)))
504+
, (\(ds : list data) -> Nothing {a}) ]
505+
args)
503506
in
504507
letrec
505508
~matchData_go : list (pair data data) -> List (Tuple2 data data)
@@ -513,11 +516,10 @@ program
513516
(\(x : pair data data) (xs : list (pair data data)) ->
514517
Cons
515518
{Tuple2 data data}
516-
(Tuple2
517-
{data}
518-
{data}
519-
(fstPair {data} {data} x)
520-
(sndPair {data} {data} x))
519+
(case
520+
(Tuple2 data data)
521+
x
522+
[(\(l : data) (r : data) -> Tuple2 {data} {data} l r)])
521523
(matchData_go xs))
522524
in
523525
let
@@ -5293,9 +5295,8 @@ program
52935295
{data}
52945296
(tailList
52955297
{data}
5296-
(sndPair
5297-
{integer}
5298-
{list data}
5298+
(case
5299+
(list data)
52995300
(unConstrData
53005301
(let
53015302
!tup : pair integer (list data)
@@ -5306,24 +5307,34 @@ program
53065307
{data}
53075308
(tailList
53085309
{data}
5309-
(sndPair
5310-
{integer}
5311-
{list data}
5312-
(unConstrData ds)))))
5310+
(case
5311+
(list data)
5312+
(unConstrData ds)
5313+
[ (\(l : integer)
5314+
(r : list data) ->
5315+
r) ]))))
53135316
in
53145317
case
53155318
(all dead. data)
53165319
(equalsInteger
53175320
5
5318-
(fstPair {integer} {list data} tup))
5321+
(case
5322+
integer
5323+
tup
5324+
[(\(l : integer) (r : list data) -> l)]))
53195325
[ (/\dead -> error {data})
53205326
, (/\dead ->
53215327
headList
53225328
{data}
53235329
(tailList
53245330
{data}
5325-
(sndPair {integer} {list data} tup))) ]
5326-
{all dead. dead})))))
5331+
(case
5332+
(list data)
5333+
tup
5334+
[ (\(l : integer) (r : list data) ->
5335+
r) ]))) ]
5336+
{all dead. dead}))
5337+
[(\(l : integer) (r : list data) -> r)])))
53275338
in
53285339
(let
53295340
r = Maybe (List (Tuple2 data data))
@@ -5336,11 +5347,17 @@ program
53365347
in
53375348
case
53385349
(all dead. r)
5339-
(equalsInteger 0 (fstPair {integer} {list data} tup))
5350+
(equalsInteger
5351+
0
5352+
(case integer tup [(\(l : integer) (r : list data) -> l)]))
53405353
[ (/\dead -> fail ())
53415354
, (/\dead ->
53425355
let
5343-
!l : list data = sndPair {integer} {list data} tup
5356+
!l : list data
5357+
= case
5358+
(list data)
5359+
tup
5360+
[(\(l : integer) (r : list data) -> r)]
53445361
!l : list data = tailList {data} l
53455362
in
53465363
cont
@@ -5372,11 +5389,17 @@ program
53725389
in
53735390
case
53745391
(all dead. r)
5375-
(equalsInteger 2 (fstPair {integer} {list data} tup))
5392+
(equalsInteger
5393+
2
5394+
(case integer tup [(\(l : integer) (r : list data) -> l)]))
53765395
[ (/\dead -> fail ())
53775396
, (/\dead ->
53785397
let
5379-
!l : list data = sndPair {integer} {list data} tup
5398+
!l : list data
5399+
= case
5400+
(list data)
5401+
tup
5402+
[(\(l : integer) (r : list data) -> r)]
53805403
in
53815404
cont
53825405
(unMapData (headList {data} l))
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
ExBudget {exBudgetCPU = ExCPU 61469309, exBudgetMemory = ExMemory 277174}
1+
ExBudget {exBudgetCPU = ExCPU 60269664, exBudgetMemory = ExMemory 276518}

0 commit comments

Comments
 (0)