Commit Graph

1567 Commits

Author SHA1 Message Date
KtorZ 724f1ac4b6 Remove unused 'FlexBreak'
The difference between 'FlexBreak' and 'Break(Mode::Strict/Flexible)' as always confused me; and turned out that the 'FlexBreak' thingy is never used. This is dead-code, so I removed it.
2023-03-14 16:47:43 -04:00
KtorZ 1311d9bd27 Support flexible pipe operator formatting
Rules are now as follows:

  - If a pipeline contains a newline, then the entire pipeline is formatted over multiple lines.
  - If it doesn't, then it's formatted as a single-line UNLESS it cannot fit; in which case, we fallback to multiline again.
2023-03-14 16:47:43 -04:00
KtorZ ae981403c6 Re-introduce field title & description in referenced schemas. 2023-03-12 12:44:49 -04:00
KtorZ 45a463786f Update blueprints from acceptance tests and hello, world. 2023-03-12 12:44:49 -04:00
KtorZ 451737237e Fix blueprint generation for recursive types.
This was a bit tricky and I ended up breaking things down a lot and
  trying different path. This commit is the result of the most
  satisfying one.

  It introduces a new 'concept' and types: Definitions and Reference.
  These elements are meant to reflect JSON pointers and JSON-schema
  definitions which we now use for pretty much all user-defined
  data-types.

  In fact, Schemas are no longer inlined, but are always referencing
  some schema under "definitions".

  This indirection is necessary in order to cope with recursive types.
  And while it's only truly necessary for recursive types, using it
  consistently makes it both easier to produce and easier to consume.

  ---

  The blueprint generation for recursive types here also works thanks to
  the 'Definitions' data-structure wrapper around a BTreeMap. This uses
  a strategy where:

  (1) schemas are only generated if they haven't been seen before
  (2) schemas are marked as seen BEFORE actually being generated (to
  effectively stop a recursive generation).

  This relies on one important aspect: the key must be uniquely
  identifying a given schema. Which means that we have to monomorphize
  data-types with generic parameters also here, and use keys that are
  specialized in one data-type.

  ---

  In this large overhaul we've also lost one thing which I didn't bother
  re-introducing yet to keep the work manageable: title for record
  fields. Before, we use to pull those from record constructor when
  available, yet now, every record constructor has been replaced by a
  `$ref`. We could theoritically attach a title to the reference. I'll
  try to quickly add that in a later commit.
2023-03-12 12:44:49 -04:00
KtorZ f67e049dc2 Introduce indirection for fields. 2023-03-12 12:44:49 -04:00
KtorZ 3a7aac0a33 Make blueprint code slightly more resilient to changes.
Leverage traits instead of hard-coded type parameters.
2023-03-12 12:44:49 -04:00
KtorZ e44f18bae5 Add failing test scenario for recursive types. 2023-03-12 12:44:49 -04:00
Kasey White 31c280552d add another validator 2023-03-12 00:25:26 -05:00
Kasey White 4a7bbc23df fix: change in scope was applied in wrong place in pattern_ir for constr expect 2023-03-12 00:25:26 -05:00
Matthias Benkort 4b9ccc8592
Merge pull request #426 from waalge/waalge/bump-cargo2nix
chore: bump rust version in nix
2023-03-11 12:05:07 +01:00
rvcas 6440c4f498
fix(codegen): tuple pattern scopes
Co-authored-by: Kasey White <kwhitemsg@gmail.com>
2023-03-09 19:30:52 -05:00
waalge fa55a4173c fix: gh actions bump cargo2nix unstable 2023-03-09 09:48:38 +00:00
waalge 6817510e2d Merge branch 'main' into waalge/bump-cargo2nix 2023-03-09 09:44:11 +00:00
waalge 993d1f1187 merge 2023-03-09 09:41:33 +00:00
Kasey White f377d60085 ChooseData is now lazy with its branch arguments.
This enables calling the un_data builtins directly from choose_data args
2023-03-09 00:31:57 -05:00
KtorZ dbef4474fa Add new acceptance scenario: 065
-> The provided Plutus code called 'error'.

  This scenario _could_ work if `choose_data` was lazy in its arguments.
  Which is a reasonable thing to expect from `choose_data`. Since we
  don't have any way to introduce on-demand lazyness in the language
  (and we are not looking for ways), we need to make a special case for
  `choose_data` which is a perfect (and singular) use case for it.
