Skip to content

Commit

Permalink
feat: expect on a type now can take in a msg when in trace mode
Browse files Browse the repository at this point in the history
  • Loading branch information
MicroProofs committed Jan 4, 2024
1 parent 631757e commit a193b38
Show file tree
Hide file tree
Showing 39 changed files with 169 additions and 129 deletions.
12 changes: 6 additions & 6 deletions crates/aiken-lang/src/gen_uplc.rs
Original file line number Diff line number Diff line change
Expand Up @@ -478,10 +478,10 @@ impl<'a> CodeGenerator<'a> {
string(),
);

let msg_func = if self.tracing {
let msg_func = if self.tracing && kind.is_expect() {
self.special_functions.use_function_tree(msg_func_name)
} else {
AirTree::no_op()
AirTree::void_msg()
};

self.assignment(
Expand Down Expand Up @@ -534,7 +534,7 @@ impl<'a> CodeGenerator<'a> {
kind: AssignmentKind::Let,
remove_unused: false,
full_check: false,
msg_func: AirTree::no_op(),
msg_func: AirTree::void_msg(),
},
);

Expand Down Expand Up @@ -2752,10 +2752,10 @@ impl<'a> CodeGenerator<'a> {
string(),
);

let msg_func = if self.tracing {
let msg_func = if self.tracing && !actual_type.is_data() {
self.special_functions.use_function_tree(msg_func_name)
} else {
AirTree::no_op()
AirTree::void_msg()
};

let assign = self.assignment(
Expand Down Expand Up @@ -5255,7 +5255,7 @@ impl<'a> CodeGenerator<'a> {
}
}

Air::NoOp => {}
Air::NoOp | Air::VoidMsg => {}
}
}
}
1 change: 1 addition & 0 deletions crates/aiken-lang/src/gen_uplc/air.rs
Original file line number Diff line number Diff line change
Expand Up @@ -183,4 +183,5 @@ pub enum Air {
NoOp,
FieldsEmpty,
ListEmpty,
VoidMsg,
}
8 changes: 7 additions & 1 deletion crates/aiken-lang/src/gen_uplc/tree.rs
Original file line number Diff line number Diff line change
Expand Up @@ -332,6 +332,7 @@ pub enum AirExpression {
msg: Box<AirTree>,
then: Box<AirTree>,
},
VoidMsg,
}

impl AirTree {
Expand Down Expand Up @@ -824,6 +825,10 @@ impl AirTree {
hoisted_over: None,
}
}
pub fn void_msg() -> AirTree {
AirTree::Expression(AirExpression::VoidMsg)
}

