Commit Graph

496 Commits

Author SHA1 Message Date
rvcas 00e5f99304 feat: pull comment tokens out of the Iter before parsing 2022-11-16 14:28:02 -05:00
Kasey White f10c78d800 feat: when statements with field access now work 2022-11-16 13:11:24 -05:00
Kasey White 8d1e73bbea checkpoint 2022-11-16 13:11:24 -05:00
rvcas 742a5ea19b feat: handle didSave notification 2022-11-15 17:44:50 -05:00
rvcas bff99b0cf2 feat: publish errors as lsp diagnostic messages 2022-11-15 17:44:50 -05:00
rvcas f089eff97d
Release 0.0.25
aiken@0.0.25
aiken-lang@0.0.25
aiken-lsp@0.0.25
aiken-project@0.0.25
uplc@0.0.25

Generated by cargo-workspaces
2022-11-14 18:04:19 -05:00
rvcas 3f952cdf0e feat: add new Data type to prelude and allow it to unify with any user defined type 2022-11-14 15:09:56 -05:00
rvcas 123e729137 fix: when formatting we need to use the in memory edited version 2022-11-14 14:20:41 -05:00
vh-zuka 2736df5466 Validate project name on aiken new 2022-11-14 14:15:02 -05:00
Kasey White 2cac7963c3 feat: add complex function composability. Minor scope changes 2022-11-14 14:13:21 -05:00
Kasey White 491c13f3aa chore: name_field_label should return actual constant for bytearray and int 2022-11-14 14:13:21 -05:00
Kasey White aa0f258ea2 add pipelines functionality 2022-11-14 14:13:21 -05:00
Kasey White d11b8858ba clean up some unused parts in created hashmaps 2022-11-12 20:57:44 -05:00
Kasey White b450c41438 finish up binops for code gen 2022-11-12 20:57:44 -05:00
Kasey White a73fc345fe clippy fix 2022-11-11 20:24:21 -05:00
Kasey White d0463b3218 missing into on a term 2022-11-11 20:24:21 -05:00
Kasey White c36fa8cee5 fix issue with scope for data creation and wrap program with ifthenelse 2022-11-11 20:24:21 -05:00
Kasey White a3935c5df7 almost done data constr creation 2022-11-11 20:24:21 -05:00
rvcas 4a95fc5588 chore: fix parser tests 2022-11-10 17:41:39 -05:00
KtorZ 2e5406afa3 Rename 'scripts' as 'validators' across the codebase. 2022-11-10 17:41:39 -05:00
rvcas c9da049712 feat: rework how modules are loaded 2022-11-10 17:41:39 -05:00
KtorZ 7b5763edeb Respond to 'notification' requests from language-client 2022-11-10 17:41:39 -05:00
vh-zuka bdf91d287b Add a few more files 2022-11-10 01:45:32 -05:00
vh-zuka 9d6f9fd013 Use indoc for better raw text 2022-11-10 01:45:32 -05:00
vh-zuka 3faed5c980 Add new project template 2022-11-10 01:45:32 -05:00
rvcas 01e91b9fe5 chore: deal with clippy warnings 2022-11-10 01:27:18 -05:00
rvcas e90a210537 feat: add a basic lsp 2022-11-10 01:27:18 -05:00
rvcas c4f2a1ffec fix: weird test error after rebase 2022-11-08 22:21:07 -05:00
rvcas 7e0767ef74 feat: output build assets 2022-11-08 22:21:07 -05:00
rvcas 4db0c93061 chore: clean up warnings 2022-11-08 22:21:07 -05:00
rvcas 3787cce275 chore: fix some stuff after rebase 2022-11-08 22:21:07 -05:00
Kasey White 6c6aefd1c4 get basic when conditions to work 2022-11-08 22:21:07 -05:00
Kasey White 6950b66b55 checkpoint commit 2022-11-08 22:21:07 -05:00
Kasey White 28697586f2 remove some warnings and start on when 2022-11-08 22:21:07 -05:00
Kasey White 805bf19081 Got nested field access working efficiently. Will clean up code soon. 2022-11-08 22:21:07 -05:00
Kasey White e3fa9ac105 checkpoint commit 2022-11-08 22:21:07 -05:00
Kasey White 9864a3fe31 figured out the recursion based uplc terms to get item from a list 2022-11-08 22:21:07 -05:00
Kasey White ad4a5e927d starting on field access in aiken 2022-11-08 22:21:07 -05:00
Kasey White 3cafb2bcbe checkpoint commit 2022-11-08 22:21:07 -05:00
rvcas d8f3ada13e chore: add default for Interner 2022-11-08 22:21:07 -05:00
Kasey White 6162128427 add string comparison and int comparison 2022-11-08 22:21:07 -05:00
Kasey White 8a99b8c071 Remove println 2022-11-08 22:21:07 -05:00
Kasey White 6d720f6265 implement scope level in a consistent way. 2022-11-08 22:21:07 -05:00
Kasey White f6a72cc7f9 did hacky way for scope level, but now i know how it works and how to fix 2022-11-08 22:21:07 -05:00
Kasey White f7276df355 checkpoint commit 2022-11-08 22:21:07 -05:00
rvcas 483aa0784e chore: clean up some errors after rebase and rename project to aiken_project 2022-11-08 22:21:07 -05:00
Kasey White a993bea2a2 try code gen for assignment 2022-11-08 22:21:07 -05:00
Kasey White ffa78e4c30 work out some initial direction for code gen 2022-11-08 22:21:07 -05:00
rvcas 51302f1730 feat: error if validators have wrong arity 2022-11-08 22:21:07 -05:00
rvcas 4130e0f2c3 feat: validate if scripts return Bool 2022-11-08 22:21:07 -05:00
rvcas d830060683
fix: tests 2022-11-05 18:27:02 -04:00
rvcas 3a653b6624
chore: all dead code till we sort out doc comments 2022-11-05 18:20:23 -04:00
rvcas 7092673c45
feat: if expression formatting 2022-11-05 17:53:11 -04:00
rvcas 809d5ea5c5
fix: record formatting 2022-11-05 17:28:32 -04:00
rvcas 9d14acbe0a
fix: when formatting and add some methods to Project::Error 2022-11-05 16:23:46 -04:00
rvcas 14724f924c
fix: weird extra space above definitions 2022-11-05 15:42:53 -04:00
rvcas 4cad053e15
fix: capture variables are a bit different 2022-11-05 15:35:18 -04:00
rvcas cba7a6f46e
feat: bring over the formatter from gleam 2022-11-05 15:35:11 -04:00
rvcas 3df275043a
Release 0.0.24
aiken@0.0.24
aiken-lang@0.0.24
aiken-project@0.0.24
uplc@0.0.24

