Commit Graph

2206 Commits

Author SHA1 Message Date
rvcas d8723c5497
feat: use __fallback in bluprint for the else 2024-08-25 16:20:07 +02:00
rvcas 4589c51cd3
feat: enforcement that spend first arg is option 2024-08-25 16:20:07 +02:00
rvcas c57009bf99
chore: fix some tests that now correctly fail due to arity checks 2024-08-25 16:20:07 +02:00
KtorZ c706d6072d
Fix few blueprint generation tests
Some remains invalid, in particular:

  - We need to handle the annotated Data case, which we still parse
    correctly but do nothing about any longer.

  - There's also a strange behavior with opaque type turned public?
2024-08-25 16:20:07 +02:00
KtorZ f9acbd3bcb
DRY handlers generation from validator 2024-08-25 16:20:07 +02:00
KtorZ 6a6bf6f65f
Handle (though discard) first script purpose argument of publish and propose. 2024-08-25 16:20:07 +02:00
KtorZ 5943d94c6c
Finish re-working machine errors display. 2024-08-25 16:20:06 +02:00
KtorZ fe205e360f
Update remaining script context e2e tests. 2024-08-25 16:20:06 +02:00
KtorZ 7ec3f2e8df
DRY builtins types creation to ensure proper consistency. 2024-08-25 16:20:06 +02:00
rvcas 5b61a75088
feat: handler withdraw purpose 2024-08-25 16:20:06 +02:00
microproofs f86d550ca0
Fix type for mint scriptinfo 2024-08-25 16:20:06 +02:00
microproofs 953ee6b5d1
Fix ordering for ScriptInfo type 2024-08-25 16:20:05 +02:00
rvcas b9456b5946
fix: wrap_validator_condition needs to happen earlier 2024-08-25 16:20:05 +02:00
rvcas e174532bfd
chore: add more redacted values to machine errors 2024-08-25 16:20:05 +02:00
rvcas 79099675d4
fix: free unique on purpose arg 2024-08-25 16:20:05 +02:00
rvcas c2c4bddfb3
feat: new check for valid purpose names 2024-08-25 16:20:05 +02:00
KtorZ 5cf0a4d294
Fix validator arity check
For now, this panics, but ideally, we should return a "unknown
  purpose" error when we cannot map the name to an arity.
2024-08-25 16:20:04 +02:00
KtorZ 823492c27b
Adjust v3 script context end-to-end tests to work with new syntax. 2024-08-25 16:20:04 +02:00
KtorZ 972e9bd763
Define ScriptPurpose & ScriptContext types in prelude, fix codegen new v3 wrapper. 2024-08-25 16:20:04 +02:00
rvcas 90d75d4a13
fix: redeemer could be missing 2024-08-25 16:20:04 +02:00
rvcas 00b8a39236
fix: private type leaks 2024-08-25 16:20:04 +02:00
rvcas 79840248c0
fix: more parse errors in some tests 2024-08-25 16:20:04 +02:00
rvcas f94e40daf4
fix: more test and issues with scoping/names 2024-08-25 16:20:03 +02:00
rvcas cf3180996a
fix: map fallback name if present to else 2024-08-25 16:20:03 +02:00
rvcas 00907c2bcc
fix: format snapshot tests 2024-08-25 16:20:03 +02:00
rvcas 7f26db401c
feat: handler implicit some and none 2024-08-25 16:20:03 +02:00
rvcas 6b8be61b6e
test: new snapshots for parsing v3 validators 2024-08-25 16:20:03 +02:00
rvcas 0d8d80e5a7
feat: transform TypedValidator in a function of handlers 2024-08-25 16:20:03 +02:00
rvcas 466a4f0b39
feat: adjust blueprint stuff to be aware of handlers 2024-08-25 16:20:02 +02:00
rvcas 471bbe2175
feat: append validator name to handlers 2024-08-25 16:20:02 +02:00
rvcas b984f0455a
feat: return a vec instead of Option 2024-08-25 16:20:02 +02:00
rvcas 4287fa3f4a
feat: new formatting for validators v3 2024-08-25 16:20:02 +02:00
rvcas 9e866a5ec1
fix: make sure that fallback gets it's own scope with params 2024-08-25 16:20:02 +02:00
rvcas 1d9034573b
feat: impl infer for new validators 2024-08-25 16:20:02 +02:00
rvcas fff90f7df5
feat: fix inference comp issues 2024-08-25 16:20:02 +02:00
rvcas 0de5cbc74e
feat: implement new validator parsing 2024-08-25 16:20:01 +02:00
jmhrpr c98e32d3e9
optional costmodel in eval p2 raw 2024-08-24 18:28:08 +02:00
KtorZ 8dfaa1bf90
Fix parsing of v3 cost model
Closes #1002.
2024-08-24 18:26:37 +02:00
KtorZ a71d7c260c
Fix doc_test examples for 'common_prefix' 2024-08-23 16:17:54 +02:00
KtorZ c92b260260
Fix gen_uplc tests following: 0f905045 2024-08-23 16:17:27 +02:00
KtorZ c3b287507e
Fix link_tree test following 0ff12b92 2024-08-23 16:10:07 +02:00
KtorZ 9aa9070f56
Revise desugaring following feedback
- We now consistently desugar an expect in the last position as
    `Void`. Regardless of the pattern. Desugaring to a boolean value is
    deemed too confusing.

  - This commit also removes the desugaring for let-binding. It's only
    ever allowed for _expect_ which then behaves like a side effect.

  - We also now allow tests to return either `Bool` or `Void`. A test
    that returns `Void` is treated the same as a test returning `True`.
