Commit Graph

268 Commits

Author SHA1 Message Date
KtorZ bbe7c0bc01
report prop test coverage labels on success. 2024-03-09 01:28:29 +01:00
KtorZ d6cc9bdfbe
Allow implicit discard when right-hand side is Void.
This is the most intuitive/expected behavior. Otherwise, it forces a pointless let-binding to 'Void' or into a discard.
2024-03-09 01:28:29 +01:00
rvcas d73f8fd6c2 chore: update changelog 2024-03-08 19:19:07 -05:00
rvcas 49ca7e1f75
chore: update changelog 2024-03-08 16:21:48 -05:00
microproofs 64f580bb82 one more change to the changelog 2024-03-08 12:19:18 -05:00
microproofs 9636a4de03 update changelog 2024-03-08 11:18:50 -05:00
KtorZ 4c97240900
Fill-in CHANGELOG about associativity. 2024-03-07 01:31:04 +01:00
KtorZ bff822ea7f
Rework unit test report to leverage new reification
And also provide slightly better errors when traces, or trace-if-false operators are present.
2024-03-07 01:20:40 +01:00
KtorZ c2bc5848dd
Fill-in CHANGELOG. 2024-03-03 21:09:17 +01:00
KtorZ 46c357df7b Fix Int/BigInt pivot
We've been wrongly representing large ints as BigInt, causing them to
  behave differently in the VM through builtins like 'serialise_data'.

  Indeed, we expect anything that fits in 8 bytes to be encoded as Major
  Type 0 or 1. But we were switching to encoding as Major type 6
  (tagged, PosBigInt, NegBigInt) for much smaller values! Anything
  outside of the range [-2^32, 2^32-1] would be treated as big int
  (positive or negative).

  Why? Because we checked whether a value i would fit in an i64, and if
  it didn't we treated it as big int. But the reality is more subtle...
  Fortunately, Rust has i128 and the minicbor library implements TryFrom
  which enforces that the value fits in a range of [-2^64, 2^64 - 1], so
  we're back on track easily.