Generated by cargo-workspaces
2022-11-04 13:56:15 -04:00
alessandrokonrad af7ca87ffc Fixed more clippy issues 2022-11-04 18:21:22 +01:00
alessandrokonrad 9a2c6753cd Fixed clippy issues 2022-11-04 18:13:46 +01:00
alessandrokonrad d1141f306a Sorted all relevant structures in ScriptContext 2022-11-04 17:58:23 +01:00
rvcas c4db8c951f
Release 0.0.23
aiken@0.0.23
aiken-lang@0.0.23
aiken-project@0.0.23
uplc@0.0.23

Generated by cargo-workspaces
2022-11-03 20:27:03 -04:00
Kasey White 887f5eeee9 sorts inputs for sc 2022-11-03 05:04:21 -04:00
rvcas 1b6e5d262f
Release 0.0.22
aiken@0.0.22
aiken-lang@0.0.22
aiken-project@0.0.22
uplc@0.0.22

Generated by cargo-workspaces
2022-10-31 13:32:54 -04:00
rvcas 09462bbb42
chore: rename project to aiken-project 2022-10-31 13:25:19 -04:00
Lucas 11c0e4e193
Merge pull request #85 from txpipe/expose-pallas-plutus-data 2022-10-29 16:30:23 -04:00
Turner 9bbcdfd0b3 Revert versions, fix changelog 2022-10-28 11:50:19 -07:00
KtorZ 4316d5c382
Factor out common project-logic between build and check. 2022-10-28 17:20:41 +02:00
KtorZ 8d45b2a2f5
Enforce ordering of commands/sub-commands according to source
By default, clap orders command alphabetically, which can be quite
    confusing when listing commands with `--help`:

    ```
    SUBCOMMANDS:
        eval      Evaluate an Untyped Plutus Core program
        flat      Encode textual Untyped Plutus Core to flat bytes
        fmt       Format an Untyped Plutus Core program
        help      Print this message or the help of the given subcommand(s)
        unflat    Decode flat bytes to textual Untyped Plutus Cor
    ```

    It is possible to instrument clap to order commands in the same way
    they are declared in the source, giving us back the freedom to order
    and group them in a manner that makes sense, e.g.:

    ```
    SUBCOMMANDS:
        fmt       Format an Untyped Plutus Core program
        eval      Evaluate an Untyped Plutus Core program
        flat      Encode textual Untyped Plutus Core to flat bytes
        unflat    Decode flat bytes to textual Untyped Plutus Cor
        help      Print this message or the help of the given subcommand(s)
    ```