pub fn hoist_over(mut self, next_exp: AirTree) -> AirTree {
match &mut self {
AirTree::Statement { hoisted_over, .. } => {
Expand Down Expand Up @@ -1312,6 +1317,7 @@ impl AirTree {
msg.create_air_vec(air_vec);
then.create_air_vec(air_vec);
}
AirExpression::VoidMsg => air_vec.push(Air::VoidMsg),
},
AirTree::UnhoistedSequence(_) => {
unreachable!("FIRST RESOLVE ALL UNHOISTED SEQUENCES")
Expand Down Expand Up @@ -1344,7 +1350,7 @@ impl AirTree {
| AirExpression::RecordUpdate { tipo, .. }
| AirExpression::ErrorTerm { tipo, .. }
| AirExpression::Trace { tipo, .. } => tipo.clone(),
AirExpression::Void => void(),
AirExpression::Void | AirExpression::VoidMsg => void(),
AirExpression::Var { constructor, .. } => constructor.tipo.clone(),
AirExpression::Fn { func_body, .. } => func_body.return_type(),
AirExpression::UnOp { op, .. } => match op {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ description: "Code:\n\ntype Either<left, right> {\n Left(left)\n Right(rig
"$ref": "#/definitions/test_module~1Either$ByteArray_test_module~1Interval$Int"
}
},
"compiledCode": "59016f0100003232323232323232323232223253330084a22930a99804a4811856616c696461746f722072657475726e65642066616c736500136563253330083370e900000089919299980718080010a4c2a6601600e2c6eb8c038004c01800c54ccc020cdc3a400400226464a66601c60200042649319299980599b87480000044c8c94ccc044c04c008526153300e00a16375a602200260120042a66601666e1d20020011533300f3009002149854cc0312411d4578706563746564206e6f206669656c647320666f7220436f6e7374720016153300c007163009001153300b00716300e00130060031533009004163006002490128436f6e73747220696e646578206469646e2774206d61746368206120747970652076617269616e74004901334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e20657870656374656400230063754002460086ea80055cd2b9c5573aaae7955cfaba157441",
"hash": "6b2032fcc8875dfe34dc93e4c9709188e60734ad668a31866ff14487",
"compiledCode": "59011a010000323232323232323232223253330064a22930a99803a4811856616c696461746f722072657475726e65642066616c73650013656323253330073370e900000089919299980698078010a4c2a660140082c6eb8c034004c01401054ccc01ccdc3a400400226464a66601a601e0042649319299980519b87480000044c8c94ccc040c048008526153300d00716375a602000260100042a66601466e1d20020011533300e3008002149854cc02c0145854cc02c01458c02000454cc02801058c034004c01401054cc02000858c01400d24012a72656465656d65723a204569746865723c4279746541727261792c20496e74657276616c3c496e743e3e00230063754002460086ea80055cd2b9c5573aaae7955cfaba157441",
"hash": "a7f32d9d3ceada0a98ad4d125680692fa368de7504c9616f053cbcc2",
"definitions": {
"ByteArray": {
"dataType": "bytes"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ description: "Code:\n\ntype Dict<key, value> {\n inner: List<(ByteArray, valu
"$ref": "#/definitions/test_module~1Dict$test_module~1UUID_Int"
}
},
"compiledCode": "58fe01000032323232323232223253330044a22930a99802a4811856616c696461746f722072657475726e65642066616c736500136563253330043370e9000000899192999805180600109924c646600200200444a66601800229309919801801980780119191bad300d002375c6016002601a0022a6600e921334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e206578706563746564001637566014002600e6ea800c54cc01524128436f6e73747220696e646578206469646e2774206d61746368206120747970652076617269616e74001630053754004ae695ce2ab9d5573caae7d5d0aba201",
"hash": "216d9334e8daaa401663667302f26cfb53c63d88fe4b14cd8e2a9c1e",
"compiledCode": "58bc01000032323232323232223253330044a22930a99802a4811856616c696461746f722072657475726e65642066616c73650013656323253330053370e9000000899192999805980680109924c646600200200444a66601a00229309919801801980800119191bad300e002375c6018002601c0022a660100082c6eacc02c004c020dd50020a998030010b18031baa00349011972656465656d65723a20446963743c555549442c20496e743e005734ae7155ceaab9e5573eae855d11",
"hash": "764465e16d4d85649f7e6bd982bb3620ca0ff51a54d442bc6c54147a",
"definitions": {
"ByteArray": {
"dataType": "bytes"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ description: "Code:\n\npub type Foo {\n foo: Data\n}\n\nvalidator {\n fn nes
"$ref": "#/definitions/Int"
}
},
"compiledCode": "58d801000032323232323232222323253330064a22930a99803a491856616c696461746f722072657475726e65642066616c73650013656375a00664a66600a66e1d200000113232533300b300d002149854cc021241334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016300b001300837540082a6600c92128436f6e73747220696e646578206469646e2774206d61746368206120747970652076617269616e74001630063754006ae695ce2ab9d5573caae7d5d0aba201",
"hash": "d61d9c4c310ef538d7c4e49b44836251d0c9ac61dad25692ac9bb69a",
"compiledCode": "588701000032323232323232222323253330064a22930a99803a491856616c696461746f722072657475726e65642066616c73650013656375a0066464a66600c66e1d200000113232533300c300e002149854cc02401058c030004c024dd50028a998038010b18039baa00449010a646174756d3a20466f6f005734ae7155ceaab9e5573eae855d11",
"hash": "7cec07afed8610f8ffea541bedaaef8598f4ea254e440315b325bb82",
"definitions": {
"Data": {
"title": "Data",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ description: "Code:\n\npub type LinkedList<a> {\n Cons(a, LinkedList<a>)\n Nil
"$ref": "#/definitions/test_module~1LinkedList$Int"
}
},
"compiledCode": "59023601000032323232323232323232323222232323232533300d4a22930a998072491856616c696461746f722072657475726e65642066616c736500136563002005323232533300e3370e900000089919299980a180b00109924c60080022a660220182c602800260160102a66601c66e1d200200113232323253330163018002132498c8c8c8cc004004008894ccc06800452613233003003301d002300c301b0013758602c0046eb8c05000454cc04c03858c8cdd8180b800980b980c0009bac30160013016002375a602800260160102a6601e0122c601600e60020024464a66601c66e1d200000113232323253330163018002132498cc01c01c00454cc04c03858c058004c058008cdc3a400460226ea8c050004c02c00854ccc038cdc3a40040022a66602460160042930a998078068b0a998078048b180580098008009119299980619b87480000044c8c8c8c94ccc050c0580084c92633007007001153301100c1630140013014002375a602400260120042a66601866e1d2002001153330103009002149854cc03402c5854cc03401c58c024005240128436f6e73747220696e646578206469646e2774206d61746368206120747970652076617269616e74004901334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e206578706563746564002300737540024600a6ea800524011d4578706563746564206e6f206669656c647320666f7220436f6e737472005734ae7155ceaab9e5573eae855d11",
"hash": "795b1438b585aebb4e296e3ee180d1308718541ceca4225dfdd6d472",
"compiledCode": "5901dd01000032323232323232323222232323253330094a22930a998052491856616c696461746f722072657475726e65642066616c73650013656330020044911972656465656d65723a204c696e6b65644c6973743c496e743e00323253330093370e9000000899192999807980880109924c64660020020044464a66601c66e1d200000113232323253330163018002132498cc01c01c00454cc04c02c58c058004c058008cdc3a400460226ea8c050004c03000854ccc038cdc3a40040022a66602460180042930a998078038b0a998078038b18060008a998060020b180780098038030a99980499b87480080044c8c8c8c94ccc044c04c0084c9263232323300100100222533301500114984c8cc00c00cc060008cc02cc058004028dd618088011bae300f001153300e0061632337606024002602460260026eb0c044004c044008dd6980780098038030a998050010b1803802a490a646174756d3a20466f6f002232330010010032232533300b3370e90000008991919192999809980a80109924c6600e00e0022a660200102c602600260260046eb4c044004c02400854ccc02ccdc3a40040022a66601e60120042930a998060020b0a998060020b1804800918031baa001230043754002ae695ce2ab9d5573caae7d5d0aba201",
"hash": "1b1cf024d6b864069416563b74b21c2e02dc8eef089c202f402b63ce",
"definitions": {
"Bool": {
"title": "Bool",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ description: "Code:\n\npub type Expr {\n Val(Int)\n Sum(Expr, Expr)\n Mul(Exp
"$ref": "#/definitions/test_module~1Expr"
}
},
"compiledCode": "590155010000323232323232323232223253330064a22930a99803a4811856616c696461746f722072657475726e65642066616c736500136563323001001223253330083370e900000089919299980718080010a4c2a660160102c6eb4c038004c01c00854ccc020cdc3a4004002264646464a6660206024004264649319804004001198038038018a998068050b18080009808001180700098038010a99980419b87480100044c8c8c8c94ccc040c0480084c8c9263300800800233007007003153300d00a1630100013010002300e0013007002153300949128436f6e73747220696e646578206469646e2774206d61746368206120747970652076617269616e740016300937540020049201334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e20657870656374656400230053754002ae695ce2ab9d5573caae7d5d0aba21",
"hash": "32815bdafe7e6e86659e3f73eda8f176fd8ad17aeb2bfa4b1325f6eb",
"compiledCode": "5901060100003232323232323232223253330054a22930a9980324811856616c696461746f722072657475726e65642066616c73650013656323233001001004223253330083370e900000089919299980718080010a4c2a6601600c2c6eb4c038004c01c00854ccc020cdc3a4004002264646464a6660206024004264649319804004001198038038018a998068040b18080009808001180700098038010a99980419b87480100044c8c8c8c94ccc040c0480084c8c9263300800800233007007003153300d0081630100013010002300e00130070021533009004163009375400292010e72656465656d65723a204578707200230053754002ae695ce2ab9d5573caae7d5d0aba21",
"hash": "2f1489f27f8ba5f0fb9530cf06162816e8bd250aaa50e4a8aa093f27",
"definitions": {
"Int": {
"dataType": "integer"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ description: "Code:\n\n/// On-chain state\ntype State {\n /// The contestatio
"$ref": "#/definitions/test_module~1Input"
}
},
"compiledCode": "5901be0100003232323232323232323232322223232533300b4a22930a998062491856616c696461746f722072657475726e65642066616c7365001365632533300b3370e90000008a99980798040020a4c2a6601800e2c2a66601666e1d20020011533300f3008004149854cc03001c5854ccc02ccdc3a40080022a66601e60100082930a998060038b0a998060030b180400199299980519b87480000044c8c8c8c8c8c94ccc050c0580084c8c926323300100100522533301700114984c8cc00c00cc068008dd7180c00099299980899b87480000044c8c94ccc05cc064008526153301401216375a602e002601c00c2a660240182c601c00a2a6602201e2c6eb8c050004c050008dd618090009809001180800098038020a998058028b1803801a4928436f6e73747220696e646578206469646e2774206d61746368206120747970652076617269616e740049011d4578706563746564206e6f206669656c647320666f7220436f6e737472002300737540024600a6ea80052401334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e206578706563746564005734ae7155ceaab9e5573eae855d11",
"hash": "a2d6e5c1e686ffe47d6ad6d4c17df246d38169545c7d66af32c5aedc",
"compiledCode": "59015c010000323232323232323232222323253330084a22930a99804a491856616c696461746f722072657475726e65642066616c73650013656323253330093370e90000008a99980698038028a4c2a660140042c2a66601266e1d20020011533300d3007005149854cc0280085854ccc024cdc3a40080022a66601a600e00a2930a998050010b0a998050010b18038022490f72656465656d65723a20496e70757400323253330083370e900000089919191919192999809180a0010991924c646600200200a44a66602a00229309919801801980c0011bae301600132533300f3370e900000089919299980a980b8010a4c2a660240162c6eb4c054004c03401854cc04002458c03401454cc03c02058dd7180900098090011bac30100013010002300e0013006005153300900216300600449010c646174756d3a20537461746500230063754002460086ea80055cd2b9c5573aaae7955cfaba157441",
"hash": "1aaeefe08859ba932c33615d0c3ccd7e63472ae2815c5dc4bc40d994",
"definitions": {
"ByteArray": {
"dataType": "bytes"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ description: "Code:\n\nvalidator {\n fn tuples(datum: (Int, ByteArray), redeeme
"$ref": "#/definitions/Tuple$Int_Int_Int"
}
},
"compiledCode": "58c6010000323232323232322223232323253330084a22930a99804a491856616c696461746f722072657475726e65642066616c73650013656323232323253330103012002149854cc0352401334c6973742f5475706c652f436f6e73747220636f6e7461696e73206d6f7265206974656d73207468616e2065787065637465640016375a602000260200046eb4c038004c038008dd698060009bac00432375c60120046eb4c01c004c8cdd81805000980518058009bac0035734ae7155ceaab9e5573eae855d11",
"hash": "4b4cf15504b916aff5ce2cad8cd93a57dd9d124fbdaa88837d255ed4",
"compiledCode": "58ac010000323232323232322223232323253330084a22930a99804a491856616c696461746f722072657475726e65642066616c73650013656323232323253330103012002149854cc03524011972656465656d65723a2028496e742c20496e742c20496e74290016375a602000260200046eb4c038004c038008dd698060009bac00432375c60120046eb4c01c004c8cdd81805000980518058009bac0035734ae7155ceaab9e5573eae855d11",
"hash": "57605cf52e1d8a0d787d798282021853265d8d4c5dd99460b55e125d",
"definitions": {
"ByteArray": {
"dataType": "bytes"
Expand Down
Loading

0 comments on commit a193b38

Please sign in to comment.