Commit Graph

690 Commits

Author SHA1 Message Date
Howard Wu
b4cfa64167
Adds ci.yml (#77)
* Adds ci.yml

* Update ci script

* Update Cargo.toml

* Update to ubuntu-latest

* Update dependencies

* Update git deps with rev

* Update ci script

* Update ci script

* Update ci script

* Update code coverage

* Update code coverage

* Update CI

* Update CI

* Update CI

* Update CI

* Update CI

* Update CI

* Update CI

* Update CI

* Update CI

* Update CI

* Update CI

* Update CI

* Update CI

* Update CI script

* Update CI script
2020-06-27 20:16:38 -07:00
collin
878310f793 add import directory parsing 2020-06-26 23:47:11 -07:00
collin
8825a0741c clean up for pr 2020-06-26 19:06:52 -07:00
collin
f64dfcf410 refactor import constraints into separate files 2020-06-26 18:09:28 -07:00
collin
a4a9ed05ea impl constraints and tests for multiple imports 2020-06-26 17:12:04 -07:00
collin
5900923d9d impl constraints for single imports 2020-06-26 15:42:52 -07:00
collin
b5d90b857b impl import package syntax for ast and types 2020-06-26 14:18:05 -07:00
collin
a8cbbee392 fix integer and field gadgets 2020-06-25 17:19:32 -07:00
collin
7233e55dc1 impl comparator gadgets for fields and integers 2020-06-25 15:58:37 -07:00
collin
cc8a3d9878 move integer enum and errors into compiler 2020-06-25 14:27:19 -07:00
collin
47ef6be719 set inputs size from bytes 2020-06-24 21:40:17 -07:00
collin
504480b3d7 serialize program into bytes file 2020-06-24 21:05:11 -07:00
collin
7bc52ada9e evaluate all indices to expressions 2020-06-24 16:57:15 -07:00
collin
f1e9df7c95 evaluate range bounds to rust usize type 2020-06-24 16:30:49 -07:00
collin
1fafbab5ee parse integer later in program. derive serde for basic program types 2020-06-24 16:02:20 -07:00
collin
5f0b3e2b0c parse boolean later in program 2020-06-24 15:33:05 -07:00
collin
0159b1c0cc remove print 2020-06-24 12:08:10 -07:00
collin
25a66d1f58 impl multiple returns and test 2020-06-23 23:56:51 -07:00
collin
2291cc51fd fix return type namespaces 2020-06-23 17:48:35 -07:00
collin
c2862c7a0c add formatting for cli errors 2020-06-22 23:20:55 -07:00
collin
5bc1bc022d add file path to formatted errors 2020-06-22 22:32:57 -07:00
collin
ea81f9bc98 add square root example 2020-06-22 21:39:24 -07:00
collin
2f3a51860b fix circuit name 2020-06-22 21:02:18 -07:00
collin
0a990bdb4e Merge branch 'master' of https://github.com/AleoHQ/language into fix/namespace 2020-06-22 18:35:10 -07:00
collin
5865149c06 fix index evaluation 2020-06-22 18:28:30 -07:00
collin
eeaf1b4ae8 remove unused compiler errors 2020-06-22 16:39:33 -07:00
collin
c513fd1626 reformat import errors 2020-06-22 16:28:12 -07:00
collin
8d93f3e079 fix conditional namespace conflict 2020-06-22 16:12:25 -07:00
collin
1dc79ef604 add unique namespaces to function calls 2020-06-22 15:42:46 -07:00
collin
cff3be9d01 add unique namespaces to statement gadget calls 2020-06-22 13:11:01 -07:00
collin
9f27d22486 remove non-formatted errors for program value 2020-06-20 20:40:17 -07:00
collin
d506158499 remove non-formatted errors for expressions 2020-06-20 20:17:04 -07:00
collin
632d98b284 remove non-formatted errors for primitive data types 2020-06-20 18:59:52 -07:00
collin
d1dfdcb878 fix boolean namespaces and errors 2020-06-20 18:43:45 -07:00
collin
03c6af2d46 fix group namespaces and errors 2020-06-20 18:14:08 -07:00
collin
172ab78497 fix field namespaces and errors 2020-06-20 17:49:09 -07:00
collin
f915cab9f2 fix conflicts 2020-06-20 16:37:34 -07:00
collin
2e02d0906c fix integer operation namespaces 2020-06-20 16:30:44 -07:00
collin
837a006e51 move error struct to types. fix integer namespaces 2020-06-20 15:24:46 -07:00
howardwu
d80734fbb5 Add a member_field_and_function test 2020-06-20 01:40:56 -07:00
howardwu
3df120f9d0 Rename identifier to circuit_name in Circuit type 2020-06-20 00:45:41 -07:00
collin
ec8a804654 uncomment tests, remove unused method 2020-06-19 23:21:55 -07:00
collin
9e93462f2b merge master 2020-06-19 23:16:12 -07:00
collin
82a0afc17e convert leo-inputs to span with errors. fix tests 2020-06-19 23:02:58 -07:00
howardwu
03b59b573b Update file extensions to new convention 2020-06-19 22:07:02 -07:00
collin
2743b23e1e convert functions to span with error 2020-06-19 21:49:42 -07:00
collin
f3e81184c1 convert expressions to span with error 2020-06-19 21:38:36 -07:00
collin
3d1fe9cc4b convert statements to span with error 2020-06-19 19:04:13 -07:00
collin
6922d5dd73 convert identifer to span with error 2020-06-19 17:28:50 -07:00
collin
c54f1817ce impl custom span and error structs 2020-06-19 15:47:09 -07:00
collin
71a0e14bea Merge branch 'master' of https://github.com/AleoHQ/language into feature/const 2020-06-17 17:32:24 -07:00
Howard Wu
267837e169
Merge pull request #63 from AleoHQ/remove/visibility
Remove/visibility
2020-06-17 16:52:19 -07:00
collin
51f603b881 add span error formatting for inputs 2020-06-17 15:40:39 -07:00
collin
cf9d903a2a remove reserved characters 2020-06-16 19:18:02 -07:00
collin
4d1bf9071c add span to input values 2020-06-16 19:13:11 -07:00
collin
874bbe5a10 merge remove/visiblity 2020-06-16 15:14:52 -07:00
collin
1e0903c32b merge master, update readme 2020-06-16 12:25:42 -07:00
Collin Chin
c8b6f66210
Merge pull request #62 from AleoHQ/feature/default
Improves compilation time by turning off unused features in snarkOS
2020-06-16 09:51:14 -07:00
collin
7248814ac7 impl let/const for circuits and value wrappers 2020-06-16 09:49:45 -07:00
collin
1214bed387 Merge branch 'master' of https://github.com/AleoHQ/language into refactor/conditional 2020-06-15 21:37:43 -07:00
howardwu
7a8aaf8166 Improves compilation time by turning off unused features in snarkOS 2020-06-15 21:27:25 -07:00
collin
5ec6696e74 merge snarkos master changes 2020-06-15 20:05:41 -07:00
collin
0168902a7d update snarkos master 2020-06-15 19:32:37 -07:00
collin
eeaef78632 impl allocate value for let definition 2020-06-15 19:25:16 -07:00
collin
b423e532cb let and const wip 2020-06-15 18:25:33 -07:00
collin
c77e6a51b3 remove visibility syntax and functionality 2020-06-15 13:38:07 -07:00
collin
4efd06fd41 merge refactor/program-struct 2020-06-15 11:22:47 -07:00
collin
cc39e8241e Merge branch 'master' of https://github.com/AleoHQ/language 2020-06-15 11:11:56 -07:00
collin
8ff4ddafb2 remove CS trait from program struct 2020-06-15 11:11:35 -07:00
collin
8ea11dbab7 add type resolution for values and fix tests 2020-06-13 17:43:59 -07:00
collin
499805efdf add field and group evaleq 2020-06-13 14:21:40 -07:00
collin
1eaaed269d impl chained and nested conditionals 2020-06-13 03:39:51 -07:00
collin
1e1e4b86d9 move conditional tests into statement module 2020-06-13 02:08:21 -07:00
collin
c7eccdc87e impl for loop statements for conditional 2020-06-13 02:04:31 -07:00
collin
2d17b39da6 impl mutable statements in basic conditional 2020-06-13 00:47:09 -07:00
collin
4c64edb032 test conditional basic assert statements 2020-06-12 19:32:16 -07:00
collin
50be017881 impl assert statement in basic conditional. use eq comparator gadget 2020-06-12 18:28:41 -07:00
collin
3f668422fd enforce name, type, visibility of inputs. add tests 2020-06-11 14:40:27 -07:00
collin
824a6059fb split up input loading and parsing in compiler 2020-06-11 11:43:05 -07:00
collin
52f0d012c8 fix tests 2020-06-10 17:53:38 -07:00
collin
67b8a48fcf public input booleans and integers 2020-06-10 16:14:55 -07:00
collin
643cd3026e initial private boolean input support 2020-06-09 16:36:15 -07:00
collin
eeb438ed19 Merge branch 'master' of https://github.com/AleoHQ/language into feature/leo-inputs 2020-06-09 12:14:43 -07:00
collin
39b8eda8cd ignore import tests 2020-06-08 19:31:29 -07:00
collin
bc7f4719c3 include_bytes integers tests 2020-06-08 19:13:47 -07:00
collin
b4ed9ca4bc include_bytes statements tests 2020-06-08 18:58:41 -07:00
collin
54b1453ddc include_bytes mutability tests 2020-06-08 18:55:44 -07:00
collin
20a01ce2e8 include_bytes import tests 2020-06-08 18:52:35 -07:00
collin
ac9395f1fd include_bytes group tests 2020-06-08 18:39:10 -07:00
collin
2ab0147e80 include_bytes function tests 2020-06-08 18:31:21 -07:00
collin
b3ec78c6fd include_bytes field tests 2020-06-08 18:27:11 -07:00
collin
c0682de33d include_bytes circuit tests 2020-06-08 18:12:40 -07:00
collin
8e8f00467a include_bytes array tests 2020-06-08 17:51:06 -07:00
collin
834055abf5 use include_bytes for boolean test 2020-06-08 17:28:09 -07:00
collin
e10a1e1be0 merge master 2020-06-08 10:49:31 -07:00
howardwu
837d107a54 cargo fmt 2020-06-07 23:30:39 -07:00
howardwu
79bea057b3 Remove unused dependencies, add profiles 2020-06-07 23:01:57 -07:00
howardwu
988f58618e Adds configuration files for tooling 2020-06-07 22:53:45 -07:00
howardwu
653f0de69f Update dependencies 2020-06-07 22:43:53 -07:00
howardwu
85ccf1b423 Introduces LeoParser, removes pest for leo-compiler 2020-06-07 22:21:31 -07:00
howardwu
81407ac182 Fix tests 2020-06-07 21:26:49 -07:00
howardwu
6ad5dc75d5 Migrates program 2020-06-07 20:57:22 -07:00
howardwu
35a897282f Migrates imports 2020-06-07 20:50:37 -07:00
howardwu
6f9f397310 Migrates circuits 2020-06-07 20:45:19 -07:00
howardwu
928f67c00b Migrates Functions 2020-06-07 20:35:50 -07:00
howardwu
3a554af9fe Migrate statements 2020-06-07 20:24:27 -07:00
howardwu
bc1c37faa0 Restructure types 2020-06-07 19:47:35 -07:00
howardwu
40eca302a6 Migrate assignee 2020-06-07 19:39:43 -07:00
howardwu
5cdcdd5c12 Migrates expressions, type, and variable to leo-types 2020-06-07 19:19:38 -07:00
howardwu
b9baafd57f Migrates integer, identifier, and input_value 2020-06-07 18:22:59 -07:00
howardwu
54b531c27f Rename function components 2020-06-07 17:28:10 -07:00
howardwu
a380d83c75 Migrate functions 2020-06-07 17:22:22 -07:00
howardwu
eb5c3864a7 Migrate assignee 2020-06-07 17:05:21 -07:00
howardwu
6d9d92dcaf Migrate spread and range 2020-06-07 17:00:00 -07:00
howardwu
720dfeefca Migrate access 2020-06-07 02:43:56 -07:00
howardwu
507a084d7f Migrates variable 2020-06-07 02:28:18 -07:00
howardwu
d13326af98 Migrate circuits 2020-06-07 02:23:24 -07:00
howardwu
34a64412b5 Migrate expressions 2020-06-07 02:03:16 -07:00
howardwu
6d03a6a48f Migrates statements 2020-06-07 01:26:35 -07:00
howardwu
aecd771d53 Migrates imports 2020-06-07 01:04:35 -07:00
howardwu
85f38d3ed0 Migrates group value 2020-06-07 00:54:48 -07:00
howardwu
ad0a9c5381 Adds statements directory, moves for statement 2020-06-07 00:49:29 -07:00
howardwu
47bcb069ba Migrates boolean value 2020-06-07 00:47:09 -07:00
howardwu
103a12f7ab Split ast into operations, types, and values 2020-06-07 00:41:13 -07:00
howardwu
3286eac221 Removes unused imports and reorders toml in leo-compiler 2020-06-06 23:26:48 -07:00
howardwu
7f566782e3 Refactors SyntaxError to leo-ast 2020-06-06 23:23:26 -07:00
howardwu
a72a333877 Migrates ast to leo-ast module 2020-06-06 23:17:40 -07:00
collin
01552cec52 test u128 2020-06-05 16:51:26 -07:00
collin
e564822a75 test u8, u16, u32, u64 2020-06-05 16:35:50 -07:00
collin
c72cf61ad2 impl integer gadget tests. test u32 2020-06-05 15:34:06 -07:00
collin
c5868b430a impl integer tester trait and macro. test u32 2020-06-05 14:09:12 -07:00
collin
31d2542d52 Merge branch 'dependency/snarkos-master' of https://github.com/AleoHQ/language into feature/test-syntax-new 2020-06-05 11:32:59 -07:00
collin
3e21184631 use snarkos master 2020-06-04 22:53:52 -07:00
collin
2e98490b29 fix statement test 2020-06-04 17:42:49 -07:00
collin
accfff46e0 add test syntax and cli command 2020-06-04 17:39:57 -07:00
collin
13e113d100 add test type to pest 2020-06-04 16:55:23 -07:00
collin
bd54f367cf impl syntax error handling 2020-06-04 15:44:38 -07:00
collin
0e8ee81108 remove old code 2020-06-04 14:41:09 -07:00
collin
c3f17e4dc9 use new integer gadgets 2020-06-04 14:32:30 -07:00
collin
ab6ed9cfe6 use new integers path 2020-06-04 13:35:12 -07:00
collin
941417b255 cargo fmt 2020-06-02 16:58:09 -07:00
collin
c8229cef18 test field comparators 2020-06-02 16:56:11 -07:00
collin
b4c163ce4f add field gadget tests 2020-06-02 16:06:25 -07:00
collin
91e8febffe add field operation tests 2020-06-02 15:33:09 -07:00
collin
2e188b483b impl FieldType gadgets 2020-06-02 13:25:07 -07:00
collin
2d4efdfd5b impl FieldType operations 2020-06-02 12:51:14 -07:00
collin
4657f565f5 remove trait parameters from program types 2020-06-02 12:33:24 -07:00
collin
674f0dc83d remove Field trait parameter from InputValue 2020-06-02 12:15:55 -07:00
collin
a2dfc5e9fc deprecate FieldElement. use FieldType 2020-06-02 12:09:14 -07:00
collin
0240eed168 create FieldType module 2020-06-02 11:12:49 -07:00
collin
69df8306a5 fix dependency 2020-06-01 18:35:43 -07:00
collin
8ab5108558 add ToBytesGadget to GroupType 2020-06-01 18:16:21 -07:00
collin
e5ee1cfe4d add ToBitsGadget to GroupType 2020-06-01 18:14:23 -07:00
collin
887e374e28 remove extra dependency and rename error 2020-06-01 18:05:24 -07:00
collin
8852c17857 simplify GroupType trait parameters 2020-06-01 17:52:33 -07:00
collin
5db9b043dc cargo fmt 2020-06-01 17:23:40 -07:00
collin
f144571530 impl group cond_select 2020-06-01 17:23:13 -07:00
collin
ad2d9f1192 impl group alloc input 2020-06-01 14:20:14 -07:00
collin
d1297fc60c impl group partialeq, eq, enforce_eq, cond_enforce_eq 2020-06-01 12:15:49 -07:00
collin
d1e448d630 impl group sub for edwards 2020-05-30 17:19:26 -07:00
collin
faf726e3b1 add (x, y)group syntax 2020-05-30 17:05:07 -07:00
collin
9ba3dfbb6b impl group add for edwards 2020-05-30 15:37:11 -07:00
collin
8a5d3e7718 update tests and leo cli 2020-05-29 17:34:31 -07:00
collin
31ec24670c add groupType to compiler 2020-05-29 16:43:39 -07:00
collin
1232481219 add partial grouptype module 2020-05-29 16:09:27 -07:00
collin
19f6e64c48 remove snarkos group trait from compiler 2020-05-29 15:55:57 -07:00
collin
1da093e3bd impl basic assertion, ternary, iteration tests 2020-05-20 17:08:32 -07:00
collin
1a0d7235cd impl basic function and import tests. fix import parsing 2020-05-20 15:51:57 -07:00
collin
e07d43c287 impl circuit static, self, and failure tests 2020-05-20 12:45:40 -07:00
collin
50bf469d8b impl basic circuit tests 2020-05-19 21:59:00 -07:00
collin
28451ee269 impl array, basic field, basic group tests 2020-05-19 17:08:38 -07:00
collin
9a9e37e0f4 add new testing methods. add boolean tests. 2020-05-19 15:45:40 -07:00
collin
e5fea1e468 finish mutability tests. add testing helpers 2020-05-19 12:41:21 -07:00
collin
1c733b5dd9 deprecate new_variable methods 2020-05-19 12:04:01 -07:00
collin
a9a8cb95c6 impl mutability tests. simplify mut expression evaluation 2020-05-19 12:01:19 -07:00
collin
9309f95a89 Merge branch 'master' into feature/implicit-types 2020-05-18 15:17:56 -07:00
collin
aa63cf1dbb implicit arrays and multiple definitions 2020-05-18 15:17:17 -07:00
collin
d0c88a08be implict ternary expression 2020-05-18 11:44:14 -07:00
collin
2b48224689 implicit function returns. Remove expect_type() methods 2020-05-18 10:56:25 -07:00
howardwu
33f518d1d4 Fixes 'leo build' to compile programs again. Updates tests to run on new model 2020-05-16 22:05:26 -07:00
collin
067f4905c2 implicit binary operations 2020-05-16 19:56:48 -07:00
collin
a31ee8b884 initial support for implicit value types 2020-05-15 17:35:12 -07:00
collin
fd51ee28e2 add from type conversion method 2020-05-15 13:43:06 -07:00
collin
5c005c4b8f pest implicit number type 2020-05-15 12:51:08 -07:00
collin
ab98d5ae77 impl pass by value circuit fields into circuit functions 2020-05-14 18:23:54 -07:00
collin
021379458d impl circuit Self type 2020-05-14 17:07:09 -07:00
collin
b984c46a51 pest Self type added 2020-05-14 13:41:32 -07:00
collin
44b4df2404 make circuit naming consistent. return proper errors 2020-05-14 13:32:16 -07:00
collin
5fb0b58b68 support static circuit functions. add :: syntax 2020-05-14 12:31:19 -07:00
collin
ba84bf0d6c impl circuit function calls 2020-05-13 20:50:18 -07:00
collin
3fb6430e1f impl circuit function expressions 2020-05-13 19:43:07 -07:00
collin
b766f96d23 add circuit function types 2020-05-13 18:51:20 -07:00
collin
7640d27db4 pest static functions 2020-05-13 18:40:13 -07:00
collin
9f1803f6da impl mutable circuit and arrays 2020-05-13 17:52:50 -07:00
collin
3b263d7cc9 impl mutable variable type 2020-05-13 15:19:25 -07:00
collin
87e8e67967 variable -> identifier, add pest mutable variable 2020-05-13 11:54:40 -07:00
collin
e41916e128 pest variable mutability 2020-05-12 21:33:08 -07:00
collin
91d241a5d8 change type struct -> circuit 2020-05-12 21:14:17 -07:00
collin
5046db8e2c replace struct -> circuit in pest parsing 2020-05-12 20:54:32 -07:00
collin
88f850164e rm unused errors 2020-05-12 20:23:45 -07:00
collin
c1df2b00b2 impl group add, sub 2020-05-12 20:20:35 -07:00
collin
162c0064b2 add group element errors 2020-05-12 20:07:24 -07:00
collin
6efc834948 impl group element values 2020-05-12 20:01:47 -07:00
howardwu
7e36d2b5fa Standardize generic F and G order convention 2020-05-12 19:24:57 -07:00
collin
97272fa9d7 wip groups 2020-05-12 19:07:15 -07:00
collin
ab4a9c6058 syntax for nested arrays. enforce_eq for nested arrays 2020-05-12 13:42:10 -07:00
collin
7422c66d95 full support for arrays as inputs 2020-05-11 21:31:06 -07:00
collin
75a47c55dd fix struct field validation. make if conditional parenthesis optional 2020-05-11 13:18:40 -07:00
collin
36018853a7 impl compiler error handling 2020-05-08 16:35:00 -07:00
collin
dee7b2782e add u16, u64, u128 2020-05-06 18:49:12 -07:00
collin
73e431e9eb refactor integer module, add uint8 type 2020-05-06 17:22:00 -07:00
collin
6919f62d44 impl leo-inputs 2020-05-06 12:57:24 -07:00
collin
dcd484a62f fix imports 2020-05-05 18:43:31 -07:00
collin
d7167f5b2b fix syntax for _type, struct fields, protected names 2020-05-05 18:04:25 -07:00
collin
983cd6675a Merge branch 'development' of https://github.com/AleoHQ/language into development 2020-05-05 17:36:21 -07:00
collin
e720409ca3 refactor main function parameters 2020-05-05 17:36:03 -07:00
howardwu
ebbc6ee014 Adds leo input pest grammar 2020-05-04 19:34:10 -07:00
collin
d3989c36fd remove comments, update readme 2020-05-04 16:52:32 -07:00
collin
10ca30ac93 impl pass by value functions 2020-05-04 16:42:40 -07:00
collin
98a7d0bdf6 impl 0, 1 or more return arg 2020-05-04 11:40:29 -07:00
collin
b091d6c63b fix conflicts 2020-05-04 10:33:03 -07:00
howardwu
1350834bcd Implements caching of builds and setups for reusable work 2020-05-02 20:10:22 -07:00
collin
fa4f786f22 impl let statements 2020-05-02 19:03:50 -07:00
howardwu
5f5a3399ac Adds command 2020-05-02 18:08:04 -07:00
howardwu
f86c9d8076 Adds proving key file 2020-05-02 17:28:20 -07:00
howardwu
219f90cb17 Adds starter integration tests for u32 2020-05-01 22:10:40 -07:00
collin
b9afcff602 u32 assert equal 2020-04-30 20:46:59 -07:00
collin
b683e93762 impl assert_eq( , ) 2020-04-30 14:00:30 -07:00
collin
1bfc31c4d5 impl field comparator functionality 2020-04-30 12:13:23 -07:00
collin
f071764548 fix field pow. fix eq vs enforce_eq 2020-04-30 11:36:35 -07:00
collin
e5513d7bcf add exponentiation assignment 2020-04-30 10:34:49 -07:00
collin
90658f362d impl operator assign statements 2020-04-30 10:27:13 -07:00
collin
48ab4747e0 fix multiple assignment bug 2020-04-27 17:15:54 -07:00
collin
1dcaa06ef0 early function termination 2020-04-27 17:00:02 -07:00
collin
c5fc02b51d fix for loop syntax 2020-04-27 16:06:50 -07:00
collin
f69032c833 impl if else conditional statements 2020-04-27 14:36:05 -07:00
howardwu
d115870815 Moves compiler.rs to leo-compiler module 2020-04-26 22:37:08 -07:00
howardwu
026b59a67a Rename program to compiler 2020-04-26 22:34:15 -07:00
howardwu
8c5be763ff Compiler wip 2020-04-23 23:57:05 -07:00
howardwu
0a49dd1ec3 Adds compiler module 2020-04-23 18:52:43 -07:00