2022-10-28 17:20:41 +02:00
KtorZ 9c608ad9f1
Refactor cli's crate; split code into a hierarchy of modules.
This follows a simple convention:

    - `main.rs` contains as little as possible and delegates both
      data-types definitions and command executions to sub-modules.

    - modules are named after their respective commands. For
      sub-commands,

    - Each command module can be in one of two forms:

      - Either it is a leaf command, and it then contains an `Args`
	struct that defines the command arguments; and a function
	`exec` when outlines the execution logic.

      - Or, it is a group command with multiple sub-commands. In which
	case the module defines a `Cmd` struct encapsulating all
	sub-commands; and also an `exec` function which simply
	dispatches the logic to sub-functions.

    ---

    This commit also removes the `dev` command which is currently
    unused. The rationale being: if it's not there, it's not there.
2022-10-28 17:20:39 +02:00
KtorZ 6d0d938fb9
Extra project utilities in their own crate.
This was currently in the 'cli' crates, but this code is pretty standalone and need not to be mixed with the rest of the cli logic.
  Ideally, we want the cli crate to be only a thin wrapper over functionality available from the rest of the lib crates.
2022-10-28 13:48:40 +02:00
Turner aabcacbe87 Expose Pallas stuff, bump version, update changelog 2022-10-27 20:40:37 -07:00
rvcas 819256df99 feat: wrap up adding uplc builtins for now 2022-10-25 18:52:27 -04:00
rvcas d5d2ba9cd7 feat: start creating aiken/builtin module 2022-10-25 18:52:27 -04:00
rvcas a41d05f7b6 feat: change project structure 2022-10-24 00:09:00 -04:00
rvcas 825783ca61 feat: typecheck If expressions 2022-10-24 00:09:00 -04:00
rvcas 5244e58c9f feat: typechecking is working 2022-10-24 00:09:00 -04:00
rvcas cabc653167 feat: start expr inference 2022-10-24 00:09:00 -04:00
rvcas 81c87ab4da feat: register import, types, and values in environment 2022-10-24 00:09:00 -04:00
rvcas d0287d418b feat: add prelude 2022-10-24 00:09:00 -04:00
rvcas 4df3de0a03 feat: some boilerplate for typechecking 2022-10-24 00:09:00 -04:00
rvcas ed2ef4fa9b feat: sort modules and detect cycles 2022-10-24 00:09:00 -04:00
rvcas 15c774b7d0
Release 0.0.21
aiken@0.0.21
flat-rs@0.0.21
uplc@0.0.21

