Skip to content

Commit 5f449e8

Browse files
authored
Merge pull request #5846 from unisonweb/fix/runtime-deps
Handle `Arr` and `Map` cases in `blitLinks`
2 parents c9c45fc + 2d6f388 commit 5f449e8

File tree

9 files changed

+75
-1
lines changed

9 files changed

+75
-1
lines changed

unison-runtime/src/Unison/Runtime/ANF.hs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2340,6 +2340,9 @@ instance Referential Cont where
23402340

23412341
blitLinks :: (Monoid a) => (Bool -> ref -> a) -> BLit ref -> a
23422342
blitLinks f (List s) = foldMap (valueLinks f) s
2343+
blitLinks f (Arr a) = foldMap (valueLinks f) a
2344+
blitLinks f (Map m) =
2345+
foldMap (\(k, v) -> valueLinks f k <> valueLinks f v) m
23432346
blitLinks _ _ = mempty
23442347

23452348
instance Referential BLit where

unison-src/transcripts-using-base/random-deserial.output.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,11 @@ serialTests = do
113113
◉ case-04 v3
114114
◉ case-04 v4
115115
◉ case-04 v5
116+
◉ case-05 v3
117+
◉ case-05 v4
118+
◉ case-05 v5
116119
117-
15 test(s) passing
120+
18 test(s) passing
118121
119122
Tip: Use view 1 to view the source of a test.
120123
```
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
``` unison
2+
3+
f : (Nat, Nat, Nat) -> Nat
4+
f = cases (x, y, z) -> x + y + z
5+
6+
g : Map Nat ((Nat, Nat, Nat) -> Nat) -> Text
7+
g m = match Map.get 0 m with
8+
Some f -> Nat.toText (f (1, 2, 3))
9+
None -> "problem"
10+
11+
m : Map Nat ((Nat, Nat, Nat) -> Nat)
12+
m = Bin 1 0 f Tip Tip
13+
14+
mkTestCase = do
15+
saveTestCase None "case-05" "v4" g m
16+
saveTestCase (Some 5) "case-05" "v5" g m
17+
```
18+
19+
``` ucm
20+
> add
21+
> run mkTestCase
22+
```
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
``` unison
2+
3+
f : (Nat, Nat, Nat) -> Nat
4+
f = cases (x, y, z) -> x + y + z
5+
6+
g : Map Nat ((Nat, Nat, Nat) -> Nat) -> Text
7+
g m = match Map.get 0 m with
8+
Some f -> Nat.toText (f (1, 2, 3))
9+
None -> "problem"
10+
11+
m : Map Nat ((Nat, Nat, Nat) -> Nat)
12+
m = Bin 1 0 f Tip Tip
13+
14+
mkTestCase = do
15+
saveTestCase None "case-05" "v4" g m
16+
saveTestCase (Some 5) "case-05" "v5" g m
17+
```
18+
19+
``` ucm :added-by-ucm
20+
Loading changes detected in scratch.u.
21+
22+
+ f : (Nat, Nat, Nat) -> Nat
23+
+ g : Map Nat ((Nat, Nat, Nat) ->{g} Nat) ->{g} Text
24+
+ m : Map Nat ((Nat, Nat, Nat) ->{g} Nat)
25+
+ mkTestCase : '{IO, Exception} ()
26+
27+
Run `update` to apply these changes to your codebase.
28+
```
29+
30+
``` ucm
31+
> add
32+
33+
Okay, I'm searching the branch for code that needs to be
34+
updated...
35+
36+
Done.
37+
38+
> run mkTestCase
39+
40+
()
41+
```
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
6
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
VN4O34ZPGKGMRTLYXRV2GQX4W66RP4ZUSHO6D2WDZYMDX3XVQPGCWFY4QWBTENTXNN2E6YDCYUDI3IIN7DGJSODLSCX3GWD5WCTTKUY=
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
AAAAABABAFABKYCFITJNTOQRE3BRWTYOOLZIFGNVKRU5GVLMBALLTNRPXH2ZPF4XNLZYXJVJEXKJWKPQNL7E3K7B2E3V4XY2ROGIXGCG4I3T5ZYZ6UAAAAAAAAAAAAAAAIBQCAYBAFABKYCFITJNTOQRE3BRWTYOOLZIFGNVKRU5GVLMBALLTNRPXH2ZPF4XNLZYXJVJEXKJWKPQNL7E3K7B2E3V4XY2ROGIXGCG4I3T5ZYZ6UAAAAAAAAAAAAAAAIBQEAABEEABO3NDLW2UVHSODAIEABAQYUGTRABYJGZAOILCDD77AHR7JEOAN2YAAEAUAFLAIVCNFWN2CETMGG2PBZZPFAUZWVKGTU2VNQEBNONWF647LF4XS5VPHC5GVES5JGZJ6BVP4TNL4HITOXS7DKFYZC4YI3RDOPXHDH2QAAAAAAAAAAAAAABAGBQAAEAQUAIBBQAQAAAAAAAAAAAABMAAEAIBAMAQCIIA4BBC2YS6I4BLVLKDUIB4BTSEWR6EWUWNKWLSZU3W27B3TQ4TGSPAAAQAAEDAABABIC6LPEXDQDIZHARYHZHEPU223I2U3DWXZZ6IOTSY5WGYBWKJWP6SSCVDBFP656VOMDRK735X3R4MR4HLOK7QOTVRKCXFTL5HD23QLSXSAABAAAIBBIAQCDABAAAAAAAAAAAACCQBAEGACAAAAAAAAAAAAIFACAIMAEAAAAAAAAAAAAYKAEAQGAYBIAAC74KTBNB7EEHJWTM4UDOXHF5AFRVJEWYPIC6LCGMHH6WO6OUTMOHLOH7EH24LEQDHWCSGHS5Y6HBTBVEDMPJWX3RGD2L6E6MPJTICAAAAACQBAEBQGAKACVQEKRGS3G5BCJWDDNHQ44XSQKM3KVDJ2NKWYCAWXG3C7OPVS6LZO2XTROTKSJOUTMU7A2X6JWV6DUJXLZPRVC4MROMENYRXH3TRT5IAAABACAAKAEAQGAYBIAKWARKE2LM3UEJGYMNU6DTS6KBJTNKUNHJVK3AIC243ML5Z6WLZPF3K6OF2NKJF2SNST4DK7ZG2XYORG5PF6GULRSFZQRXCG47OOGPVAAAAEAYABIAQCAYDAFABKYCFITJNTOQRE3BRWTYOOLZIFGNVKRU5GVLMBALLTNRPXH2ZPF4XNLZYXJVJEXKJWKPQNL7E3K7B2E3V4XY2ROGIXGCG4I3T5ZYZ6UAAAAQFAAFQAAIBAEBQABYBAABQCAAKJZQXILTUN5KGK6DUAEAACAAHAMDXA4TPMJWGK3IAAEAUAABP6FJQWQ7SCDU3JWOKBXLTS6QCY2USLMHUBPFRDGDT7LHPHKJWHDVXD7SD5OFSIBT3BJDDZO4PDQZQ2SBWHU3L5YTB5F7CPGHUZUBAAAAAAAAAAAAAAAAACAKACVQEKRGS3G5BCJWDDNHQ44XSQKM3KVDJ2NKWYCAWXG3C7OPVS6LZO2XTROTKSJOUTMU7A2X6JWV6DUJXLZPRVC4MROMENYRXH3TRT5IAAAAAAAAAAAAAAAQDAIAACIIAUY5OA5KNKE2LISN73KQMLZ7GXNGNVIA7CTFQ45IGIX6W4JT5SQ3QAAIBIAKWARKE2LM3UEJGYMNU6DTS6KBJTNKUNHJVK3AIC243ML5Z6WLZPF3K6OF2NKJF2SNST4DK7ZG2XYORG5PF6GULRSFZQRXCG47OOGPVAAAAAAAAAAAAAAACAMDAAAIBAYAAIAKACVQEKRGS3G5BCJWDDNHQ44XSQKM3KVDJ2NKWYCAWXG3C7OPVS6LZO2XTROTKSJOUTMU7A2X6JWV6DUJXLZPRVC4MROMENYRXH3TRT5IAAEAAEAIBAYAAIAKACVQEKRGS3G5BCJWDDNHQ44XSQKM3KVDJ2NKWYCAWXG3C7OPVS6LZO2XTROTKSJOUTMU7A2X6JWV6DUJXLZPRVC4MROMENYRXH3TRT5IAAEAAEAIBAYAAIAKACVQEKRGS3G5BCJWDDNHQ44XSQKM3KVDJ2NKWYCAWXG3C7OPVS6LZO2XTROTKSJOUTMU7A2X6JWV6DUJXLZPRVC4MROMENYRXH3TRT5IAAEAAEAIBAYAAIAKAAAX7CUYLIPZBB2NU3HFA3VZZPIBMNKJFWD2AXSYRTBZ7VTXTVE3DR23R7ZB6XCZEAZ5QURR4XOHRYMYNJA3D2NV64JQ6S7RHTD2M2AQAAEAAACYAAEAQCAYBAACU4YLUFYVQEBIDAMAQABKOMF2C4KYCAABAAAAAAAAQCQAAF7YVGC2D6IIOTNGZZIG5OOL2ALDKSJNQ6QF4WEMYOP5M545JGY4OW4P6IPVYWJAGPMFEMPF3R4ODGDKIGY6TNPXCMHUX4J4Y6TGQEAAAAAAAAAAAAAAAAAIBIAKWARKE2LM3UEJGYMNU6DTS6KBJTNKUNHJVK3AIC243ML5Z6WLZPF3K6OF2NKJF2SNST4DK7ZG2XYORG5PF6GULRSFZQRXCG47OOGPVAAAAAAAAAAAAAAACAMBAAAJBADQEELLCLZDQFOVNIORAHQGOIS2HYS2SZVKZOLGTO3L4HOODSM2J4AABAFABKYCFITJNTOQRE3BRWTYOOLZIFGNVKRU5GVLMBALLTNRPXH2ZPF4XNLZYXJVJEXKJWKPQNL7E3K7B2E3V4XY2ROGIXGCG4I3T5ZYZ6UAAAAAAAAAAAAAAAIBQMAACAEAQMAAEAFAL2EZX6MJG6GCYR3YWHQ4TCREOTGCY5PJBY5ZGV7VNL57HKSJ36B5MDM2YPM6BOIJEBGEZYOUVVA5K2PLAVWZWYMTSYT6JBOYV4D6WHYAAEAAFAEAQCAIBBMAACAIBAMAQAEKVNZUXMZLSONQWYLTDN5WXAYLSMUBAMAYGAADAAA2JNZ2AH7777777777774BQCAJBADQEELLCLZDQFOVNIORAHQGOIS2HYS2SZVKZOLGTO3L4HOODSM2J4AACA4BAAAAAAAAAAAAAAMBQCQF4W6JOHAGRSOBDQPSOI7JVVWRVJWHNPTT4Q5HFR3MNQDMUTM75FEFKGCK7535K4YHCV7X3PXDYZDYOW4V7A5HLCUFOLGX2OHVXAXFPEAAAAEBQAAAAAAAAAAABAMAQCIIA4BBC2YS6I4BLVLKDUIB4BTSEWR6EWUWNKWLSZU3W27B3TQ4TGSPAAAQHAEAQUAIBA4BS62LNOBXXG43JMJWGKORAKVXGS5TFOJZWC3BOMNXW24DBOJSSA4TFOR2XE3TTEB5S2MJMGAWCWML5AMAQAA3COVTQCAABAABQGAKAXS3ZFY4A2GJYEOB6JZD5GWW2GVGY5V6OPSDU4WHNRWANSSNT7UUQVIYJL7XPVLTA4KX67N64PDEPB23SX4DU5MKQVZM27JY6W4C4V4QAAEAAAAIBIAAC74KTBNB7EEHJWTM4UDOXHF5AFRVJEWYPIC6LCGMHH6WO6OUTMOHLOH7EH24LEQDHWCSGHS5Y6HBTBVEDMPJWX3RGD2L6E6MPJTICAAAAAAAAAAAAAAAAAEAUAFLAIVCNFWN2CETMGG2PBZZPFAUZWVKGTU2VNQEBNONWF647LF4XS5VPHC5GVES5JGZJ6BVP4TNL4HITOXS7DKFYZC4YI3RDOPXHDH2QAAAAAAAAAAAAAABAGBIBAFABKYCFITJNTOQRE3BRWTYOOLZIFGNVKRU5GVLMBALLTNRPXH2ZPF4XNLZYXJVJEXKJWKPQNL7E3K7B2E3V4XY2ROGIXGCG4I3T5ZYZ6UAAAAAAAAAAAAAAAIAACIIAC5W2GXNVJKPE4GAQIACBBRINHCADQSNSA4QWEGH76APD6SI4A3VQAAAAAAAAAAAAAAAACAKACVQEKRGS3G5BCJWDDNHQ44XSQKM3KVDJ2NKWYCAWXG3C7OPVS6LZO2XTROTKSJOUTMU7A2X6JWV6DUJXLZPRVC4MROMENYRXH3TRT5IAAAAAAAAAAAAAAAQBAFAL2EZX6MJG6GCYR3YWHQ4TCREOTGCY5PJBY5ZGV7VNL57HKSJ36B5MDM2YPM6BOIJEBGEZYOUVVA5K2PLAVWZWYMTSYT6JBOYV4D6WHYAAAAAAAAAAAAAAAUBQQAIDBAAAAAJBACTDVYDVJVITJNCJX7NKBRPH425UZWVAD4KMWDTVAZC723RGPWKDOAAAAAAAAAAAAAAAAAIBIC6RGN7TCJXRQWEO6FR4HEYUJDUZQWHL2IOHOJVP5LK7PZ2USO7QPLA3GWD3HQLSCJAJRGODVFNIHKWT2YFNWNWDE4WE7SILWFPA7VR6AAAAAAAAAAAAAAIAAEAUBPITG7ZRE3YYLCHPCY6DSMKER2MYLDV5EHDXE2X6VVPX45KJHPYHVQNTLB5TYFZBEQEYTHB2SWUDVLJ5MCW3G3BSOLCPZEF3CXQP2Y7AAAAAAAAAAAAAAEAACAKAAAX7CUYLIPZBB2NU3HFA3VZZPIBMNKJFWD2AXSYRTBZ7VTXTVE3DR23R7ZB6XCZEAZ5QURR4XOHRYMYNJA3D2NV64JQ6S7RHTD2M2AQAAAAAAAAAAAAAAAABAFAAAL7RKMFUH4QQ5G2NTSQN244XUAWGVES3B5ALZMIZQ472Z3Z2SNRY5NY74Q7LRMSAM6YKIY6LXDY4GMGUQNR5G27OEYPJPYTZR5GNAIAAAAAAAAAAAAAAAA======
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
VN4O34ZPGKGMRTLYXRV2GQX4W66RP4ZUSHO6D2WDZYMDX3XVQPGCWFY4QWBTENTXNN2E6YDCYUDI3IIN7DGJSODLSCX3GWD5WCTTKUY=
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
AAAAABIFAFABKYCFITJNTOQRE3BRWTYOOLZIFGNVKRU5GVLMBALLTNRPXH2ZPF4XNLZYXJVJEXKJWKPQNL7E3K7B2E3V4XY2ROGIXGCG4I3T5ZYZ6UAACQF4W6JOHAGRSOBDQPSOI7JVVWRVJWHNPTT4Q5HFR3MNQDMUTM75FEFKGCK7535K4YHCV7X3PXDYZDYOW4V7A5HLCUFOLGX2OHVXAXFPEAABIAAC74KTBNB7EEHJWTM4UDOXHF5AFRVJEWYPIC6LCGMHH6WO6OUTMOHLOH7EH24LEQDHWCSGHS5Y6HBTBVEDMPJWX3RGD2L6E6MPJTICAAAUBPITG7ZRE3YYLCHPCY6DSMKER2MYLDV5EHDXE2X6VVPX45KJHPYHVQNTLB5TYFZBEQEYTHB2SWUDVLJ5MCW3G3BSOLCPZEF3CXQP2Y7AAAADJFXHIBYBEEABO3NDLW2UVHSODAIEABAQYUGTRABYJGZAOILCDD77AHR7JEOAN2YAAEQQBYCCFVRF4RYCXKWUHIQDYDHEJND4JNJM2VMXFTJXNV6DXHBZGNE6AAAAUTTBOQXHI32UMV4HIAJBACTDVYDVJVITJNCJX7NKBRPH425UZWVAD4KMWDTVAZC723RGPWKDOAAAAVHGC5BOFMABCVLONF3GK4TTMFWC4Y3PNVYGC4TFAABWE5LHAEAAAAQDAEBQCAAAAIBQEAAAAEAAAAQDAYAACAIKAEAQYAIAAAAAAAAAAAAAWAACAEAQGAIBAIAACBQAAQAQEAABAEFACAIMAEAAAAAAAAAAAAIKAEAQYAIAAAAAAAAAAABAUAIBBQAQAAAAAAAAAAADBIAQCAYDAIAAACQBAEBQGAAAAIAQACQBAEBQGAAAAIBQACQBAEBQGAAAAICQACYAAEAQCAYAA4AQAAYBAIAQAAIAA4BQO4DSN5RGYZLNAAAQEAAAAEAAAAQDAIAAGAIAAABAGBQAAEAQMAAEAAAQAAQBAEDAABAAAEAAEAIBAYAAIAABAABACAIGAACAEAIAAAFQAAIBAEBQCBACAUBQGAIEAIAAEAAAAAAACAQAAAAQAAACAMBAAAIBAAAAEAYGAABACAIGAACAGAQAAUAQCAIBAEFQAAIBAEBQCBICAYBQMAAGAQB7777777777777AMAQCAQHAIAAAAAAAAAAAAADAMAQAAIDAAAAAAAAAAAACAYBAEBAOAIBBIAQCBYDF5UW24DPONZWSYTMMU5CAVLONF3GK4TTMFWC4Y3PNVYGC4TFEBZGK5DVOJXHGID3FUYSYMBMFMYX2AYBAYAQAAIAAMBQCAIAAAAQEAAAAEAAAAQDAUAQAAACAAAAAAABAAAAEAYOAEBQQAAAAMAAAAICAAAACAQAAA======

0 commit comments

Comments
 (0)