2024-02-25 14:09:56 -05:00
microproofs cf51b30045 update changelog 2024-02-07 11:48:52 -05:00
rvcas b46206bfe2
chore: update changelog 2024-01-31 13:47:07 -05:00
microproofs bcc2a0fd12 update changelog 2024-01-31 13:44:11 -05:00
microproofs 258c224e21 update changelog 2024-01-31 13:42:46 -05:00
rvcas 3a534271e7
chore: update changelog 2024-01-30 12:35:50 -05:00
microproofs 115ff61abe update changelog again 2024-01-25 14:22:45 -05:00
rvcas 9d563612f3
chore: prep changelog for release 2024-01-24 20:40:53 -05:00
microproofs 4c00c9e7de update changelog 2024-01-24 20:03:57 -05:00
microproofs 1431bec32f update changelog 2024-01-24 19:50:52 -05:00
rvcas 25a837ab3f
feat: parser and check fixes
- do not erase sequences if the sole expression is an assignment
- emit parse error if an assignment is assigned to an assignment
- do not allow assignments in logical op chains
2024-01-19 14:32:21 -05:00
KtorZ 8a90e9eda0
Improve behavior and reporting of tests expected to fail
Fixes #786.
2024-01-19 18:20:58 +01:00
KtorZ 858e45f3f3
Fill-in CHANGELOG. 2024-01-19 14:30:43 +01:00
KtorZ 0e2b8ae251
Bump pallas dependencies to include flat bigint patch
Fixes #796.
2024-01-18 18:26:21 +01:00
rvcas 0a1e0d7bee
feat: remove flat-rs crate and use it through pallas_codec 2023-12-04 22:01:51 -05:00
rvcas b17b7f287c
chore: update to pallas v0.20.0 2023-12-04 21:44:19 -05:00
rvcas 38e8255328
chore: update changelog 2023-12-04 21:04:55 -05:00
KtorZ a23bc32fa2
Fill-in CHANGELOG. 2023-11-25 15:14:10 +01:00
microproofs d2202a705c update changelog 2023-10-25 18:59:44 -04:00
KtorZ 5f8e256050
Present aiken-lsp & fill-in CHANGELOG 2023-10-21 21:39:30 +02:00
microproofs a08405c607 changelog additions 2023-10-17 12:36:13 -04:00
KtorZ a524836c94
Add compiler version & system information to panic error message
So that we stop constantly asking people about it.
2023-10-06 14:46:11 +02:00
KtorZ 524d0dadf5
Add compiler's version to blueprint. 2023-10-06 14:17:55 +02:00
microproofs 8a1c824dd7 chore: add specific error for when the validator returns false 2023-10-04 11:08:22 -04:00
rvcas 78ff6cf178 chore: update changelog 2023-10-03 01:17:15 -04:00
microproofs d131ec563b update changelog 2023-09-29 22:07:19 -04:00
microproofs 4aa5bda9eb update changelog 2023-09-29 19:37:44 -04:00
microproofs 3fc469b7c7 update changelog 2023-09-28 01:05:05 -04:00
microproofs 8e75007a5f changelog: remove accidental duplicated Fixed 2023-09-25 21:16:19 -04:00
microproofs 38d15c677f Update changelog 2023-09-25 21:16:19 -04:00
KtorZ 91d4cb9b12
Fix a date in the CHANGELOG for 0.17.0 2023-09-20 18:02:39 +02:00
microproofs 4650c64f6b update changelog 2023-09-20 11:51:01 -04:00
KtorZ f379039efc
Fix record shorthand causing parsing ambiguity in if/else expressions.
Fixes #735.
2023-09-15 09:41:00 +02:00
KtorZ 06347c3efa Add CHANGELOG entry. 2023-09-13 17:17:32 -04:00
KtorZ 8ba5946c32
Preserve escape sequence after formatting
Bumped into this randomly. We do correctly parse escape sequence, but
  the format would simply but the unescaped string back on save. Now it
  properly re-escapes strings before flushing them back. I also removed
  the escape sequence for 'backspace' and 'new page' form feed as I
  don't see any use case for those in an Aiken program really...
2023-09-08 12:12:15 +02:00
rvcas 1de7b2866a
feat(cli): add --deny to build, check, and docs
This is useful for CI, where people that may have
a stricter workflow want to force CI to fail if any warnings
are detected.
2023-09-06 17:19:44 -04:00
rvcas dfe433ea46
fix: trim whitespace when loading hex strings from files closes #720 2023-08-31 18:22:09 -04:00
rvcas 097d1fa893
chore: update changelog 2023-08-31 18:01:52 -04:00
rvcas a87a8a7b35
chore: update changelog 2023-08-31 17:41:36 -04:00
rvcas 747e057d05
fix: tags 2023-08-24 15:00:09 -06:00
KtorZ d3fe241ccd
Wrap-up CHANGELOG 2023-08-22 13:14:35 +02:00
KtorZ 7883aff5f7
revert 619b73d03e
There's really no scenario where we want to generate boilerplate that
  always end up being removed. In particular, the boilerplate breaks
  tutorial as it generate conflicting validators in the blueprint.

  The only argument in favor of the boilerplate is to serve as example
  and show people some syntax reminder. However, this is better done in
  the README or on the user manual directly.