Generated by cargo-workspaces
2022-10-23 17:58:21 -04:00
Kasey White c89690aa77 Create unknown constructor error for decode 2022-10-23 17:54:21 -04:00
Kasey White 360a5b6017 preceding bytes output changes if you error before position 5 2022-10-23 17:54:21 -04:00
Kasey White 56984dea36 more spacing for parse error 2022-10-23 17:54:21 -04:00
Kasey White 15cfb22c8f more detailed parse errors when decoding with flat 2022-10-23 17:54:21 -04:00
alessandrokonrad 4ef654b660 fixed clippy issue 2022-10-22 18:01:36 -04:00
alessandrokonrad c6de827721 added apply_params_to_script function 2022-10-22 18:01:36 -04:00
alessandrokonrad e6f3c40429 changed i64 -> i128 2022-10-19 17:04:43 -04:00
rvcas ce875a3c47
Release 0.0.20
aiken@0.0.20
aiken-lang@0.0.20
flat-rs@0.0.20
uplc@0.0.20

Generated by cargo-workspaces
2022-10-17 17:22:50 -04:00
alessandrokonrad a83c731eb1 fixed err description 2022-10-17 08:35:45 -04:00
alessandrokonrad ad542a68e8 removed unnecessary return statement 2022-10-17 08:35:45 -04:00
alessandrokonrad 0856f6ccf2 added checked operators to some DefaultFunction 2022-10-17 08:35:45 -04:00
alessandrokonrad cfc1f92646 leave as i128 2022-10-17 08:35:45 -04:00
alessandrokonrad 4e8fd53e70 fixed comments 2022-10-17 08:35:45 -04:00
alessandrokonrad a14dae5863 changed slot_length to u32 2022-10-17 08:35:45 -04:00
alessandrokonrad 28b9fed8e5 added i128 integer support 2022-10-17 08:35:45 -04:00
rvcas 6e7ea45e11 fix: flip the cbor_hex if condition 2022-10-13 10:56:04 -04:00
rvcas da89e9902c feat: starting to get pretty error messages 2022-10-11 14:34:27 -04:00
rvcas 59d7b54473 feat: start integrating miette 2022-10-11 14:34:27 -04:00
rvcas 57dc50e3aa chore: temp allow dead code 2022-10-09 15:39:28 -04:00
rvcas 03d4a6f1e1 chore: rename 2022-10-09 15:39:28 -04:00
rvcas ff26db2245 feat: start project building 2022-10-09 15:39:28 -04:00
rvcas 2896b92203
Release 0.0.19
aiken@0.0.19
aiken-lang@0.0.19

Generated by cargo-workspaces
2022-10-04 17:10:21 -04:00
rvcas 6de41e64be feat: add simple check command 2022-10-04 17:09:43 -04:00
rvcas 6ef8ba5c35 feat: if expressions 2022-10-04 16:32:32 -04:00
rvcas dba82d544d feat: record update syntax 2022-10-04 16:32:32 -04:00
rvcas 3ad915cafd fix: list spread allowing no comma before spread 2022-10-04 16:32:32 -04:00
rvcas fb1ff759e1 feat: function calls and captures 2022-10-04 16:32:32 -04:00
rvcas 1b61f4b25b feat: field access 2022-10-04 16:32:32 -04:00
rvcas 34492f600c test: empty function definition 2022-10-04 16:32:32 -04:00
rvcas 512431d27f feat: anonymous functions 2022-10-04 16:32:32 -04:00
rvcas 695ac409b7 feat: assert and boolean negation 2022-10-04 16:32:32 -04:00
rvcas c7c11d1bd5 feat: finish when clauses 2022-10-04 16:32:32 -04:00
Kasey White 722dc4b477 work on adding when clause 2022-10-04 16:32:32 -04:00
Kasey White 118a5ac54e add some block parsing and a test (incomplete) 2022-10-04 16:32:32 -04:00
rvcas 4acb849f09 fix: include return type in one function def 2022-10-04 16:32:32 -04:00
rvcas 55f906482a feat: strip for release builds 2022-10-04 16:32:32 -04:00
rvcas c5450d37d5 chore: move lang tests to a submodule 2022-10-04 16:32:32 -04:00
rvcas 43b147a9e0 feat: lists and flatten sequences 2022-10-04 16:32:32 -04:00
rvcas 3208dab718 feat: finish parsing let bindings 2022-10-04 16:32:32 -04:00
Kasey White 3c5039134f attempt to parse let 2022-10-04 16:32:32 -04:00
Kasey White 60359ec9b0 add pipeline and logical ops to expr parsing
Co-authored-by: rvcas <x@rvcas.dev>
2022-10-04 16:32:32 -04:00
rvcas fff38e30d2 test: add more stuff to get successfully parsing 2022-10-04 16:32:32 -04:00
rvcas 8e3b32fe2c
Release 0.0.18
aiken@0.0.18
uplc@0.0.18

