Commit Graph

1556 Commits

Author SHA1 Message Date
microproofs
1567e42875 chore: fill in machine todos and cost model for case and constr
This allows for several more tests to pass
**Had to remove case-7 since it was incorrectly passing before**
2023-11-17 19:52:03 -05:00
rvcas
0382e5ce12 chore: this comment doesn't make sense 2023-11-17 18:41:28 -05:00
rvcas
df992cba67 chore: remove check_type 2023-11-17 13:58:13 -05:00
rvcas
9ab458dcc6 feat: delay typemismatch errors in the machine runtime
to pass 2 of the conformance tests, we need to make sure
that we aren't typechecking builtin arguments as arguments
are applied. This switches push to by removing the call to check_type
and then reworking all the associated unwrap methods on Value
so that they return the same errors that were being returned before.
2023-11-17 13:58:13 -05:00
rvcas
ed909055b5 chore: temp remove conformance tests that are failing 2023-11-15 15:55:56 -05:00
rvcas
308fb47e40 fix: don't panic on invalid hex strings 2023-11-15 15:55:56 -05:00
rvcas
dfa0378404 chore: explain a todo in the machine 2023-11-15 15:55:56 -05:00
rvcas
3f8f624a7b fix(uplc): more whitespace characters 2023-11-15 15:55:56 -05:00
rvcas
58d98b3325 fix(uplc): parser should accept single quote in var name and comments 2023-11-15 15:55:56 -05:00
rvcas
b6f6064aaf test: add all plutus conformance tests 2023-11-15 15:55:56 -05:00
rvcas
b80db2f7f8 fix(bls): wrong types for equals functions 2023-11-15 15:55:56 -05:00
rvcas
d53d2665b2 test(bls): g1 and g2 formatting 2023-11-15 15:55:56 -05:00
rvcas
c910e0054e test(bls): constant parsing tests 2023-11-15 15:55:56 -05:00
rvcas
7073fd29b3 test(bls): literal parsing tests 2023-11-15 15:55:56 -05:00
microproofs
8b89ba3b93 feat: implement bls primitives in code gen 2023-11-15 15:55:56 -05:00
microproofs
d51374aac1 feat: add conversion to data and from data for new primitive types 2023-11-15 15:55:56 -05:00
rvcas
3675762c3e feat(bls): aiken level g1 and g2 literals 2023-11-15 15:55:56 -05:00
rvcas
90aea6476a feat: uplc g1 and g2 literal parsing 2023-11-15 15:55:56 -05:00
rvcas
6ce85e1662 fix: add keccak to TryFrom<u8> 2023-11-15 15:55:56 -05:00
rvcas
49ae8152f8 feat(bls): add new aiken level builtins 2023-11-15 15:55:56 -05:00
rvcas
8a3a465237 feat(bls): add new types to aiken prelude 2023-11-15 15:55:56 -05:00
rvcas
cdcd8172e6 feat(bls): pretty print mlresult type 2023-11-15 15:55:56 -05:00
rvcas
318ae6aad4 feat(bls): finish cost model 2023-11-15 15:55:56 -05:00
rvcas
5243c36ed6 feat(bls): add default costs for the new functions 2023-11-15 15:55:56 -05:00
microproofs
18db1c394a feat: Implemented builtin semantic versioning
feat: impl flat serialization and deserialization for bls constants
feat: started on cost models for the new builtins

Co-authored-by: rvcas <x@rvcas.dev>
2023-11-15 15:55:56 -05:00
rvcas
f101581813 feat(bls): pretty printing for g1 and g1 element
Co-authored-by: Kasey White <kwhitemsg@gmail.com>
2023-11-15 15:55:56 -05:00
microproofs
0d2ac952d0 feat: implemented the Bls381-12 builtins and types
also implemented Keccak256 and Blake2b_224

TODO: cost model, flat serialization, pretty