2023-08-22 12:59:36 +02:00
microproofs 0eec4c188a update changelog for v1.0.15 2023-08-19 20:11:24 -04:00
KtorZ c6f764d2db Refresh Cargo.lock & fill-in CHANGELOG. 2023-08-19 13:39:39 -04:00
rvcas be20426329
chore: update changelog 2023-08-16 23:16:56 -04:00
rvcas 6d90c27587
chore: update changelog 2023-08-16 23:06:53 -04:00
rvcas b138cb0ccd
chore: update changelog 2023-08-16 22:55:59 -04:00
logicalmechanism 050c41c8dc tx simulate returns a vector of exbudgets now 2023-08-16 22:37:00 -04:00
microproofs 2f7784f31e chore: update changelog
expecting a type on List<Data> from data now only checks that type is a list and not each element
2023-08-10 23:01:46 -04:00
microproofs 71a941e0b0 Update changelog 2023-08-07 12:11:39 -04:00
rvcas 77a627817b
chore: prepare changelog for release 2023-07-15 21:34:41 -04:00
rvcas 1b8e94fe32
feat: expect boolean sugar 2023-07-15 20:50:02 -04:00
rvcas d009358266 chore: update changelog 2023-07-15 20:08:16 -04:00
rvcas dbb6d302bd
chore: update changelog 2023-07-14 10:54:55 -04:00
rvcas e7c1b28b52
feat: add ability to reference validators in tests closes #632 2023-07-12 18:29:03 -04:00
rvcas 0b65c20e31 chore: update changelog 2023-07-12 09:16:37 -04:00
rvcas 5318c94892
chore: update changelog 2023-07-11 18:59:11 -04:00
rvcas 265af44b86
chore: update changelog 2023-07-09 23:33:40 -04:00
KtorZ 93b33df3ef Fill-in CHANGELOG. 2023-07-06 16:10:46 -04:00
KtorZ 6d7aec804c
Update CHANGELOG.md 2023-07-05 18:58:21 +02:00
microproofs 67c072a1a9 test: add acceptance test 86
fix: prevent mutual recursion for expect type code gen functions
2023-07-04 12:24:25 -04:00
Pi Lanningham 12674c8c4c Added description to changelog
Closes #610
2023-07-01 16:17:10 -04:00
rvcas 619b73d03e
feat: enhance new command 2023-06-23 19:40:11 -04:00
rvcas d633129ddf
fix: clearer unused var warning closes #579 2023-06-23 19:04:54 -04:00
rvcas 697de40376
chore: update changelog 2023-06-23 18:41:58 -04:00
microproofs 8b3504e9a1 fix: `expect _ = ...` not including the cast from data logic if the type is data and right hand has a type annotation 2023-06-23 18:39:12 -04:00
microproofs 226556bdd6 fix: builtins using the incorrect data to type conversion when used as a function param. 2023-06-23 14:31:19 -04:00
microproofs db369da96e feat: Make traces produced by expect dependent on
the value of the tracing flag.
2023-06-23 14:03:23 -04:00
microproofs dbfa08a5a7 fix: issue with tuple clause
It was not consuming the next case if there was no condition being checked in the clause.
Now it properly always consumes the next clause unless last clause.
2023-06-23 12:36:15 -04:00
microproofs 24f5c4de6b fix: the final clause of a when expecting another clause afterwards in nested list cases.
fix: all elements were being destructured in tuple clauses even if not used
2023-06-19 21:43:38 -04:00
KtorZ 41b2bf1c7e
Fill-in CHANGELOG. 2023-06-17 17:21:43 +02:00
rvcas bf09c155fc
chore: update changelog 2023-06-13 21:06:24 -04:00
rvcas 44e066f907 feat: add a panic hook, present issue link 2023-06-13 20:30:43 -04:00
microproofs b79437f596 update changelog 2023-06-13 12:03:38 -04:00
rvcas 22d491bb88
chore: update changelog 2023-06-13 00:24:04 -04:00
microproofs 9fe4aab599 chore: changelog v1.0.8-alpha 2023-06-08 19:33:27 -04:00
KtorZ 919bf6f350
Complete CHANGELOG
Fixes #592
  Fixes #578