2024-08-23 16:04:40 +02:00
KtorZ fbe6f02fd1
Allow assignment as last expression
This is debatable, but I would argue that it's been sufficiently
  annoying for people and such a low-hanging fruit that we ought to do
  something about it.

  The strategy here is simple: when we find a sequence of expression
  that ends with an assignment (let or expect), we can simply desugar it
  into two expressions: the assignment followed by either `Void` or a
  boolean.

  The latter is used when the assignment pattern is itself a boolean;
  the next boolean becomes the expected value. The former, `Void`, is
  used for everything else. So said differently, any assignment
  implicitly _returns Void_, except for boolean which return the actual
  patterned bool.

  <table>
  <thead><tr><th>expression</th><th>desugar into</th></tr></thead>
  <tbody>
  <tr>
  <td>

  ```aiken
  fn expect_bool(data: Data) -> Void {
    expect _: Bool = data
  }
  ```
  </td>
  <td>

  ```aiken
  fn expect_bool(data: Data) -> Void {
    expect _: Bool = data
    Void
  }
  ```
  </td>
  </tr>
  <tr>
  <td>

  ```aiken
  fn weird_maths() -> Bool {
    expect 1 == 2
  }
  ```
  </td>
  <td>

  ```aiken
  fn weird_maths() -> Bool {
    expect True = 1 == 2
    True
  }
  ```
  </td>
  </tr>
  </tbody>
  </table>
2024-08-23 16:04:39 +02:00
KtorZ 0f905045e7
Rename mk_nil_data, mk_pair_data & mk_nil_pair_data builtins. 2024-08-23 10:39:37 +02:00
KtorZ 6e67fe837b
Keep constants and types sorted; only functions are unsorted. 2024-08-23 10:30:18 +02:00
KtorZ c3e39301e2
Re-format source code using cargo fmt. 2024-08-22 16:42:41 +02:00
KtorZ b479a289cf
Implement source linker and add URL to source code in generated docs.
Long overdue.
2024-08-22 16:37:48 +02:00
KtorZ 44e42d608d
Allow hidden modules, not generating any documentation.
This is useful when splitting module for dependencies, yet without the desire to expose internal constructors and types. This merely skips the documentation generation; but doesn't prevent the hidden module from being accessible.
2024-08-22 15:47:00 +02:00
KtorZ 7eee3ce63c
Fix CLI output colors when generating documentation. 2024-08-22 15:47:00 +02:00
KtorZ 10c829edfa
Parse and display documentation section headers.
The idea is pretty simple, we'll just look for lines starting with Markdown heading sections, and render them in the documentation. They appear both in the sidebar, and within the generated docs themselves in between functions. This, coupled with the order preservation of the declaration in a module should make the generated docs significantly more elegant to organize and present.
2024-08-22 15:47:00 +02:00