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