Generated by cargo-workspaces
2022-09-27 09:15:41 -04:00
rvcas 037297880c
Release 0.0.17
aiken@0.0.17
uplc@0.0.17

Generated by cargo-workspaces
2022-09-27 09:15:26 -04:00
rvcas 8f9481079c
Release 0.0.16
aiken@0.0.16
uplc@0.0.16

Generated by cargo-workspaces
2022-09-27 09:14:11 -04:00
alessandrokonrad f3b9d33f32 added deserialisation error to machine 2022-09-27 09:13:00 -04:00
rvcas 94bfc2846c
Release 0.0.17
aiken-lang@0.0.17

Generated by cargo-workspaces
2022-09-26 17:13:44 -04:00
rvcas 4c1b04e022
chore: add Cargo.toml fields 2022-09-26 17:13:30 -04:00
rvcas 65f39432fa
Release 0.0.16
aiken@0.0.16
aiken-lang@0.0.16

Generated by cargo-workspaces
2022-09-26 17:11:01 -04:00
Lucas 28553e3d03
Merge pull request #33 from txpipe/lang
Lang
2022-09-26 17:10:30 -04:00
rvcas 119a6f1e77
feat: use pretty assert 2022-09-26 17:04:54 -04:00
rvcas ae2866f784
Release 0.0.15
aiken@0.0.15
uplc@0.0.15

Generated by cargo-workspaces
2022-09-26 16:34:26 -04:00
alessandrokonrad 3256bfbc32 Wrapped errors in redeemer error 2022-09-26 16:33:52 -04:00
rvcas 81dd826ab8
Merge branch 'main' into lang 2022-09-26 11:15:02 -04:00
rvcas 4f26957806
feat: some expr with precendence parsing 2022-09-26 11:14:42 -04:00
rvcas e817b39e4c
Release 0.0.14
aiken@0.0.14
uplc@0.0.14

Generated by cargo-workspaces
2022-09-26 09:59:28 -04:00
alessandrokonrad 5ec991d83a fixed error handling in eval raw 2022-09-26 03:24:31 -04:00
rvcas c08f6a8454
Merge branch 'main' into lang 2022-09-25 17:44:20 -04:00
rvcas 25790287b7
Release 0.0.13
aiken@0.0.13
uplc@0.0.13

Generated by cargo-workspaces
2022-09-24 20:35:36 -04:00
rvcas 08596588a7
feat: output total budget spent from cli 2022-09-24 20:23:51 -04:00
rvcas 4166e27fd7
chore: v1 comments 2022-09-24 19:52:40 -04:00
rvcas 8620332b75
feat: move input from json to helper method 2022-09-24 19:40:07 -04:00
Kasey White 3cb24a1d00 update test mem and cpu assertions for eval tx tests 2022-09-24 18:19:18 -04:00
alessandrokonrad aa111f0a65 fixed slot 2022-09-25 00:01:01 +02:00
alessandrokonrad 35d09c642b fixed time conversion 2022-09-24 23:59:58 +02:00
alessandrokonrad fb0af3cfcf fixed bugs 2022-09-24 17:47:07 -04:00