Commit Graph

425 Commits

Author SHA1 Message Date
Pranav Gaddamadugu
da7ff48b11 Add check for nested records; fix codegen for circuit nested in record 2022-08-11 00:53:01 -07:00
Pranav Gaddamadugu
974e93cadf Tyc checks that types are defined 2022-08-11 00:37:04 -07:00
Pranav Gaddamadugu
dcbdb1bd85 Reintroduce IntegerType 2022-08-09 19:53:17 -07:00
Pranav Gaddamadugu
7d2f306f15 Simplify type checking logic 2022-08-09 19:53:17 -07:00
Pranav Gaddamadugu
84369793ac Update passes to account for change in AST 2022-08-06 07:49:36 -07:00
Pranav Gaddamadugu
a47eb32eaf Cleanup; add test 2022-08-05 14:58:29 -07:00
collin
d397c750d2 merge testnet3 2022-08-05 13:59:08 -07:00
Collin Chin
46f21c68a2
Merge pull request #1994 from AleoHQ/remove-unsafe
Remove all uses of unsafe
2022-08-05 13:50:53 -07:00
Pranav Gaddamadugu
d56bd3084d Fix order of folded ternary expressions when handling early return statements 2022-08-05 08:30:50 -07:00
Pranav Gaddamadugu
1e4f2b1cca Add compiler test for function calls; fix bugs; regen test expectations 2022-08-04 21:21:56 -07:00
Pranav Gaddamadugu
34be1fc39d Codegen for function call; emits closures before functions 2022-08-04 21:03:42 -07:00
Pranav Gaddamadugu
4e9b382c55 Typecheck helper functions; add codegen support 2022-08-04 19:34:46 -07:00
Pranav Gaddamadugu
fa8d03cbd6 Validate annotations; refactor FunctionInput in passes 2022-08-04 17:59:03 -07:00
Pranav Gaddamadugu
2b3bda7da7 Add Annotation to AST; enable parser support 2022-08-04 17:55:26 -07:00
Mazdak Farrokhzad
a77d3b4092 forbid unsafe_code in all crates 2022-08-05 00:36:41 +02:00
Pranav Gaddamadugu
b97cafbbfc Add support for Rem, RemWrapped, and Mod to passes 2022-08-03 12:55:24 -07:00
Pranav Gaddamadugu
c364c581ec Documentation 2022-08-03 00:03:53 -07:00
Pranav Gaddamadugu
5be72596db Implement bug fix 2022-08-02 23:50:08 -07:00
collin
60e4279934 merge testnet3 2022-07-29 14:16:34 -07:00
Pranav Gaddamadugu
bf1421280e Fix bug in SSA; regen test expectations 2022-07-29 12:52:18 -07:00
collin
0a34115ef7 stabilize scalar tests 2022-07-28 16:46:30 -07:00
collin
8a0e9bc5cc merge testnet3 regen tests 2022-07-28 14:19:57 -07:00
Pranav Gaddamadugu
3dc234325c Address feedback 2022-07-28 11:51:16 -07:00
Pranav Gaddamadugu
d11ed35c77 Addressing feedback 2022-07-28 09:24:33 -07:00
Mazdak Farrokhzad
37f51014c9 minor cleanup 2022-07-27 21:48:10 +02:00
collin
6724d2abe9 remove unused code 1 2022-07-25 14:17:36 -07:00
Pranav Gaddamadugu
9dd45c3620 Type checking errors on multiple returns 2022-07-24 21:32:36 -07:00
Pranav Gaddamadugu
65e13a77c0 SSA folds all ReturnStatements into a single statement at the end of the block 2022-07-23 10:29:14 -07:00
Pranav Gaddamadugu
ff816c59d3 Cleanup 2022-07-23 10:29:14 -07:00
Pranav Gaddamadugu
e3a36089e0 Fmt 2022-07-23 10:29:14 -07:00
Pranav Gaddamadugu
7059fb5ffa Cleanup 2022-07-23 10:29:14 -07:00
Pranav Gaddamadugu
a4a912f677 Bug fix for SSA pass 2022-07-23 10:29:13 -07:00
Pranav Gaddamadugu
3d63b5c400 Cleanup 2022-07-23 10:29:13 -07:00
Pranav Gaddamadugu
e82c372eac Support code gen for assign statements 2022-07-23 10:29:13 -07:00
Pranav Gaddamadugu
1a62a2ba8c SSA shouldn't reconstruct function ids 2022-07-23 10:29:13 -07:00
Pranav Gaddamadugu
12e356c030 Integrate SSA pass with compiler 2022-07-23 10:29:13 -07:00
Pranav Gaddamadugu
cb32f82352 Pull passes/src/static_single_assignemnt from feat/ssa-and-dce 2022-07-23 10:29:13 -07:00
Pranav Gaddamadugu
3e780dd42b Fix bug in codegen for CircuitExpression 2022-07-20 12:59:23 -07:00
collin
07a199537d clippy 2022-07-18 15:47:30 -07:00
collin
66b0fcc885 merge testnet3 regen tests 2022-07-18 15:33:40 -07:00
collin
4dc0df0084 merge testnet3 2022-07-18 14:13:31 -07:00
collin
5316d900f4 merge testnet3, regen tests 2022-07-18 12:32:15 -07:00
Pranav Gaddamadugu
8199a1e9d3 More feedback/cleanup 2022-07-18 11:54:33 -07:00
Pranav Gaddamadugu
1b872576b2 Merge branch 'testnet3' into feat/loop-unrolling 2022-07-18 07:54:48 -07:00
collin
7f14e02055 import codegen working 2022-07-15 23:36:36 -07:00
collin
0368b8bd51 clippy 2022-07-15 21:00:16 -07:00
collin
914a9c385e code gen for imports 2022-07-15 20:59:47 -07:00
collin
8dde478664 fix leo new 2022-07-15 15:35:19 -07:00
collin
e82631103d clippy 2022-07-15 15:09:01 -07:00
collin
a35606f628 update revs and examples 2022-07-15 15:08:22 -07:00
Pranav Gaddamadugu
604b8cf992 Suppress dead_code warnings; these functions are used in constant folding 2022-07-15 08:55:58 -07:00
Pranav Gaddamadugu
110c3eb35c Address more feedback 2022-07-15 01:50:14 -07:00
Pranav Gaddamadugu
86b5c9faa1 Fix errors from merge 2022-07-14 17:52:36 -07:00
Pranav Gaddamadugu
b6224d6d89 Merge branch 'testnet3' into feat/loop-unrolling 2022-07-14 17:51:34 -07:00
Pranav Gaddamadugu
43a68fda86 Loop Unrolling skips instead of failing on non-const bounds 2022-07-14 17:07:37 -07:00
Pranav Gaddamadugu
fdc2f65623 More feedback 2022-07-14 17:02:37 -07:00
Pranav Gaddamadugu
923d5924fe Feedback from code review 2022-07-14 14:26:13 -07:00
collin
230491f1b1 clippy 2022-07-13 21:18:09 -07:00
Mazdak Farrokhzad
ce7ac0b443 run cargo clippy 2022-07-14 06:07:07 +02:00
Mazdak Farrokhzad
dab6629ac0 1. move tuple logic to typeck, 2. disallow multi vars in var decls 2022-07-14 06:07:05 +02:00
collin
f4a59c5745 cargo fmt 2022-07-13 21:05:38 -07:00
collin
7d604748bd add token transfer example, fix record cast codegen 2022-07-13 21:02:33 -07:00
collin
13b9261063 bump revs, fix cast instruction 2022-07-13 14:13:30 -07:00
collin
d151401385 indexmap over hashmap 2022-07-12 22:52:56 -07:00
collin
3d9c8dd0e4 add more examples, fix circuits as input 2022-07-12 21:43:19 -07:00
collin
c0e968206b fix examples 2022-07-12 18:30:55 -07:00
collin
266fdd7a5e fix readmes and licenses 2022-07-12 16:46:42 -07:00
collin
0b81f03f3a move /leo/errors -> /errors 2022-07-12 16:41:42 -07:00
collin
6d731891d0 move /leo/span -> /compiler/span 2022-07-12 16:37:10 -07:00
collin
a9992bc6d4 remove unused code 2022-07-12 16:19:58 -07:00
Pranav Gaddamadugu
f5eea6b307 Regen expectations; cleanup 2022-07-11 23:07:11 -07:00
Pranav Gaddamadugu
bceccea80b Merge branch 'testnet3' into feat/loop-unrolling 2022-07-11 22:55:42 -07:00
Pranav Gaddamadugu
639a719e4d WIP loop unrolling 2022-07-11 21:46:34 -07:00
Pranav Gaddamadugu
1a9941022c Rename type_checker to type_checking 2022-07-11 21:46:15 -07:00
collin
e013b88811 stabilize leo build 2022-07-11 21:09:27 -07:00
Pranav Gaddamadugu
7537fb1af2 Pull passes/src/flattening from improved-flattening 2022-07-11 14:53:41 -07:00
Pranav Gaddamadugu
ae13db1d4c Type checking fills in start/stop values for IterationStatement 2022-07-11 14:48:53 -07:00
collin
c719843223 impl program json, aleo build and run working 2022-07-11 14:10:22 -07:00
collin
608d29a81c clippy 2022-07-11 11:58:31 -07:00
collin
426941ac8c fix associated function calls 2022-07-11 11:56:38 -07:00
Pranav Gaddamadugu
3b76574a78 Add start, stop values for IterationStatement 2022-07-11 11:20:54 -07:00
collin
1d0dd0781d impl codegen for return tuples 2022-07-11 11:08:01 -07:00
Pranav Gaddamadugu
dbfd9a7451 Better error for address comparison; regen test expectations 2022-07-11 07:49:52 -07:00
Pranav Gaddamadugu
641c98b69e Use refactored types in parsing and tyc 2022-07-11 07:19:00 -07:00
collin
ed79f5c957 merge return-tuple branch 2022-07-09 20:55:30 -07:00
collin
d59cff0844 cargo fmt 2022-07-09 16:58:36 -07:00
collin
a15fce710c merge testnet3 2022-07-09 16:51:20 -07:00
collin
270dffb140 regen tests 2022-07-09 16:23:54 -07:00
collin
1bcb9accec clippy 2022-07-09 15:38:11 -07:00
collin
aff2db67da check that returned tuple types are valid 2022-07-09 15:13:42 -07:00
collin
2a61f26ccc impl tuple tests 2022-07-09 15:02:45 -07:00
collin
a7fc19a69f impl tuple ast access 2022-07-09 13:22:10 -07:00
collin
296c62a280 impl tuple type expression 2022-07-09 10:15:08 -07:00
Pranav Gaddamadugu
8ab98c9434 Refactor emitter to reduce the number of into invocations; more cleanup 2022-07-08 14:10:54 -07:00
Pranav Gaddamadugu
e7f4a41410 Better error for missing member on circuit init 2022-07-08 13:45:00 -07:00
Pranav Gaddamadugu
990b5a75da Rename LiteralExpression to Literal; more cleanup 2022-07-08 13:44:21 -07:00
Pranav Gaddamadugu
0358a5f4da Fmt 2022-07-08 13:43:28 -07:00
collin
a1c42a8d3f impl tuple type 2022-07-08 13:07:20 -07:00
Pranav Gaddamadugu
f31accb04e Cleanup; type checking for Circuit Member Access 2022-07-08 12:56:58 -07:00
collin
43db782ce2 remove Copy trait from Type enum 2022-07-08 12:22:25 -07:00
Pranav Gaddamadugu
00b90c4a33 Merge branch 'testnet3' into feat/redesign-symbol-table 2022-07-08 11:57:40 -07:00
collin
b5a2790375 rename balance -> gates 2022-07-07 16:15:11 -07:00
collin
4d809e82a6 cargo fmt 2022-07-07 15:18:13 -07:00
collin
b461539ae3 use refactored methods in type checking, regen tests 2022-07-07 13:22:59 -07:00
collin
f892fe1a57 refactor type checker for removal of Copy trait 2022-07-07 12:20:34 -07:00
collin
95c2f66c5a clippy 2022-07-06 20:49:05 -07:00
Pranav Gaddamadugu
3136a6ccca Remove TODO 2022-07-06 17:29:57 -07:00
Pranav Gaddamadugu
52671c9328 Documentation for SymbolTable pass 2022-07-06 17:10:18 -07:00
Pranav Gaddamadugu
9b7d9a96b7 Fmt, clippy 2022-07-06 16:16:19 -07:00
Pranav Gaddamadugu
12eafa4174 Regenerate test expectations without symbol_table 2022-07-06 16:10:59 -07:00
Pranav Gaddamadugu
2a2a65b416 Make type checking pass compatible with current implementation of SymbolTable 2022-07-06 16:08:29 -07:00
Pranav Gaddamadugu
bd1b8251c2 Remove SymbolTable functionality associated with flattening 2022-07-06 16:08:03 -07:00
Pranav Gaddamadugu
24f38721d6 Pull changes to compiler/passes/symbol_table from improved-flattening; remove unused files 2022-07-06 16:08:03 -07:00
collin
f3b87b5ccb cargo fmt 2022-07-06 14:36:23 -07:00
collin
ade332442a impl codegen for testnet3 2022-07-06 00:48:54 -07:00
collin
de178522d8 impl Display for BinaryOperation, improve error message 2022-07-05 16:42:36 -07:00
collin
dd75133e22 clippy 2022-07-02 18:49:13 -07:00
collin
c16a93ab44 removes <, <=, >, >= for address type 2022-07-02 18:15:18 -07:00
collin
ecc1fff7fd cargo fmt 2022-07-02 14:08:17 -07:00
collin
0a4069fe39 merge testnet3 2022-07-02 14:08:02 -07:00
collin
07288e4662 update licenses 2022-07-02 13:47:53 -07:00
Pranav Gaddamadugu
62d2de8c95 Refactor type checking pass to be compatible with new Visitor pattern 2022-07-01 12:45:40 -07:00
Pranav Gaddamadugu
7b5632be90 Refactor SymbolTable creation pass to be compatible with new Visitor pattern 2022-07-01 12:02:38 -07:00
Mazdak Farrokhzad
952d7f4e36 records: base them atop circuits instead 2022-06-30 15:37:18 +02:00
collin
6933d5d9da cargo clippy 2022-06-27 09:44:49 -10:00
collin
df8ee1a1f9 fix type checking bugs 2022-06-26 15:13:58 -10:00
collin
21c6a2167a type check record init expressions 2022-06-26 10:46:32 -10:00
collin
18a74cfb85 type check record type declaration 2022-06-24 11:47:01 -10:00
collin
5ee2858b0a add tests and remove dead code 2022-06-22 22:38:33 -10:00
collin
7417496eee merge testnet3 2022-06-22 21:42:00 -10:00
collin
4a80445bd8 test hashing u128 with ped64 fails 2022-06-22 21:29:04 -10:00
collin
4400545543 add all core circuit tests 2022-06-22 21:19:26 -10:00
collin
0c89c1b5fb add circuit variable access and type check 2022-06-22 15:14:00 -10:00
collin
a79196c945 fix circuit type checking, addresses review comments 2/2 2022-06-21 19:37:23 -07:00
collin
d6e32788b4 rename static -> associated, addresses review comments 1/2 2022-06-21 18:30:10 -07:00
Mazdak Farrokhzad
7226659bf6 Value -> Literal 2022-06-21 17:12:34 +02:00
Mazdak Farrokhzad
ddbf2ae849 1. Speed up string literal lexing.
2. Move address check to parser.
3. Move assignment place WF check to type checker.
2022-06-21 17:07:44 +02:00
collin
bb7c41ffad merge prototype/code-gen 2022-06-20 14:21:28 -07:00
collin
f7a55de9a6 lt, gt, lte, gte for address 2022-06-20 13:25:40 -07:00
collin
99605f46a5 le, ge -> lte, gte 2022-06-20 13:24:20 -07:00
collin
23ba8bc40c check field type for square_root 2022-06-20 13:18:11 -07:00
collin
d4171de577 check signed ints for abs and abs.w 2022-06-20 13:15:13 -07:00
collin
bfd3a37a42 merge testnet3 2022-06-20 12:34:33 -07:00
collin
52395bba45 fix circuit type checking 2022-06-17 18:32:49 -07:00
collin
26810a15ae impl bhp, pedersen, poseidon instructions 2022-06-17 15:37:48 -07:00
collin
d527a88a3a impl core circuit instructions 2022-06-17 11:17:46 -07:00
gluax
c9ab4bd3d7 add bitwise op parsing, fix tests 2022-06-16 15:40:48 -07:00
gluax
b656fd5347 fix type checking on certain bitwise operations 2022-06-16 12:49:41 -07:00
gluax
33fe8ebbc2 fixes bug #1877 to make debugging easier, fixes parsing of method calls 2022-06-16 11:33:16 -07:00
collin
26f04e2eaf core circuit wip 2022-06-15 16:50:21 -07:00
collin
993b86e8c7 add circuit type parsing up to type checking 2022-06-15 16:08:05 -07:00
collin
b2890f393a merge testnet3 2022-06-15 10:23:01 -07:00
Mazdak Farrokhzad
eee838abba fixes in special methods parsing 2022-06-15 14:51:44 +02:00
collin
0e59e9bcf9 fix cmp type checking 2022-06-14 10:55:59 -07:00
collin
6c759b7174 impl unary 2022-06-13 18:35:18 -07:00
collin
831e011f42 use more clear type checking methods 2022-06-13 14:53:01 -07:00
gluax
2c9a91552c Merge branch 'testnet3' of github.com:AleoHQ/leo into feature/compiler-benchmarking 2022-06-12 09:26:30 -07:00
collin
02e3313d59 add docs for type checking and fix bugs 2022-06-10 17:21:33 -07:00
collin
32f0c96b6f impl shl shr tokens and type checking 2022-06-10 16:33:30 -07:00
collin
4e3ed8d4dc regen tests 2022-06-10 13:02:16 -07:00
collin
f248827b37 impl binary operators WIP no tests 2022-06-09 16:47:31 -07:00
collin
9797175f16 remove method call expr and type checking 2022-06-09 13:07:30 -07:00
collin
a32418133c parse method calls directly 2022-06-09 13:01:59 -07:00
collin
5dba9cf07f impl method call type checking 2022-06-08 14:44:08 -07:00
gluax
f6990e75fc fixed some bugs 2022-06-08 06:46:54 -07:00
0rphon
d43fd813f7 fixed compiler benchmarks 2022-06-08 00:20:09 -07:00
d0cd
86d7cb99dd Prettier bytecode printing 2022-06-07 11:13:11 -07:00
d0cd
472ff794a6 Integrate prototype into compiler passes 2022-06-07 10:01:13 -07:00
d0cd
f2e0ba7dcd Initial prototype for code gen 2022-06-07 09:13:57 -07:00
collin
f0a1573058 impl method call expression parsing 2022-06-03 13:27:23 -04:00
gluax
8ad69944c0 bug fixes 2022-06-02 09:39:49 -07:00
collin
27c858a0fc merge testnet3 2022-06-02 11:33:11 -04:00
collin
85eb1adcce rename corelib -> core, update readme 2022-06-02 11:22:08 -04:00
gluax
9638a695aa fix more bugs, add type checking 2022-06-01 11:16:00 -07:00
gluax
ace7005ea7 fmt 2022-06-01 09:26:18 -07:00
gluax
220cb3e730 rename stdlib -> corelib 2022-06-01 09:09:38 -07:00
gluax
0ce4639a1b merge upstream, test builtin ident types 2022-05-31 10:34:57 -07:00
gluax
1da03e728b add checks for ident types being allowed built in types 2022-05-30 11:29:00 -07:00
gluax
2db204b81e further changes to the visitor pattern to clean up code 2022-05-30 10:53:06 -07:00
gluax
044b2a10a4 refa:ctored visitor pattern to better on an the AST 2022-05-26 13:29:51 -07:00
gluax
94d96f156f fix span for group scalar errors, use suggested doc comment 2022-05-26 10:09:34 -07:00
gluax
97ef64aa66 trying to modify visitor pattern to better fit type checking 2022-05-26 10:05:04 -07:00
gluax
bc174419f7 start adding the new core types 2022-05-25 16:19:56 -07:00
gluax
2117ee3ae8 resolve readme conflict 2022-05-25 11:55:23 -07:00
collin
8d79193474 merge testnet3 2022-05-25 14:02:10 -04:00
gluax
936360793c slight clean up & handle grammar readme 2022-05-25 10:45:25 -07:00
gluax
8cb4b19e66 merge upstream changes 2022-05-25 09:21:47 -07:00
collin
c62f876765 type checker clean up and add docs 2022-05-24 12:11:55 -04:00
gluax
ca3fb11bc3 fmt fix 2022-05-23 19:01:07 -07:00
gluax
1cd7aad6ad fix #1819 2022-05-23 18:55:42 -07:00
gluax
65d237e25f fix last error double printing for error collection 2022-05-23 18:14:36 -07:00
gluax
ba4f1666d1 fix #1821 2022-05-23 18:00:33 -07:00
gluax
eee58883a6 clean up and fix type set checking 2022-05-23 11:07:43 -07:00
collin
d0273719ab push broken type checker 2022-05-23 11:40:14 -04:00
collin
b8780e888d merge testnet3 2022-05-20 10:39:21 -04:00
Mazdak Farrokhzad
882f2e5454 remove char type + literals 2022-05-18 14:33:04 +02:00
Mazdak Farrokhzad
7f435eba48 remove expression statements 2022-05-17 14:41:30 +02:00
collin
f6aa7a578a merge testnet3 2022-05-13 12:33:35 -07:00
Mazdak Farrokhzad
8d915339a0 span refactor: fix build + simplify &span 2022-05-12 16:24:17 +02:00
Mazdak Farrokhzad
0e5402773a span refactor: fix rebase fallout 2022-05-12 16:17:53 +02:00
collin
455603f0a4 cargo fmt 2022-05-10 16:35:53 -07:00
collin
60f6b77629 add scalar operation type checking 2022-05-10 16:26:35 -07:00
collin
55260ae5ad add scalar type to ast 2022-05-10 15:34:42 -07:00
collin
45056ec27b spelling 2022-05-10 11:06:59 -07:00
gluax
b97bf4c9bc started going through deprecated tests, noticed parts of testframework were broken 2022-05-04 15:37:59 -07:00
gluax
67fd130c0c had to handle negation of signed integers 2022-05-04 14:50:33 -07:00
gluax
2c252f7878 all current compiler tests pass, need to add more 2022-05-04 13:37:53 -07:00
gluax
9c8ac64871 expressions so far, and clean up, need to appropiately handle binary exprs 2022-05-04 09:27:00 -07:00
gluax
5cb4a5d8c0 run tests so far, fix statements so far 2022-05-03 19:32:59 -07:00
gluax
db6292609d refactor symbol variable to variable scope, create new symbol variable 2022-05-03 18:39:28 -07:00
gluax
d39ee31933 statements almost done, iteration statements causing issues 2022-05-03 17:33:46 -07:00
gluax
4612602807 type checking errors so far 2022-05-03 14:00:40 -07:00
gluax
1a25db8e23 start on type checking statements 2022-05-03 13:16:13 -07:00
gluax
4fb95d1195 initial commit for tc, adds get_type to Node 2022-05-03 11:26:56 -07:00
gluax
a7c3696e90 merge testnet3 into required types, also remove identifier type 2022-05-02 19:43:46 -07:00
collin
3da1ac802e reorder dependencies 2022-04-29 13:09:27 -07:00
gluax
f57396cf5f resolve pr comments 2022-04-29 10:50:33 -07:00
gluax
7524a325bf fix grabbing last error 2022-04-27 12:31:24 -07:00
gluax
8275b63e57 display for symbol table 2022-04-27 09:14:59 -07:00
gluax
0fc6d17289 some clean up to compiler to be able to better test 2022-04-27 09:14:59 -07:00
gluax
bd356e1f31 need to handle input differently than we used to 2022-04-27 09:14:59 -07:00
gluax
e0c94b8f15 add clear method 2022-04-27 09:14:59 -07:00
gluax
c36023a3d6 exit if any errors were emitted 2022-04-27 09:14:59 -07:00
gluax
22b20bdd6c handler shows all errors then causes an exit at the end 2022-04-27 09:14:59 -07:00
gluax
5ec3a24cf8 initial commit 2022-04-27 09:14:59 -07:00