2023-06-08 16:39:03 +02:00
microproofs 0c4e7ed9da typo in changelog 2023-06-07 22:39:54 -04:00
microproofs 1256bd5617 push codegen fixes to changelog 2023-06-07 22:38:22 -04:00
rvcas 8d107b1293
fix(build): --uplc must use Program<Name> to pretty print 2023-06-07 16:25:59 -04:00
KtorZ 0afc3aba13
Fix operator precedences, in particular |>
Fixes #571.
2023-06-06 17:17:47 +02:00
rvcas d3ffafd9c7
chore: update changelog 2023-06-02 00:07:49 -04:00
microproofs 6955f79035 chore: update changelog
fix: Minor improvement to record update to use empty list instead of the null list from a record fields list.
2023-06-01 12:22:42 -04:00
rvcas 26a607eb00
fix: bad parsing of comments at end of file closes #551 2023-05-30 11:07:39 -04:00
rvcas c3b8ff0009
chore: update changelog 2023-05-30 10:39:49 -04:00
microproofs c2904d15ba chore: prepare changelog for release 2023-05-17 18:01:14 -04:00
microproofs 173154e406 fix: (code gen): expect type now properly tracks constructor dependency.
This was specific to code gen generated functions.
2023-05-17 17:56:01 -04:00
microproofs 6b58d643de update changelog 2023-05-16 16:29:12 -04:00
rvcas 83d9172073
chore: add next section to changelog 2023-05-14 22:07:45 -04:00
rvcas 327ff71af0
chore: prepare changelog for release
Co-authored-by: Kasey White <kwhitemsg@gmail.com>
2023-05-14 21:24:35 -04:00
microproofs f448cd111c update changelog 2023-05-14 18:32:01 -04:00
microproofs 3356e2ecd0 fix: nested constrs with a single index was ignoring fields 2023-05-14 17:33:01 -04:00
microproofs 252f829825 forgot one addition to changelog 2023-05-11 18:16:48 -04:00
microproofs 98ae94f443 changelog update 2023-05-11 18:12:07 -04:00
rvcas ce7bdea7be
chore: update changelog 2023-05-09 23:16:27 -04:00
microproofs b36cf1c029 chore: refactor default functions in uplc_code_gen.
feat: Add an identity optimization to remove functions that return the argument only.
2023-05-08 16:15:09 -04:00
microproofs d2dbae1cbf fix:
Negative numbers now show up as a constant instead of 0 - that number

Expect on constructors without field maps no longer panics

Expect on constructors with discard as assigned field names now no longer throws free unique
2023-04-30 14:44:54 -04:00
microproofs 42ad45ee41 chore: prepare changelog for release 2023-04-28 17:07:27 -04:00
microproofs 332ce266da changelog update 2023-04-28 17:05:46 -04:00
microproofs 537bcf176a chore: changelog update 2023-04-25 14:10:07 -04:00
rvcas baa2cef6c4
feat(playground): impl clone for some errors 2023-04-24 17:13:20 -04:00
rvcas c9a762a13c
fix: we weren't including the name unused var warning 2023-04-20 16:53:56 -04:00
KtorZ 4269cf20b0
Fix erroneous "aiken new" command's output instructions
Fixes #505.
2023-04-20 14:38:48 +02:00
microproofs 672a900243 chore: converted acceptance tests 5-7 2023-04-19 20:03:41 -04:00
rvcas 092c2cecc1
chore: prepare changelog for release 2023-04-17 10:52:37 -04:00
rvcas e3f2fb5393
fix: need to return deserialization error here 2023-04-17 10:50:40 -04:00
rvcas b67d876f61
chore: update changelog 2023-04-16 20:44:13 -04:00
rvcas e0056e3acd
chore: prepare changelog for release 2023-04-16 16:48:23 -04:00
rvcas 98c61ca151
feat(aiken-lang): anonymous functions
@MartinSchere noticed a weird error
where an unknown variable wasn't being reported
the type checker was incorrectly scoping
arguments for anonymous function definitions.
Luckily his compilation failed due to a FreeUnique
error during code gen which is good. But this may
have been the source of other mysterious FreeUnique
errors.

I also noticed that anonymous function allowed
arguments with the same name to be defined.

`fn(arg, arg)`

