Kasey White
30487cc232
fix test 23
2022-12-27 19:35:08 -05:00
Kasey White
919ea6c723
tuple destructuring nested and not now works
2022-12-27 19:35:08 -05:00
Kasey White
a08c615da4
checkpoint
2022-12-27 19:35:08 -05:00
Kasey White
b7d506a8db
nested lists now work
2022-12-27 19:35:08 -05:00
Kasey White
6126ee4cb4
checkpoint
2022-12-27 19:35:08 -05:00
alessandrokonrad
b97570bc00
Fixed clippy issue
2022-12-27 17:08:05 -05:00
alessandrokonrad
c6b5380c27
Fixed ex unit budget limit per redeemer
2022-12-27 17:08:05 -05:00
rvcas
01f2142606
fix: the push was in the wrong place
2022-12-23 22:00:59 -05:00
rvcas
cbaf629645
feat: warn if no validators on build
2022-12-23 22:00:59 -05:00
rvcas
38a716d94e
feat: allow error to hold a label
2022-12-23 15:52:44 -05:00
rvcas
37196a29ee
feat: error keyword
2022-12-23 15:52:44 -05:00
rvcas
22103739c3
chore: some clippy warnings
2022-12-23 15:52:44 -05:00
KtorZ
39f5d1a86d
Make build, check and docs target directory an (optional) argument
...
Instead of being an option. Feels more natural that way.
2022-12-23 20:23:27 +01:00
KtorZ
b1b57406e7
Do not generate placeholder files when creating new projects.
...
And fix the --lib flag to be a flag.
2022-12-23 20:19:28 +01:00
KtorZ
7b9ea5dabb
Add links to the user-manual to errors, when applicable.
2022-12-23 19:50:14 +01:00
KtorZ
69f060e675
Rework all errors to provide better help text.
2022-12-23 19:27:06 +01:00
KtorZ
c47c50ffb8
Show most type-checking error on a single line; reads better.
2022-12-23 00:25:18 +01:00
KtorZ
ce0c6e0d0f
Use smart-constructor for UnexpectedLabeledArg errors.
...
Reduce duplications and keep the formatting of the error inside the error module.
2022-12-23 00:24:57 +01:00
KtorZ
dca633da48
Refactor 'UnknownVariable' and 'UnknownTypeConstructor' as smart-constructor.
2022-12-23 00:09:07 +01:00
KtorZ
aa2a235790
Suggest possible candidate on unknown imports.
...
## Before
```
× Type-checking
╰─▶ Unknown module field 'ValidityRaneg' in module 'aiken/transaction'
```
## After
```
× Type-checking
╰─▶ Unknown import 'ValidityRaneg' from module 'aiken/transaction'
╭─[../stdlib/validators/tmp.ak:2:1]
2 │ use aiken/interval.{Interval, IntervalBound, IntervalBoundType}
3 │ use aiken/transaction.{ScriptContext, ValidityRaneg}
· ─────────────
4 │
╰────
help: Did you mean to import 'ValidityRange'?
```
2022-12-22 23:46:17 +01:00
KtorZ
70b1ec4324
Add function to calculate lenvenshtein distance of two strings
...
Will be useful to make import or usage suggestions.
2022-12-22 23:44:15 +01:00
KtorZ
666761efef
Make 'UnexpectedLabelArg' errors more helpful
...
## Before
```
× Checking
╰─▶ Unexpected labeled argument
t
╭─[/Users/mati/Devel/OpenSource/time_lock_aiken/validators/time_lock.ak:13:1]
13 │ let now = when context.transaction.validity_range.lower_bound.bound_type is {
14 │ Finite { t } -> t
· ─
15 │ NegativeInfinity -> 0
╰────
```
## After
```
× Type-checking
╰─▶ Unexpected labeled argument 't'
╭─[../stdlib/validators/tmp.ak:10:1]
10 │ let now = when context.transaction.validity_range.lower_bound.bound_type is {
11 │ interval.Finite { t } -> t
· ─
12 │ interval.NegativeInfinity -> 0
╰────
help: The constructor 'Finite' does not have any labeled field. Its fields
must therefore be matched only by position.
Perhaps, try the following:
╰─▶ interval.Finite(t)
```
2022-12-22 21:45:49 +01:00
KtorZ
0682781460
Better errors when using unknown data-type constructor.
...
## Before
```
× Checking
╰─▶ Unknown variable
Finite
╭─[../stdlib/validators/tmp.ak:10:1]
10 │ let now = when context.transaction.validity_range.lower_bound.bound_type is {
11 │ Finite { t } -> t
· ────────────
12 │ NegativeInfinity -> 0
╰────
```
## After
```
× Type-checking
╰─▶ Unknown data-type constructor 'Finite'
╭─[../stdlib/validators/tmp.ak:10:1]
10 │ let now = when context.transaction.validity_range.lower_bound.bound_type is {
11 │ Finite { t } -> t
· ────────────
12 │ NegativeInfinity -> 0
╰────
help: Did you forget to import it?
Data-type constructors are not automatically imported, even if their type is
imported. So, if a module `aiken/pet` defines the following type:
┍━ aiken/pet.ak ━━━━━━━━
│ pub type Pet {
│ Cat
│ Dog
│ }
You must import its constructors explicitly to use them, or prefix them
with the module's name.
┍━ foo.ak ━━━━━━━━
│ use aiken/pet.{Pet, Dog}
│
│ fn foo(pet : Pet) {
│ when pet is {
│ pet.Cat -> // ...
│ Dog -> // ...
│ }
│ }
```
2022-12-22 19:34:50 +01:00
KtorZ
2aa4429231
Rename Unit -> Void
2022-12-22 18:52:28 +01:00
KtorZ
5cf9742e5e
Move tuple-index hint as diagnostic's help
2022-12-22 18:52:28 +01:00
Lucas
168196f903
Merge pull request #210 from aiken-lang/fix-if-expressions
2022-12-22 12:46:24 -05:00
KtorZ
1f15c2ca20
Sort import alphabetically when formatting.
...
Fixes #211 .
2022-12-22 18:00:25 +01:00
rvcas
c723f4f796
feat: redo the new command
2022-12-22 10:52:49 -05:00
KtorZ
1ca705005d
Fix formatting of if-expressions
...
Fixes #129 .
2022-12-22 16:51:23 +01:00
Matthias Benkort
a129a8a0d3
Merge pull request #208 from aiken-lang/tuple-when2
...
fix todo and list and tuple not equal operator
2022-12-22 10:28:06 +01:00
KtorZ
7ad8babf17
Rename ArgName::{Discard,NamedLabeled} as ArgName::{Discarded,Named}
...
Now that the other variants are gone, this is clearer.
2022-12-22 09:36:44 +01:00
KtorZ
8ab05509b1
Remove Named & DiscardLabeled, now unused
...
And unify everything into either 'Discard' or 'NamedLabeled'
2022-12-22 09:36:44 +01:00
KtorZ
bf7cdfba73
Implement parser & type-checker for tuple indexes.
...
```aiken
fn foo() {
let tuple = #(1, 2, 3, 4)
tuple.1st + tuple.2nd + tuple.3rd + tuple.4th
}
```
2022-12-22 09:14:23 +01:00
Kasey White
b1dec1259d
fix todo and list and tuple not equal comparator
2022-12-22 01:09:06 -05:00
rvcas
7867793bcd
feat: on fmt if label and name are the same only print one
2022-12-21 19:17:15 -05:00
rvcas
4c4e454ea3
feat: all function args are now labeled implicitly
2022-12-21 19:17:15 -05:00
rvcas
42204d2d71
chore: make folder names match crate name
2022-12-21 18:11:07 -05:00
rvcas
9028424a96
feat: rename Nil to Unit
2022-12-21 17:27:20 -05:00
rvcas
9df5005820
feat: add IData and BData builtins
2022-12-21 14:39:46 -05:00
rvcas
429126e38f
feat: add trace
2022-12-21 14:39:46 -05:00
KtorZ
9068c89c00
Show trace logs as part of the test output when any.
...
```
┍━ test ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
│ PASS [mem: 6370, cpu: 2591822] trace_1
│ ↳ is negative
│ ↳ is non-negative
┕━━━━━━━━━ 1 tests | 1 passed | 0 failed
```
2022-12-21 14:39:46 -05:00
KtorZ
2fc14c7c1f
Make box-drawing code more reusable
...
- Move it to 'pretty' module.
- Have function work on colored strings titles and contents
2022-12-21 14:39:46 -05:00
KtorZ
f26737ecb4
Remove the 'trace/try' keyword, use builtin.trace
...
I am not entirely sure what the intent was for that keyword, but
nothing really matched between the parser, the formatter and the uplc
code gen. I don't think there's any need for a keyword here, trace is
already readily available from the builtins.
2022-12-21 14:39:46 -05:00
KtorZ
2aad1794a1
make dependencies optional in Aiken's manifest.
2022-12-21 14:32:40 +01:00
Matthias Benkort
e6f4b378e1
Merge pull request #146 from aiken-lang/micah/file-errors
...
Raise more descriptive errors when the `aiken.toml` manifest is missing.
2022-12-21 11:05:02 +01:00
Micah Kendall
bd816615d7
Display more descriptive error on missing manifest
...
Before:
```
❯ aiken check
Error:
× No such file or directory (os error 2)
```
After:
```
❯ aiken check
Error:
× Missing 'aiken.toml' manifest in /Users/ktorz/Documents/Projects/aiken-lang/aiken
help: Try running `aiken new <REPOSITORY/PROJECT>` to initialise a project with an example manifest.
```
Co-authored-by: KtorZ <matthias.benkort@gmail.com>
2022-12-21 10:10:17 +01:00
KtorZ
28c907d9de
Fix acceptance 021: allow registering type aliases in any order.
...
This is the most intuitive thing I could come up with: since the
problem is mainly due to the order in which we try declaring the
aliases, then it suffices to simply try as much as we can, and retry
on failure until there's no more failure.
Note that it's important to detect cycles if we do such thing (which
we can by noticing that a given iteration didn't make any progress).
It works pretty well in the end and even allow us to define a new kind
of type error should there be a cyclic definition.
2022-12-21 09:43:37 +01:00
KtorZ
a3591cc7dc
Fix 'aiken new', now require project name in specific format.
2022-12-21 00:19:24 +01:00
rvcas
796ac28044
feat: change the printing a little
2022-12-20 16:32:31 -05:00
rvcas
e34cbc8e7e
feat: compile deps
2022-12-20 16:32:31 -05:00
rvcas
b06bf610b7
feat: dep downloading now works
2022-12-20 16:32:31 -05:00
rvcas
6a0b1ce5c3
feat: start trying to use deps
2022-12-20 16:32:31 -05:00
rvcas
5bd2a9336c
feat: tons of boilerplate for fetching packages
2022-12-20 16:32:31 -05:00
rvcas
a6fd8f92a8
feat(deps): start laying out some types and functions
2022-12-20 16:32:31 -05:00
rvcas
b3266fb837
chore: clippy warnings
2022-12-20 16:32:31 -05:00
Kasey White
ac14512706
feat: fix nil equals nil, and fix funcs with discard params
2022-12-20 15:40:01 -05:00
Kasey White
9177267570
feat: test 24 passes
...
fixed issue with is_tuple in types
minor monomorphize change
2022-12-20 15:40:01 -05:00
Kasey White
17603e8cca
checkpoint
2022-12-20 15:40:01 -05:00
Kasey White
43ff66cd01
all tests pass besides todo in 13, couple changes
...
Use more cost efficient recurse
Monomorphize needed to deal with function arg return types
bytearray variant added for variant names
2022-12-19 00:41:27 -05:00
KtorZ
b6556e6739
Rework 'new' to not generate needless boilerplate
...
Instead, prints out a README with useful informations.
2022-12-19 00:41:27 -05:00
Kasey White
421e7148d0
zero arg functions now work: test 15
2022-12-19 00:41:27 -05:00
Kasey White
3a765ddef5
add better todo
2022-12-19 00:41:27 -05:00
KtorZ
529b3e87ff
Rename builtin as 'verify_ed25519_signature'
...
It's best to keep builtin as-close-as possible to their standard name
because they're hard to document. We can then leverage the prelude and
the standard lib for convenient names.
2022-12-19 00:41:27 -05:00
KtorZ
44d72c046e
Print files / tests as they're processed when --debug
...
This is because there's no proper way to catch panics in Rust, which
makes it hard to know _which_ test did cause the panic when this
happen. The stack trace gives little detail about this, but we can
print this information before it happens -- making it easier to
identify the culprit.
2022-12-19 00:41:27 -05:00
Kasey White
eb386f4606
feat: Add nil support for test 19
2022-12-19 00:41:27 -05:00
Kasey White
5b908aaeb7
fix: fieldsexpose getting wrong generic id and not replacing type
2022-12-19 00:41:27 -05:00
Kasey White
47fae21af7
minor fix to monomorphize
2022-12-19 00:41:27 -05:00
Kasey White
2bce818110
chore: fix list insertion order, function insertion order,
...
and Inner function issues with variant
2022-12-19 00:41:27 -05:00
Kasey White
e6c59dca2c
cleanup if then else a bit
2022-12-19 00:41:27 -05:00
Kasey White
eddd202253
tests 1 through 10 pass now, add negate
2022-12-19 00:41:27 -05:00
rvcas
841babae5c
chore: clean some links up so they point to the new repo
2022-12-17 11:19:02 -05:00
KtorZ
1055e342b1
Tweak syntax-highlighting for better output.
2022-12-17 17:09:13 +01:00
KtorZ
202678e21e
Improve rendering of type-signatures in docs
...
- [x] Display function arguments using a newline-multiline strategy
when the signature gets too long. For example:
```
union_with
( left left: AssocList<key, value>
, right right: AssocList<key, value>
, with with: fn(key, value, value) -> value
) -> AssocList<key, value>
```
- [x] Show type-aliases as type-aliases in signatures; provided
they've been specified as type annotations. Otherwise, fallback to
the inferred type.
- [x] Do not show argument names in signatures, but show labels when
they're present. This reflects more the original intent behind
labels (which are meant as public-facing documentation).
2022-12-17 13:07:28 +01:00
KtorZ
579030db36
Highlight current module in the sidebar.
2022-12-17 12:13:51 +01:00
KtorZ
a34d7d4dbb
Revert 71e71ff
...
Redundant with the `kind: ModuleKind` field already.
2022-12-17 11:54:39 +01:00
KtorZ
1178fa3f01
Add source repository to config & docs.
2022-12-17 04:11:54 +01:00
KtorZ
a83900409b
Adjust docs theme to catppuccin
...
- light-mode uses catpuccin-latte
- dark-mode uses catpuccin-mocha
2022-12-17 04:11:54 +01:00
KtorZ
5c0920d6bb
Factor out common module prefix when all modules are under a same namespace.
2022-12-17 02:38:04 +01:00
KtorZ
600c7747da
Do not show link to source.
...
This require slightly more work and has little benefits at this stage given that the sources are literally inlined in the docs.
2022-12-17 01:02:21 +01:00
KtorZ
e7f729c61b
Define HighlightJS definition for Aiken.
2022-12-17 01:02:21 +01:00
KtorZ
e1065e892a
Support module constants in docs.
2022-12-17 01:02:21 +01:00
KtorZ
ac0d180c5c
Apply suggestions from clippy.
2022-12-17 01:02:21 +01:00
KtorZ
873bd85d8b
Implement modules' extra, to get function & module comments in docs.
2022-12-17 01:02:21 +01:00
KtorZ
536c9457b3
Refactor project source parsing
...
There was already a 'parse_sources' function, and 'parse' was actually more about typechecking than parsing.
2022-12-17 01:02:21 +01:00
KtorZ
b323c95241
Fix type-parameter pretty printing (use chevrons)
2022-12-17 01:02:20 +01:00
KtorZ
d2c6d27545
Support data-types in documentation.
2022-12-17 01:02:20 +01:00
KtorZ
1f3f769b53
Add command 'docs' for generating project documentation.
2022-12-16 18:34:05 +01:00
KtorZ
6da53fd875
Add a 'docs' method to projects, using the newly introduced docs::generate_all
2022-12-16 18:33:36 +01:00
KtorZ
16b0a9fbe4
Introduce 'docs' for generating documentation for aiken libraries.
2022-12-16 18:33:04 +01:00
KtorZ
71e71fffe8
Define 'is_library' for 'CheckedModule'
...
So that we can separate libraries from executable modules if necessary.
2022-12-16 15:33:27 +01:00
jmhrpr
775e90d782
chore: remove unnecessary Option wrapper on type
2022-12-15 18:22:31 -05:00
jmhrpr
325a7b7b45
fix: correct V1 to_plutus_data() for txout with no datum hash
2022-12-15 18:22:31 -05:00
rvcas
0188003323
refactor: move helper option builder to lang
2022-12-15 13:28:30 -05:00
rvcas
42f8a694f4
tests: missing token broke a test
2022-12-15 11:12:35 -05:00
rvcas
53bc9aa56f
fix: properly capture empty lines
2022-12-15 11:12:35 -05:00
Matthias Benkort
d9d1310c6d
Merge pull request #166 from aiken-lang/some-interesting-test-cases
...
Include generics to get test cases working
2022-12-15 02:07:05 +01:00
KtorZ
5024bd884c
Remove debug line for pretty-printing test, and add '--debug' flag to 'check instead.
2022-12-15 02:02:10 +01:00
KtorZ
e5972640d2
Remove 'eval' command.
...
Was introduced as a work-around to get some debugging info out of scripts, but tests do now provide the same capability with a better output and, do so automatically.
2022-12-14 22:14:35 +01:00
KtorZ
978a6c6981
Collect and display evaluation hints on test failures.
2022-12-14 22:00:56 +01:00
KtorZ
7b22b63ad8
move 'EvalInfo' to project::script & define a new 'EvalHint'
2022-12-14 22:00:09 +01:00
KtorZ
921e7abbb6
Move pretty-printing utilities to project::pretty
2022-12-14 21:59:09 +01:00
Carlos Souza
6343fa7105
Change generated assets file extensions
2022-12-14 12:48:29 -05:00
KtorZ
87546e0abd
Return non-zero exit code on test failure
...
And integrated test results with miette report.
2022-12-14 18:44:31 +01:00
Carlos Souza
c77b7c293b
Fix errors on aiken build
...
- Update generics syntax
- Add required args to default validator function
This allows running a successful aiken build from
files generated by aiken new.
2022-12-14 12:03:30 -05:00
KtorZ
3a9cc668fc
Use bright_black (i.e. grey) for box drawing.
2022-12-14 17:45:16 +01:00
KtorZ
2d6fc8bd54
Group test results by module.
2022-12-14 17:34:24 +01:00
Kasey White
3c664b9651
test 1-9 passing
2022-12-14 09:45:26 +01:00
rvcas
b71315ba2f
chore: trying to fix test 5
2022-12-14 09:45:26 +01:00
Kasey White
6635a918b5
clean up minor warnings
2022-12-14 09:45:26 +01:00
KtorZ
b6962ba9d3
Add 'eval' command to evaluate target aiken function
...
Pretty useful for debbugging. Though, on second-thoughts, this is
something we may want to review later and maybe have that done by
default for tests.
At the moment, we expects tests to unify to `bool`, and treat `false`
values as failing tests. Yet, on failures, this gives little
information about what's wrong with the test.
It'd be nice to either have better way to assert in tests, or, to
simply accept non-bool tests, and show whatever the test evaluates
to as a debug output.
2022-12-14 09:45:26 +01:00
rvcas
11c793dd2a
feat(Type): add is_option method
2022-12-14 09:45:25 +01:00
Kasey White
8393d8555c
fill constants to data so now test 006 passes
2022-12-14 09:45:25 +01:00
Kasey White
dc5ae296db
implement anonymous functions, more tests pass now
2022-12-14 09:45:25 +01:00
Kasey White
d78e2c9c6f
feat: finish up generic match cases
2022-12-14 09:45:23 +01:00
Kasey White
e43063d447
overhaul monomorphize to cover all generic cases
...
test b passes
2022-12-14 09:45:23 +01:00
Kasey White
15dc202810
Feat: generic function call tests work
2022-12-14 09:45:23 +01:00
Kasey White
e4d9ca4586
support generics
2022-12-14 09:45:23 +01:00
rvcas
16fbf5bbcd
feat: fix recursive functions
2022-12-14 09:45:22 +01:00
Kasey White
3d3b3d7e10
checkpoint
2022-12-14 09:45:22 +01:00
KtorZ
95986fed83
Fix lexer for signed integers.
2022-12-13 19:52:30 -05:00
KtorZ
18bf89418a
Fix codegen for binary operator 'or'
...
a && b → if a { b } else { false }
a || b → if a { true } else { b }
2022-12-13 18:52:23 -05:00
KtorZ
431b0cfcf2
Preserve newlines after blocks of comments.
...
This is an example of output from the formatter now:
```
//// Some module documentation
// foo
const a: Int = 42
// Some comment block
// For which newlines are respected.
// Foo
// Another one
/// add_one documentation
pub fn add_one(n: Int) -> Int {
// n + 1
n + 1
}
```
before this commit, comments would all be collapsed into one group
above the function as:
```
// Some comment block
// For which newlines are respected.
// Foo
// Another one
/// add_one documentation
pub fn add_one(n: Int) -> Int {
```
2022-12-13 18:52:23 -05:00
KtorZ
22a526bb13
Enforce unique top-level names for tests too.
...
This prevents the compiler from crashing later on. Test names should be unique and not clash with function names.
2022-12-13 18:52:23 -05:00
rvcas
4dfb454d8a
refactor: change match to if matches!
2022-12-13 10:34:34 -05:00
KtorZ
1637a0d30e
Add --match-tests to 'check' cmd
...
For running only tests matching a certain pattern. Useful when doing TDD.
2022-12-13 10:34:34 -05:00
rvcas
69db9696d6
feat: prefix tuples with hash again cause ambguity with call
2022-12-13 10:27:17 -05:00
rvcas
6dc4738b66
feat: update formatter for new changes
2022-12-12 19:22:11 -05:00
rvcas
a4f6388eca
feat: remove the need for # in front of tuples
2022-12-12 19:22:11 -05:00
rvcas
dfc57b347a
feat: switch generic type args to be delimited by chevrons
2022-12-12 19:22:11 -05:00
rvcas
a18aad7daf
refactor(project): use new Options instead of a spiderweb of bools
2022-12-10 19:14:58 -05:00
KtorZ
0eb3cf221b
Trigger and report on more events in the compilation pipeline.
2022-12-09 15:04:02 +01:00
KtorZ
749d8ecb10
Fix formatter to not prefix tests as 'pub'
2022-12-09 14:35:50 +01:00
KtorZ
d09d38d65b
Add a flag '--skip-tests' to the 'check' cmd.
...
So that tests can be skipped, and the old behavior recovered if necessary.
Tests execution is on by default however.
2022-12-09 14:14:15 +01:00
rvcas
4ad74bef1f
refactor: move prints to cli via EventListener trait
2022-12-08 19:25:28 -05:00
KtorZ
801ab3989e
feat: display test runner summary alongside test results.
...
Moar sexy.
2022-12-08 19:25:28 -05:00
KtorZ
4cae4a4467
pad left instead of right, so units/thousands are aligned.
2022-12-08 19:25:28 -05:00
rvcas
2ba712eef6
feat: start adding padding to test output
2022-12-08 19:25:28 -05:00
KtorZ
5770ea2456
Make test runner more sexy.
...
Using colors.
2022-12-08 19:25:28 -05:00
KtorZ
db25ff3817
refactor: run_tests to avoid repetition.
2022-12-08 19:25:28 -05:00
rvcas
e9d8e1d317
feat: print budget consumed by test
2022-12-08 19:25:24 -05:00
rvcas
141a9aef30
feat: impl Sub for ExBudget
2022-12-08 19:24:20 -05:00
rvcas
f250d3df84
feat: eval should take initial budget
2022-12-08 19:24:20 -05:00
KtorZ
4cdb5d8d02
Implement test runner.
...
easy.
2022-12-08 19:24:20 -05:00
rvcas
384c4daa4a
feat: add test_gen function
2022-12-08 19:24:20 -05:00
KtorZ
bc785673b2
Fix compilation errors for the newly introduce test & add type inference.
...
Tests are basically functions for which the return type should unify with bool. In principle, the type checker could also check that a test function has no arguments but, a test function with arguments wouldn't parse in the first place; feels a bit hacky but it works when considering the pipeline as a whole.
Note that the code generation is still to be done.
2022-12-08 19:24:20 -05:00
KtorZ
ea48747825
Extend parser for 'test' keyword.
2022-12-08 19:24:20 -05:00
rvcas
a65b4aa471
feat: add test def and test token
2022-12-08 19:24:20 -05:00
Kasey White
80a9b7b36a
feat: add map support and tuple deconstruction in let
2022-12-08 14:28:30 -05:00
Kasey White
26d2a95618
missing a couple forces
2022-12-08 14:28:30 -05:00
Kasey White
2f7131e9b8
feat: add tuples and streamline conversion of types to and from data
2022-12-07 08:40:23 -05:00
rvcas
45990f1f84
feat: unify tuples and stdlib updates
2022-12-06 22:23:40 -05:00
Kasey White
3f47a1f4b8
fix: constr issue
...
- also fixed constant parsing
- added new cbor flag to eval
Co-authored-by: rvcas <x@rvcas.dev>
2022-12-05 22:55:57 -05:00
rvcas
7875af7d35
feat: better errors for incorrect contructor making
2022-12-05 18:11:04 -05:00
rvcas
7e6dc978a1
feat: commit latest build assets for sample
2022-12-05 14:18:44 -05:00
rvcas
ed3d143477
feat: rename ir to air
2022-12-05 14:18:44 -05:00
rvcas
24d724e10e
chore: fix fmt
2022-12-05 14:18:44 -05:00
Kasey White
3e68204768
replace uplc with uplc_two and move structs over
2022-12-05 14:18:44 -05:00
Kasey White
22fbef2fbe
feat: finish up binops and fix constr creation
2022-12-05 14:18:44 -05:00
Kasey White
0fda535c50
feat: add module constants except for tuple
2022-12-05 14:18:44 -05:00
Kasey White
de9302a877
feat: finish list destructure in when matches
2022-12-05 14:18:44 -05:00
Kasey White
8cbdf97d22
finish uplc code gen for complex clauses with constr
2022-12-05 14:18:44 -05:00
Kasey White
f48039fd4f
Add ability to generate ir with complex constructor cases
2022-12-05 14:18:44 -05:00
Kasey White
64cbae938d
Add clause guard to IR and use it for complex clauses
2022-12-05 14:18:44 -05:00
Kasey White
e1d6ffa92a
add more binops
2022-12-05 14:18:44 -05:00
Kasey White
044d609a24
feat: nested constr access and module funcs now work
2022-12-05 14:18:44 -05:00
Kasey White
3d3beef7d4
feat: uplc code gen for functions and minor recursion fix
2022-12-05 14:18:44 -05:00
Kasey White
8f984ad131
fix up function definitions in the IR
2022-12-05 14:18:44 -05:00
Kasey White
02ee129615
feat: function insertion IR done, code gen will be easy
2022-12-05 14:18:44 -05:00
Kasey White
29a30aa61f
feat: finished when constr is for IR and code gen
2022-12-05 14:18:44 -05:00
Kasey White
3fb3a3240a
checkpoint
2022-12-05 14:18:44 -05:00
rvcas
86ea41adc3
feat: start when expressions
2022-12-05 14:18:44 -05:00
Kasey White
8b24a66b7e
add field access and list patterns are finished
...
Co-authored-by: rvcas <x@rvcas.dev>
2022-12-05 14:18:44 -05:00
Kasey White
abe29a3883
make progress on list deconstruction with IR
2022-12-05 14:18:44 -05:00
Kasey White
2a00b896fc
create ir and start to replace plutus code gen with ir
2022-12-05 14:18:44 -05:00
Kasey White
6870a5cab7
fix minor scope issue
2022-12-05 14:18:44 -05:00
Kasey White
e3267310c5
remove unListData
2022-12-05 14:18:44 -05:00
rvcas
84da69411d
chore: fix test
2022-12-04 21:12:29 -05:00
rvcas
f2c359f9d5
test(parser): add record creation tests
2022-12-04 21:12:29 -05:00
rvcas
85f839abe4
feat: support punning in record updates
2022-12-04 21:12:29 -05:00
rvcas
9ebc836b89
feat: handle punning in a non-ambiguous way
2022-12-04 21:12:29 -05:00
rvcas
391849bf37
feat: parser improvements
...
- record creation with punning
- disambiguate if condition from record creation with punning
- split parser tests up into many smaller ones
2022-12-04 21:12:29 -05:00
KtorZ
375499930a
Add UPLC support for 'ProtoList' & 'ProtoPair' constants
...
Supersedes #35 .
The syntax for these elements isn't "set in stone"; in the sense that it is unspecified in [input-output-hk/plutus](https://github.com/input-output-hk/plutus ). There's no visible plan from IOG to extend the Haskell parser to support this syntax, though there are samples of imagined syntax in the code. Thus, we can lead the way and simply choose a suitable syntax and let the Haskell implementation align to it later.
This syntax is thus inspired from input-output-hk/plutus' samples, with only a small change: we use `<` and `>` for encapsulating type declaration instead of `(`, `)`. There are already enough parentheses in the UPLC syntax, adding more reduces visibility.
Doing this, I've also added a lot more test cases for the UPLC parser. There could be more, but this is a good start.
Here are some example programs (taken from test cases) utilizing this syntax:
```
(program 0.0.0 (con list<bytestring> [#00 , #01 ]))
```
```
(program 0.0.0
(con pair
<integer, integer>
[14, 42]
)
)
```
```
(program 0.0.0
(con pair<string, list<integer>> ["foo", [14, 42]])
)
```
_(Note that this was mainly done as an exercise to get more familiar with Rust and parts of Aiken.)_
2022-12-03 10:16:16 -05:00
rvcas
5ec93a8692
feat: format bytearrays
2022-12-01 15:28:15 -05:00
rvcas
fedafed845
feat: add module constants
2022-12-01 15:28:15 -05:00
rvcas
34c8a58391
feat: complete language tour
2022-11-30 15:35:55 -05:00
rvcas
0823b78bf8
feat: some new features
...
- tuples `#(Int, Int)`
- `trace` and `trace("text")`
2022-11-28 22:33:53 -05:00
eyelash
6066e3176c
move `to_string()` outside of the match
2022-11-28 17:30:45 -05:00
vh-zuka
269cf8c13f
fix: update aiken new
2022-11-26 10:30:41 -05:00
rvcas
d5087dbcc7
fix: it's more consistent to have snakecase builtins
2022-11-24 18:36:22 -05:00
rvcas
67d160230b
feat: new build command flag
...
- `uplc` to optionally dump raw uplc
2022-11-24 18:17:03 -05:00
Kasey White
1c3511b073
insert def should run after all sequences have run
2022-11-24 17:51:49 -05:00
Kasey White
6babebde28
feat: support self recursion functions and fix making constrs
2022-11-24 15:19:32 -05:00
rvcas
09e77e1918
feat: display named source
2022-11-24 11:38:43 -05:00
rvcas
ba8855add9
fix: implicit discard in list patterns
2022-11-24 10:06:54 -05:00
rvcas
27e0286d01
fix: most places should allow trailing comma
2022-11-23 21:09:06 -05:00
rvcas
c07b9a1a81
feat: allow assignments to be cast to other types
2022-11-23 21:09:06 -05:00
rvcas
34d7a28351
feat: add check keyword and new assignment syntax
2022-11-23 21:09:06 -05:00
Kasey White
6687b9fe4c
add forces to pair usage and fix clippy
2022-11-23 17:57:02 -05:00
Kasey White
dc510b1c7a
feat: finish list deconstruct
2022-11-23 17:57:02 -05:00
Kasey White
e6f6d8a42d
small edge case to fix and some ordering to go
2022-11-23 17:57:02 -05:00
rvcas
1de2640a48
feat: list patterns
2022-11-23 17:57:02 -05:00
Kasey White
f09a3bd121
feat:list construction, no pairs yet
2022-11-23 17:57:02 -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
Kasey White
74712711c4
include when deconstructor discard
2022-11-20 15:42:12 -05:00
Kasey White
d4f3eafc22
refactor away from tuples
2022-11-20 15:42:12 -05:00
jacfra
0069c1f68a
correct typo
2022-11-19 15:35:07 -05:00
rvcas
89153a4d82
allow single var patterns to double as a label in records
2022-11-17 12:56:03 -05:00
rvcas
d94ae82901
fix: none does not need a type variable
2022-11-16 21:41:03 -05:00
alessandrokonrad
6c5ec9bb25
Extended ScriptContext; added Option to builtins
2022-11-16 21:34:46 -05:00
rvcas
72bf27d467
fix: better constructor pattern parsing
2022-11-16 21:30:43 -05:00
rvcas
ef9fd15e12
chore: remove loose println!
2022-11-16 14:49:06 -05:00
rvcas
132af027dc
feat(aiken-lang): add doc, module, and regular comment support
2022-11-16 14:28:02 -05:00
rvcas
f7313ee61a
feat: some parsing for comments
2022-11-16 14:28:02 -05:00
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
alessandrokonrad
3eb4fb7523
fixed bugs
2022-09-24 23:09:55 +02:00
Kasey White
ca2d8f0a1f
ada policy is now empty and mintValue includes 0 ada
2022-09-24 15:47:51 -04:00
alessandrokonrad
99a27f6a3d
new tests
2022-09-24 00:43:46 +02:00
Kasey White
3bb5826b91
change how mint gets converted to plutus data
2022-09-23 18:34:24 -04:00
Kasey White
c45643bb01
empty bytestring should return 0 not 1
2022-09-23 04:09:28 -04:00
Kasey White
9b6d4e20c7
check exunits for eval tests
2022-09-22 03:13:30 -04:00
rvcas
2572ed6bbd
fix: remove BadTerm
2022-09-19 16:40:08 -04:00
alessandrokonrad
169fa05572
added ex units from haskell plc
2022-09-19 22:32:56 +02:00
alessandrokonrad
3e10fcbfbb
changed example 4 to check 'False'
2022-09-19 22:15:31 +02:00
rvcas
caa88dab12
fix: valid condition for a script
2022-09-19 16:00:25 -04:00
Kasey White
6ccd0aa2fb
adding better debug for wrong term tag in uplc
2022-09-19 14:59:55 -04:00
alessandrokonrad
21d71e94b3
added more tests
2022-09-19 18:19:56 +02:00
alessandrokonrad
f12540d8e2
fixed missing script test
2022-09-19 17:17:15 +02:00
rvcas
0ba8787b97
chore: clippy
2022-09-19 11:11:52 -04:00
rvcas
f10e3836ad
feat: new error for bad term
2022-09-19 11:04:21 -04:00
alessandrokonrad
30ed8d9150
fixed initial_budget
2022-09-19 14:53:44 +02:00
alessandrokonrad
ea735428dd
fixed typos
2022-09-19 13:48:05 +02:00
alessandrokonrad
4a6496db3f
Replaced unreachable statements with Error
2022-09-19 13:38:56 +02:00
alessandrokonrad
1148863a43
Allow to set initial budget
2022-09-19 12:02:41 +02:00
alessandrokonrad
83bac598de
removed deprecated comment
2022-09-19 10:58:45 +02:00
alessandrokonrad
d5f398bc5f
Fixed output decoding for ResolvedInput
2022-09-19 10:50:25 +02:00
rvcas
6c34c9be19
feat: even more errors work
2022-09-19 01:05:33 -04:00
rvcas
9bab3187b1
feat: more errors
2022-09-19 00:39:52 -04:00
Harper
6e901de2f0
feat: implement script-related ledger checks for Tx Simulate ( #57 )
...
* feat: functions for extraneous/missing redeemers checks
* chore: typos
* feat: implement function to check for missing/extraneous scripts
* feat: check for missing/extraneous redeemers and scripts in eval_tx
* chore: add tests for missing/extraneous redeemers
* chore: remove duplicate file
2022-09-18 23:31:30 -04:00
rvcas
9e280f9cb5
feat: rename transaction eval and add error enum
2022-09-18 15:35:10 -04:00
rvcas
68fc0f643e
feat: add some v1 methods so that cost_mdls can be optional
2022-09-18 15:16:41 -04:00
Kasey White
dac25b6f41
fix cpu mem mix up on steps
2022-09-18 04:15:30 -04:00
alessandrokonrad
6619a0e431
moved cost_mdls language determination into eval_redeemer
2022-09-18 09:37:14 +02:00
Kasey White
472cea6c41
parameratize cost model
2022-09-17 21:12:48 -04:00
alessandrokonrad
d426f4922f
added eval_tx_raw
2022-09-16 17:13:42 +02:00
Kasey White
02a8a34fe8
expose tx simulation with simulate cli command
2022-09-16 04:35:20 -04:00
Kasey White
3f27bd9f13
move utils to uplc and break up
2022-09-16 04:00:29 -04:00
rvcas
ddf3cdb6ec
chore: use alpha 3 instead of main
2022-09-15 11:29:08 -04:00
rvcas
26deb6df10
fix: it compiles again
2022-09-15 11:27:33 -04:00
rvcas
348ed3b719
fix: changes from pallas bump
...
Co-authored-by: Kasey White <kwhitemsg@gmail.com>
2022-09-14 22:00:52 -04:00
rvcas
336af376e1
chore: bump pallas version
2022-09-14 18:52:42 -04:00
alessandrokonrad
806d98e5fc
added error messages to execution purpose
2022-09-14 18:52:05 -04:00