Co-authored-by: rvcas <x@rvcas.dev>
2023-11-15 15:55:56 -05:00
microproofs
446ef11606 chore: finishing acceptance test 29
and updating acceptance test lock files
2023-11-08 14:31:44 -05:00
microproofs
d50fb99b75 feat: add acceptance tests 28-30 2023-11-08 14:31:44 -05:00
microproofs
7d319077e6 chore: clean up validator comments and
commit script context test lockfile
2023-11-06 15:49:13 -05:00
microproofs
2f694b01cb chore: use insta snapshot for blueprint validator tests 2023-11-06 15:37:04 -05:00
microproofs
4eebd4628b chore: fix comment 2023-11-06 15:37:04 -05:00
microproofs
7427bac4a0 chore: remove unused code 2023-11-06 15:37:04 -05:00
microproofs
598ec5eaef Use a better algorithm for inlining single occurrences 2023-11-06 15:37:04 -05:00
microproofs
49bd4ba33d chore: Release 2023-10-25 19:00:03 -04:00
microproofs
4dd17dacf3 chore: rename uplc builder builtins 2023-10-22 17:08:48 -04:00
waalge
3e283a59ec Split off builtin function builders
- sort alphabetically
- add some of the missing builtins used for ints
- comment on what is "correct" for future additions
- comment on the current remaining missing builtins
- comment on the current incoherent method names
2023-10-22 17:08:48 -04:00
KtorZ
46c58dbd61 Implement quickfixes for redundant imports. 2023-10-22 00:29:09 +02:00
KtorZ
28b699c86a Merge unused imported constructors and unused imported type with unused imported value
This was somewhat weirdly done, with a boolean 'imported' set on the
  formers; but an explicit new warning for values. I don't see the point
  of distinguishing them so I just merged them all into a single
  warning.

  I have however preserved the 'UnusedType' and 'UnusedConstructor'
  warnings since they were ALSO used for unused private constructors or
  types.
2023-10-22 00:27:33 +02:00
KtorZ
5f8e256050 Present aiken-lsp & fill-in CHANGELOG 2023-10-21 21:39:30 +02:00
KtorZ
17832fc5af Fix clippy warnings: remove redundant closures & guards. 2023-10-21 21:27:31 +02:00
KtorZ
c0513da032 Add quickfix for unknown constructors. 2023-10-21 14:24:47 +02:00
KtorZ
f6eff7ec58 Fix incoherent 'UnknownVariable' being returned in type-check
I initially removed the 'UnkownTypeConstructor' since it wasn't used anywhere and was in fact dead-code. On second thoughts however, it is nicer to provide a slightly better error message when a constructor is missing as well as some valid suggestion. Prior to that commit, we would simply return a 'UnknownVariable' and the hint might suggest lowercase identifiers; which is wrong.
2023-10-21 14:10:45 +02:00
KtorZ
5986163ba7 Add quickfix for unknown alias & data types. 2023-10-21 13:57:06 +02:00
KtorZ
d965467a53 Fix insertion of unqualified import when first
I previously missed a case and it causes qualified imports to be added at the end if they are lexicographically smaller than ALL other qualified imports. No big deal, but this is now fixed.
2023-10-21 13:56:15 +02:00
KtorZ
c550b4766d Implement quickfix for 'UnknownModule'. 2023-10-21 12:59:48 +02:00
KtorZ
e48ac6b592 Relocate and refactor quickfix code into its own module
We're going to have more quickfixes, to it's best not to overload the
  'server' module. Plus, there's a lot of boilerplate around the
  quickfixes so we might want to factor it out.
2023-10-21 12:00:58 +02:00
KtorZ
763516eb96 Refactor and relocate document edits function for imports.
It's a bit 'off-topic' to keep these in aiken-lang as those functions are really just about lsp. Plus, it removes a bit some of the boilerplate and make the entire edition more readable and re-usable. Now we can tackle other similar errors with the same quickfix.
2023-10-21 11:31:01 +02:00
KtorZ
699d0a537c Use (untyped) AST to find the right insert location for imports.
This removes the need to rely on the formatter to clear things up
  after insert a new import. While this is not so useful for imports, I
  wanted to experiment with the approach for future similar edits (for
  example, when suggesting an inline rewrite).
2023-10-21 10:43:00 +02:00
KtorZ
66ade8e3e3 Implement simple code action quickfix for unknown variable. 2023-10-20 18:01:07 +02:00