2023-03-09 00:31:57 -05: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 41e725152e
feat(unify): cannot cast between string and data closes #432 2023-03-08 22:47:38 -05:00
Kasey White c85240cbed Fix exception when doing expect boolean = ..
Add new Air Assert Bool
Add acceptance test 76
2023-03-08 22:31:30 -05:00
rvcas 6cde0628a7 fix(check): filter tests before code gen
Co-authored-by: Kasey White <kwhitemsg@gmail.com>
2023-03-08 20:58:27 -05:00
KtorZ a66c9bd2c3
Remove redundant match on tuple blueprint generation. 2023-03-08 16:40:03 +01:00
KtorZ 2c987e289d
Fix 'find_modules_prefix' when generating docs. 2023-03-08 12:28:01 +01:00
waalge e8feb10505 chore: bump rust version in nix
- Had to move to cargo2nix/unstable;
the previous release topped out at 1.61.0,
but dependency `clap_lex v0.3.2` requires >= 1.64.0
2023-03-08 11:03:50 +00:00
KtorZ ab32302117
Only generate documentation of current package with 'docs'
This was generating documentation for ALL packages including dependencies.
2023-03-08 12:00:59 +01:00
KtorZ 0ea4538cac
Fix typo and pluralize message for invalid field arity error. 2023-03-08 11:44:54 +01:00
Matthias Benkort 2aa8a7f973
Merge pull request #424 from aiken-lang/patch/cargo.nix
Update Cargo.nix
2023-03-08 11:40:05 +01:00
Matthias Benkort d8934b3d8d
Merge pull request #421 from aiken-lang/monomorph-panic-fix
Functions with only a generic return weren't being properly monomorph…
2023-03-08 11:39:50 +01:00
Kasey White 89373c32e6
Functions with only a generic return weren't being properly monomorphized. Fixed that. 2023-03-08 10:31:05 +01:00
KtorZ 4a8e756f88 [create-pull-request] automated change 2023-03-08 09:26:01 +00:00
Matthias Benkort 95997822dc
Merge pull request #422 from aiken-lang/rvcas/json_output_cmds
JSON output for `uplc` cmds
2023-03-08 10:24:05 +01:00
rvcas f8545854fc
feat: json output for uplc eval 2023-03-08 10:19:36 +01:00
rvcas bd7b8792bf
feat: introduce EvalResult type 2023-03-08 10:19:36 +01:00
rvcas 4f1d14f2a0
feat: introduce miette into uplc 2023-03-08 10:19:35 +01:00
KtorZ cb11b21c9f
Update dependencies
In particular, tempfile >= 3.4.0 to remove the vulnerability on remove_dir_all
2023-03-08 10:17:22 +01:00
KtorZ 7257c2d89e
Small tweaks on the hello_world examples. 2023-03-08 09:47:08 +01:00
KtorZ 4ea50ca9ab
Remove editor configuration file.
Editor configurations and other system-specific files aren't meant to
  be committed to public repository. This belongs to a dev environment
  and should be handled by developers themselves though local git
  configurations.
2023-03-08 09:42:03 +01:00
rvcas e3179c06ac [create-pull-request] automated change 2023-03-07 19:53:17 -05:00
Jack Fraser 6ec37778d7 change var to utxo from lockOutRef 2023-03-07 19:15:03 -05:00
Jack Fraser 2cfa0aeda9 add missing types, update log descriptions, deno fmt 2023-03-07 19:15:03 -05:00
Jack Fraser 80afb5fc2d update cli documentation 2023-03-07 19:15:03 -05:00
Jack Fraser 6aa51213e4 add deno settings 2023-03-07 19:15:03 -05:00
rvcas 9b96f7bb2e
chore: commit acceptance test plutus files 2023-03-06 13:26:36 -05:00
rvcas 8f765bfd52
fix: some breaking changes from pallas v0.18 2023-03-06 13:17:14 -05:00
rvcas c3175e2fc9
fix: some breaking changes from clap v4 2023-03-06 13:16:33 -05:00
rvcas 79c2cb3062
fix: toml now have a better way to capture error spans 2023-03-06 13:15:48 -05:00
rvcas 92161bed43
fix: From<&str> for GlobPattern does not exist need to use string 2023-03-06 13:15:12 -05:00
rvcas 1902a2d56c
chore: update all deps 2023-03-06 13:13:59 -05:00
rvcas 1f8535e76e
chore: update some deps 2023-03-06 11:09:44 -05:00