Conversation
* Unify blocks and objects in typing & interpretation. * Remove analysis mode for object literals, since it is bogus due to bindings. * Reconcile type annotations (make sure to use the inferred type). * Drop extra type annotation from BlockE. * Remove DecE from AST. * Make Type.con a fully abstract type. * Some minor bug fixes on the way. * Some renamings and clean-ups. Follow-ups: TODO(andreas): Invert public/private defaults; separate short-hand field forms. TODO(joachim): Currently, decs are desugared into fields in the IR. The backend still needs proper support for decs, e.g. to handle `let` with patterns in an object. TODO(claudio): Handle type fields.
src/type.ml
Outdated
| (* The con field is a reference to break the recursion in open_binds, | ||
| and to allow the multiple passes in typing *) | ||
| let kind con = !(Con.kind con) | ||
| module Con = |
There was a problem hiding this comment.
Yes, I'm fine with resolving the conflict here once you landed. Already spent multiple hours resolving the conflicts with the previous con change, so I'm used to it. :)
There was a problem hiding this comment.
Landed. Enjoy the merge :-)
There was a problem hiding this comment.
Merged. I moved the ConSet impl to a new module Dom that is to Set what Env is to Map.
src/check_ir.ml
Outdated
| check_typ env t0; | ||
| check (T.eq t T.unit || T.eq t1 t0) "unexpected expected block type"; | ||
| t0 <: t; | ||
| if t <> T.unit then t1 <: t; |
There was a problem hiding this comment.
This is an odd non-continuity (and it might bite in the backend, or at least cause some extra checks there). Is that explained somewhere? Maybe add a comment here why we need this.
There was a problem hiding this comment.
Note that this already existed before (see check on old l.392), I just changed the way it's checked.
This matches the type system. The reason this case exists is so that a block whose last thing is a valueful dec is not a type error. Stupid example:
func g() { func f() {} };
There was a problem hiding this comment.
So the type of the last expression is either a subtype of the expected type, unless the expected type is ()?
So I can do { true } : ()? (On the phone, can't check)
There was a problem hiding this comment.
During typing, this rule is only applicable to proper declarations, not expressions. Check_ir is a bit more permissive. If that's a problem I suppose we could tighten it.
There was a problem hiding this comment.
It might. The backend compiles a block returning a unit differently than one returning true (nothing on the stack vs. something), so it would have to check which case is taken here in the type checker and adjust the return value accordingly, I believe.
There was a problem hiding this comment.
Ah, I get what you are saying: This can’t be exploited by source, and in practice the backend can rely on a block having the same type (a supertype of) its last expression, but it is tedious to check this in the IR properly. Ok, fine with me for now, we can revisit that in later improvements to Check_ir.
There was a problem hiding this comment.
this always bugged me a bit too, but I can see the reasoning behind it. Check_ir may need fixin or can we just desugar to insertion of a final expD tupE[]?
There was a problem hiding this comment.
or can we just desugar to insertion of a final
expD tupE[]?
that sounds like a fine way out, good idea (and the current backend will already not produce code for that, because a unit tuple is represented as a zero stack).
Can we avoid this? Couldn’t this be desugared to an outer I guess it would work for The first argument declares (but not defines) all fields, the comes a list of publicly exposed functions, and then an initialization expression that defines all fields (using I am not happy with this, of course, maybe someone has a better idea? |
rossberg
left a comment
There was a problem hiding this comment.
Yeah, sorry for the size. As usual this grew top-down.
src/check_ir.ml
Outdated
| check_typ env t0; | ||
| check (T.eq t T.unit || T.eq t1 t0) "unexpected expected block type"; | ||
| t0 <: t; | ||
| if t <> T.unit then t1 <: t; |
There was a problem hiding this comment.
Note that this already existed before (see check on old l.392), I just changed the way it's checked.
This matches the type system. The reason this case exists is so that a block whose last thing is a valueful dec is not a type error. Stupid example:
func g() { func f() {} };
src/type.ml
Outdated
| (* The con field is a reference to break the recursion in open_binds, | ||
| and to allow the multiple passes in typing *) | ||
| let kind con = !(Con.kind con) | ||
| module Con = |
There was a problem hiding this comment.
Yes, I'm fine with resolving the conflict here once you landed. Already spent multiple hours resolving the conflicts with the previous con change, so I'm used to it. :)
That the IR somehow needs to be able to represent objects with decs in them (or some simplification thereof).
Maybe. This is essentially requires pattern binding compilation, so if we do that earlier than we wouldn't need decs in objects later. Other than that, I don't have a good idea how to avoid it without implementing the same logic twice. |
Really? At least for objects, we can just move the object creation inside the decls (this is what the current desugarer and IR does already), but leaves the pattern matching in decls as it is. |
|
Aye, you are right. I'll look into it. Public type definitions might become a problem, though, unless we can erase them. |
|
The current branch accepts or even In other words: Actor methods are no longer just always static functions, but rather can be calculated values. This is new. I was about to say “we can’t do that”, but in fact, we can: The backend would generate an exported function that does nothing but call a closure stored at a well-known location in the heap. (We use such static locations for private actor variables already). The init function of the actor would then fill these memory locations, just like it does with private calculated data. This way, we can expose closures. The compiler could optionally optimize cases where the function is statically known to export it directly. This points to maybe for the IR: An actor consists of a bunch of declarations (run as part of the init function), and a list of exported functions together with their exposed name, their calling convention (or maybe their full type) and the variable that defines them. So not just |
| t' | ||
|
|
||
| and infer_exp_mut env exp : T.typ = | ||
| and infer_exp' f env exp : T.typ = |
There was a problem hiding this comment.
Nit: why not call this infer_exp_core and leave infer_exp' for infer_exp'' (to match the other patterns).
src/typing.ml
Outdated
| infer_obj env' sort.it id None fields | ||
| | DotE (exp1, sr, {it = Name n; _}) -> | ||
| infer_obj env' sort.it id T.Pre fields exp.at | ||
| | DotE (exp1, sr, {it = Name l; _}) -> |
There was a problem hiding this comment.
Nit: rename Name to Lab for consistency - or is that already used for jump labels?
There was a problem hiding this comment.
Yes, confusion with jump labels was the problem. But I moved Name from AST to IR, since we don't rename on the AST anymore.
| exp.note <- {note_typ = t'; note_eff = e} | ||
|
|
||
| and check_exp' env t exp = | ||
| and check_exp' env t exp : T.typ = |
There was a problem hiding this comment.
And you guys gave me such hell for having check in Check_ir return a typ... (or maybe that was just Joachim)
There was a problem hiding this comment.
It was me. Good point. Why does check_exp' need to return a type?
There was a problem hiding this comment.
It was me. Good point. Why does check_exp' need to return a type?
There was a problem hiding this comment.
This is just the helper, not the "main" check function. ;) It returns the inferred type in cases where it switches to synthesis mode. That's only to allow putting the more specific type annotation on the node and getting rid of e.g. the extra annotation on blocks (and another small bug in desugaring).
src/typing.ml
Outdated
| T.ConSet.singleton c | ||
| infer_id_typdecs env id c k | ||
|
|
||
| and infer_id_typdecs env id c k : con_env = |
There was a problem hiding this comment.
env is unused in infer_id_typdecs
| assert (a[0][0] == 2); | ||
|
|
||
| let b : [{var x : Int}] = [new {var x = 1}]; | ||
| let b : [{var x : Int}] = [new {var x : Int = 1}]; |
There was a problem hiding this comment.
So we can't propagate expected types into binders anymore (here and below)? Ok by me, I'm just checking this is an example....
There was a problem hiding this comment.
Yes. At least not for covariabnt binders, contravariant ones (like func args) would be fine.
| let env' = add_val env id.it t in | ||
| (* Prepass to infer type for id *) | ||
| let _, scope = infer_block {env' with pre = true} decs at in | ||
| let pub_typ, pub_val = pub_fields fields in |
There was a problem hiding this comment.
Nicely done! Is this why you were complaining about the separate namespaces?
There was a problem hiding this comment.
Yes, among other things (before I removed analysis mode for binders it came up in more places).
| assert(p.x == 3); | ||
| assert(p.get_y() == 2); | ||
|
|
||
| let o : {a : {}; b : Nat} = new {a = new {x = 0}; b = a.x}; |
There was a problem hiding this comment.
I wonder if we could keep public by default (convenient for records) but make private/public sticky so the last modifier applies to all decs following it. new (for records) might be public by default, objects/actors private by default.
object {
private
y = ...; // private
x = ...; // private
public
move(dx,dy) {}; // public
swap() {}; // public
private unsafe(); // private again
}
There was a problem hiding this comment.
Yes, (later) I want to make new a purely record-like syntax that is all public.
Sticky visibility modifiers OTOH would be like in C++, which is terrible IME -- it sometimes makes it really difficult to find the corresponding visibility of a dec. If we wanted accumulative visibility then we should rather introduce a shorthand like public { ... }, which at least enables you to find the surrounding braces. But so far I'm reluctant, given that most languages get by without it.
|
After some more thinking about it, I think or something similar for the IR is a good next step, and somewhat in line with the Meta question: Shall I do that on this branch, and land it together? Or can we land this in master as is, and then the refactoring separately? |
Indeed. I think I needed to be able to rename to cps convert an object literal with awaited field value. I expect the same issue may arise again. It wasn't necessary for the naive await translation, but became an issue when avoiding admistrative redexed because I wound up inlining continuations at occurences with intervening bindings, allowing capture if I didn't rename apart. |
Luckily we don't have |
Sorry, I was confused yesterday. This of course is the case for objects (as it was already), but doesn't work for actors. The function in question is only used for the latter. As you observed in a later reply, we will need to generalise the IR's actor construct somehow. I hope you're fine with me leaving that to you. |
That looks sensible and would support internal renaming. But why include the call_conv?
If the entire pipeline isn't working yet (is it?) then I'd definitely keep it on a branch... |
|
Okay, all comments addressed, I believe. @nomeata, I suggest doing follow-up work on master, to avoid more rebasing hell. |
|
Looks good to me. |
|
Created https://dfinity.atlassian.net/browse/AST-58 for the follow-up work. |
Branch: master Commits: [dfinity/candid@25fb8470...b80a2389](dfinity/candid@25fb847...b80a238) * [`ea2c72f5`](dfinity/candid@ea2c72f) support reference types ([dfinity/candid#153](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/153)) * [`d48bc04c`](dfinity/candid@d48bc04) fix record_nesting_depth for native Rust types ([dfinity/candid#155](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/155)) * [`e54d3e4a`](dfinity/candid@e54d3e4) support more Rust built-in types ([dfinity/candid#156](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/156)) * [`3b3637e1`](dfinity/candid@3b3637e) release ([dfinity/candid#157](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/157)) * [`98d73586`](dfinity/candid@98d7358) debug print for values ([dfinity/candid#159](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/159)) * [`620ad802`](dfinity/candid@620ad80) fix debug print * [`01d23d61`](dfinity/candid@01d23d6) Candid test suite: More tests related to references ([dfinity/candid#160](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/160)) * [`c59c2fd1`](dfinity/candid@c59c2fd) release * [`3ac7e9d3`](dfinity/candid@3ac7e9d) fix type annotation in parser ([dfinity/candid#162](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/162)) * [`432c4289`](dfinity/candid@432c428) A Candid users’s guide ([dfinity/candid#158](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/158)) * [`315cb991`](dfinity/candid@315cb99) Coq: MiniCandid ([dfinity/candid#147](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/147)) * [`83fdff28`](dfinity/candid@83fdff2) Improve wording for type mismatches ([dfinity/candid#167](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/167)) * [`3028f5ed`](dfinity/candid@3028f5e) Lg/candid rev pre split ([dfinity/candid#169](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/169)) * [`6c8d4e39`](dfinity/candid@6c8d4e3) Lg/candid users guide ([dfinity/candid#170](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/170)) * [`0c2205fc`](dfinity/candid@0c2205f) FIx typo toll>tool ([dfinity/candid#172](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/172)) * [`63d9f6fd`](dfinity/candid@63d9f6f) Test suite: A test that invalid unicode in method names is rejected ([dfinity/candid#174](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/174)) * [`dad82102`](dfinity/candid@dad8210) generate random candid values ([dfinity/candid#166](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/166)) * [`2720d995`](dfinity/candid@2720d99) Release ([dfinity/candid#176](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/176)) * [`9fbffdcc`](dfinity/candid@9fbffdc) Meta-Theory: Clarify transitive coherence ([dfinity/candid#173](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/173)) * [`8acbbd47`](dfinity/candid@8acbbd4) Update README.md * [`05ff9f82`](dfinity/candid@05ff9f8) Fix RUSTSEC-2020-0122 by upgrading logos which upgrades beef ([dfinity/candid#179](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/179)) * [`b65c0859`](dfinity/candid@b65c085) Candid test suite: Method sorting test ([dfinity/candid#177](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/177)) * [`8df6e6c0`](dfinity/candid@8df6e6c) bump ui * [`1977fdb3`](dfinity/candid@1977fdb) Typescript binding for Candid ([dfinity/candid#181](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/181)) * [`0c988a9a`](dfinity/candid@0c988a9) Lg/rust js type mapping ([dfinity/candid#180](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/180)) * [`b80a2389`](dfinity/candid@b80a238) Doc typo ([dfinity/candid#182](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/182))
Branch: master Commits: [dfinity/candid@25fb8470...6e35c0e2](dfinity/candid@25fb847...6e35c0e) * [`ea2c72f5`](dfinity/candid@ea2c72f) support reference types ([dfinity/candid#153](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/153)) * [`d48bc04c`](dfinity/candid@d48bc04) fix record_nesting_depth for native Rust types ([dfinity/candid#155](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/155)) * [`e54d3e4a`](dfinity/candid@e54d3e4) support more Rust built-in types ([dfinity/candid#156](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/156)) * [`3b3637e1`](dfinity/candid@3b3637e) release ([dfinity/candid#157](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/157)) * [`98d73586`](dfinity/candid@98d7358) debug print for values ([dfinity/candid#159](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/159)) * [`620ad802`](dfinity/candid@620ad80) fix debug print * [`01d23d61`](dfinity/candid@01d23d6) Candid test suite: More tests related to references ([dfinity/candid#160](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/160)) * [`c59c2fd1`](dfinity/candid@c59c2fd) release * [`3ac7e9d3`](dfinity/candid@3ac7e9d) fix type annotation in parser ([dfinity/candid#162](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/162)) * [`432c4289`](dfinity/candid@432c428) A Candid users’s guide ([dfinity/candid#158](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/158)) * [`315cb991`](dfinity/candid@315cb99) Coq: MiniCandid ([dfinity/candid#147](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/147)) * [`83fdff28`](dfinity/candid@83fdff2) Improve wording for type mismatches ([dfinity/candid#167](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/167)) * [`3028f5ed`](dfinity/candid@3028f5e) Lg/candid rev pre split ([dfinity/candid#169](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/169)) * [`6c8d4e39`](dfinity/candid@6c8d4e3) Lg/candid users guide ([dfinity/candid#170](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/170)) * [`0c2205fc`](dfinity/candid@0c2205f) FIx typo toll>tool ([dfinity/candid#172](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/172)) * [`63d9f6fd`](dfinity/candid@63d9f6f) Test suite: A test that invalid unicode in method names is rejected ([dfinity/candid#174](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/174)) * [`dad82102`](dfinity/candid@dad8210) generate random candid values ([dfinity/candid#166](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/166)) * [`2720d995`](dfinity/candid@2720d99) Release ([dfinity/candid#176](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/176)) * [`9fbffdcc`](dfinity/candid@9fbffdc) Meta-Theory: Clarify transitive coherence ([dfinity/candid#173](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/173)) * [`8acbbd47`](dfinity/candid@8acbbd4) Update README.md * [`05ff9f82`](dfinity/candid@05ff9f8) Fix RUSTSEC-2020-0122 by upgrading logos which upgrades beef ([dfinity/candid#179](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/179)) * [`b65c0859`](dfinity/candid@b65c085) Candid test suite: Method sorting test ([dfinity/candid#177](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/177)) * [`8df6e6c0`](dfinity/candid@8df6e6c) bump ui * [`1977fdb3`](dfinity/candid@1977fdb) Typescript binding for Candid ([dfinity/candid#181](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/181)) * [`0c988a9a`](dfinity/candid@0c988a9) Lg/rust js type mapping ([dfinity/candid#180](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/180)) * [`b80a2389`](dfinity/candid@b80a238) Doc typo ([dfinity/candid#182](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/182)) * [`b4a73dea`](dfinity/candid@b4a73de) support more Rust types for serialization ([dfinity/candid#185](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/185)) * [`14f50bc6`](dfinity/candid@14f50bc) fix typescript binding for references ([dfinity/candid#184](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/184)) * [`6e35c0e2`](dfinity/candid@6e35c0e) Release ([dfinity/candid#186](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/186))
Branch: master Commits: [dfinity/candid@25fb8470...6e35c0e2](dfinity/candid@25fb847...6e35c0e) * [`ea2c72f5`](dfinity/candid@ea2c72f) support reference types ([dfinity/candid#153](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/153)) * [`d48bc04c`](dfinity/candid@d48bc04) fix record_nesting_depth for native Rust types ([dfinity/candid#155](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/155)) * [`e54d3e4a`](dfinity/candid@e54d3e4) support more Rust built-in types ([dfinity/candid#156](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/156)) * [`3b3637e1`](dfinity/candid@3b3637e) release ([dfinity/candid#157](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/157)) * [`98d73586`](dfinity/candid@98d7358) debug print for values ([dfinity/candid#159](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/159)) * [`620ad802`](dfinity/candid@620ad80) fix debug print * [`01d23d61`](dfinity/candid@01d23d6) Candid test suite: More tests related to references ([dfinity/candid#160](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/160)) * [`c59c2fd1`](dfinity/candid@c59c2fd) release * [`3ac7e9d3`](dfinity/candid@3ac7e9d) fix type annotation in parser ([dfinity/candid#162](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/162)) * [`432c4289`](dfinity/candid@432c428) A Candid users’s guide ([dfinity/candid#158](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/158)) * [`315cb991`](dfinity/candid@315cb99) Coq: MiniCandid ([dfinity/candid#147](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/147)) * [`83fdff28`](dfinity/candid@83fdff2) Improve wording for type mismatches ([dfinity/candid#167](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/167)) * [`3028f5ed`](dfinity/candid@3028f5e) Lg/candid rev pre split ([dfinity/candid#169](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/169)) * [`6c8d4e39`](dfinity/candid@6c8d4e3) Lg/candid users guide ([dfinity/candid#170](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/170)) * [`0c2205fc`](dfinity/candid@0c2205f) FIx typo toll>tool ([dfinity/candid#172](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/172)) * [`63d9f6fd`](dfinity/candid@63d9f6f) Test suite: A test that invalid unicode in method names is rejected ([dfinity/candid#174](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/174)) * [`dad82102`](dfinity/candid@dad8210) generate random candid values ([dfinity/candid#166](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/166)) * [`2720d995`](dfinity/candid@2720d99) Release ([dfinity/candid#176](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/176)) * [`9fbffdcc`](dfinity/candid@9fbffdc) Meta-Theory: Clarify transitive coherence ([dfinity/candid#173](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/173)) * [`8acbbd47`](dfinity/candid@8acbbd4) Update README.md * [`05ff9f82`](dfinity/candid@05ff9f8) Fix RUSTSEC-2020-0122 by upgrading logos which upgrades beef ([dfinity/candid#179](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/179)) * [`b65c0859`](dfinity/candid@b65c085) Candid test suite: Method sorting test ([dfinity/candid#177](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/177)) * [`8df6e6c0`](dfinity/candid@8df6e6c) bump ui * [`1977fdb3`](dfinity/candid@1977fdb) Typescript binding for Candid ([dfinity/candid#181](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/181)) * [`0c988a9a`](dfinity/candid@0c988a9) Lg/rust js type mapping ([dfinity/candid#180](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/180)) * [`b80a2389`](dfinity/candid@b80a238) Doc typo ([dfinity/candid#182](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/182)) * [`b4a73dea`](dfinity/candid@b4a73de) support more Rust types for serialization ([dfinity/candid#185](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/185)) * [`14f50bc6`](dfinity/candid@14f50bc) fix typescript binding for references ([dfinity/candid#184](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/184)) * [`6e35c0e2`](dfinity/candid@6e35c0e) Release ([dfinity/candid#186](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/186))
Branch: master Commits: [dfinity/candid@25fb8470...6e35c0e2](dfinity/candid@25fb847...6e35c0e) * [`ea2c72f5`](dfinity/candid@ea2c72f) support reference types ([dfinity/candid#153](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/153)) * [`d48bc04c`](dfinity/candid@d48bc04) fix record_nesting_depth for native Rust types ([dfinity/candid#155](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/155)) * [`e54d3e4a`](dfinity/candid@e54d3e4) support more Rust built-in types ([dfinity/candid#156](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/156)) * [`3b3637e1`](dfinity/candid@3b3637e) release ([dfinity/candid#157](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/157)) * [`98d73586`](dfinity/candid@98d7358) debug print for values ([dfinity/candid#159](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/159)) * [`620ad802`](dfinity/candid@620ad80) fix debug print * [`01d23d61`](dfinity/candid@01d23d6) Candid test suite: More tests related to references ([dfinity/candid#160](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/160)) * [`c59c2fd1`](dfinity/candid@c59c2fd) release * [`3ac7e9d3`](dfinity/candid@3ac7e9d) fix type annotation in parser ([dfinity/candid#162](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/162)) * [`432c4289`](dfinity/candid@432c428) A Candid users’s guide ([dfinity/candid#158](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/158)) * [`315cb991`](dfinity/candid@315cb99) Coq: MiniCandid ([dfinity/candid#147](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/147)) * [`83fdff28`](dfinity/candid@83fdff2) Improve wording for type mismatches ([dfinity/candid#167](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/167)) * [`3028f5ed`](dfinity/candid@3028f5e) Lg/candid rev pre split ([dfinity/candid#169](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/169)) * [`6c8d4e39`](dfinity/candid@6c8d4e3) Lg/candid users guide ([dfinity/candid#170](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/170)) * [`0c2205fc`](dfinity/candid@0c2205f) FIx typo toll>tool ([dfinity/candid#172](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/172)) * [`63d9f6fd`](dfinity/candid@63d9f6f) Test suite: A test that invalid unicode in method names is rejected ([dfinity/candid#174](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/174)) * [`dad82102`](dfinity/candid@dad8210) generate random candid values ([dfinity/candid#166](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/166)) * [`2720d995`](dfinity/candid@2720d99) Release ([dfinity/candid#176](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/176)) * [`9fbffdcc`](dfinity/candid@9fbffdc) Meta-Theory: Clarify transitive coherence ([dfinity/candid#173](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/173)) * [`8acbbd47`](dfinity/candid@8acbbd4) Update README.md * [`05ff9f82`](dfinity/candid@05ff9f8) Fix RUSTSEC-2020-0122 by upgrading logos which upgrades beef ([dfinity/candid#179](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/179)) * [`b65c0859`](dfinity/candid@b65c085) Candid test suite: Method sorting test ([dfinity/candid#177](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/177)) * [`8df6e6c0`](dfinity/candid@8df6e6c) bump ui * [`1977fdb3`](dfinity/candid@1977fdb) Typescript binding for Candid ([dfinity/candid#181](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/181)) * [`0c988a9a`](dfinity/candid@0c988a9) Lg/rust js type mapping ([dfinity/candid#180](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/180)) * [`b80a2389`](dfinity/candid@b80a238) Doc typo ([dfinity/candid#182](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/182)) * [`b4a73dea`](dfinity/candid@b4a73de) support more Rust types for serialization ([dfinity/candid#185](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/185)) * [`14f50bc6`](dfinity/candid@14f50bc) fix typescript binding for references ([dfinity/candid#184](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/184)) * [`6e35c0e2`](dfinity/candid@6e35c0e) Release ([dfinity/candid#186](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/186))
Branch: master Commits: [dfinity/candid@25fb8470...322ea4a2](dfinity/candid@25fb847...322ea4a) * [`ea2c72f5`](dfinity/candid@ea2c72f) support reference types ([dfinity/candid#153](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/153)) * [`d48bc04c`](dfinity/candid@d48bc04) fix record_nesting_depth for native Rust types ([dfinity/candid#155](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/155)) * [`e54d3e4a`](dfinity/candid@e54d3e4) support more Rust built-in types ([dfinity/candid#156](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/156)) * [`3b3637e1`](dfinity/candid@3b3637e) release ([dfinity/candid#157](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/157)) * [`98d73586`](dfinity/candid@98d7358) debug print for values ([dfinity/candid#159](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/159)) * [`620ad802`](dfinity/candid@620ad80) fix debug print * [`01d23d61`](dfinity/candid@01d23d6) Candid test suite: More tests related to references ([dfinity/candid#160](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/160)) * [`c59c2fd1`](dfinity/candid@c59c2fd) release * [`3ac7e9d3`](dfinity/candid@3ac7e9d) fix type annotation in parser ([dfinity/candid#162](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/162)) * [`432c4289`](dfinity/candid@432c428) A Candid users’s guide ([dfinity/candid#158](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/158)) * [`315cb991`](dfinity/candid@315cb99) Coq: MiniCandid ([dfinity/candid#147](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/147)) * [`83fdff28`](dfinity/candid@83fdff2) Improve wording for type mismatches ([dfinity/candid#167](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/167)) * [`3028f5ed`](dfinity/candid@3028f5e) Lg/candid rev pre split ([dfinity/candid#169](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/169)) * [`6c8d4e39`](dfinity/candid@6c8d4e3) Lg/candid users guide ([dfinity/candid#170](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/170)) * [`0c2205fc`](dfinity/candid@0c2205f) FIx typo toll>tool ([dfinity/candid#172](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/172)) * [`63d9f6fd`](dfinity/candid@63d9f6f) Test suite: A test that invalid unicode in method names is rejected ([dfinity/candid#174](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/174)) * [`dad82102`](dfinity/candid@dad8210) generate random candid values ([dfinity/candid#166](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/166)) * [`2720d995`](dfinity/candid@2720d99) Release ([dfinity/candid#176](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/176)) * [`9fbffdcc`](dfinity/candid@9fbffdc) Meta-Theory: Clarify transitive coherence ([dfinity/candid#173](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/173)) * [`8acbbd47`](dfinity/candid@8acbbd4) Update README.md * [`05ff9f82`](dfinity/candid@05ff9f8) Fix RUSTSEC-2020-0122 by upgrading logos which upgrades beef ([dfinity/candid#179](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/179)) * [`b65c0859`](dfinity/candid@b65c085) Candid test suite: Method sorting test ([dfinity/candid#177](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/177)) * [`8df6e6c0`](dfinity/candid@8df6e6c) bump ui * [`1977fdb3`](dfinity/candid@1977fdb) Typescript binding for Candid ([dfinity/candid#181](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/181)) * [`0c988a9a`](dfinity/candid@0c988a9) Lg/rust js type mapping ([dfinity/candid#180](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/180)) * [`b80a2389`](dfinity/candid@b80a238) Doc typo ([dfinity/candid#182](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/182)) * [`b4a73dea`](dfinity/candid@b4a73de) support more Rust types for serialization ([dfinity/candid#185](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/185)) * [`14f50bc6`](dfinity/candid@14f50bc) fix typescript binding for references ([dfinity/candid#184](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/184)) * [`6e35c0e2`](dfinity/candid@6e35c0e) Release ([dfinity/candid#186](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/186)) * [`05df9eb3`](dfinity/candid@05df9eb) Candid users guide: Linebreak example pretty printing ([dfinity/candid#188](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/188)) * [`322ea4a2`](dfinity/candid@322ea4a) [rust] Fix reserved subtyping
## Changelog for candid: Branch: master Commits: [dfinity/candid@0c2205fc...322ea4a2](dfinity/candid@0c2205f...322ea4a) * [`63d9f6fd`](dfinity/candid@63d9f6f) Test suite: A test that invalid unicode in method names is rejected ([dfinity/candid#174](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/174)) * [`dad82102`](dfinity/candid@dad8210) generate random candid values ([dfinity/candid#166](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/166)) * [`2720d995`](dfinity/candid@2720d99) Release ([dfinity/candid#176](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/176)) * [`9fbffdcc`](dfinity/candid@9fbffdc) Meta-Theory: Clarify transitive coherence ([dfinity/candid#173](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/173)) * [`8acbbd47`](dfinity/candid@8acbbd4) Update README.md * [`05ff9f82`](dfinity/candid@05ff9f8) Fix RUSTSEC-2020-0122 by upgrading logos which upgrades beef ([dfinity/candid#179](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/179)) * [`b65c0859`](dfinity/candid@b65c085) Candid test suite: Method sorting test ([dfinity/candid#177](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/177)) * [`8df6e6c0`](dfinity/candid@8df6e6c) bump ui * [`1977fdb3`](dfinity/candid@1977fdb) Typescript binding for Candid ([dfinity/candid#181](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/181)) * [`0c988a9a`](dfinity/candid@0c988a9) Lg/rust js type mapping ([dfinity/candid#180](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/180)) * [`b80a2389`](dfinity/candid@b80a238) Doc typo ([dfinity/candid#182](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/182)) * [`b4a73dea`](dfinity/candid@b4a73de) support more Rust types for serialization ([dfinity/candid#185](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/185)) * [`14f50bc6`](dfinity/candid@14f50bc) fix typescript binding for references ([dfinity/candid#184](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/184)) * [`6e35c0e2`](dfinity/candid@6e35c0e) Release ([dfinity/candid#186](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/186)) * [`05df9eb3`](dfinity/candid@05df9eb) Candid users guide: Linebreak example pretty printing ([dfinity/candid#188](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/188)) * [`322ea4a2`](dfinity/candid@322ea4a) [rust] Fix reserved subtyping
## Changelog for candid: Branch: master Commits: [dfinity/candid@0c2205fc...322ea4a2](dfinity/candid@0c2205f...322ea4a) * [`63d9f6fd`](dfinity/candid@63d9f6f) Test suite: A test that invalid unicode in method names is rejected ([dfinity/candid#174](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/174)) * [`dad82102`](dfinity/candid@dad8210) generate random candid values ([dfinity/candid#166](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/166)) * [`2720d995`](dfinity/candid@2720d99) Release ([dfinity/candid#176](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/176)) * [`9fbffdcc`](dfinity/candid@9fbffdc) Meta-Theory: Clarify transitive coherence ([dfinity/candid#173](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/173)) * [`8acbbd47`](dfinity/candid@8acbbd4) Update README.md * [`05ff9f82`](dfinity/candid@05ff9f8) Fix RUSTSEC-2020-0122 by upgrading logos which upgrades beef ([dfinity/candid#179](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/179)) * [`b65c0859`](dfinity/candid@b65c085) Candid test suite: Method sorting test ([dfinity/candid#177](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/177)) * [`8df6e6c0`](dfinity/candid@8df6e6c) bump ui * [`1977fdb3`](dfinity/candid@1977fdb) Typescript binding for Candid ([dfinity/candid#181](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/181)) * [`0c988a9a`](dfinity/candid@0c988a9) Lg/rust js type mapping ([dfinity/candid#180](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/180)) * [`b80a2389`](dfinity/candid@b80a238) Doc typo ([dfinity/candid#182](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/182)) * [`b4a73dea`](dfinity/candid@b4a73de) support more Rust types for serialization ([dfinity/candid#185](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/185)) * [`14f50bc6`](dfinity/candid@14f50bc) fix typescript binding for references ([dfinity/candid#184](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/184)) * [`6e35c0e2`](dfinity/candid@6e35c0e) Release ([dfinity/candid#186](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/186)) * [`05df9eb3`](dfinity/candid@05df9eb) Candid users guide: Linebreak example pretty printing ([dfinity/candid#188](http://r.duckduckgo.com/l/?uddg=https://github.com/dfinity/candid/issues/188)) * [`322ea4a2`](dfinity/candid@322ea4a) [rust] Fix reserved subtyping
## 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))
## 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))
## 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))
## 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))
## 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))
## 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.
Follow-ups:
TODO(andreas): Invert public/private defaults; separate short-hand field forms.
TODO(joachim): Currently, decs are desugared into fields in the IR. The backend still needs proper support for decs, e.g. to handle
letwith patterns in an object.TODO(claudio): Handle type fields.