Commit Graph

287 Commits

Author SHA1 Message Date
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