Kasey White
60736b4a54
chore: Add error when type casting without annotation
...
Also implement and test most of assert. Finishing last few cases.
2023-01-28 02:40:53 -05:00
Kasey White
fc88028034
some refactoring and adding assert on lists
2023-01-27 05:02:19 -05:00
Kasey White
d4eec1fe79
chore: Add scaffolding for assert
2023-01-27 05:02:19 -05:00
Kasey White
38c24cca01
single clause when not yet implemented
2023-01-27 05:02:19 -05:00
Kasey White
1af1b6d898
finalize aiken ir with typing
2023-01-27 05:02:19 -05:00
rvcas
4976ea4164
chore: add test for the new token captures
2023-01-26 10:16:29 -05:00
rvcas
703fcb451d
fix(parser,windows): capture carriage return properly
2023-01-26 10:16:29 -05:00
rvcas
3c97f057cc
chore: fix clippy
2023-01-24 12:07:06 -05:00
rvcas
ba05f1f070
feat: add label to span
2023-01-24 12:07:06 -05:00
rvcas
a485406e3d
fix: use the location of the pattern not the entire clause
2023-01-24 12:07:06 -05:00
rvcas
7206360baa
feat(when): single when clause now emits warning
2023-01-24 12:07:06 -05:00
Kasey White
e36f91c39c
fix: multiple list cases of the same length weren't being handled
2023-01-21 19:42:17 -05:00
Kasey White
e8fb386bdc
chore: Switch from hashmap and hashset to indexmap and indexset
2023-01-21 18:10:15 -05:00
KtorZ
5d7585cc05
Implement parser for when clause guard
...
With pretty parse errors on failures. The type-checker was already
implemented for those, so it now only requires some work in the code
generation.
Fixes #297 .
2023-01-21 17:43:13 +01:00
KtorZ
91bd0d1d77
Display warning help + minor error improvements.
2023-01-21 17:42:58 +01:00
KtorZ
333a990249
Fix parsing of subtractions and negations in the absence of space.
2023-01-21 12:43:11 +01:00
KtorZ
bb360cd7c8
Fix display of 'UnknownLabels'
...
This is a bit annoying as we are forced to use #[related] here which isn't quite what we want.
Ideally, this would use #[diagnostic_source] but, there's a bug upstream. See: zkat/miette#172 .
2023-01-21 11:37:19 +01:00
KtorZ
d905f24e7f
Forbid solo-assignment as the only function body
...
In the similar spirit to what we did for sequences. Yet, we need to handle the case of body being just an assignment -- or a trace of an assignment which is basically the same thing.
2023-01-21 10:32:06 +01:00
KtorZ
2101bb924d
Fix tuple-pattern parser
...
This case was originally left out but, tuple parsers are almost always exclusively starting with a NewLineLeftParen token.
2023-01-21 10:04:11 +01:00
KtorZ
d321b85df2
Refactor type errors back into macro annotations
...
Far less verbose than defining classes by hand, plus, it allows to have everything about a single error be co-located. And finally, it allows to use 'related', 'label' and so on more easily.
2023-01-20 20:11:44 +01:00
KtorZ
4459fdb360
Fix error reporting on cyclic definitions.
...
Fixes #292
2023-01-20 20:09:00 +01:00
KtorZ
ce65236514
Parse tests as private functions.
...
They actually are private; we can't export / import tests. Fixes #284 .
2023-01-20 12:50:07 +01:00
KtorZ
61be8ca73e
Add diagnostic codes to type-check warnings.
2023-01-20 12:27:48 +01:00
KtorZ
10fb7455f3
Forbid let-binding as last expression of a sequence
...
Fixes #283
2023-01-19 18:05:57 +01:00
KtorZ
c5e876e817
Fix typo in variant name: Implicity -> Implicitly
2023-01-19 17:26:33 +01:00
KtorZ
bb82b1bc1e
slightly rework hint for 'ImpliclyDiscardedExpression'
2023-01-19 17:25:18 +01:00
KtorZ
092151d6a0
Remove dead-code and fix comment about discarded expressions
...
While Gleam originally allowed various kinds of expressions to be discarded in a sequence, we simply do not allow expressions to be discarded implicitly. So any non-final expression in a sequence must be a let-binding. This prevents silly mistakes.
2023-01-19 16:35:39 +01:00
Kasey White
52724ea0e0
feat: handle anon zero arg functions.
...
Test 045
2023-01-19 01:34:27 -05:00
Kasey White
7215bf33e9
fix: get_variant_name was not properly traversing type args on map and data types
2023-01-18 16:06:44 -05:00
Kasey White
71ae85a720
missing a condition check on when
2023-01-18 15:29:51 -05:00
Kasey White
d7e4aef4c5
feat: Add boolean conditions to when statements
2023-01-18 15:29:51 -05:00
KtorZ
c440026e36
Fix generated projects' README + rename 'certify' -> 'publish'
...
This hints to how this particular purpose is about publishing
certificate (either delegation or key de-registration).
2023-01-18 16:48:42 +01:00
KtorZ
20ac9c20a2
Remove some dead-code.
2023-01-18 16:43:40 +01:00
KtorZ
b475d6a6a4
Provide better errors when packages aren't found.
2023-01-18 16:34:26 +01:00
KtorZ
071dc00624
Implement various visual improvements for the doc generator
...
- Display function's signature next to the function name
(instead of being repeated below the function documentation).
- Same for module constants
- Display record constructors in a more concise manner, with
constructors fields next to constructors.
- Display generic parameters, if any, next to the type
- Plus some minor color and icon rework.
2023-01-18 15:12:15 +01:00
Kasey White
33d902ba2a
feat: Now opaque types with one constr and one field are converted to inner field type
2023-01-17 08:44:28 -05:00
Kasey White
98d2cb5afc
in progress: working on taking special opaque types and converting them to their inner type
2023-01-17 08:44:28 -05:00
Kasey White
0da4560792
fix failing unit tests
2023-01-17 03:02:06 -05:00
rvcas
5ceb3b07fb
fix: call was not capturing full span
2023-01-16 15:26:07 -05:00
rvcas
38734361d0
feat: make part of summary red if errors exist
2023-01-16 15:17:39 -05:00
rvcas
4024add4da
feat: error when an expression is implicitly discarded
2023-01-16 15:17:39 -05:00
KtorZ
844570caf5
Fix multi-line type-alias tuple definitions
...
Somehow missed it when reworking tuples. We need to allow the new
'NewLineLeftParen' token in this situation as well. Especially because
this is what the formatter outputs.
2023-01-16 11:30:20 +01:00
rvcas
1adac64585
feat(imports): return a nice error if a validator module is imported
2023-01-15 18:54:35 -05:00
rvcas
f114905f7d
fix: small typos in error messages
2023-01-15 18:54:35 -05:00
rvcas
c66d07a54c
feat: validator fns no longer need to be public
...
If the function doesn't match a script purpose
and is unused then it will till present as a
warning.
2023-01-15 12:33:10 -05:00
rvcas
00f2150eed
feat: add identity, always, & flip
2023-01-14 23:33:49 -05:00
rvcas
b69c1f66d7
feat: return err if data type contains functions
...
Due to how PlutusData works it doesn't make sense
to allow user defined types to contain
functions.
```
type Foo {
bar: fn(Int) -> Int
}
```
The above definition will now return an error.
2023-01-14 22:03:56 -05:00
KtorZ
d2c03b0094
Remove restriction on the project's package name
...
There are restrictions regarding how modules are called, but given that packages are tight to repositories anyway; there's no way someone can publish and use an aiken package on 'aiken-lang' without being part of the organization. So the restriction on the command-line is pointless. Plus, it prevents us from using 'aiken-lang' as a placeholder name for tutorials.
2023-01-14 23:47:57 +01:00
KtorZ
219e81cb75
Add 'packages upgrade' command.
2023-01-14 23:29:28 +01:00
KtorZ
6286132a3e
Rename sub-command 'deps' → 'packages'
...
Slightly more readable and self-explanatory.
2023-01-14 23:29:28 +01:00
KtorZ
38df9a586e
Add new 'deps add' command
...
This makes it easier to add new dependencies, without having to
manually edit the `aiken.toml` file.
The command is accessible via two different paths:
- aiken deps add
or simply
- aiken add
for this is quite common to find at the top-level of the command-line,
and, we still want to keep commands for managing dependencies grouped
under a command sub-group and not all at the top-level. So we're
merely promoting that one for visibility.
2023-01-14 23:29:28 +01:00
KtorZ
d4f905b1db
Also move some associated methods to the 'Config' module
...
And refactor the 'new' command implementation.
2023-01-14 23:29:28 +01:00
KtorZ
0771ab24bd
Move 'PackageName' and associated methods in its own module.
...
This is a bit cleaner, as the 'cmd/new' had many on-the-fly functions
which are better scoped inside this module.
Plus, it plays nicely with the std::str::FromStr trait definition.
2023-01-14 23:29:28 +01:00
KtorZ
5b7147fc43
Remove leading '#' for tuple definitions.
...
This possibly breaks many Aiken programs out there, but it's for the
best. We haven't released the alpha yet so we still have a bit of
freedom when it comes to breaking change.
Plus, the migration path is easy, simply run:
```
find . -name "*.ak" | xargs sed -i "s/#(/(/g"
```
(or `-i ''` on MacOS).
2023-01-14 20:22:19 +01:00
KtorZ
db22395764
Add new command group 'deps' and 'clear-cache' command.
...
This allows in case of issues with dependencies to at least safely
remove cached packages. Before that, it could be hard to know where
are even located the cached files without looking at the source code.
```
Clearing /Users/ktorz/Library/Caches/aiken/packages
Removing aiken-lang-stdlib-7ca9e659688ea88e1cfdc439b6c20c4c7fae9985.zip
Removing aiken-lang-stdlib-main@04eb45df3c77f6611bbdff842a0e311be2c56390f0fa01f020d69c93ff567fe5.zip
Removing aiken-lang-stdlib-6b482fa00ec37fe936c93155e8c670f32288a686.zip
Removing aiken-lang-stdlib-1cedbe85b7c7e9c4036d63d45cad4ced27b0d50b.zip
Done
```
2023-01-14 11:51:18 -05:00
KtorZ
3a5f77da12
Invalidate cache using etag for deps by branch
...
Aiken's build system uses an internal global cache system to avoid
downloading the same packages over and over across projects. However,
prior to this commit, the cache key would be based of the dependency
version which can be either:
- A commit hash
- A branch or tag name
However, in the latter case, it means that the very first time we end
up fetching a dependency will lock its version forever (or until the
cache is cleared). This was inconvenient.
This commit changes that so that we use not only a branch name as
cache key, but additionally, the etag returned by the GitHub API
server. The etag is part of the HTTP headers, so it can be fetched
quickly using a simple HEAD request. It changes whenever the content
behind the endpoint changes -- which happens to be exactly what we
want. With this, we can quickly check whether an upstream package has
been updated and download the latest version should users have
specified a branch name as a version number.
For example, my current cache now looks as follow:
```
/Users/ktorz/Library/Caches/aiken/packages/
├── aiken-lang-stdlib-1cedbe85b7c7e9c4036d63d45cad4ced27b0d50b.zip
├── aiken-lang-stdlib-6b482fa00ec37fe936c93155e8c670f32288a686.zip
├── aiken-lang-stdlib-7ca9e659688ea88e1cfdc439b6c20c4c7fae9985.zip
└── aiken-lang-stdlib-main@04eb45df3c77f6611bbdff842a0e311be2c56390f0fa01f020d69c93ff567fe5.zip
```
2023-01-14 11:51:18 -05:00
KtorZ
2d99c07dd3
Support (and default to) parenthesis for block expressions
...
This changes allow to use parenthesis `(` `)` to encapsulate
expressions in addition to braces `{` `}` used to define blocks.
The main use-case is for arithmetic and boolean expressions for which
developers are used to using parenthesis. For example:
```
{ 14 + 42 } * 1337
```
can now be written as:
```
( 14 + 42 ) * 1337
```
This may sound straightforward at first but wasn't necessarily trivial
in Aiken given that (a) everything is an expression, (b) whitespaces
do not generally matter and (c) there's no symbol indicating the end
of a 'statement' (because there's no statement).
Thus, we have to properly disambiguate between:
```
let foo = bar(14 + 42)
```
and
```
let foo = bar
(14 + 42)
```
Before this commit, the latter would be interpreted as a function call
and would lead to a somewhat puzzling error. Now, the newline serves
as a delimiting symbol. The trade-off being that for a function call,
the left parenthesis has to be on the same line as the function name
identifier -- which is a fair trade off. So this is still allowed:
```
let foo = bar(
14 + 42
)
```
As there's very little ambiguity about it.
This fixes #236 and would seemingly allow us to get rid of the leading
`#` in front of tuples.
2023-01-14 11:49:45 -05:00
KtorZ
b791131fd0
Small tweak on error messages; better grammer.
2023-01-14 14:13:30 +01:00
Kasey White
7b023911af
add assert and record
...
Record is a more efficient air for making records
Assert guarantees a custom is of a certain variant.
2023-01-13 13:50:27 -05:00
Kasey White
1721c3945b
Refactors:
...
Add test 40
refactor how we get data type from type
Call contains type now to handle certain record cases
2023-01-13 13:50:27 -05:00
rvcas
59ef63b513
chore: field might not always need to be plural
2023-01-11 20:47:47 -05:00
rvcas
99a334b132
fix(check): the expected arity with hardcoded to 0
2023-01-11 20:47:47 -05:00
rvcas
3be05b1545
fix(fmt): error fmt was removing label
2023-01-11 19:47:11 -05:00
Kasey White
eac8f7a80e
replace discard assignment with nothing
2023-01-11 09:46:37 -05:00
KtorZ
e06bbc4e73
Slightly edit module matching logic for conciseness/clarity
...
Also allow using identifier names directly as shorthand, without
surrounding .{ ... }
2023-01-10 18:41:02 +01:00
rvcas
99ec0ff6b0
feat(check): change some logic around and add --exact-match
2023-01-10 11:46:44 -05:00
rvcas
9002ea263f
feat(check): make match tests flag fancier
2023-01-10 10:19:13 -05:00
rvcas
6a95d23811
fix: filter on regular iter before par iter cc @kprotty
2023-01-09 18:21:40 -05:00
rvcas
158b3dfe51
feat(aiken-project): use rayon to run tests in parallel
2023-01-09 18:12:18 -05:00
rvcas
6ea9ad9c41
chore: clippy warnings
2023-01-09 18:12:18 -05:00
Kasey White
ce2de96226
clippy fix
2023-01-08 19:42:49 -05:00
Kasey White
42c8d50fa1
feat: finish record update
2023-01-08 19:42:49 -05:00
Kasey White
ea135e6f42
refactor term::apply to apply_wrap. Fixed a list eq binop
2023-01-08 19:42:49 -05:00
rvcas
d649b34ec3
Release 0.0.28
...
aiken@0.0.28
aiken-lang@0.0.28
aiken-lsp@0.0.28
aiken-project@0.0.28
uplc@0.0.28
Generated by cargo-workspaces
2023-01-06 13:41:00 -05:00
rvcas
c89802eaed
chore: bump pallas version
2023-01-06 13:39:18 -05:00
Kasey White
1a29ee3b72
my discard add got lost in the rebasing -_-
2023-01-06 14:23:46 +01:00
Kasey White
dc052bf9b8
fix nested lists without removing discard pop
...
Also fix bool constants created as a data type like in a list
start on record update
fix: nested list issues in when statements
2023-01-06 14:23:45 +01:00
KtorZ
4b34617466
Revert "fix: nested list issues in when statements"
...
This reverts commit 542962a2ea
.
2023-01-06 06:50:42 +01:00
alessandrokonrad
3aba9baba5
Fixed reward account creation in ScriptContext
2023-01-05 10:31:32 -05:00
Kasey White
542962a2ea
fix: nested list issues in when statements
2023-01-03 01:31:18 -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
Kasey White
e495eefb34
feat implement tuple index
2022-12-31 00:09:02 -05:00
Kasey White
3514e66234
Fix to variant name creation for dependencies.
...
Last few changes to go Tuple Index,
Assert, Check, not
change test 35 to produce intended functionality
2022-12-30 14:01:11 -05:00
Kasey White
b0ea187151
better data deserialization errors and test hint
...
now runs even being in a sequence
2022-12-30 14:01:11 -05:00
rvcas
ee678f2978
Release 0.0.27
...
aiken@0.0.27
aiken-lang@0.0.27
aiken-lsp@0.0.27
aiken-project@0.0.27
flat-rs@0.0.27
uplc@0.0.27
Generated by cargo-workspaces
2022-12-30 00:57:49 -05:00
Kasey White
34d398ab3b
fix dependencies ordering so now test 34 passes
2022-12-29 17:14:23 -05:00
Kasey White
306fa891a0
validator params are now converted to type from data
2022-12-29 17:14:23 -05:00
KtorZ
85a6a711e1
Add more colors to error messages.
...
And, let 'formatdoc' insert newlines when relevant to
format the text to the same column length.
2022-12-29 17:38:34 +01:00
KtorZ
3139c85fe8
Support declaring bytearray literals as base16 strings.
2022-12-29 13:08:58 +01: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
ad5a393c4d
Add 'docs' and 'assets' to generated gitignore
...
And also make 'docs' the default folder (instead of doc) to be more aligned with Github's defaults.
2022-12-29 10:54:46 +01:00
Kasey White
cce76bbd63
fix issue with constructor clauses and clause props
2022-12-28 18:00:11 -05:00
KtorZ
c4c0ace3a6
Align warnings message's style with errors.
2022-12-28 18:45:04 +01:00
KtorZ
7c1b8e8f3b
Map remaining relevant builtins.
2022-12-28 18:27:28 +01:00
KtorZ
f2e716dd86
Fix else/if formatter.
2022-12-28 17:55:11 +01:00
KtorZ
bae8267f18
Fix formatter for unary operation
...
Was wrongly converting any unary operation into '!'
2022-12-28 17:51:00 +01:00
Kasey White
722117bfc4
one minor scope fix
2022-12-27 22:33:09 -05:00
Kasey White
551d4eea93
fix test 28
2022-12-27 22:33:09 -05:00
Kasey White
010024fb95
fix: acceptance test 031
...
Co-authored-by: rvcas <x@rvcas.dev>
2022-12-27 22:33:09 -05:00
Kasey White
083b7fcb5f
feat: support negation of int
...
* add unary op
* parse, typecheck, and code gen it
* express boolean not as unary op as well, previously called negate
Co-authored-by: rvcas <x@rvcas.dev>
2022-12-27 20:39:03 -05:00
Kasey White
542e39f093
feat: finish up zero arg issues with dependencies
2022-12-27 19:35:08 -05:00
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
alessandrokonrad
fc92c40c3c
fixed typo
2022-09-14 18:52:05 -04:00
alessandrokonrad
2bd46f90bb
error statemens after program
2022-09-14 18:52:05 -04:00
alessandrokonrad
829d959fa3
more error statements
2022-09-14 18:52:05 -04:00
alessandrokonrad
a408491e41
added error messages
2022-09-14 18:52:05 -04:00
alessandrokonrad
be8daa00dd
added plutusV1 test
2022-09-14 18:52:04 -04:00
alessandrokonrad
6e4ff1e282
added plutusV1
2022-09-14 18:52:04 -04:00
alessandrokonrad
d9b34973c7
fixed constructor tags
2022-09-14 18:52:04 -04:00
alessandrokonrad
61bf55e151
added example
2022-09-14 18:52:04 -04:00
alessandrokonrad
eb1466d269
fixed budget calc
2022-09-14 18:52:04 -04:00
alessandrokonrad
fa6520e585
added full evaluation; still fails because hashes mismatch regarding pallas
2022-09-14 18:52:04 -04:00
alessandrokonrad
76d326b9ac
completed execution part
2022-09-14 18:52:04 -04:00
alessandrokonrad
b1b9d3a5d4
preliminary work on execution
2022-09-14 18:52:04 -04:00
alessandrokonrad
080985b7c6
more bug fixes
2022-09-14 18:52:04 -04:00
alessandrokonrad
33c2a25fa3
bit more refactoring
2022-09-14 18:52:03 -04:00
alessandrokonrad
ec63bd2365
fixed bugs in conversion to plutus data; little refactoring
2022-09-14 18:52:03 -04:00
alessandrokonrad
f0d17897ab
fixed bug in tx_in_info
2022-09-14 18:52:03 -04:00
alessandrokonrad
ecd363e67d
fixed bugs; preliminary work on eval
2022-09-14 18:52:03 -04:00
alessandrokonrad
4060a25324
fixed bugs
2022-09-14 18:52:03 -04:00
alessandrokonrad
24397d4b58
fixed time range
2022-09-14 18:52:03 -04:00
alessandrokonrad
57816d4c09
added get script purpose
2022-09-14 18:52:03 -04:00
alessandrokonrad
8b894f7351
added functions to get script context
2022-09-14 18:52:03 -04:00
alessandrokonrad
c0c7bd58b3
added all necessary trait impl for PlutusV2 scriptContext
2022-09-14 18:52:02 -04:00
alessandrokonrad
4e51826981
added more implementations for ToPlutusData
2022-09-14 18:52:02 -04:00
alessandrokonrad
60d7c52c26
added some structs; added ToPlutusData
2022-09-14 18:52:01 -04:00
rvcas
bc983d694a
feat: some cbor hex flags for flat and unflat
2022-09-14 18:51:38 -04:00
rvcas
da73995124
fix: resolved inputs should be a flag
2022-09-14 18:51:38 -04:00
Harper
d8cdeaf925
ouput ( #51 )
2022-09-14 18:51:38 -04:00
rvcas
564cd41626
chore: clean up tx in info
2022-09-14 18:51:37 -04:00
Kasey White
d5f8b749ae
add txininfo plutus data to main
2022-09-14 18:51:36 -04:00
rvcas
cf27c0c755
feat: apply redeemers and datum to script
2022-09-14 18:51:08 -04:00
rvcas
c9072deb09
feat: print some info
2022-09-14 18:50:11 -04:00
rvcas
055ca5c66b
feat: add a new subcommand for tx simulation
2022-09-14 18:50:05 -04:00
rvcas
4615132b05
Release 0.0.12
...
aiken@0.0.12
uplc@0.0.12
Generated by cargo-workspaces
2022-09-08 18:22:46 -04:00
Lucas
6d6f671f4f
eval with inputs ( #56 )
2022-09-08 18:20:52 -04:00
Niels Mündler
739f38beac
UPLC data parsing support by CBOR notation ( #37 )
...
* Implement constant data parsing support
New notation: (con data #0000 )
Where #0000 is the CBOR hex representation of a PlutusDatum
* Add pretty printing support for data
* Format
2022-09-08 16:10:12 -04:00
rvcas
d54aaff5de
feat: fill in expr unit parser a bit
2022-09-07 17:53:07 -04:00
rvcas
59a9bac9b5
feat: finish expr_seq_parser
2022-09-07 17:52:49 -04:00
rvcas
3bc507c9e8
feat: beginnings of expr parsing
2022-09-07 17:52:49 -04:00
rvcas
d87bb17a27
feat: type aliases and some fn parsing
2022-09-07 17:52:49 -04:00
rvcas
fbc9b27efe
feat: parse custom types
2022-09-07 17:52:49 -04:00
rvcas
1d1a6fc404
feat: parse imports
2022-09-07 17:52:49 -04:00
rvcas
1d6809661c
feat: lexer
2022-09-07 17:52:49 -04:00
rvcas
208f2e80ea
feat: more ast elements and some sample syntax
2022-09-07 17:52:48 -04:00
rvcas
35143f1544
feat: add the ast module
2022-09-07 17:52:48 -04:00
rvcas
fd17605e4d
feat: add deps
2022-09-07 17:52:46 -04:00
rvcas
e74eace15c
chore: init lang crate
2022-09-07 17:52:18 -04:00
rvcas
db5695a1c4
Release 0.0.11
...
aiken@0.0.11
uplc@0.0.11
Generated by cargo-workspaces
2022-09-07 17:49:27 -04:00
rvcas
4d742b5b47
chore: fix formatting
2022-09-06 15:45:08 -04:00
Niels Mündler
9b491b3777
Print machine logs (debug trace)
...
This may be made optional with a --verbose flag, but usually the user wants to see all invocations of the Trace command
2022-09-06 15:44:23 -04:00