Skip to content

AST-38: Significant parenthesis around tuple patterns in func arguments#178

Merged
ggreif merged 40 commits intomasterfrom
gabor/one-tuples
Mar 5, 2019
Merged

AST-38: Significant parenthesis around tuple patterns in func arguments#178
ggreif merged 40 commits intomasterfrom
gabor/one-tuples

Conversation

@ggreif
Copy link
Contributor

@ggreif ggreif commented Feb 20, 2019

This now passes tests, I assume that return types are already fixed by #111.

I might remove the new test as it does not add extra value.

However now I get an assertion failure with

func g1((),) {}

which worries me a bit. This is now AST-56.

@ggreif ggreif requested a review from crusso February 20, 2019 11:34
@ggreif ggreif marked this pull request as ready for review February 20, 2019 13:04
@ggreif
Copy link
Contributor Author

ggreif commented Feb 20, 2019

I am sufficiently confident that I am doing the right thing, so let's make this a proper pull request.

  • Merge the two tests (old one from @nomeata and my new one)?
  • Investigate assertion failure in wasm (or write story: https://dfinity.atlassian.net/browse/AST-56)
  • class is a constructor function, so it should inherit the arity semantics from func?
  • in new test, f(()) is accepted, but f is nullary. Is that okay?
  • fix parser ambiguities

I'd like to find answers/comments to the above.

@ggreif ggreif requested a review from nomeata February 20, 2019 13:08
@ggreif ggreif added Bug Something isn't working starter project Good for newcomers labels Feb 20, 2019
@rossberg
Copy link
Contributor

Merge the two tests (old one from @nomeata and my new one)?

I suppose so.

Investigate assertion failure in wasm (or write story for it)

Which failure is that?

class is a constructor function, so it should inherit the arity semantics from func?

Correct.

in new test, f(()) is accepted, but f is nullary. Is that okay?

Yes. At calls there is an implicit coercion between tuples and n-ary arguments (same for results). The difference really only matters in higher-order cases, (()) -> () is a different function type than () -> (), and they cannot be coerced.

@nomeata
Copy link
Contributor

nomeata commented Feb 20, 2019

Investigate assertion failure in wasm (or write story for it)

Which failure is that?

https://github.com/dfinity-lab/actorscript/pull/178/files#diff-52bad8419afa40f606ae789a77d9a65dR1

Ill-typed intermediate code (use -v to see dumped IR):
issue38.as:46.1-46.15: IR type error, subtype violation:
  (((),)) -> ()
  (()) -> ()

Note that “in wasm” is a red herring, it is not about running the wasm, but about compiling, as the error is a type error in the IR.

I need to include the phase in the “issue38.as:46.1-46.15: IR type error, subtype violation:” message to see clearly if this arose after desugaring (indicating a bug in typing, desugar or check_ir), or after a later pass (indicating a bug in that pass or check_ir). Until then, run with -v to see after which phase it occurred.

@nomeata
Copy link
Contributor

nomeata commented Feb 20, 2019

The IR is already ill-typed after desugaring (the following is the output with #179)

Ill-typed intermediate code after desugaring (use -v to see dumped IR):
issue38.as:46.1-46.15: IR type error, subtype violation:
  (((),)) -> ()
  (()) -> ()

Unrelatedly, the build now says

Warning: one state has reduce/reduce conflicts.
Warning: 3 reduce/reduce conflicts were arbitrarily resolved.

is that something that ought to worry us?

@crusso
Copy link
Contributor

crusso commented Feb 20, 2019

Gabor, is you set OCAMLRUNPARAM="b" in your environment, then you should get a stack trace that pinpoints where the error occurred in the IR checker.

@crusso
Copy link
Contributor

crusso commented Feb 20, 2019

And yes, parsing ambiguities should be removed, especially reduce/reduce ones.

@ggreif
Copy link
Contributor Author

ggreif commented Feb 20, 2019

parser.conflicts.txt

Working on a fix... Done.

@rossberg
Copy link
Contributor

I think the right fix is not to handle the parameter parens case in parsing but in typing.

so that `pat_top` and `pat_nullary` can share the common innards.

This avoids the reduce/reduce conflicts reported by `menhir`.

CAVEAT: I am not a grammar expert, so there may be better ways to accomplish this.
Suggestions welcome.
@crusso
Copy link
Contributor

crusso commented Feb 20, 2019

@ggreif Did you get issue38 above working? I checked out the branch but cannot reproduce it....

@crusso
Copy link
Contributor

crusso commented Feb 20, 2019

FTR Never mind - the bug is still there, but you need to run the test manually to see it …

@nomeata nomeata removed their request for review February 26, 2019 11:19
src/desugar.ml Outdated
| S.TupP [p1], Type.Tup [n] -> { p with it = p1.it; note = n }
| _ -> p in
let param p = match p.it with
| S.ParP p1 -> pat (fix_unary { p with it = S.TupP [p1]; note = Type.Tup [p.note] })
Copy link
Contributor

@crusso crusso Feb 27, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the S.ParP p1 case, would it not be make more sense to just continue with pat p1 - or is there something more subtle going on here.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed with @crusso, not sure why there are two levels of special casing.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will fold. There is nothing subtle going on besides "separation of concerns". See my previous explanation.

src/operator.ml Outdated
| T.Word32 -> fun v -> Word32 (fword32 (as_word32 v))
| T.Word64 -> fun v -> Word64 (fword64 (as_word64 v))
| _ -> raise (Invalid_argument "unop")
| _ -> raise (Invalid_argument "word_unop")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are these unrelated changes that snuck into the branch? I wouldn't bother reverting, just wanted to draw your attention...

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would prefer reverting that change, since word_unop is an implementation detail of the module, and only unop is meaningful outside.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am happy to revert. I did this because there are two raise (Invalid_argument "unop") defaults in that file, and when I made an attempt to always wrap ParP around inner patterns I got this exception. Here is the dump:

switch: [tc] [run] [run-low] [run-ir] [wasm]
--- switch.tc (expected)
+++ switch.tc (actual)
@@ -1,6 +1,4 @@
-switch.as:87.33-87.34: warning, this pattern is never matched
-switch.as:75.11-77.2: warning, the cases in this switch do not cover all possible values
-switch.as:81.3-81.14: warning, the cases in this switch do not cover all possible values
-switch.as:87.3-87.40: warning, the cases in this switch do not cover all possible values
-switch.as:92.11-94.2: warning, the cases in this switch do not cover all possible values
-switch.as:97.11-99.2: warning, the cases in this switch do not cover all possible values
+(unknown location): internal error, Invalid_argument("unop")
+
+Last environment:
+

It is kind-of hard to figure which function threw, when two are throwing the same thing :-)
(Cursory debugging of the issue did not give any helpful clues, only that it is not word_unop who is throwing.)

Anyway, if we go forward (with a distinct PR) to equate unary tuples and values in the parser, then the ParP wrapping will be moot anyway, so I prefer to leave the parser as-is for now.

Also my (not pushed) experiment to always add ParP resulted in a bunch of changed source locations (parens around AltP) making the reporting less precise:

-coverage.as:5.8-5.14: warning, this pattern does not cover all possible values
+coverage.as:5.7-5.15: warning, this pattern does not cover all possible values

I could fix that by inheriting the inner srcloc, but I don't see the benefit.

Copy link
Contributor

@crusso crusso left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've added some comment inline. I still think we are only masking the problem with unit tuples, but for now, I think this is almost good to merge (see comments)

src/desugar.ml Outdated
and dec d = phrase' dec' d
and dec' at n d = match d with
and dec' at n d =
let fix_unary p = match p.it, p.note with
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hm, it looks fishy to me to only apply such a special case in one place. If the solution is to essentially remove unary tuples then the right place to do this normalisation is in the parser, in the productions for tuples, so that the AST never contains a unary tuple type/exp/pat in the first place.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When I wrote this, my intention was not to equate values with the unary tuple formed from them. I was bending to the (empirical) observation that the later stages (i.e. coverage analyser, interpreter) seem to insist that single arguments should not be wrapped by an extra layer of TupP. Please note that at this point both the type system as well as the runtime values do have the notion of unary tuple, the only place where I strip them is here for unary function arguments, with the fix_unary function. The separation I chose arose from the consideration, that I wanted to make clear that we first lower to a canonical form (i.e. TupP around arguments) and then fix the single argument case that causes trouble downstream. As already discussed with @crusso I plan to write a new story for cleaning up the status quo. For this PR I'll fold the two levels into one.

src/desugar.ml Outdated
let fix_unary p = match p.it, p.note with
| S.TupP [p1], Type.Tup [n] -> { p with it = p1.it; note = n }
| _ -> p in
let param p = match p.it with
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: avoid nesting functions unless they actually close over something.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay, this seems to be a stylistic issue. Are there any such conventions written down somewhere? My notion used to be "define utilities in the closest possible scope", which I do here. I'll try to lift this out to top-level when folding the two functions into one. I wonder however, if that will export the function from the module?

src/desugar.ml Outdated
| S.TupP [p1], Type.Tup [n] -> { p with it = p1.it; note = n }
| _ -> p in
let param p = match p.it with
| S.ParP p1 -> pat (fix_unary { p with it = S.TupP [p1]; note = Type.Tup [p.note] })
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed with @crusso, not sure why there are two levels of special casing.

src/operator.ml Outdated
| T.Word32 -> fun v -> Word32 (fword32 (as_word32 v))
| T.Word64 -> fun v -> Word64 (fword64 (as_word64 v))
| _ -> raise (Invalid_argument "unop")
| _ -> raise (Invalid_argument "word_unop")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would prefer reverting that change, since word_unop is an implementation detail of the module, and only unop is meaningful outside.

Copy link
Contributor Author

@ggreif ggreif left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is getting waaay bigger than originally thought. I have motivated my decisions to my best knowledge, please ask if something is still unclear. This is on my plate:

  • revert the unop (and friends) change
  • fold fix_unary into param and move to toplevel
  • (optionally) investigate the root cause for the internal error when ParP wraps an AnnP (if you insist)
  • write follow-on story to rectify the single-argument mess.

src/desugar.ml Outdated
and dec d = phrase' dec' d
and dec' at n d = match d with
and dec' at n d =
let fix_unary p = match p.it, p.note with
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When I wrote this, my intention was not to equate values with the unary tuple formed from them. I was bending to the (empirical) observation that the later stages (i.e. coverage analyser, interpreter) seem to insist that single arguments should not be wrapped by an extra layer of TupP. Please note that at this point both the type system as well as the runtime values do have the notion of unary tuple, the only place where I strip them is here for unary function arguments, with the fix_unary function. The separation I chose arose from the consideration, that I wanted to make clear that we first lower to a canonical form (i.e. TupP around arguments) and then fix the single argument case that causes trouble downstream. As already discussed with @crusso I plan to write a new story for cleaning up the status quo. For this PR I'll fold the two levels into one.

src/desugar.ml Outdated
let fix_unary p = match p.it, p.note with
| S.TupP [p1], Type.Tup [n] -> { p with it = p1.it; note = n }
| _ -> p in
let param p = match p.it with
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay, this seems to be a stylistic issue. Are there any such conventions written down somewhere? My notion used to be "define utilities in the closest possible scope", which I do here. I'll try to lift this out to top-level when folding the two functions into one. I wonder however, if that will export the function from the module?

src/desugar.ml Outdated
| S.TupP [p1], Type.Tup [n] -> { p with it = p1.it; note = n }
| _ -> p in
let param p = match p.it with
| S.ParP p1 -> pat (fix_unary { p with it = S.TupP [p1]; note = Type.Tup [p.note] })
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will fold. There is nothing subtle going on besides "separation of concerns". See my previous explanation.

{ LitP(ref l) @! at $sloc }
| LPAR p=pat RPAR
{ p }
{ match p.it with
Copy link
Contributor Author

@ggreif ggreif Feb 28, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tried to get away with the distinction, but it caused the

+(unknown location): internal error, Invalid_argument("unop")

failure. I have analysed it and it originates from:

 let x2 : Int = switch (-3) {
   case (0) 0;
   case (-1) 2; // <<< problem
   case (-3) 1;
   case (x) x;
 };

so the unop is -. The switch expression case legs end up with (ParP ...). There is a bug somewhere handling this case. Seems like unop does not handle Type.Pre.
Note that the parse tree now contains all the extra ParPs:

  (LetD
    (VarP x2)
    (AnnotE
      (SwitchE
        (UnE ??? NegOp (LitE (PreLit 3 Nat)))
        (case (ParP (LitP (PreLit 0 Nat))) (LitE (PreLit 0 Nat)))
        (case (ParP (SignP NegOp (PreLit 1 Nat))) (LitE (PreLit 2 Nat)))
        (case (ParP (SignP NegOp (PreLit 3 Nat))) (LitE (PreLit 1 Nat)))
        (case (ParP (VarP x)) (VarE x))
      )
      (VarT Int)
    )
  )

Update: cracked it. infer_pat' should always call infer_pat when descending, but I was calling infer_pat' from the PatP case, thus not updating references.

Also, in the desugarer I am assuming that ParP only wraps (TupP ...). See the param (and fix_unary conversation above). The new param is indifferent.

The other reason for not using { ParP p @! at $sloc } is the loss of precision when pointing out non-coverage warnings. I explained this in my previous comment.

@ggreif ggreif requested review from crusso, nomeata and rossberg March 5, 2019 09:10
and param p =
pat (match p.it, p.note with
| S.ParP p1, _ -> p1
| S.TupP [p1], Type.Tup [n] -> { p with it = p1.it; note = n }
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To this is normalizing patterns on unary tuples to unary arguments - which is different from what Andreas was suggesting, but I'm ok with that for now.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As there will be a bigger clean-up AST soon, I'll defer to that.

h1(());
gh[0](());
gh[1](());
gh[2](());
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice tests! Would it make sense to add a couple of negative ones in test/fail too, eg distinguishing unary functions on pairs from binary functions etc

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll do a little follow-on for this, as I actually have a few stashed tests that fail lying around.

Copy link
Contributor

@crusso crusso left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm good with this. I suggested added some negative tests but I'll leave compliance up to you. Sorry I took so long to review.

@ggreif ggreif mentioned this pull request Mar 5, 2019
@ggreif ggreif merged commit cd26cd3 into master Mar 5, 2019
@ggreif ggreif deleted the gabor/one-tuples branch March 5, 2019 22:42
dfinity-bot added a commit that referenced this pull request May 23, 2023
## Changelog for ic-hs:
Branch: master
Commits: [dfinity/ic-hs@406decfa...a1b3f670](dfinity/ic-hs@406decf...a1b3f67)

* [`d4db8d07`](dfinity/ic-hs@d4db8d0) bump nixpkgs to 7c786944f801745310578d1cfc019923396f830c ([dfinity/ic-hs⁠#163](https://github.com/dfinity/ic-hs/issues/163))
* [`31d535d2`](dfinity/ic-hs@31d535d) increase the number of allowed delegations in a request from 4 to 20 ([dfinity/ic-hs⁠#166](https://github.com/dfinity/ic-hs/issues/166))
* [`4a310c0d`](dfinity/ic-hs@4a310c0) support ic0.is_controller ([dfinity/ic-hs⁠#169](https://github.com/dfinity/ic-hs/issues/169))
* [`5fc27bdc`](dfinity/ic-hs@5fc27bd) do not include keep-alive header in httpbin response ([dfinity/ic-hs⁠#170](https://github.com/dfinity/ic-hs/issues/170))
* [`96448083`](dfinity/ic-hs@9644808) drop nix-build-uncached ([dfinity/ic-hs⁠#175](https://github.com/dfinity/ic-hs/issues/175))
* [`c6fbe1f7`](dfinity/ic-hs@c6fbe1f) increase ingress_expiry in reference test suite ([dfinity/ic-hs⁠#176](https://github.com/dfinity/ic-hs/issues/176))
* [`a1b3f670`](dfinity/ic-hs@a1b3f67) add Connection: close header to httpbin ([dfinity/ic-hs⁠#178](https://github.com/dfinity/ic-hs/issues/178))
dfinity-bot added a commit that referenced this pull request May 25, 2023
## Changelog for ic-hs:
Branch: master
Commits: [dfinity/ic-hs@406decfa...d3812ffc](dfinity/ic-hs@406decf...d3812ff)

* [`d4db8d07`](dfinity/ic-hs@d4db8d0) bump nixpkgs to 7c786944f801745310578d1cfc019923396f830c ([dfinity/ic-hs⁠#163](https://github.com/dfinity/ic-hs/issues/163))
* [`31d535d2`](dfinity/ic-hs@31d535d) increase the number of allowed delegations in a request from 4 to 20 ([dfinity/ic-hs⁠#166](https://github.com/dfinity/ic-hs/issues/166))
* [`4a310c0d`](dfinity/ic-hs@4a310c0) support ic0.is_controller ([dfinity/ic-hs⁠#169](https://github.com/dfinity/ic-hs/issues/169))
* [`5fc27bdc`](dfinity/ic-hs@5fc27bd) do not include keep-alive header in httpbin response ([dfinity/ic-hs⁠#170](https://github.com/dfinity/ic-hs/issues/170))
* [`96448083`](dfinity/ic-hs@9644808) drop nix-build-uncached ([dfinity/ic-hs⁠#175](https://github.com/dfinity/ic-hs/issues/175))
* [`c6fbe1f7`](dfinity/ic-hs@c6fbe1f) increase ingress_expiry in reference test suite ([dfinity/ic-hs⁠#176](https://github.com/dfinity/ic-hs/issues/176))
* [`a1b3f670`](dfinity/ic-hs@a1b3f67) add Connection: close header to httpbin ([dfinity/ic-hs⁠#178](https://github.com/dfinity/ic-hs/issues/178))
* [`d3812ffc`](dfinity/ic-hs@d3812ff) increase delegation expiry in tests ([dfinity/ic-hs⁠#182](https://github.com/dfinity/ic-hs/issues/182))
dfinity-bot added a commit that referenced this pull request May 26, 2023
## Changelog for ic-hs:
Branch: master
Commits: [dfinity/ic-hs@406decfa...7a6259c2](dfinity/ic-hs@406decf...7a6259c)

* [`d4db8d07`](dfinity/ic-hs@d4db8d0) bump nixpkgs to 7c786944f801745310578d1cfc019923396f830c ([dfinity/ic-hs⁠#163](https://github.com/dfinity/ic-hs/issues/163))
* [`31d535d2`](dfinity/ic-hs@31d535d) increase the number of allowed delegations in a request from 4 to 20 ([dfinity/ic-hs⁠#166](https://github.com/dfinity/ic-hs/issues/166))
* [`4a310c0d`](dfinity/ic-hs@4a310c0) support ic0.is_controller ([dfinity/ic-hs⁠#169](https://github.com/dfinity/ic-hs/issues/169))
* [`5fc27bdc`](dfinity/ic-hs@5fc27bd) do not include keep-alive header in httpbin response ([dfinity/ic-hs⁠#170](https://github.com/dfinity/ic-hs/issues/170))
* [`96448083`](dfinity/ic-hs@9644808) drop nix-build-uncached ([dfinity/ic-hs⁠#175](https://github.com/dfinity/ic-hs/issues/175))
* [`c6fbe1f7`](dfinity/ic-hs@c6fbe1f) increase ingress_expiry in reference test suite ([dfinity/ic-hs⁠#176](https://github.com/dfinity/ic-hs/issues/176))
* [`a1b3f670`](dfinity/ic-hs@a1b3f67) add Connection: close header to httpbin ([dfinity/ic-hs⁠#178](https://github.com/dfinity/ic-hs/issues/178))
* [`d3812ffc`](dfinity/ic-hs@d3812ff) increase delegation expiry in tests ([dfinity/ic-hs⁠#182](https://github.com/dfinity/ic-hs/issues/182))
* [`40a46e2f`](dfinity/ic-hs@40a46e2) sync universal-canister with IC repo ([dfinity/ic-hs⁠#177](https://github.com/dfinity/ic-hs/issues/177))
* [`7a6259c2`](dfinity/ic-hs@7a6259c) decrease number of threads and request submission latency ([dfinity/ic-hs⁠#179](https://github.com/dfinity/ic-hs/issues/179))
dfinity-bot added a commit that referenced this pull request May 27, 2023
## Changelog for ic-hs:
Branch: master
Commits: [dfinity/ic-hs@406decfa...a9f73dba](dfinity/ic-hs@406decf...a9f73db)

* [`d4db8d07`](dfinity/ic-hs@d4db8d0) bump nixpkgs to 7c786944f801745310578d1cfc019923396f830c ([dfinity/ic-hs⁠#163](https://github.com/dfinity/ic-hs/issues/163))
* [`31d535d2`](dfinity/ic-hs@31d535d) increase the number of allowed delegations in a request from 4 to 20 ([dfinity/ic-hs⁠#166](https://github.com/dfinity/ic-hs/issues/166))
* [`4a310c0d`](dfinity/ic-hs@4a310c0) support ic0.is_controller ([dfinity/ic-hs⁠#169](https://github.com/dfinity/ic-hs/issues/169))
* [`5fc27bdc`](dfinity/ic-hs@5fc27bd) do not include keep-alive header in httpbin response ([dfinity/ic-hs⁠#170](https://github.com/dfinity/ic-hs/issues/170))
* [`96448083`](dfinity/ic-hs@9644808) drop nix-build-uncached ([dfinity/ic-hs⁠#175](https://github.com/dfinity/ic-hs/issues/175))
* [`c6fbe1f7`](dfinity/ic-hs@c6fbe1f) increase ingress_expiry in reference test suite ([dfinity/ic-hs⁠#176](https://github.com/dfinity/ic-hs/issues/176))
* [`a1b3f670`](dfinity/ic-hs@a1b3f67) add Connection: close header to httpbin ([dfinity/ic-hs⁠#178](https://github.com/dfinity/ic-hs/issues/178))
* [`d3812ffc`](dfinity/ic-hs@d3812ff) increase delegation expiry in tests ([dfinity/ic-hs⁠#182](https://github.com/dfinity/ic-hs/issues/182))
* [`40a46e2f`](dfinity/ic-hs@40a46e2) sync universal-canister with IC repo ([dfinity/ic-hs⁠#177](https://github.com/dfinity/ic-hs/issues/177))
* [`7a6259c2`](dfinity/ic-hs@7a6259c) decrease number of threads and request submission latency ([dfinity/ic-hs⁠#179](https://github.com/dfinity/ic-hs/issues/179))
* [`a9f73dba`](dfinity/ic-hs@a9f73db) fix decoding compressed WASM modules during snapshotting ([dfinity/ic-hs⁠#184](https://github.com/dfinity/ic-hs/issues/184))
dfinity-bot added a commit that referenced this pull request May 28, 2023
## Changelog for ic-hs:
Branch: master
Commits: [dfinity/ic-hs@406decfa...a9f73dba](dfinity/ic-hs@406decf...a9f73db)

* [`d4db8d07`](dfinity/ic-hs@d4db8d0) bump nixpkgs to 7c786944f801745310578d1cfc019923396f830c ([dfinity/ic-hs⁠#163](https://github.com/dfinity/ic-hs/issues/163))
* [`31d535d2`](dfinity/ic-hs@31d535d) increase the number of allowed delegations in a request from 4 to 20 ([dfinity/ic-hs⁠#166](https://github.com/dfinity/ic-hs/issues/166))
* [`4a310c0d`](dfinity/ic-hs@4a310c0) support ic0.is_controller ([dfinity/ic-hs⁠#169](https://github.com/dfinity/ic-hs/issues/169))
* [`5fc27bdc`](dfinity/ic-hs@5fc27bd) do not include keep-alive header in httpbin response ([dfinity/ic-hs⁠#170](https://github.com/dfinity/ic-hs/issues/170))
* [`96448083`](dfinity/ic-hs@9644808) drop nix-build-uncached ([dfinity/ic-hs⁠#175](https://github.com/dfinity/ic-hs/issues/175))
* [`c6fbe1f7`](dfinity/ic-hs@c6fbe1f) increase ingress_expiry in reference test suite ([dfinity/ic-hs⁠#176](https://github.com/dfinity/ic-hs/issues/176))
* [`a1b3f670`](dfinity/ic-hs@a1b3f67) add Connection: close header to httpbin ([dfinity/ic-hs⁠#178](https://github.com/dfinity/ic-hs/issues/178))
* [`d3812ffc`](dfinity/ic-hs@d3812ff) increase delegation expiry in tests ([dfinity/ic-hs⁠#182](https://github.com/dfinity/ic-hs/issues/182))
* [`40a46e2f`](dfinity/ic-hs@40a46e2) sync universal-canister with IC repo ([dfinity/ic-hs⁠#177](https://github.com/dfinity/ic-hs/issues/177))
* [`7a6259c2`](dfinity/ic-hs@7a6259c) decrease number of threads and request submission latency ([dfinity/ic-hs⁠#179](https://github.com/dfinity/ic-hs/issues/179))
* [`a9f73dba`](dfinity/ic-hs@a9f73db) fix decoding compressed WASM modules during snapshotting ([dfinity/ic-hs⁠#184](https://github.com/dfinity/ic-hs/issues/184))
dfinity-bot added a commit that referenced this pull request May 30, 2023
## Changelog for ic-hs:
Branch: master
Commits: [dfinity/ic-hs@406decfa...a9f73dba](dfinity/ic-hs@406decf...a9f73db)

* [`d4db8d07`](dfinity/ic-hs@d4db8d0) bump nixpkgs to 7c786944f801745310578d1cfc019923396f830c ([dfinity/ic-hs⁠#163](https://github.com/dfinity/ic-hs/issues/163))
* [`31d535d2`](dfinity/ic-hs@31d535d) increase the number of allowed delegations in a request from 4 to 20 ([dfinity/ic-hs⁠#166](https://github.com/dfinity/ic-hs/issues/166))
* [`4a310c0d`](dfinity/ic-hs@4a310c0) support ic0.is_controller ([dfinity/ic-hs⁠#169](https://github.com/dfinity/ic-hs/issues/169))
* [`5fc27bdc`](dfinity/ic-hs@5fc27bd) do not include keep-alive header in httpbin response ([dfinity/ic-hs⁠#170](https://github.com/dfinity/ic-hs/issues/170))
* [`96448083`](dfinity/ic-hs@9644808) drop nix-build-uncached ([dfinity/ic-hs⁠#175](https://github.com/dfinity/ic-hs/issues/175))
* [`c6fbe1f7`](dfinity/ic-hs@c6fbe1f) increase ingress_expiry in reference test suite ([dfinity/ic-hs⁠#176](https://github.com/dfinity/ic-hs/issues/176))
* [`a1b3f670`](dfinity/ic-hs@a1b3f67) add Connection: close header to httpbin ([dfinity/ic-hs⁠#178](https://github.com/dfinity/ic-hs/issues/178))
* [`d3812ffc`](dfinity/ic-hs@d3812ff) increase delegation expiry in tests ([dfinity/ic-hs⁠#182](https://github.com/dfinity/ic-hs/issues/182))
* [`40a46e2f`](dfinity/ic-hs@40a46e2) sync universal-canister with IC repo ([dfinity/ic-hs⁠#177](https://github.com/dfinity/ic-hs/issues/177))
* [`7a6259c2`](dfinity/ic-hs@7a6259c) decrease number of threads and request submission latency ([dfinity/ic-hs⁠#179](https://github.com/dfinity/ic-hs/issues/179))
* [`a9f73dba`](dfinity/ic-hs@a9f73db) fix decoding compressed WASM modules during snapshotting ([dfinity/ic-hs⁠#184](https://github.com/dfinity/ic-hs/issues/184))
mergify bot pushed a commit that referenced this pull request Jun 6, 2023
## Changelog for ic-hs:
Branch: master
Commits: [dfinity/ic-hs@406decfa...9152a0ff](dfinity/ic-hs@406decf...9152a0f)

* [`d4db8d07`](dfinity/ic-hs@d4db8d0) bump nixpkgs to 7c786944f801745310578d1cfc019923396f830c ([dfinity/ic-hs⁠#163](https://github.com/dfinity/ic-hs/issues/163))
* [`31d535d2`](dfinity/ic-hs@31d535d) increase the number of allowed delegations in a request from 4 to 20 ([dfinity/ic-hs⁠#166](https://github.com/dfinity/ic-hs/issues/166))
* [`4a310c0d`](dfinity/ic-hs@4a310c0) support ic0.is_controller ([dfinity/ic-hs⁠#169](https://github.com/dfinity/ic-hs/issues/169))
* [`5fc27bdc`](dfinity/ic-hs@5fc27bd) do not include keep-alive header in httpbin response ([dfinity/ic-hs⁠#170](https://github.com/dfinity/ic-hs/issues/170))
* [`96448083`](dfinity/ic-hs@9644808) drop nix-build-uncached ([dfinity/ic-hs⁠#175](https://github.com/dfinity/ic-hs/issues/175))
* [`c6fbe1f7`](dfinity/ic-hs@c6fbe1f) increase ingress_expiry in reference test suite ([dfinity/ic-hs⁠#176](https://github.com/dfinity/ic-hs/issues/176))
* [`a1b3f670`](dfinity/ic-hs@a1b3f67) add Connection: close header to httpbin ([dfinity/ic-hs⁠#178](https://github.com/dfinity/ic-hs/issues/178))
* [`d3812ffc`](dfinity/ic-hs@d3812ff) increase delegation expiry in tests ([dfinity/ic-hs⁠#182](https://github.com/dfinity/ic-hs/issues/182))
* [`40a46e2f`](dfinity/ic-hs@40a46e2) sync universal-canister with IC repo ([dfinity/ic-hs⁠#177](https://github.com/dfinity/ic-hs/issues/177))
* [`7a6259c2`](dfinity/ic-hs@7a6259c) decrease number of threads and request submission latency ([dfinity/ic-hs⁠#179](https://github.com/dfinity/ic-hs/issues/179))
* [`a9f73dba`](dfinity/ic-hs@a9f73db) fix decoding compressed WASM modules during snapshotting ([dfinity/ic-hs⁠#184](https://github.com/dfinity/ic-hs/issues/184))
* [`64c19a95`](dfinity/ic-hs@64c19a9) bump nixpkgs to eaf03591711b46d21abc7082a8ebee4681f9dbeb ([dfinity/ic-hs⁠#189](https://github.com/dfinity/ic-hs/issues/189))
* [`9152a0ff`](dfinity/ic-hs@9152a0f) add date header to httpbin responses and make http header names lower-case ([dfinity/ic-hs⁠#188](https://github.com/dfinity/ic-hs/issues/188))

Includes and closes #3915. Reason: `ic-hs` and `nixpkgs` must be in sync, so that the artefact caching can work.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Bug Something isn't working starter project Good for newcomers

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants