Commit Graph

571 Commits

Author SHA1 Message Date
collin
7741f5b0c4 chore(leo): bump version for new release 2023-06-15 22:38:02 -07:00
collin
f5867a4fe4 chore(leo): bump version for new release 2023-06-15 22:26:19 -07:00
Collin Chin
e5ae160d1a
Implement new hash and commit functions (#2415)
* refactor hash -> hash_to_field

* refactor commit -> commit_to_field

* implement commit_to_address

* implement hash_to_address

* update hash and commit examples

* implement hash_to_scalar

* update tests

* implement bhp hash to integer variants

* implement bhp pedersen and poseidon integer variants

* Update compiler/passes/src/type_checking/checker.rs

Signed-off-by: Collin Chin <16715212+collinc97@users.noreply.github.com>

* Update compiler/passes/src/type_checking/checker.rs

Co-authored-by: Alessandro Coglio <coglio@kestrel.edu>
Signed-off-by: Collin Chin <16715212+collinc97@users.noreply.github.com>

* fix pedersen hash type checks

---------

Signed-off-by: Collin Chin <16715212+collinc97@users.noreply.github.com>
Co-authored-by: Alessandro Coglio <coglio@kestrel.edu>
2023-06-15 19:55:03 -07:00
Collin Chin
d83c4be330
Implement Mapping::get_or_use (#2413)
* get_or_init -> get_or_use

* use mapping get_or_use in examples

* fix codegen for Mapping::get_or_use

* fix tests for Mapping::get_or_use

* fix warnings, update snarvm rev

* bump circle rust img v1.70

* fix codegen

* update snarkvm rev and regen tests

* Update compiler/parser/src/parser/expression.rs

Co-authored-by: d0cd <pranavsaig@gmail.com>
Signed-off-by: Collin Chin <16715212+collinc97@users.noreply.github.com>

* Delete program.json

Signed-off-by: Collin Chin <16715212+collinc97@users.noreply.github.com>

* Delete program.json

Signed-off-by: Collin Chin <16715212+collinc97@users.noreply.github.com>

---------

Signed-off-by: Collin Chin <16715212+collinc97@users.noreply.github.com>
Co-authored-by: d0cd <pranavsaig@gmail.com>
2023-06-13 12:09:33 -07:00
Collin Chin
4e71f60cb4
Implement additional features to the "group" element type (#2394)
* add new hash and commit symbols

* pedersen commitment methods return fields

* use snarkvm rev a451d91, impl commit_to_group.bhp256

* implement bhp commit to group variants

* implement bhp hash_to_group variants

* implement pedersen commit_to_group and hash_to_scalar variants

* implement poseidon hash_to_group and hash_to_scalar variants

* remove hash_many symbol

* fix tests

* regen test expectations
2023-06-07 13:09:08 -07:00
collin
52dfc097c5 chore(leo): bump version for new release 2023-05-31 20:37:17 -07:00
Collin Chin
42d97d3d89
implement group::GEN Leo syntax (#2401)
* implement group::GEN Leo syntax

* revert unrelated test changes

* move new errors to bottom of file to keep previous error codes consistent
2023-05-31 16:05:56 -07:00
Collin Chin
2e1a9fc979 chore(leo): bump version for new release 2023-05-23 15:02:30 -07:00
collin
1c5de6fb80 bump snarkvm v0.11.2 2023-05-12 14:42:15 -07:00
d0cd
d0c29ce8e0
[Update] snarkvm 0.11.0 (#2377)
* Remove gates from tests

* Remove Finalize test namespace

* Remove gates from examples

* Remove gates from compiler

* Regen expectations

* Add test that gates is allowed as a standard field of a record

* Update Rust version in CI

* Add check for MAX_MAPPINGS
2023-05-10 21:32:37 -07:00
collin
85821b524e chore(leo): bump version for new release 2023-04-19 18:02:15 -07:00
Pranav Gaddamadugu
4b64fbe03a Fix error message 2023-04-18 17:22:59 -07:00
Pranav Gaddamadugu
98574495ff Update check 2023-04-18 17:14:01 -07:00
Pranav Gaddamadugu
6a660c4ceb Remove gates check 2023-04-18 17:14:01 -07:00
Pranav Gaddamadugu
581a671e31 Update maximum number of transitions 2023-04-18 17:14:01 -07:00
Pranav Gaddamadugu
a613f35c07 Check that finalize block does not return a value 2023-04-18 17:09:22 -07:00
Pranav Gaddamadugu
0b99135962 Update Mapping::get_or to Mapping::get_or_init 2023-04-18 17:09:22 -07:00
Pranav Gaddamadugu
76693533b0 Update code gen for Mapping::set 2023-04-18 17:09:22 -07:00
Pranav Gaddamadugu
be3c58cf53 Update codegen 2023-04-18 16:59:32 -07:00
Pranav Gaddamadugu
a0b00ac78c Update examples; fmt 2023-04-18 16:59:07 -07:00
Pranav Gaddamadugu
bb5c793bb3 Fix code gen 2023-04-18 16:53:27 -07:00
Pranav Gaddamadugu
8426f824ff Fix passes 2023-04-18 16:53:27 -07:00
Pranav Gaddamadugu
da7537344b Rename Mapping::put to Mapping::set 2023-04-18 16:37:45 -07:00
Pranav Gaddamadugu
aeab0c59ec Disallow records in finalize contexts 2023-04-18 16:37:45 -07:00
Pranav Gaddamadugu
ebe7f7ab00 DCE marks mapping core operations as necessary 2023-04-18 16:21:40 -07:00
Pranav Gaddamadugu
4f27c92f15 Remove Increment, Decrement statements from AST 2023-04-18 16:21:40 -07:00
Pranav Gaddamadugu
30c9800e01 Check that mapping operations are invoked within a finalize block 2023-04-18 16:21:40 -07:00
Pranav Gaddamadugu
15187edfcf Add codegen for core mapping ops 2023-04-18 16:21:40 -07:00
Pranav Gaddamadugu
defb657e5a Implement tyc for mapping operations 2023-04-18 16:21:40 -07:00
Pranav Gaddamadugu
34fb0d1815 Add tyc for core functions 2023-04-18 16:21:40 -07:00
Pranav Gaddamadugu
cbd0663fa7 Add comment 2023-04-12 17:41:54 -07:00
Collin Chin
68eabc38ae simplify logic 2023-04-12 15:52:10 -07:00
Pranav Gaddamadugu
59f418f5d0 Fix issue in codegen 2023-04-12 12:38:44 -07:00
Pranav Gaddamadugu
d26a5f693d DCE eliminates expr statements that are not function calls 2023-04-12 12:38:43 -07:00
Pranav Gaddamadugu
0f8838c870 Fix bug 2023-04-11 10:11:08 -07:00
Pranav Gaddamadugu
fd22fb9ec4 Fix bug 2023-04-05 09:13:37 -07:00
d0cd
c74772cfac
Merge pull request #2328 from AleoHQ/fix/issue-2324
[Fix] Fixes unwrapping panic when unwrapping `lookup_struct` in `ProgramVisitor::visit_function`
2023-03-31 16:06:51 -07:00
d0cd
5cc6a06e2d
Merge pull request #2329 from AleoHQ/fix/issue-2325
[Fix] Panic: called Option::unwrap() on a Err value (Literal::Integer to Value)
2023-03-31 16:05:33 -07:00
Pranav Gaddamadugu
61cf227f58 Fmt 2023-03-31 10:02:33 -07:00
Pranav Gaddamadugu
2646b7b28b Fix bug 2023-03-31 09:58:25 -07:00
Pranav Gaddamadugu
ee3e225f92 Fix bug 2023-03-27 10:09:12 -07:00
Pranav Gaddamadugu
8adc6c76b8 Fmts and clippies 2023-03-26 23:18:03 -07:00
d0cd
6c61296f78 Add targeted DCE test; cleanup 2023-02-21 17:13:54 -08:00
d0cd
0e6aa4729b Clippy 2023-02-21 17:13:53 -08:00
d0cd
d634662e97 Fmt 2023-02-21 17:13:53 -08:00
d0cd
da64d487ec Fix DCE impl 2023-02-21 17:09:22 -08:00
d0cd
dfc03db67e Connect dead code elimination pass to compiler stages, CLI, and tests 2023-02-21 17:09:22 -08:00
d0cd
ec91d5655b Prototype dead code elimination 2023-02-21 17:09:22 -08:00
d0cd
4b3b4a83ff Initial scaffolding for dead code elimination 2023-02-21 17:09:22 -08:00
d0cd
c8f6089be3
[Fix] Excludes inline functions from produced bytecode. (#2277)
* Remove codegen for inline functions

* Regen expectations
2023-02-21 14:17:11 -08:00
Collin Chin
0a738d4994 chore(leo): bump version for new release 2023-02-17 22:30:17 -05:00
d0cd
f6d043c1f0
Fixes issues with function inlining from imported programs. (#2271)
* TYC for calls to external inline functions

* Fix issue in function inlining

* Fix issue in codegen

* Remove redundant reordering of functions

* Clippy

* Update compiler/passes/src/function_inlining/inline_program.rs

Signed-off-by: Collin Chin <collin@aleo.org>

---------

Signed-off-by: Collin Chin <collin@aleo.org>
Co-authored-by: Collin Chin <collin@aleo.org>
2023-02-16 22:13:54 -08:00
d0cd
067dadb12b
Merge pull request #2263 from AleoHQ/feat/record-visibility
[Feature] Visibilities for record members.
2023-02-14 16:38:54 -08:00
d0cd
cf22bc75bb Address feedback 2023-02-14 16:30:12 -08:00
d0cd
f269a3c609 Add codegen support for records with visibilities 2023-02-10 21:35:37 -08:00
d0cd
a6663db934 Typechecking for structs with members 2023-02-10 21:31:10 -08:00
d0cd
47fa89b012 Refactor mode 2023-02-10 21:21:06 -08:00
d0cd
1dd5887518 Clippy and cleanup 2023-02-10 16:50:59 -08:00
d0cd
0afe0e12f9 Inliner uses AssignmentRenamer instead of SSA; address edge cases 2023-02-10 15:09:59 -08:00
d0cd
475a5b7870 Fix issue in flattening 2023-02-10 15:09:34 -08:00
d0cd
c70c018109 Refactor replacer 2023-02-10 15:08:23 -08:00
d0cd
a2ca077516 Introduce AssignmentRenamer 2023-02-10 15:07:58 -08:00
d0cd
d2381767e9 Remove greedy inlining 2023-02-10 09:47:42 -08:00
d0cd
79bf13ff8e Integrate function inlining into test framework 2023-02-10 09:30:43 -08:00
d0cd
ccae285408 Minor refactors and cleaning 2023-02-10 09:07:14 -08:00
d0cd
53cbaa5f96 Initial impl of function inling 2023-02-10 09:06:26 -08:00
d0cd
3a1f66c6dd Introduce Replacer 2023-02-10 09:05:58 -08:00
d0cd
335fb6efcb Update doc to reflect function inlining occuring after flattening 2023-02-09 20:26:59 -08:00
d0cd
f7267b3daa Cleanup 2023-02-09 19:36:14 -08:00
d0cd
c934bb35b3 WIP function inlining 2023-02-09 19:36:01 -08:00
d0cd
b3ef6f79c3 Add typechecking for inline functions 2023-02-08 17:09:17 -08:00
d0cd
b5c22e23ee Remove occurences of 'call_type' 2023-02-08 16:37:47 -08:00
d0cd
44e378b84b Rename CallType to Variant 2023-02-08 16:32:08 -08:00
d0cd
4bb6ceb5ea Update license and clippy 2023-02-05 13:43:10 -08:00
d0cd
0a8b41b025 Address feedback 2023-02-05 12:46:21 -08:00
d0cd
f65ad5dc69 Fmt 2023-02-05 12:46:21 -08:00
d0cd
74e358dde6 Add test for out of order functions 2023-02-05 12:46:21 -08:00
d0cd
e633c62b71 Implement post-ordering for functions during code-generation 2023-02-05 12:46:21 -08:00
d0cd
f06b83c7f4 Implement check for cyclic call graph 2023-02-05 12:46:20 -08:00
d0cd
b17702e019 Fix graph init; regen expectations 2023-02-05 12:46:20 -08:00
d0cd
899c12d85a Implement post-order codegen for structs and records 2023-02-05 12:46:20 -08:00
d0cd
d91233f06e Implement cycle detection for structs and records 2023-02-05 12:46:20 -08:00
d0cd
5e331bbf36 Cleanup 2023-02-05 12:46:20 -08:00
d0cd
dd33eb024d Add test 2023-02-05 12:46:20 -08:00
d0cd
940d357c5e Cleanup 2023-02-05 12:46:20 -08:00
d0cd
9edbf0a74e Add tests for graph 2023-02-05 12:46:20 -08:00
d0cd
8b8c7b5c0a Get cycle if toposort fails 2023-02-05 12:46:20 -08:00
d0cd
9fbcdfc9f3 Add graph data structure 2023-02-05 12:46:19 -08:00
d0cd
063cb15d97 Reorg common module 2023-02-05 12:46:19 -08:00
ljedrz
b20308f049
chore: update the license headers (#2252)
Signed-off-by: ljedrz <ljedrz@gmail.com>
2023-02-02 14:27:06 -08:00
d0cd
b044b002a7 Check that functions cannot output records 2023-01-18 12:33:04 -08:00
Collin Chin
52c29b23e0
clippy: remove useless .into_iter() (#2225) 2023-01-03 11:44:52 -08:00
collin
d7b1b9ca56 chore(leo): bump version for new release 2022-12-12 19:31:56 -05:00
d0cd
48a1f0590b
Rename console.assert* to assert*. (#2205)
* Add assert statements to AST

* Add support in passes

* Add parser support

* Add tyc support

* Add support for assert statements in the remaining passes

* Fix examples, tests, and regen expectations

* Fmt

* Regen expectations
2022-12-06 21:56:48 -08:00
collin
1e01a3a686 chore(leo): bump version for new release 2022-11-30 13:40:52 -08:00
Collin Chin
3f2df5389c
use cargo workspace for dependencies (#2195) 2022-11-30 13:31:33 -08:00
d0cd
23615c6858
Fixes code generation for ExpressionStatements (#2192)
* Fix codegen for call instruction

* Cleanup
2022-11-29 16:36:37 -08:00
d0cd
8986be33e8
Create common module; move pass data structures (#2173)
Co-authored-by: collin <16715212+collinc97@users.noreply.github.com>
2022-11-23 15:05:05 -05:00
collin
f6f286ac8a pull testnet3, regen tests 2022-11-23 02:37:57 -05:00
collin
9e28591589 pull testnet3, regen tests 2022-11-23 01:56:37 -05:00
collin
ac4c38d921 clippy 2022-11-23 01:28:33 -05:00
collin
801df56f9c pull testnet3, regen tests 2022-11-22 20:55:12 -05:00
Collin Chin
40e56f8613
Merge pull request #2100 from AleoHQ/feat/tuple
Supports tuples.
2022-11-22 20:49:25 -05:00
d0cd
a8a8086f18 Fmt 2022-11-16 10:24:29 -08:00
d0cd
9370c11a2b Implement fix 2022-11-16 10:24:29 -08:00
collin
44bca58821 chore(leo): bump version for new release 2022-11-14 18:56:09 -08:00
d0cd
80d53ee908 Fmt 2022-11-12 16:36:26 -08:00
d0cd
d82fa641a2 Fix parser 2022-11-12 16:35:37 -08:00
d0cd
682b67e184 Fix flattening logic 2022-11-12 16:23:16 -08:00
d0cd
c6fd32c032 Fix flattening pass 2022-11-12 11:28:03 -08:00
d0cd
1f977e5c45 Fix tyc pass 2022-11-12 10:48:16 -08:00
d0cd
1a9c95ce05 Fix SSA pass 2022-11-12 10:21:36 -08:00
d0cd
3227f9bdb4 Fix codegen pass 2022-11-12 10:21:36 -08:00
d0cd
1e2a7f222d Fmt 2022-11-12 09:58:52 -08:00
d0cd
b16926449c Support private mode in parser and passes 2022-11-12 09:53:20 -08:00
d0cd
111a19761a Fmt 2022-11-11 21:09:57 -08:00
d0cd
31972e1b38 Fix SSA for expr statements 2022-11-11 21:03:11 -08:00
d0cd
2f9bfd7ab9 Cleanup debug prints; fix bug, the flatten test builds 2022-11-08 17:10:39 -08:00
d0cd
ef4ae89b92 Add more test cases 2022-11-08 15:52:31 -08:00
d0cd
ca89010e59 Fix failing case 2022-11-08 15:49:47 -08:00
d0cd
f606a8b74a Restrict tuples in parser; cleanup 2022-11-08 15:49:47 -08:00
d0cd
5bf16064ab WIP Impl codegen for tuples 2022-11-08 15:49:47 -08:00
d0cd
2287e86b56 WIP flattening 2022-11-08 15:49:47 -08:00
d0cd
910d373afd WIP support tuples on lhs of definitions 2022-11-08 15:49:47 -08:00
d0cd
40ff47882f Add support for expression statements in compiler passes 2022-11-08 15:49:47 -08:00
d0cd
af08c4f2e5 Some cleanup 2022-11-08 15:49:47 -08:00
d0cd
678f8b02a1 Fix unit expression 2022-11-08 15:49:47 -08:00
d0cd
6789bc8aae Add unit expressions to the AST 2022-11-08 15:49:47 -08:00
d0cd
3ab83f45f3 Fix bug, regen tests 2022-11-08 15:49:47 -08:00
d0cd
134fc1860c Remove debug prints 2022-11-08 15:49:47 -08:00
d0cd
b60cd7e4b0 Remove redundant check 2022-11-08 15:49:47 -08:00
d0cd
c07e07d9d1 Fix tuple flattening 2022-11-08 15:49:47 -08:00
d0cd
c651da0581 wip tuples 2022-11-08 15:49:47 -08:00
d0cd
4963a11ee7 More tyc restricting nested tuples 2022-11-08 15:49:47 -08:00
d0cd
2839de13c6 Forbid tuples in input and output types 2022-11-08 15:49:47 -08:00
d0cd
29369b2a42 Better tyc for tuples in composite data types 2022-11-08 15:49:47 -08:00
d0cd
fdddb8054a Remove flattening circuits and nested tuples 2022-11-08 15:49:47 -08:00
Pranav Gaddamadugu
6ae2d9727b Cleanup 2022-11-08 15:49:47 -08:00
Pranav Gaddamadugu
605f675ff6 More tyc 2022-11-08 15:49:47 -08:00
Pranav Gaddamadugu
6d82f83c37 WIP 2022-11-08 15:49:46 -08:00
Pranav Gaddamadugu
b622d35d8f Implement logic for flattening circuit definitions 2022-11-08 15:49:46 -08:00
Pranav Gaddamadugu
9994a0451f wip: basic tyc for empty and singleton tuples 2022-11-08 15:49:46 -08:00
d0cd
a05b7e6b70 Codegen uses struct instead of interface 2022-11-05 18:18:48 -07:00
collin
e6c3700945 merge testnet3 2022-11-04 12:46:32 -07:00
Collin Chin
d329181999
Merge pull request #2151 from AleoHQ/fix/span-for-function-call-tyc
Better error messages for mistyped function calls.
2022-11-04 12:34:08 -07:00
Collin Chin
1c7fefac53
Merge pull request #2150 from AleoHQ/fix/tyc-for-member-access
Fix type checking for member access.
2022-11-04 12:33:37 -07:00
Pranav Gaddamadugu
7e70da2326 Implement check for nested import 2022-10-31 18:05:46 -07:00
d0cd
43919a9644 Disable string type in type checker 2022-10-31 18:01:04 -07:00
d0cd
3c2da076ff
Merge pull request #2144 from AleoHQ/fix/conditional-assert
Fixes flattening for `console` statements.
2022-10-31 17:11:43 -07:00
d0cd
c4279e2a83
Merge pull request #2146 from AleoHQ/fix/tyc-for-loop-bounds
Fix/tyc for loop bounds
2022-10-31 17:11:19 -07:00