Commit Graph

724 Commits

Author SHA1 Message Date
evan-schott
51e3ad9f78 relax external struct shadowing 2023-12-05 20:00:56 -08:00
evan-schott
8ea5e3afec fix stub shadowing issue & name mismatch issue 2023-12-05 20:00:18 -08:00
evan-schott
94b3290681 remove leftover traces of previous import system 2023-12-01 16:09:59 -08:00
evan-schott
3695ac649e clippy 2023-11-30 16:11:38 -08:00
evan-schott
184c2f583b Print imports in post order 2023-11-30 16:11:33 -08:00
evan-schott
b3f8169186 clippy 2023-11-30 15:46:07 -08:00
evan-schott
5ed377e5ef Small TC fix to forbid record inputs to functions 2023-11-30 11:40:03 -08:00
evan-schott
88b85f894d deprecate .leo imports in build system & codegen 2023-11-30 11:31:38 -08:00
evan-schott
8796e8c921 clippy 2023-11-30 10:52:38 -08:00
evan-schott
004cc7cc70 typecheck that finalize_stub 2023-11-30 10:52:38 -08:00
evan-schott
bbf1e01145 clippy 2023-11-30 10:52:16 -08:00
evan-schott
bd2e3de733 Allow imports & Variant::Function functions in stubs 2023-11-30 10:52:16 -08:00
evan-schott
b85c5b285e Make compatible w/ LU and CG passes 2023-11-30 10:52:16 -08:00
evan-schott
5441c23a51 TC stubs 2023-11-30 10:52:15 -08:00
evan-schott
878bbc8f35 Add stub structs & functions to ST 2023-11-30 10:52:15 -08:00
evan-schott
cf7baa0132 Update AST to include FunctionStub and Stub 2023-11-30 10:52:15 -08:00
d0cd
9050bc8da2
Merge pull request #8446 from AleoHQ/fix/codegen-arrays
Fix codegen for array init expressions
2023-11-23 12:06:37 -08:00
Pranav Gaddamadugu
b9cb62d8aa Update dependencies 2023-11-21 10:28:07 -08:00
dependabot[bot]
ec6be21abf
Bump itertools from 0.11.0 to 0.12.0
Bumps [itertools](https://github.com/rust-itertools/itertools) from 0.11.0 to 0.12.0.
- [Changelog](https://github.com/rust-itertools/itertools/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-itertools/itertools/compare/v0.11.0...v0.12.0)

---
updated-dependencies:
- dependency-name: itertools
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-15 10:11:57 +00:00
Pranav Gaddamadugu
34794f94ea Fix codegen for array init expressions 2023-11-08 14:16:42 -08:00
Pranav Gaddamadugu
34f2dd6f62 Clippy 2023-10-27 18:54:58 -04:00
Pranav Gaddamadugu
b3c1723d5c Add tests and fixes 2023-10-27 18:54:58 -04:00
Pranav Gaddamadugu
0dcd156513 Cleanup 2023-10-27 18:54:58 -04:00
Pranav Gaddamadugu
59dfeb9d57 Regen expectations 2023-10-27 18:54:58 -04:00
Pranav Gaddamadugu
6756320fd8 Regen expectations 2023-10-27 18:54:58 -04:00
Pranav Gaddamadugu
49a0c7a469 Support codegen for arrays 2023-10-27 18:54:58 -04:00
Pranav Gaddamadugu
c80aee091a Update DCE 2023-10-27 18:54:58 -04:00
Pranav Gaddamadugu
044933c0fb Update loop unrolling 2023-10-27 18:54:58 -04:00
Pranav Gaddamadugu
08d3997813 Update TYC 2023-10-27 18:54:57 -04:00
Pranav Gaddamadugu
a3c0892ffd Add Destructuring pass to the compiler 2023-10-27 18:54:57 -04:00
Pranav Gaddamadugu
b1096f1036 Introduce destructuring pass 2023-10-27 18:54:57 -04:00
Pranav Gaddamadugu
992f0b83de Redesign flattening 2023-10-27 18:54:57 -04:00
Pranav Gaddamadugu
cacc2154ea Update flattener 2023-10-27 18:54:57 -04:00
Pranav Gaddamadugu
b36966db8f Clean up passes 2023-10-27 18:54:57 -04:00
Pranav Gaddamadugu
3b720001d6 Update SSA pass 2023-10-27 18:54:57 -04:00
Pranav Gaddamadugu
17cdda2227 Refactor TypeTable 2023-10-27 18:54:57 -04:00
Pranav Gaddamadugu
64550555ee Ensure type consistency during function inlining 2023-10-27 18:54:57 -04:00
Pranav Gaddamadugu
c193b1d2ab Ensure type consistency during loop unrolling 2023-10-27 18:54:57 -04:00
Pranav Gaddamadugu
edcc1a6fce Update RenameTable 2023-10-27 18:54:57 -04:00
Pranav Gaddamadugu
3e59672c34 Cleanup 2023-10-27 18:54:57 -04:00
Pranav Gaddamadugu
93aca5c103 Ensure type consistency in SSA pass 2023-10-27 18:54:57 -04:00
Pranav Gaddamadugu
a3446d3aea Introduce TypeTable 2023-10-27 18:54:57 -04:00
Pranav Gaddamadugu
621a2f2a95 Add expressions to the type map 2023-10-27 18:54:57 -04:00
Pranav Gaddamadugu
2fc155798e Add the type map to the symbol table 2023-10-27 18:54:57 -04:00
Pranav Gaddamadugu
d1a5283513 WIP 2023-10-27 18:54:57 -04:00
Pranav Gaddamadugu
7e5a6e9755 WIP flattening for arrays 2023-10-27 18:54:57 -04:00
Pranav Gaddamadugu
82ad245aff WIP flattening 2023-10-27 18:54:57 -04:00
Pranav Gaddamadugu
4b9a96ee50 Update passes 2023-10-27 18:54:57 -04:00
Pranav Gaddamadugu
072ab7b930 Change PositiveNumber to NonzeroNumber 2023-10-27 18:54:56 -04:00
Pranav Gaddamadugu
7e471b7748 Add type checking for arrays 2023-10-27 18:54:56 -04:00
Pranav Gaddamadugu
eb420b6544 Stubs for arrays access expressions in passes 2023-10-27 18:54:56 -04:00
Pranav Gaddamadugu
f18953144f Stubs for arrays in passes 2023-10-27 18:54:56 -04:00
Pranav Gaddamadugu
c3b92d1a4d Add Array type to Type 2023-10-27 18:54:56 -04:00
Pranav Gaddamadugu
dc4668b50d Refactor 2023-10-27 10:07:08 -04:00
Pranav Gaddamadugu
8f78d08209 Implement fix 2023-10-27 09:52:19 -04:00
Pranav Gaddamadugu
4cc1a17920 Implement fix 2023-10-25 14:09:24 -04:00
Collin Chin
eb12c7e475 chore(leo): bump version for new release 2023-10-19 21:02:05 -07:00
Pranav Gaddamadugu
e4fbf30088 clippy 2023-10-19 22:42:01 -04:00
Pranav Gaddamadugu
e34caf1458 Implement fix 2023-10-19 22:42:01 -04:00
evan-schott
e55035c568 increase test coverage 2023-10-04 16:46:11 -07:00
evan-schott
6da2753b83 small edits to make tests pass 2023-10-04 13:27:25 -07:00
Pranav Gaddamadugu
70e0c26ad1 Fix 2023-10-04 13:05:35 -07:00
d0cd
184c306688 Update compiler/passes/src/function_inlining/inline_program.rs
Signed-off-by: d0cd <pranavsaig@gmail.com>
2023-10-04 13:05:35 -07:00
d0cd
f6a8f46dee Update compiler/passes/src/function_inlining/inline_program.rs
Signed-off-by: d0cd <pranavsaig@gmail.com>
2023-10-04 13:05:35 -07:00
d0cd
70e055773d Update compiler/passes/src/function_inlining/inline_program.rs
Signed-off-by: d0cd <pranavsaig@gmail.com>
2023-10-04 13:05:35 -07:00
evan-schott
f3f98ac30e formatting 2023-10-04 13:05:35 -07:00
evan-schott
c37eeaae03 constant time lookups 2023-10-04 13:05:35 -07:00
evan-schott
141bca35c4 Update compiler/passes/src/function_inlining/inline_program.rs
Co-authored-by: d0cd <pranavsaig@gmail.com>
Signed-off-by: evan-schott <53463459+evan-schott@users.noreply.github.com>
2023-10-04 13:05:34 -07:00
evan-schott
3d0be6b04d Update compiler/passes/src/function_inlining/function_inliner.rs
Co-authored-by: d0cd <pranavsaig@gmail.com>
Signed-off-by: evan-schott <53463459+evan-schott@users.noreply.github.com>
2023-10-04 13:05:34 -07:00
evan-schott
0348e613c6 change AST 2023-10-04 13:05:32 -07:00
evan-schott
52bb785ff4 fixes 2023-10-04 13:00:58 -07:00
evan-schott
0a2ea03701 rebase 2023-10-04 13:00:52 -07:00
evan-schott
a70a3ffb7a create error for tuple length mismatch 2023-10-04 12:57:09 -07:00
evan-schott
dcf03dd393 simplify 2023-10-04 12:54:36 -07:00
evan-schott
24c88795fe fixes 2023-10-04 12:54:36 -07:00
evan-schott
c5464db066 formatting & test expectation 2023-10-04 12:54:36 -07:00
evan-schott
ae86532e96 Construct CPT during pass without messing up loop unrolling 2023-10-04 12:54:36 -07:00
evan-schott
22c592b9bf moved bounds checking form TC to LU 2023-10-04 12:54:36 -07:00
evan-schott
a7ee073f07 add constants to CPT and remove constant definitions from ST and AST 2023-10-04 12:54:36 -07:00
evan-schott
c249786f7c tweak loop unrolling so that build constant propagation table simultaneously 2023-10-04 12:54:36 -07:00
evan-schott
be1866f582 propagate constants by substituting constants for there values 2023-10-04 12:54:36 -07:00
evan-schott
9aa2553b29 move bounds checking to loop unrolling pass 2023-10-04 12:54:36 -07:00
evan-schott
ef04d31099 beautify 2023-10-04 12:54:36 -07:00
evan-schott
54b880d66e in response to AST passes change 2023-10-04 12:54:36 -07:00
evan-schott
3540699474 Add function to remove variables from ST (so can clear const vars) 2023-10-04 12:54:36 -07:00
evan-schott
18186314f8 constant propagation table to store values of constants (both local and global) 2023-10-04 12:54:36 -07:00
Pranav Gaddamadugu
95b540c253 Fix 2023-09-28 23:37:16 -04:00
Pranav Gaddamadugu
9d3fcc70f1 Connect compiler 2023-09-28 23:34:19 -04:00
Pranav Gaddamadugu
05481218bf Update codegen to be compatible with async 2023-09-28 23:34:18 -04:00
Pranav Gaddamadugu
a53c34388a Update codegen for mappings 2023-09-28 23:34:18 -04:00
Pranav Gaddamadugu
44658ca917 Rename parent to signer 2023-09-28 23:34:18 -04:00
Pranav Gaddamadugu
4abec6b5fc Add support for self.parent 2023-09-28 23:34:18 -04:00
Collin Chin
9c20f42d1d
Feat/sha3 (#2604)
* implement Keccak256 Keccak384 Keccak512 with tests

* implement SHA3_256 SHA3_384 SHA3_512 with tests
2023-09-22 09:54:14 -07:00
Collin Chin
82b39a81e9
implement Keccak256 Keccak384 Keccak512 with tests (#2603) 2023-09-22 08:31:30 -07:00
evan-schott
c0aa78223c formatting: 2023-09-11 14:40:28 -07:00
evan-schott
c960d7195f add newline 2023-09-11 14:37:36 -07:00
collin
0f2f16877b chore(leo): bump version for new release 2023-09-08 10:18:21 -07:00
evan-schott
aceb20b8d5 Merge remote-tracking branch 'origin/testnet3' into feat/hash-symbol-table 2023-09-07 11:09:02 -07:00
evan-schott
e149f7d35f clippy changes 2023-09-06 16:02:54 -07:00
evan-schott
444a4214eb run all tests, add optionality for writing symbol tables to json 2023-09-06 16:02:21 -07:00
evan-schott
cc2d54ae2b changes to testing framework 2023-09-05 15:06:28 -07:00
evan-schott
a3e25ebc69 successfully add hashes to expectation file 2023-09-05 15:05:43 -07:00
Pranav Gaddamadugu
023d94d20f Code gen support 2023-08-30 14:05:46 -04:00
Pranav Gaddamadugu
daf003f728 Tyc support 2023-08-30 14:05:46 -04:00
Pranav Gaddamadugu
46e9313e55 Introduce Type::Signature to the AST 2023-08-30 14:05:46 -04:00
d0cd
e180118a30
Merge pull request #2545 from AleoHQ/feat/underscore
Add support for underscores in numeric literals #2538
2023-08-28 08:17:22 -04:00
evan-schott
47e881f55e removed inaccurate invalid-literal error 2023-08-25 14:11:22 -07:00
evan-schott
035f763d40 clippy changes 2023-08-25 10:07:42 -07:00
evan-schott
550f43b039 Revisions (underscore to execute test, type checker error msg, spurious type error fix, revised tuple indexing test) 2023-08-25 09:49:53 -07:00
evan-schott
90bb897130 more clippy 2023-08-24 15:58:54 -07:00
evan-schott
f4fee23758 clippy fix 2023-08-24 15:40:00 -07:00
evan-schott
4308d598e2 running all tests and updating expectation files 2023-08-24 15:29:23 -07:00
evan-schott
439d2b29de loop unrolling compatible with underscores 2023-08-24 15:07:00 -07:00
collin
439312275a fix more warnings 2023-08-18 16:47:08 -07:00
collin
cf9fbb319d fix noop method call warnings 2023-08-18 16:16:55 -07:00
Pranav Gaddamadugu
7d4a5d3b33 Clippy 2023-08-17 17:52:51 -04:00
Pranav Gaddamadugu
440cced9d8 Cleanup 2023-08-17 17:49:29 -04:00
Pranav Gaddamadugu
661a7cd508 Update compiler pipelines 2023-08-17 17:22:57 -04:00
Pranav Gaddamadugu
2fe6892645 Use NodeBuilder in FunctionInliner 2023-08-17 17:22:57 -04:00
Pranav Gaddamadugu
19ba799d21 Use NodeBuilder in LoopUnroller 2023-08-17 17:22:57 -04:00
Pranav Gaddamadugu
8f63fcdf80 Add NodeBuilder to StaticSingleAssigner 2023-08-17 17:22:56 -04:00
Pranav Gaddamadugu
05d38f3777 Use NodeBuilder in Flattener 2023-08-17 17:22:56 -04:00
Pranav Gaddamadugu
bf25bbae8b Use interior mutability pattern for Assigner 2023-08-17 17:22:56 -04:00
Pranav Gaddamadugu
637e091abb Use NodeBuilder in DCE 2023-08-17 17:22:56 -04:00
d0cd
7cd6e757bf
Merge pull request #2522 from AleoHQ/design/node-id
[Design] Add `id` to AST nodes.
2023-08-17 00:26:52 -04:00
collin
11b87229f1 chore(leo): bump version for new release 2023-08-15 14:02:00 -07:00
d0cd
85d9a28ebb
[Test] Add examples to test framework. (#2527)
* Add tests

* Remove debug print

* Regen expectations

* Remove battleship example
2023-08-15 11:11:17 -07:00
Pranav Gaddamadugu
7cc3330d98 Add failing test 2023-08-09 20:12:02 -04:00
Pranav Gaddamadugu
6808d90545 Only use NodeID::default() 2023-08-09 17:22:33 -04:00
Pranav Gaddamadugu
3b1bd38ec6 Update passes 2023-08-09 16:58:28 -04:00
Pranav Gaddamadugu
90add44907 WIP update passes 2023-08-09 15:34:39 -04:00
collin
7714f55999 chore(leo): bump version for new release 2023-08-08 10:14:56 -07:00
collin
d336be0b7b chore(leo): bump version for new release 2023-07-24 10:51:44 -07:00
dependabot[bot]
b70ebe5f86
Bump num-traits from 0.2.15 to 0.2.16 (#2499)
Bumps [num-traits](https://github.com/rust-num/num-traits) from 0.2.15 to 0.2.16.
- [Changelog](https://github.com/rust-num/num-traits/blob/master/RELEASES.md)
- [Commits](https://github.com/rust-num/num-traits/compare/num-traits-0.2.15...num-traits-0.2.16)

---
updated-dependencies:
- dependency-name: num-traits
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-21 17:07:00 -07:00
collin
6a7748e5fe chore(leo): bump version for new release 2023-07-19 18:17:31 -07:00
Collin Chin
d44457fc32
[Feature] Implement leo execute (#2491)
* bump snarkvm rev

* update default gitignore

* impl leo execute

* bump snarkvm 0.14.5

* modify examples wip

* update run.sh examples

* impl env file

* clippy warning

* fix auction example

* fix auction example env

* generate new private key for new env - tests failing due to env not found err

* commit error changes

* Fix tests; clippy

* Get examples working

* leo build checks that build dir is well formed; clippy

* Clean up

* Update examples/README.md

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

* do not commit .avm files

* use snarkvm commands

---------

Signed-off-by: Collin Chin <16715212+collinc97@users.noreply.github.com>
Co-authored-by: Pranav Gaddamadugu <pranav@aleo.org>
Co-authored-by: d0cd <pranavsaig@gmail.com>
2023-07-19 18:04:09 -07:00
collin
a18899f253 chore(leo): bump version for new release 2023-07-05 21:25:34 -07:00
d0cd
d92d48e4a5
[Fix] Fix issues related to flattening. (#2439)
* Implement fix

* Regen expectations

* Update AST printing for functions

* Fix code generation when there are no output operands

* Fix flattener

* Add additional tests

* Regen expectations

* Fmt

* Regen expectations
2023-07-05 15:45:15 -07:00
Collin Chin
b690a62676
impl Mapping::contains, Mapping::remove (#2436)
* impl Mapping::contains, Mapping::remove

* regen expectations

* 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>

---------

Signed-off-by: Collin Chin <16715212+collinc97@users.noreply.github.com>
Co-authored-by: Alessandro Coglio <coglio@kestrel.edu>
2023-06-29 17:04:55 -07:00
collin
9fccf015d7 chore(leo): bump version for new release 2023-06-28 21:09:44 -07:00
d0cd
b236918df4
[Feature] Support ChaCha::rand_* (#2433)
* Add tests for ChaCha::rand*

* Add Chacha::rand* to AST, tyc, and codegen

* Add lottery example

* Regen expectations

* Add check asserting that command is only used in finalize block

* Update example and related CI
2023-06-28 21:02:50 -07:00
d0cd
c373b898c4
Merge pull request #2427 from AleoHQ/feat/group-to-coordinate
[Feature] Support `to_x_coordinate` for `group`s.
2023-06-28 11:32:57 -04:00
Pranav Gaddamadugu
1fbb228092 Add comment 2023-06-28 10:09:33 -04:00
Pranav Gaddamadugu
8062693f3d Support method calls for group coordinates 2023-06-23 21:03:11 -04:00
Pranav Gaddamadugu
8b4552efd5 Fix implementation 2023-06-23 20:35:42 -04:00
Pranav Gaddamadugu
9b7a4ba456 WIP associated function syntax for group::to_*_coordinate 2023-06-23 20:22:03 -04:00
collin
80b0976276 chore(leo): bump version for new release 2023-06-23 17:19:25 -07:00
d0cd
07d26ea43f
[Feature] Casting via the as operator. (#2426)
* Revert "Revert WIP"

This reverts commit 5cce8b4a0e.

* Update tyc

* Add parse, compile, and execute tests

* Regen expectations
2023-06-23 17:09:15 -07:00
dependabot[bot]
1025bd965d
Bump itertools from 0.10.5 to 0.11.0 (#2424)
Bumps [itertools](https://github.com/rust-itertools/itertools) from 0.10.5 to 0.11.0.
- [Changelog](https://github.com/rust-itertools/itertools/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-itertools/itertools/compare/v0.10.5...v0.11.0)

---
updated-dependencies:
- dependency-name: itertools
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-23 17:07:51 -07:00
Pranav Gaddamadugu
5cce8b4a0e Revert WIP 2023-06-23 10:24:10 -04:00