This now returns an error.
2023-04-16 16:38:43 -04:00
rvcas 7105b8c155
chore: minor changelog adjustments 2023-04-13 13:06:25 -04:00
KtorZ 067e39286d
Bump versions to 1.0.0-alpha, update CHANGELOG. 2023-04-13 17:35:21 +02:00
KtorZ 8a2af4cd2e
Fix lexer throwing errors when parsing a too large tuple index. 2023-03-18 16:13:50 +01:00
KtorZ c113582404 Support multi-clause patterns as syntactic sugar
And disable multi-patterns clauses. I was originally just controlling
  whether we did disable that from the parser but then I figured we
  could actually support multi-patterns clauses quite easily by simply
  desugaring a multi-pattern into multiple clauses.

  This is only a syntactic sugar, which means that the cost of writing
  that on-chain is as expensive as writing the fully expanded form; yet
  it seems like a useful shorthand; especially for short clause
  expressions.

  This commit however disables multi-pattern when clauses, which we do
  not support in the code-generation. Instead, one pattern on tuples for
  that.
2023-03-16 19:45:41 -04:00
Lucas fab6d56bf2
Merge branch 'main' into newline-assignment 2023-03-16 15:30:55 -04:00
KtorZ b2f3b66a96 Fill-in CHANGELOG about let-binding change. 2023-03-16 15:29:44 -04:00
KtorZ 20f5baffa7
Enforce newline after assignment / clause.
This leads to more consistent formatting across entire Aiken programs.
  Before that commit, only long expressions would be formatted on a
  newline, causing non-consistent formatting and additional reading
  barrier when looking at source code.

  Programs also now take more vertical space, which is better for more
  friendly diffing in version control systems (especially git).
2023-03-16 19:46:46 +01:00
KtorZ d59305a1b0
Provide better compiler feedback for type holes in annotations.
It is now possible to leave a hole in a type annotation and have the compiler fill-in the expected type of us.
  This is a pretty useful debugging tool when playing with complex functions.
2023-03-16 14:07:06 +01:00
rvcas 0e7494541d
feat: update changelog 2023-03-15 16:46:59 -04:00
rvcas e95d7214c9
chore: update changelog 2023-03-14 18:12:45 -04:00
rvcas 553eb88d3d fix(check): record field access properly restricted to single constr types 2023-03-08 23:50:16 -05:00
rvcas ba4635a8b0
chore: update changelog 2023-03-08 22:50:03 -05:00
rvcas 4688bfaaca
chore: start next section of changelog 2023-03-06 10:42:53 -05:00
rvcas 1bc3362788
feat: new release job and some release notes 2023-02-23 18:52:56 -05:00
rvcas 158b3dfe51 feat(aiken-project): use rayon to run tests in parallel 2023-01-09 18:12:18 -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
alessandrokonrad 3aba9baba5 Fixed reward account creation in ScriptContext 2023-01-05 10:31:32 -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
rvcas 841babae5c chore: clean some links up so they point to the new repo 2022-12-17 11:19:02 -05:00
jmhrpr 325a7b7b45 fix: correct V1 to_plutus_data() for txout with no datum hash 2022-12-15 18:22:31 -05:00
KtorZ a541018a56
Complete CHANGELOG about new test support. 2022-12-09 14:29:13 +01:00
rvcas a752e3589d
chore: update changelog 2022-11-23 00:33:51 -05:00
rvcas 0358952984
Release 0.0.26
aiken@0.0.26
aiken-lang@0.0.26
aiken-lsp@0.0.26
aiken-project@0.0.26

Generated by cargo-workspaces
2022-11-23 00:31:24 -05:00
rvcas 145bb03fa1 chore: update changelog 2022-11-17 12:56:03 -05:00
alessandrokonrad 4551d23c2f Updated changelog 2022-11-16 21:34:46 -05:00
rvcas a27f0562bc
chore: update changelog 2022-11-16 14:29:54 -05:00
rvcas 021237f265
chore: update changelog 2022-11-15 17:47:34 -05:00
rvcas 248a98374f
chore: bump version in changelog 2022-11-14 18:04:01 -05:00
rvcas 14d4c528c9
chore: add some things to the changelog 2022-11-14 18:02:54 -05:00
rvcas ca243fb120
fix: changelog 2022-11-14 17:59:41 -05:00
rvcas 4e05a28e59 chore: update change log 2022-11-10 01:27:18 -05:00