Commit Graph

1173 Commits

Author SHA1 Message Date
KtorZ 2d99c07dd3 Support (and default to) parenthesis for block expressions
This changes allow to use parenthesis `(` `)` to encapsulate
  expressions in addition to braces `{` `}` used to define blocks.

  The main use-case is for arithmetic and boolean expressions for which
  developers are used to using parenthesis. For example:

  ```
  { 14 + 42 } * 1337
  ```

  can now be written as:

  ```
  ( 14 + 42 ) * 1337
  ```

  This may sound straightforward at first but wasn't necessarily trivial
  in Aiken given that (a) everything is an expression, (b) whitespaces
  do not generally matter and (c) there's no symbol indicating the end
  of a 'statement' (because there's no statement).

  Thus, we have to properly disambiguate between:

  ```
  let foo = bar(14 + 42)
  ```

  and

  ```
  let foo = bar
  (14 + 42)
  ```

  Before this commit, the latter would be interpreted as a function call
  and would lead to a somewhat puzzling error. Now, the newline serves
  as a delimiting symbol. The trade-off being that for a function call,
  the left parenthesis has to be on the same line as the function name
  identifier -- which is a fair trade off. So this is still allowed:

  ```
  let foo = bar(
    14 + 42
  )
  ```

  As there's very little ambiguity about it.

  This fixes #236 and would seemingly allow us to get rid of the leading
  `#` in front of tuples.
2023-01-14 11:49:45 -05:00
KtorZ b791131fd0
Small tweak on error messages; better grammer. 2023-01-14 14:13:30 +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
KtorZ 2b26d9a0c1
Align README's tagline with website. 2023-01-13 10:18:03 +01:00
rvcas 59ef63b513 chore: field might not always need to be plural 2023-01-11 20:47:47 -05:00
rvcas 99a334b132 fix(check): the expected arity with hardcoded to 0 2023-01-11 20:47:47 -05:00
rvcas 3be05b1545 fix(fmt): error fmt was removing label 2023-01-11 19:47:11 -05:00
Kasey White eac8f7a80e replace discard assignment with nothing 2023-01-11 09:46:37 -05:00
Matthias Benkort e61a56566d
Merge pull request #248 from aiken-lang/rvcas/match_tests
`aiken check` make match tests flag fancier
2023-01-10 19:33:51 +01:00
KtorZ e06bbc4e73
Slightly edit module matching logic for conciseness/clarity
Also allow using identifier names directly as shorthand, without
   surrounding .{ ... }
2023-01-10 18:41:02 +01:00
rvcas 99ec0ff6b0
feat(check): change some logic around and add --exact-match 2023-01-10 11:46:44 -05:00
rvcas 9002ea263f
feat(check): make match tests flag fancier 2023-01-10 10:19:13 -05:00
rvcas 6a95d23811
fix: filter on regular iter before par iter cc @kprotty 2023-01-09 18:21:40 -05:00
rvcas 158b3dfe51 feat(aiken-project): use rayon to run tests in parallel 2023-01-09 18:12:18 -05:00
rvcas 6ea9ad9c41 chore: clippy warnings 2023-01-09 18:12:18 -05:00
Kasey White ce2de96226 clippy fix 2023-01-08 19:42:49 -05:00
Kasey White 42c8d50fa1 feat: finish record update 2023-01-08 19:42:49 -05:00
Kasey White ea135e6f42 refactor term::apply to apply_wrap. Fixed a list eq binop 2023-01-08 19:42:49 -05:00
rvcas d649b34ec3
Release 0.0.28
aiken@0.0.28
aiken-lang@0.0.28
aiken-lsp@0.0.28
aiken-project@0.0.28
uplc@0.0.28

Generated by cargo-workspaces
2023-01-06 13:41:00 -05:00
rvcas b6de2549a2 chore: update changelog 2023-01-06 13:39:18 -05:00
rvcas c89802eaed chore: bump pallas version 2023-01-06 13:39:18 -05:00
Matthias Benkort a51736187f
Merge pull request #238 from aiken-lang/record-update
Nested list fix and Boolean constant fix
2023-01-06 14:30:59 +01:00
KtorZ 7e8e8fd4a7
Try fixing acceptance step in CI. 2023-01-06 14:23:46 +01:00
Kasey White 1a29ee3b72
my discard add got lost in the rebasing -_- 2023-01-06 14:23:46 +01:00
Kasey White dc052bf9b8
fix nested lists without removing discard pop
Also fix bool constants created as a data type like in a list

start on record update

fix: nested list issues in when statements
2023-01-06 14:23:45 +01: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 3e4f7c0422
Fix acceptance test runner path in CI workflow. 2023-01-06 13:01:52 +01:00
KtorZ 470e331b26
Include acceptance tests in the CI workflow 2023-01-06 06:56:09 +01:00
KtorZ 4b34617466
Revert "fix: nested list issues in when statements"
This reverts commit 542962a2ea.
2023-01-06 06:50:42 +01:00
KtorZ 613fb3c957
Add new acceptance test scenario 038 2023-01-06 06:46:15 +01:00
alessandrokonrad 3aba9baba5 Fixed reward account creation in ScriptContext 2023-01-05 10:31:32 -05:00
Kasey White 542962a2ea fix: nested list issues in when statements 2023-01-03 01:31:18 -05:00
Kasey White 88d5d1b7f7 chore: add 036 assets 2022-12-31 00:09:02 -05:00
Kasey White 67e4ff8317 feat: allow functions from prelude
Co-authored-by: rvcas <x@rvcas.dev>
2022-12-31 00:09:02 -05:00
Kasey White e495eefb34 feat implement tuple index 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
Kasey White b0ea187151 better data deserialization errors and test hint
now runs even being in a sequence
2022-12-30 14:01:11 -05:00
rvcas ee678f2978
Release 0.0.27
aiken@0.0.27
aiken-lang@0.0.27
aiken-lsp@0.0.27
aiken-project@0.0.27
flat-rs@0.0.27
uplc@0.0.27

Generated by cargo-workspaces
2022-12-30 00:57:49 -05:00
Kasey White 34d398ab3b fix dependencies ordering so now test 34 passes 2022-12-29 17:14:23 -05:00
Kasey White 306fa891a0 validator params are now converted to type from data 2022-12-29 17:14:23 -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 85a6a711e1
Add more colors to error messages.
And, let 'formatdoc' insert newlines when relevant to
  format the text to the same column length.
2022-12-29 17:38:34 +01:00