Commit Graph

27 Commits

Author SHA1 Message Date
KtorZ 92488e535a
Fix type definitions for g1 & g2 elements. 2023-12-08 16:58:12 +01:00
rvcas b80db2f7f8 fix(bls): wrong types for equals functions 2023-11-15 15:55:56 -05:00
rvcas 90aea6476a feat: uplc g1 and g2 literal parsing 2023-11-15 15:55:56 -05:00
rvcas 49ae8152f8 feat(bls): add new aiken level builtins 2023-11-15 15:55:56 -05:00
rvcas 8a3a465237 feat(bls): add new types to aiken prelude 2023-11-15 15:55:56 -05:00
microproofs 0d2ac952d0 feat: implemented the Bls381-12 builtins and types
also implemented Keccak256 and Blake2b_224

TODO: cost model, flat serialization, pretty

Co-authored-by: rvcas <x@rvcas.dev>
2023-11-15 15:55:56 -05:00
rvcas e5801f9c19
feat: support doc comments for functions args and validator params
- Add support to the formatter for these doc comments
- Add a new field to `Arg` `doc: Option<String>`
- Don't attach docs immediately after typechecking a module
  - instead we should do it on demand in docs, build, and lsp
  - the check command doesn't need to have any docs attached
  - doing it more lazily defers the computation until later making
    typechecking feedback a bit faster
- Add support for function arg and validator param docs in
  `attach_module_docs` methods
- Update some snapshots
- Add put_doc to Arg

closes #685
2023-10-16 13:38:23 -04:00
rvcas d808197507
chore: clippy fix 2023-09-13 18:17:59 -04:00
microproofs 9704cafefe a checkpoint for function hoisting start and type fix 2023-08-07 12:02:44 -04:00
rvcas a6b230aad4 fix: exhaustiveness on types from other modules 2023-08-01 21:13:50 -04:00
rvcas a124a16a61
feat(tests): implement a way to express that tests can fail 2023-05-25 16:54:53 -04:00
rvcas d8cbcde61d feat(validators): unused param warning
Params being unused were being incorrectly reported.
This was because params need to be initialized
at a scope above both the validator functions. This
manifested when using a multi-validator where one of
the params was not used in both validators.

The easy fix was to add a field called
`is_validator_param` to `ArgName`. Then
when infering a function we don't initialize args
that are validator params. We now handle this
in a scope that is created before in the match branch for
validator in the `infer_definition` function. In there
we call `.in_new_scope` and initialize params for usage
detection.
2023-03-30 21:15:27 -04:00
rvcas 3e6f688e2d feat: refactor some methods and modules
* move uplc::ast::builder to uplc::builder
* rename aiken_lang::uplc to aiken_lang::gen_uplc
* move aiken_lang::air and aiken_lang::builder to aiken_lang::gen_uplc
  as submodules

Co-authored-by: Kasey White <kwhitemsg@gmail.com>
2023-03-27 20:00:32 -04:00
Kasey White bb6fc76971
start on registering redeemer wrapper type in definitions 2023-03-17 18:40:49 -04:00
KtorZ 00e9dabe82
Add missing Plutus builtins to Aiken's lang. 2023-02-22 12:53:03 +01:00
KtorZ ec144fa220
Make 'choose_data' builtin available. 2023-02-17 11:25:41 +01:00
KtorZ b5cf8c78a5
Add Ordering data-type definition to prelude known constructors. 2023-02-09 14:36:39 +01:00
KtorZ 62fe321ddf
Add 'Ordering' data-type to the Prelude.
Useful to have around to build comparison functions.
2023-02-09 11:07:30 +01:00
rvcas 175cd777d8 feat: enable elliptic curve verification builtins 2023-02-04 22:07:56 -05:00
KtorZ 22a1c1dfb4
Use IndexMap throughout
In an ideal world, I should have handlded that directly at the conflicting commit in the rebase, but this would have bubbled up through all commits... which I wasn't really quite keen on going through. So here's an extra ugly commit that comes and 'fix the rebase'.
2023-01-31 09:51:00 +01:00
KtorZ d2cc44e5f4
Allow testing blueprint generation from Aiken programs
This is quite something, because now we have a testing pipeline that
  can also be used for testing other compiler-related stuff such as the
  type-checker or the code generator.
2023-01-31 09:48:44 +01:00
rvcas 00f2150eed feat: add identity, always, & flip 2023-01-14 23:33:49 -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
KtorZ 1701cacb52
Add builtin functions to the prelude
Starting with 'not', will add 'always' and 'identity' later.
2022-12-29 12:05:30 +01:00
KtorZ 7c1b8e8f3b
Map remaining relevant builtins. 2022-12-28 18:27:28 +01:00
KtorZ 2aa4429231
Rename Unit -> Void 2022-12-22 18:52:28 +01:00
rvcas 42204d2d71 chore: make folder names match crate name 2022-12-21 18:11:07 -05:00