Kasey
f3cdc05875
fix: the refactor on discharge value env ( #393 )
2023-02-18 20:49:29 -05:00
KtorZ
cd4ceb219c
Remove complex and compound constants.
...
This is not supported by the code generation, so it's a bit of a lie
to have them in the language in the first place. There's arguably not
even any use for constant records, list and tuples to begin with. So
this cleans this up everywhere for the sake of moving forward with the
alpha release.
This now reduces constants to:
- Integer
- ByteArray
- String
Anything else can be declared via a function anyway. We can revisit
this choice later.... or not.
2023-02-17 17:31:15 +01:00
KtorZ
560c17d5aa
Add new acceptance test scenario: 060
...
```
Error:
× Main thread panicked.
├─▶ at crates/aiken-lang/src/builder.rs:1088:13
╰─▶ not yet implemented
```
2023-02-17 17:13:04 +01:00
KtorZ
f10e9e8977
Add new acceptance test scenario: 062
...
```
Error:
× Main thread panicked.
├─▶ at crates/uplc/src/optimize.rs:16:68
╰─▶ called `Result::unwrap()` on an `Err` value: FreeUnique(Name { text: "tests_bar", unique: Unique(1) })
```
2023-02-17 11:25:41 +01:00
KtorZ
8fabfd112e
Add new acceptance test scenario: 063
2023-02-16 20:29:41 -05:00
KtorZ
e7a61df1f3
Add new acceptance test scenario: 062
...
```
Error:
× Main thread panicked.
├─▶ at crates/uplc/src/optimize.rs:16:68
╰─▶ called `Result::unwrap()` on an `Err` value: FreeUnique(Name { text: "tests_bar", unique: Unique(1) })
```
2023-02-16 20:27:00 -05:00
Matthias Benkort
ec6baf3a6a
Merge pull request #351 from aiken-lang/acceptance-test-054-pattern-match-on-list
...
Add new acceptance test scenario: 056
2023-02-16 10:01:56 +01:00
rvcas
d41e6942c6
test: fix acceptance tests
2023-02-16 00:05:55 -05:00
rvcas
a311531508
fix(cli): aiken address
2023-02-16 00:05:55 -05:00
rvcas
673b57b81c
feat: get bluprint stuff compiling again
2023-02-16 00:05:55 -05:00
rvcas
a88a193383
fix: properly lex new token and adjust parsed spans
2023-02-16 00:05:55 -05:00
KtorZ
d26ff0298f
Add new acceptance test scenario: 054.
...
**a**
```
× Main thread panicked.
├─▶ at crates/uplc/src/optimize.rs:16:68
╰─▶ called `Result::unwrap()` on an `Err` value: FreeUnique(Name { text: "__other_clauses_delayed", unique: Unique(13) })
```
**b**
```
× Main thread panicked.
├─▶ at crates/aiken-lang/src/builder.rs:771:14
╰─▶ not yet implemented: Assign
```
**c**
```
× choice_4 failed
help: ┍━ left ━━━━━━━━━━━━━┑
│ (con data #d87a80) │
┕━━━━━━━━━━━━━━━━━━━━┙
should be equal to
┍━ right ━━━━━━━━━━━━━━━━━━┑
│ (con data #d8799f182aff) │
┕━━━━━━━━━━━━━━━━━━━━━━━━━━┙
```
2023-02-15 22:12:41 -05:00
KtorZ
808ff97c68
Preserve trace, error & todo formatting.
2023-02-15 23:19:07 +01:00
KtorZ
7abd76b6ad
Allow to trace expressions (and not only string literals)
...
This however enforces that the argument unifies to a `String`. So this
is more flexible than the previous form, but does fundamentally the
same thing.
Fixes #378 .
2023-02-15 21:07:56 +01:00
KtorZ
4e51e49fe6
Align context diagnostics to use similar syntax.
2023-02-15 17:26:26 +01:00
KtorZ
7251b2d01e
Remove single-argument function call special-case in formatter
...
Not sure what this special case was trying to achieve, but it's not right. There's no need to handle function call with a single argument differently than the others.
2023-02-15 17:22:08 +01:00
KtorZ
47e77aa819
Add new context test for datums and reference scripts
2023-02-15 17:10:14 +01:00
KtorZ
6772e20d85
Replace withdrawals withdraw validator with always true validator.
2023-02-15 12:59:33 +01:00
KtorZ
b300cf38db
Add new script context test scenario covering minting & values.
2023-02-15 12:49:56 +01:00
KtorZ
01c392836e
Fix CI script + add script interactions.
2023-02-15 09:42:46 +01:00
KtorZ
e1c0c3986d
Remove unused imports in 054.
2023-02-15 09:42:45 +01:00
Kasey White
e15e725bfe
add one more test
2023-02-15 02:20:05 -05:00
Kasey White
32b0200966
fixes: tuple clauses, zero args funcs, list clause named pattern
...
List Clauses patterns handle var cases
Fixed Tuple Clauses issue with last clause not being a tuple
Redid how zero arg functions and dependencies are handled. Tough one lol
2023-02-15 02:20:05 -05:00
KtorZ
23bf101e08
Add new acceptance test scenario: 058
...
Doesn't like var patterns in list pattern-matching
```
Error:
× Main thread panicked.
├─▶ at crates/aiken-lang/src/uplc.rs:770:29
╰─▶ internal error: entered unreachable code
```
2023-02-15 02:20:05 -05:00
KtorZ
d9cfad8f68
Add new acceptance test scenario: 061
...
```
Error:
× Main thread panicked.
├─▶ at crates/uplc/src/optimize.rs:16:68
╰─▶ called `Result::unwrap()` on an `Err` value: FreeUnique(Name { text: "tests_tx_1", unique:
Unique(14) })
```
2023-02-15 02:20:05 -05:00
KtorZ
6132c092e3
Add new acceptance test scenario: 059
...
```
Error:
× Main thread panicked.
├─▶ at crates/aiken-lang/src/uplc.rs:1451:52
╰─▶ called `Option::unwrap()` on a `None` value
```
See also: #310
2023-02-15 02:20:05 -05:00
KtorZ
a3078adce8
Add succinct README to explain what's going on.
2023-02-14 16:25:48 +01:00
KtorZ
685473ead6
Rename data -> ctx
2023-02-14 16:11:00 +01:00
KtorZ
5369872a3d
Add new script_context acceptance scenario for withdrawals.
2023-02-14 16:11:00 +01:00
KtorZ
251aa756d9
Make basic script a template, and add more assertions.
2023-02-14 11:37:10 +01:00
KtorZ
545323128c
Write basic e2e validator with evaluation.
2023-02-14 10:39:31 +01:00
KtorZ
4ef1ba69de
Use blueprint in hello-world example.
2023-02-14 09:16:30 +01:00
Kasey White
765ceefd38
feat: add ability to downcast void to data
2023-02-12 18:56:38 -05:00
Kasey White
e9883adf12
fix: scope issue when using when with a function call subject
2023-02-12 18:43:11 -05:00
KtorZ
2bda581fbd
Add new acceptance test scenario: 057
...
```
Error:
× Main thread panicked.
├─▶ at crates/aiken-lang/src/uplc.rs:4286:48
╰─▶ called `Option::unwrap()` on a `None` value
```
2023-02-12 18:43:11 -05:00
Kasey White
1c9540ec87
one more test case to add
2023-02-11 22:26:34 -05:00
Kasey White
4b1015e0d4
change how expect works on lists and constructors
...
Add more coverage to acceptance test 40 on expect
2023-02-11 22:26:34 -05:00
Kasey White
e92d9af3c2
fix: changed how list_access_to_uplc handles discards fixing unit test 55
...
Also fix incorrect error message in runtime in machine
2023-02-11 04:30:18 -05:00
rvcas
9b0fc0b395
chore: fix some weirdness after rebasing with main
2023-02-10 10:09:00 +01:00
Matthias Benkort
efbc3abb95
Delete tests.ak
2023-02-09 09:23:46 +01:00
rvcas
9348caab2f
feat(expect): update formatter
...
* Token::Expect should format to expect
* since we still capture assert this means
we can help users update to the new syntax
2023-02-09 00:57:38 -05:00
rvcas
6f591c633d
chore: fmt most of the acceptance tests
2023-02-09 00:57:14 -05:00
Kasey White
7b29a75cc0
test name number fix
2023-02-09 00:09:23 -05:00
Kasey White
076871492b
fix: unwrap used in a reachable place. Replaced with alternative option
2023-02-09 00:09:23 -05:00
Kasey White
986a6009f7
fix: Various fixes for FieldsExpose, ListAccessor, TupleAccessor
2023-02-09 00:09:23 -05:00
KtorZ
cf7a20b986
Add new acceptance test scenario: 052
...
Pattern-match on unary constructors.
2023-02-09 00:09:23 -05:00
KtorZ
c50bf94020
Add new acceptance test scenario: 053
...
```
× foo failed
help: ┍━ left ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┑
│ Failed to deserialise PlutusData using UnConstrData: │
│ │
│ Con( │
│ Data( │
│ BigInt( │
│ Int( │
│ Int( │
│ Int { │
│ neg: false, │
│ val: 0, │
│ }, │
│ ), │
│ ), │
│ ), │
│ ), │
│ ) │
┕━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┙
should be equal to
┍━ right ━━━━━━━━━┑
│ (con integer 3) │
┕━━━━━━━━━━━━━━━━━┙
```
2023-02-09 00:09:23 -05:00
Kasey White
f1b24a5f6d
fix: the following issues
...
fix conversion from inner opaque type for when and assignment
This fixes Clause being used in cases where ListClause or TupleClause should be used
Reset defined and zero arg functions between each code gen
Fixes for optimizations when encountering shadowed variables
2023-02-05 20:35:39 -05:00
rvcas
025bf73254
test: verify schnorr and ecdsa
2023-02-04 22:07:56 -05:00
Kasey White
6053e76f6f
chore: more acceptance tests
...
Co-authored-by: rvcas <x@rvcas.dev>
2023-02-04 02:33:10 -05:00
rvcas
a9ed04ef22
feat: newer rules around casting Data
...
* you cannot cast FROM Data with a `let`
* you cannot cast FROM Data by passing
Data to none Data when calling a function
* you MUST use `assert` to cast from data
* you can cast INTO Data with a `let`
* you can cast INTO Data by passing none Data
to Data when calling a function
* You cannot assert cast Data without an
annotation
2023-02-04 02:33:10 -05:00
rvcas
0f6d2487ec
fix: acceptance test 040 after new casting rules
2023-02-02 01:17:58 -05:00
rvcas
79b0af15da
chore: commit acceptance test plutus files
2023-02-02 00:49:47 -05:00
rvcas
0ee083cc9a
chore(examples): commit updated plutus.json
2023-02-01 23:54:35 -05:00
KtorZ
79b8786cee
Replace 'assets' with generated blueprints.
2023-01-31 15:39:41 +01:00
rvcas
d4a73f1235
chore: commit assets
2023-01-30 12:01:56 -05:00
rvcas
aec79936e2
chore: move a test case to 049
2023-01-30 11:49:18 -05:00
Lucas
b653714c0c
Merge branch 'main' into when-clause-guards
2023-01-30 11:40:29 -05:00
Kasey White
a638388747
Add more complex test 40.
...
Add assert for when constr index is given
2023-01-30 04:17:03 -05:00
Kasey White
8c04ab093a
update test 40
2023-01-30 03:24:52 -05:00
Micah Kendall
d608c50130
Added 048 acceptance test
2023-01-23 01:12:29 +11:00
Kasey White
e36f91c39c
fix: multiple list cases of the same length weren't being handled
2023-01-21 19:42:17 -05:00
KtorZ
a178cee7bf
Add new acceptance test scenario: 046
2023-01-21 19:42:17 -05:00
Kasey White
e8fb386bdc
chore: Switch from hashmap and hashset to indexmap and indexset
2023-01-21 18:10:15 -05:00
KtorZ
a926a1a2d4
Add new acceptance test scenario 048
2023-01-21 17:49:44 +01:00
KtorZ
83fd910604
Update artifacts from acceptance tests 036
2023-01-21 12:46:22 +01:00
KtorZ
ce65236514
Parse tests as private functions.
...
They actually are private; we can't export / import tests. Fixes #284 .
2023-01-20 12:50:07 +01:00
rvcas
2f6c794cdf
fix: ci... :facepalm
2023-01-18 15:29:51 -05:00
rvcas
479d49bdfc
fix: ci... again
2023-01-18 15:29:51 -05:00
rvcas
f975c345c9
fix: ci
2023-01-18 15:29:51 -05:00
KtorZ
75808cc046
Add new acceptance scenario: 044
...
❌ 044
Error:
× Main thread panicked.
├─▶ at crates/aiken-lang/src/uplc.rs:846:89
╰─▶ called `Option::unwrap()` on a `None` value
2023-01-18 15:29:51 -05:00
KtorZ
6e64bb72e6
Add new acceptance test scenario 045
...
Error:
× Main thread panicked.
├─▶ at crates/aiken-lang/src/uplc.rs:3435:48
╰─▶ called `Option::unwrap()` on a `None` value
2023-01-18 16:28:44 +01:00
rvcas
63bfb4e05d
chore: no longer need pub here
2023-01-15 12:33:10 -05:00
rvcas
00f2150eed
feat: add identity, always, & flip
2023-01-14 23:33:49 -05:00
rvcas
9daf86e984
chore: fix version for hello world
2023-01-14 22:22:36 -05:00
rvcas
95c9be5c52
chore: acceptance test 040 had the wrong name
2023-01-14 22:03:56 -05:00
KtorZ
8c19d4ec08
Fix and re-apply formatter on all acceptance tests
...
Less noise, pretty tuples. Everyone's happy.
2023-01-14 20:23:17 +01:00
rvcas
c6fe5235fe
chore: fmt acceptance test 40
2023-01-13 14:55:18 -05:00
Kasey White
7b023911af
add assert and record
...
Record is a more efficient air for making records
Assert guarantees a custom is of a certain variant.
2023-01-13 13:50:27 -05:00
Kasey White
1721c3945b
Refactors:
...
Add test 40
refactor how we get data type from type
Call contains type now to handle certain record cases
2023-01-13 13:50:27 -05:00
Kasey White
42c8d50fa1
feat: finish record update
2023-01-08 19:42:49 -05:00
rvcas
c89802eaed
chore: bump pallas version
2023-01-06 13:39:18 -05:00
Matthias Benkort
de7a8f6f20
Merge pull request #240 from matiwinnetou/aiken-examples
...
hello world for starters
2023-01-06 13:49:30 +01:00
KtorZ
193792b48f
Draft quick README, use ENV var for passing configuration.
2023-01-06 13:44:20 +01:00
KtorZ
1b7be32d74
rename 'hello_world-keygen.ts' as 'generate-credentials'
...
And add *.sk to .gitignore!
2023-01-06 13:32:27 +01:00
KtorZ
eb2f4a8056
Use pinned version of the stdlib.
2023-01-06 13:31:18 +01:00
KtorZ
7c2b1ac269
Define 'local' gitignore for examples' packages.
2023-01-06 13:30:56 +01:00
Mateusz Czeladka
1142c6ca6d
hello world for starters
2023-01-06 13:24:15 +01:00
KtorZ
aff96d99af
Return non-zero exit code on acceptance test failure.
2023-01-06 13:10:11 +01:00
KtorZ
613fb3c957
Add new acceptance test scenario 038
2023-01-06 06:46:15 +01:00
Kasey White
88d5d1b7f7
chore: add 036 assets
2022-12-31 00:09:02 -05:00
Kasey White
3514e66234
Fix to variant name creation for dependencies.
...
Last few changes to go Tuple Index,
Assert, Check, not
change test 35 to produce intended functionality
2022-12-30 14:01:11 -05:00
KtorZ
d5d878e83c
Add acceptance test scenario: 037
...
```
Error:
× Main thread panicked.
├─▶ at /Users/ktorz/Documents/Projects/aiken-lang/aiken/crates/aiken-
│ project/src/lib.rs:701:36
╰─▶ called `Result::unwrap()` on an `Err` value: FreeUnique(Name { text:
"_not", unique: Unique(1) })
```
2022-12-29 17:40:21 +01:00
KtorZ
6f8d1698fe
Add missing function 'concat' in acceptance test 034.
2022-12-29 12:13:32 +01:00
KtorZ
4f83d4fa1b
Add new acceptance test scenario: 036
...
```
Error:
× Main thread panicked.
├─▶ at /Users/ktorz/Documents/Projects/aiken-lang/aiken/crates/aiken-
│ project/src/lib.rs:567:36
╰─▶ called `Result::unwrap()` on an `Err` value: FreeUnique(Name { text:
"_not", unique: Unique(17) })
```
2022-12-29 12:11:55 +01:00
KtorZ
602a6a03a8
Rename '{run, run-all}.sh' into '{run, run-all}'.
2022-12-29 12:04:37 +01:00
KtorZ
013fe886f5
Add new acceptance test scenario: 035
...
```
Error:
× Main thread panicked.
├─▶ at /Users/ktorz/Documents/Projects/aiken-lang/aiken/crates/aiken-
│ project/src/lib.rs:692:36
╰─▶ called `Result::unwrap()` on an `Err` value: FreeUnique(Name { text:
"aiken/dict_do_insert_with_map_bytearray_int_bytearray_int_data",
unique: Unique(27) })
```
2022-12-28 17:03:32 +01:00
KtorZ
77fbb3cbdb
Add new acceptance test scenario: 034
...
```
Error:
× Main thread panicked.
├─▶ at /Users/ktorz/Documents/Projects/aiken-lang/aiken/crates/aiken-project/src/lib.rs:670:22
╰─▶ called `Result::unwrap()` on an `Err` value: FreeUnique(Name { text: "aiken/list_foldr_list_data_data_list_data", unique: Unique(1) })
```
2022-12-28 10:59:42 +01:00
Kasey White
010024fb95
fix: acceptance test 031
...
Co-authored-by: rvcas <x@rvcas.dev>
2022-12-27 22:33:09 -05:00
Kasey White
542e39f093
feat: finish up zero arg issues with dependencies
2022-12-27 19:35:08 -05:00
Kasey White
a08c615da4
checkpoint
2022-12-27 19:35:08 -05:00
KtorZ
2e17f18846
Rework acceptance test runner
...
Show less noise, support parallel execution and make it easier to run a single one.
2022-12-27 09:29:13 +01:00
rvcas
0d0536f6c1
fix: rename test module to tests
2022-12-23 22:00:59 -05:00
KtorZ
39f5d1a86d
Make build, check and docs target directory an (optional) argument
...
Instead of being an option. Feels more natural that way.
2022-12-23 20:23:27 +01:00
KtorZ
2aa4429231
Rename Unit -> Void
2022-12-22 18:52:28 +01:00
KtorZ
757428fa7f
Add new acceptance test scenario 033
...
```
Error:
× Main thread panicked.
├─▶ at crates/lang/src/uplc.rs:523:17
╰─▶ not yet implemented: Tuple indexing not implementing yet
```
2022-12-22 09:14:23 +01:00
rvcas
7867793bcd
feat: on fmt if label and name are the same only print one
2022-12-21 19:17:15 -05:00
rvcas
9028424a96
feat: rename Nil to Unit
2022-12-21 17:27:20 -05:00
rvcas
429126e38f
feat: add trace
2022-12-21 14:39:46 -05:00
KtorZ
9068c89c00
Show trace logs as part of the test output when any.
...
```
┍━ test ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
│ PASS [mem: 6370, cpu: 2591822] trace_1
│ ↳ is negative
│ ↳ is non-negative
┕━━━━━━━━━ 1 tests | 1 passed | 0 failed
```
2022-12-21 14:39:46 -05:00
KtorZ
5d459b25bd
Add new acceptance test scenario 032
...
```
Error: aiken::parser
× Parsing
╰─▶ Unexpected "try"
╭─[032/lib/test.ak:3:1]
3 │ test trace_1() {
4 │ builtin.trace("foo", True)
· ─────
5 │ }
╰────
help: Try removing it
```
2022-12-21 14:39:46 -05:00
KtorZ
414a114530
fix acceptance tests manifest.
2022-12-21 14:06:46 +01:00
rvcas
e34cbc8e7e
feat: compile deps
2022-12-20 16:32:31 -05:00
rvcas
6a0b1ce5c3
feat: start trying to use deps
2022-12-20 16:32:31 -05:00
rvcas
5bd2a9336c
feat: tons of boilerplate for fetching packages
2022-12-20 16:32:31 -05:00
Kasey White
ac14512706
feat: fix nil equals nil, and fix funcs with discard params
2022-12-20 15:40:01 -05:00
KtorZ
102bb7735e
Add new integration test scenario 031
...
```
× clamp_1 failed
help: ┍━ left ━━━━━━━━━━┑
│ (con integer 0) │
┕━━━━━━━━━━━━━━━━━┙
should be equal to
┍━ right ━━━━━━━━━━┑
│ (con integer 10) │
┕━━━━━━━━━━━━━━━━━━┙
```
2022-12-20 04:48:03 +01:00
KtorZ
030172e1dc
Add new acceptance test scenario 030
...
```
Error:
× Main thread panicked.
├─▶ at crates/lang/src/uplc.rs:1897:45
╰─▶ called `Result::unwrap()` on an `Err` value: ParseIntError { kind: InvalidDigit }
```
2022-12-20 04:37:55 +01:00
KtorZ
58c123a930
Add new intgration test scenario 029
...
```
Error:
× Main thread panicked.
├─▶ at crates/lang/src/uplc.rs:2395:56
╰─▶ called `Result::unwrap()` on an `Err` value: FreeUnique(Name { text: "test_insert", unique:
Unique(1) })
```
2022-12-20 04:21:28 +01:00
KtorZ
daa3fa5d33
Add new acceptance test scenario 028
...
```
Error:
× Main thread panicked.
├─▶ at crates/lang/src/builder.rs:1257:30
╰─▶ internal error: entered unreachable code
```
2022-12-20 02:55:01 +01:00
KtorZ
fec7431d11
Add new acceptance test scenario 027
...
```
Error:
× Main thread panicked.
├─▶ at /Users/ktorz/Documents/Projects/aiken-lang/aiken/crates/project/src/lib.rs:640:36
╰─▶ called `Result::unwrap()` on an `Err` value: FreeUnique(Name { text: "test_foo", unique:
Unique(0) })
```
2022-12-20 02:32:43 +01:00
KtorZ
8bd4fd0cda
Add new acceptance test scenario
...
```
Error:
× Main thread panicked.
├─▶ at /Users/ktorz/Documents/Projects/aiken-lang/aiken/crates/project/src/lib.rs:620:22
╰─▶ called `Result::unwrap()` on an `Err` value: FreeUnique(Name { text:
"test_foldr_list_int_data_list_int", unique: Unique(10) })
```
2022-12-20 02:22:04 +01:00
KtorZ
fccad9e7dd
Add new acceptance test scenario 025
...
```
help: ┍━ left ━━━━━━━━┑
│ (con unit ()) │
┕━━━━━━━━━━━━━━━┙
should be equal to
┍━ right ━━━━━━━┑
│ (con unit ()) │
┕━━━━━━━━━━━━━━━┙
```
2022-12-20 01:07:15 +01:00
KtorZ
f511b2f71b
Add new acceptance test scenario 024
...
```
× map2_3 failed
help: ┍━ left ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┑
│ Type mismatch expected 'integer' got 'pair data data' │
┕━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┙
should be equal to
┍━ right ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┑
│ Type mismatch expected 'list pair data data' got 'list data' │
┕━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┙
```
2022-12-19 18:55:50 +01:00
KtorZ
dbd3d3fd7d
Add new acceptance test scenario 023
...
```
Error:
× Main thread panicked.
├─▶ at crates/lang/src/uplc.rs:2830:32
╰─▶ called `Option::unwrap()` on a `None` value
```
2022-12-19 18:51:46 +01:00
Kasey White
421e7148d0
zero arg functions now work: test 15
2022-12-19 00:41:27 -05:00
KtorZ
a51808d549
Add new acceptance test scenario (022)
...
```
thread 'main' has overflowed its stack
fatal runtime error: stack overflo
```
2022-12-19 00:41:27 -05:00
Kasey White
2bce818110
chore: fix list insertion order, function insertion order,
...
and Inner function issues with variant
2022-12-19 00:41:27 -05:00
KtorZ
0d0e698d5e
Add new acceptance test scenario (021)
...
```
Error: aiken::check
× Checking
╰─▶ Unknown type
VerificationKey
╭─[021/lib/test.ak:4:1]
4 │ pub type PoolId =
5 │ Hash<VerificationKey>
· ───────────────
6 │
╰────
```
2022-12-19 00:41:27 -05:00
KtorZ
ed58a1cac7
Add new acceptance test scenario (020)
...
```
Error: 020/lib/test.ak
× map_2 failed
help: ┍━ left ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┑
│ Type mismatch expected 'integer' got 'data' │
┕━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┙
should be equal to
┍━ right ━━━━━━━━━━━━━━━━┑
│ (con data #d8799f0fff) │
┕━━━━━━━━━━━━━━━━━━━━━━━━┙
```
2022-12-19 00:41:27 -05:00
KtorZ
e3ea511b79
Add new acceptance test scenario (019)
...
```
Error:
× Main thread panicked.
├─▶ at crates/lang/src/uplc.rs:2001:81
╰─▶ called `Option::unwrap()` on a `None` value
```
2022-12-19 00:41:27 -05:00
KtorZ
287fbf2e3b
Add new acceptance test scenario (018)
...
```
Error: examples/acceptance_tests/018/lib/test.ak
× or_else_2 failed
help: ┍━ left ━━━━━━━━━━━┑
│ (con data #182a) │
┕━━━━━━━━━━━━━━━━━━┙
should be equal to
┍━ right ━━━━━━━━━━┑
│ (con integer 42) │
┕━━━━━━━━━━━━━━━━━━┙
```
2022-12-19 00:41:27 -05:00
KtorZ
6e46e7562e
Add new acceptance test scenario (017)
...
```
Error:
× Main thread panicked.
├─▶ at /Users/ktorz/Documents/Projects/aiken-lang/aiken/crates/project/src/lib.rs:596:22
╰─▶ called `Result::unwrap()` on an `Err` value: FreeUnique(Name { text: "test_slice", unique:
Unique(6) })
```
2022-12-19 00:41:27 -05:00
KtorZ
00b800c456
Add new acceptance test scenario (016)
...
```
Error:
× Main thread panicked.
├─▶ at /Users/ktorz/Documents/Projects/aiken-lang/aiken/crates/project/src/lib.rs:616:36
╰─▶ called `Result::unwrap()` on an `Err` value: FreeUnique(Name { text: "test_slice", unique:
Unique(7) })
```
2022-12-19 00:41:27 -05:00
rvcas
53bc9aa56f
fix: properly capture empty lines
2022-12-15 11:12:35 -05:00
KtorZ
bd956efd36
Rework acceptance test 014 to smaller reproducible scenario
2022-12-14 10:20:43 +01:00
KtorZ
7c54283e69
Add new acceptance test scenario (015)
...
```
Error:
× Main thread panicked.
├─▶ at crates/lang/src/uplc.rs:2388:21
╰─▶ not yet implemented
```
2022-12-14 10:20:43 +01:00
KtorZ
95df5f9137
Add new acceptance test scenario (014)
2022-12-14 09:45:26 +01:00
KtorZ
bc7c236b3b
Add new acceptance test scenario (013)
...
```
ERROR:
The provided Plutus code called 'error'
```
2022-12-14 09:45:25 +01:00
KtorZ
9c902cdf89
Add new acceptance test scenario (012)
...
```
Error:
× Main thread panicked.
├─▶ at crates/lang/src/uplc.rs:3413:34
╰─▶ internal error: entered unreachable code: Var {
scope: [
0,
1,
3,
24,
25,
29,
32,
],
constructor: ValueConstructor {
public: false,
variant: LocalVariable {
location: 46..62,
},
tipo: Fn {
args: [
Var {
tipo: RefCell {
value: Link {
tipo: App {
public: true,
module: "",
name: "Int",
args: [],
},
},
},
},
],
ret: App {
public: true,
module: "",
name: "Bool",
args: [],
},
},
},
name: "f",
variant_name: "",
}
```
2022-12-14 09:45:25 +01:00
KtorZ
f53caff538
Add new acceptance test scenario (011)
...
```
Error:
× Main thread panicked.
├─▶ at crates/lang/src/uplc.rs:4022:40
╰─▶ called `Option::unwrap()` on a `None` value
```
2022-12-14 09:45:25 +01:00
rvcas
299cd1ac24
fix: tuples
2022-12-14 09:45:25 +01:00
KtorZ
37def91fc5
Add new acceptance test scenario (010)
...
```
Error:
× Main thread panicked.
├─▶ at crates/lang/src/uplc.rs:688:33
╰─▶ called `Option::unwrap()` on a `None` value
help: set the `RUST_BACKTRACE=1` environment variable to display a backtrace.
```
2022-12-14 09:45:24 +01:00
KtorZ
4217fd06b5
Add new acceptance test scenario (009)
...
Note: the problem is only present when importing a builtin explicitly.
When using a qualified import, it compiles fine.
```
Error:
× Main thread panicked.
├─▶ at crates/lang/src/uplc.rs:3264:35
╰─▶ called `Option::unwrap()` on a `None` value
help: set the `RUST_BACKTRACE=1` environment variable to display a backtrace.
```
2022-12-14 09:45:24 +01:00
KtorZ
adf34e9dc6
Add new acceptance test scenario (008)
...
```
Error:
× Main thread panicked.
├─▶ at crates/lang/src/uplc.rs:530:41
╰─▶ not yet implemented
help: set the `RUST_BACKTRACE=1` environment variable to display a backtrace.
```
2022-12-14 09:45:24 +01:00
KtorZ
022fc36dd2
Add new (failing) acceptance test (007)
...
```
Error: aiken::check
× Checking
╰─▶ Not a function
╭─[./007/lib/test.ak:4:1]
4 │ [(a, b), ..rest] -> {
5 │ let (a_tail, b_tail) = unzip(rest)
· ──────
6 │ ([a, ..a_tail], [b, ..b_tail])
╰────
```
2022-12-14 09:45:24 +01:00
KtorZ
a62fb1905e
rename examples/tests/{a,b,c,d,e,f} into examples/acceptance_tests/00{1,2,3,4,5,6}
...
Also added a little Makefile to run them all in one go.
2022-12-14 09:45:24 +01:00
KtorZ
b294063097
Add another acceptance test (f)
...
```
Error:
× Main thread panicked.
├─▶ at crates/lang/src/uplc.rs:4043:46
╰─▶ not yet implemented
help: set the `RUST_BACKTRACE=1` environment variable to display a backtrace.
```
2022-12-14 09:45:24 +01:00
KtorZ
603f4a6385
Add another failing example (e)
...
```
Error:
× Main thread panicked.
├─▶ at crates/lang/src/uplc.rs:1518:45
╰─▶ called `Option::unwrap()` on a `None` value
help: set the `RUST_BACKTRACE=1` environment variable to display a backtrace.
```
2022-12-14 09:45:24 +01:00
KtorZ
572121974e
Update generic syntax in tests.
2022-12-14 09:45:23 +01:00
KtorZ
8f69a4b600
Add another failing test example (d)
...
```
Error:
× Main thread panicked.
├─▶ at crates/lang/src/uplc.rs:3264:35
╰─▶ called `Option::unwrap()` on a `None` value
help: set the `RUST_BACKTRACE=1` environment variable to display a backtrace.
```
2022-12-14 09:45:23 +01:00
Kasey White
d78e2c9c6f
feat: finish up generic match cases
2022-12-14 09:45:23 +01:00
rvcas
77386893d7
test: actually repeat
2022-12-14 09:45:23 +01:00
KtorZ
04c05f8d63
Add some tests that make the compiler panick.
2022-12-14 09:45:22 +01:00
rvcas
69db9696d6
feat: prefix tuples with hash again cause ambguity with call
2022-12-13 10:27:17 -05:00
rvcas
6dc4738b66
feat: update formatter for new changes
2022-12-12 19:22:11 -05:00
rvcas
a4f6388eca
feat: remove the need for # in front of tuples
2022-12-12 19:22:11 -05:00
rvcas
2ba712eef6
feat: start adding padding to test output
2022-12-08 19:25:28 -05:00
rvcas
e9d8e1d317
feat: print budget consumed by test
2022-12-08 19:25:24 -05:00
KtorZ
bc785673b2
Fix compilation errors for the newly introduce test & add type inference.
...
Tests are basically functions for which the return type should unify with bool. In principle, the type checker could also check that a test function has no arguments but, a test function with arguments wouldn't parse in the first place; feels a bit hacky but it works when considering the pipeline as a whole.
Note that the code generation is still to be done.
2022-12-08 19:24:20 -05:00
Kasey White
80a9b7b36a
feat: add map support and tuple deconstruction in let
2022-12-08 14:28:30 -05:00
Kasey White
2f7131e9b8
feat: add tuples and streamline conversion of types to and from data
2022-12-07 08:40:23 -05:00
rvcas
d8ff574045
chore: nuke stdlib from main repo
2022-12-06 22:26:07 -05:00
rvcas
45990f1f84
feat: unify tuples and stdlib updates
2022-12-06 22:23:40 -05:00
Kasey White
3f47a1f4b8
fix: constr issue
...
- also fixed constant parsing
- added new cbor flag to eval
Co-authored-by: rvcas <x@rvcas.dev>
2022-12-05 22:55:57 -05:00
rvcas
7875af7d35
feat: better errors for incorrect contructor making
2022-12-05 18:11:04 -05:00
rvcas
7e6dc978a1
feat: commit latest build assets for sample
2022-12-05 14:18:44 -05:00
Kasey White
3e68204768
replace uplc with uplc_two and move structs over
2022-12-05 14:18:44 -05:00
Kasey White
0fda535c50
feat: add module constants except for tuple
2022-12-05 14:18:44 -05:00
Kasey White
de9302a877
feat: finish list destructure in when matches
2022-12-05 14:18:44 -05:00
Kasey White
f48039fd4f
Add ability to generate ir with complex constructor cases
2022-12-05 14:18:44 -05:00
Kasey White
64cbae938d
Add clause guard to IR and use it for complex clauses
2022-12-05 14:18:44 -05:00
Kasey White
044d609a24
feat: nested constr access and module funcs now work
2022-12-05 14:18:44 -05:00
Kasey White
3d3beef7d4
feat: uplc code gen for functions and minor recursion fix
2022-12-05 14:18:44 -05:00
Kasey White
8f984ad131
fix up function definitions in the IR
2022-12-05 14:18:44 -05:00
Kasey White
02ee129615
feat: function insertion IR done, code gen will be easy
2022-12-05 14:18:44 -05:00
rvcas
4129cf92c9
chore: commit assets
2022-12-05 14:18:44 -05:00
Kasey White
29a30aa61f
feat: finished when constr is for IR and code gen
2022-12-05 14:18:44 -05:00
Kasey White
3fb3a3240a
checkpoint
2022-12-05 14:18:44 -05:00
Kasey White
8b24a66b7e
add field access and list patterns are finished
...
Co-authored-by: rvcas <x@rvcas.dev>
2022-12-05 14:18:44 -05:00
Kasey White
abe29a3883
make progress on list deconstruction with IR
2022-12-05 14:18:44 -05:00
Kasey White
2a00b896fc
create ir and start to replace plutus code gen with ir
2022-12-05 14:18:44 -05:00
rvcas
9ebc836b89
feat: handle punning in a non-ambiguous way
2022-12-04 21:12:29 -05:00
rvcas
391849bf37
feat: parser improvements
...
- record creation with punning
- disambiguate if condition from record creation with punning
- split parser tests up into many smaller ones
2022-12-04 21:12:29 -05:00
rvcas
5ec93a8692
feat: format bytearrays
2022-12-01 15:28:15 -05:00
rvcas
fedafed845
feat: add module constants
2022-12-01 15:28:15 -05:00
rvcas
34c8a58391
feat: complete language tour
2022-11-30 15:35:55 -05:00
rvcas
0823b78bf8
feat: some new features
...
- tuples `#(Int, Int)`
- `trace` and `trace("text")`
2022-11-28 22:33:53 -05:00
rvcas
d5087dbcc7
fix: it's more consistent to have snakecase builtins
2022-11-24 18:36:22 -05:00
Kasey White
6babebde28
feat: support self recursion functions and fix making constrs
2022-11-24 15:19:32 -05:00
KtorZ
fc66c2611b
Implement a foundation for the aiken standard library for lists.
2022-11-24 10:10:32 -05:00
rvcas
a70ebb5c32
chore: format swap file
2022-11-23 21:09:06 -05:00
Kasey White
dc510b1c7a
feat: finish list deconstruct
2022-11-23 17:57:02 -05:00
Kasey White
e496591ded
checkpoint
2022-11-23 17:57:02 -05:00
Kasey White
f09a3bd121
feat:list construction, no pairs yet
2022-11-23 17:57:02 -05:00
rvcas
89153a4d82
allow single var patterns to double as a label in records
2022-11-17 12:56:03 -05:00
alessandrokonrad
6c5ec9bb25
Extended ScriptContext; added Option to builtins
2022-11-16 21:34:46 -05:00
rvcas
72bf27d467
fix: better constructor pattern parsing
2022-11-16 21:30:43 -05:00
rvcas
ef9fd15e12
chore: remove loose println!
2022-11-16 14:49:06 -05:00
rvcas
f7313ee61a
feat: some parsing for comments
2022-11-16 14:28:02 -05:00
Kasey White
f10c78d800
feat: when statements with field access now work
2022-11-16 13:11:24 -05:00
rvcas
57df303eae
feat(aiken_stdlib): add validity_range
2022-11-16 13:10:55 -05:00
KtorZ
5412bff9da
Continue defining ScriptPurpose in the standard lib.
2022-11-16 13:10:55 -05:00
rvcas
8200afa00e
feat(aiken_stdlib): add Hash alias and ScriptPurpose
2022-11-16 13:10:55 -05:00
KtorZ
f63da1a367
Draft a few more core types for ScriptContext / Transaction
...
Interesting points:
- We don't have tuples yet, so we fake it until we make it.
- Aliases are 'order-sensitive', especially if an alias uses another not-yet-declared alias.
2022-11-16 13:10:55 -05:00
rvcas
771e011630
feat(aiken_stdlib): add script context type
2022-11-16 13:10:55 -05:00
rvcas
bff99b0cf2
feat: publish errors as lsp diagnostic messages
2022-11-15 17:44:50 -05:00
Kasey White
2cac7963c3
feat: add complex function composability. Minor scope changes
2022-11-14 14:13:21 -05:00
Kasey White
d11b8858ba
clean up some unused parts in created hashmaps
2022-11-12 20:57:44 -05:00
Kasey White
b450c41438
finish up binops for code gen
2022-11-12 20:57:44 -05:00
Kasey White
a3935c5df7
almost done data constr creation
2022-11-11 20:24:21 -05:00
KtorZ
98f90a572f
Add is_empty, preprend to standard lib / bytearray
2022-11-10 17:41:39 -05:00
rvcas
9f374d9431
feat: add length and concat to aiken/bytearray
2022-11-10 17:41:39 -05:00
KtorZ
b7edb7e584
Draft first standard module for ByteArray
2022-11-10 17:41:39 -05:00
rvcas
c9da049712
feat: rework how modules are loaded
2022-11-10 17:41:39 -05:00
rvcas
e421b49ab2
chore: forgot to commit the script
2022-11-08 22:21:07 -05:00
rvcas
7e0767ef74
feat: output build assets
2022-11-08 22:21:07 -05:00
Kasey White
6c6aefd1c4
get basic when conditions to work
2022-11-08 22:21:07 -05:00
Kasey White
6950b66b55
checkpoint commit
2022-11-08 22:21:07 -05:00
Kasey White
28697586f2
remove some warnings and start on when
2022-11-08 22:21:07 -05:00
Kasey White
805bf19081
Got nested field access working efficiently. Will clean up code soon.
2022-11-08 22:21:07 -05:00
Kasey White
e3fa9ac105
checkpoint commit
2022-11-08 22:21:07 -05:00
Kasey White
9864a3fe31
figured out the recursion based uplc terms to get item from a list
2022-11-08 22:21:07 -05:00
Kasey White
ad4a5e927d
starting on field access in aiken
2022-11-08 22:21:07 -05:00
Kasey White
3cafb2bcbe
checkpoint commit
2022-11-08 22:21:07 -05:00
Kasey White
6162128427
add string comparison and int comparison
2022-11-08 22:21:07 -05:00
Kasey White
f6a72cc7f9
did hacky way for scope level, but now i know how it works and how to fix
2022-11-08 22:21:07 -05:00
Kasey White
ffa78e4c30
work out some initial direction for code gen
2022-11-08 22:21:07 -05:00
rvcas
3a653b6624
chore: all dead code till we sort out doc comments
2022-11-05 18:20:23 -04:00
rvcas
7092673c45
feat: if expression formatting
2022-11-05 17:53:11 -04:00
rvcas
809d5ea5c5
fix: record formatting
2022-11-05 17:28:32 -04:00
rvcas
9d14acbe0a
fix: when formatting and add some methods to Project::Error
2022-11-05 16:23:46 -04:00
rvcas
14724f924c
fix: weird extra space above definitions
2022-11-05 15:42:53 -04:00
rvcas
cba7a6f46e
feat: bring over the formatter from gleam
2022-11-05 15:35:11 -04:00
rvcas
819256df99
feat: wrap up adding uplc builtins for now
2022-10-25 18:52:27 -04:00
rvcas
d5d2ba9cd7
feat: start creating aiken/builtin module
2022-10-25 18:52:27 -04:00
rvcas
a41d05f7b6
feat: change project structure
2022-10-24 00:09:00 -04:00
rvcas
825783ca61
feat: typecheck If expressions
2022-10-24 00:09:00 -04:00
rvcas
5244e58c9f
feat: typechecking is working
2022-10-24 00:09:00 -04:00
rvcas
4df3de0a03
feat: some boilerplate for typechecking
2022-10-24 00:09:00 -04:00
rvcas
da89e9902c
feat: starting to get pretty error messages
2022-10-11 14:34:27 -04:00
rvcas
6b79eb0961
chore: split example into lib and script
2022-10-09 15:39:28 -04:00
rvcas
ff26db2245
feat: start project building
2022-10-09 15:39:28 -04:00
rvcas
6de41e64be
feat: add simple check command
2022-10-04 17:09:43 -04:00