Commit Graph

2426 Commits

Author SHA1 Message Date
KtorZ
523b270a8f Adjust telemetry output log. 2024-10-19 10:40:30 +02:00
microproofs
53685dd1d5 Update cost model to properly calculate integer_to_bytearray
Also fix conformance tests to match plutus
2024-10-18 13:07:51 -04:00
microproofs
9dd3ead3df IntegerToByteString takes in the second param itself 2024-10-17 20:01:01 -04:00
microproofs
5fd349f571 Remove an unused opcode 2024-10-08 20:32:56 -04:00
microproofs
5d4b3e69b9 Revert "Start working on using a decision tree for when expr. Also fmt fix"
This reverts commit e8f74985d5.
2024-10-08 13:33:05 -04:00
microproofs
e8f74985d5 Start working on using a decision tree for when expr. Also fmt fix 2024-10-08 13:30:29 -04:00
KtorZ
79d0e45099 Don't mark openssl dependencies as optional on musl. 2024-10-02 11:32:17 +02:00
KtorZ
f4dbe1624a Use target_os = linux instead. 2024-10-02 10:59:50 +02:00
KtorZ
19fe1d37e7 Make bundling of ssl conditionned by target environment instead of feature flag. 2024-10-02 10:51:21 +02:00
microproofs
356d845a9a chore: Release 2024-10-01 16:14:25 -04:00
microproofs
c8731c98c7 Remove prints 2024-10-01 16:09:44 -04:00
microproofs
5fe6e3f77b Finish simplification changes 2024-10-01 15:57:54 -04:00
microproofs
c6c5cddead Fix ordering of params on standard functions 2024-10-01 13:32:27 -04:00
microproofs
2bbc699a25 Refactor some code to make a define_const AirTree function 2024-10-01 13:32:27 -04:00
KtorZ
513ca27717 Generate empty redeemer for else handler, to keep full compliance with the blueprint spec 2024-10-01 19:03:34 +02:00
KtorZ
e8d97028ad Prevent constant evaluating to generic/unbound functions
Constants are like tiny programs, so they are bound by the same rules
  as validators and other programs. In fact, functions are slightly more
  flexible in that they allow generic constant expressions like
  `List<a>`.

  Yet, there is no way to contain such generic structure that contain
  inhabitants in a way that satisfies the type-checker. In the example
  of `List<a>`, the only inhabitant of that type that we can construct
  is the empty list. Anything else would require holding onto some
  generic value.

  In addition, we can't force literal values into generic annotation, as
  something like:

  ```
  const foo: List<a> = [1, 2, 3]
  ```

  wouldn't type-check either since the right-side would unify to
  `List<Int>`. And again, the only right-hand side that can type-check
  is the empty list without any inhabitant.

  The added restriction on generic function is necessary because while
  we allow constants to return lambda, we cannot (easily) generate UPLC
  that is generic in its argument. By the time we generate UPLC, the
  underlying types have to be known.
2024-10-01 18:37:40 +02:00
KtorZ
51b6b77db8 Build LSP projects with verbose tracing level
Without that, the language server might trigger awkward warnings about
  unused imports due to trace stripping. So it's better to compile/check
  projects in the language server in the most expanded form.
2024-10-01 16:12:41 +02:00
KtorZ
0060804d1a Fix redundant warning when destructuring validator params
This is not a "proper" fix as it simply get rid of the warning
  altogether (whether you use or not the destructured values).

  The reason for removing the warning entirely is because (1) it's
  simpler, but more so (2) there's no impact on the final code produced
  _anyway_. Redundant let bindings are already removed by the compiler;
  and while it's an implicit behaviour that requires a proper warning
  when it's coming from a user-defined assignment; here the redundant
  assignment is introduced by the compiler to begin with as another
  implicit behavior!

  So we have an implicit behaviour triggering a warning on another
  implicit behaviour. Truth is, there's no impact in having those
  parameters destructured and unused. So since users are already not
  aware that this results in an implicit let assignment being inserted
  in place for them; there's no need for the warning at all.
2024-10-01 13:17:00 +02:00
KtorZ
5737556efc Fix compiler crash around dangling expect/let in traces
Fixes #1029.
2024-10-01 12:24:31 +02:00
Kasey
d5f8d3ab78 Cost model fixes with tests (#1030)
* Finish V1 corrections and fixes to initialize cost model

* Finish V2 corrections to be inline with mainnet today
2024-09-29 22:55:18 -04:00
Riley-Kilgore
92f5bf529f Generate address on else and spend validators; uses title 2024-09-24 11:55:10 -04:00
Riley-Kilgore
7c6f3278ba Fixed single character patterns using double quotes 2024-09-24 11:54:05 -04:00
KtorZ
ac9c71e32a Try to bundle openssl with the Aiken binary to avoid core dumps on Linux 2024-09-22 18:12:26 +02:00
microproofs
3d77b5c378 chore: Release 2024-09-20 14:05:15 -04:00
microproofs
e8cf43d7ec Format fix 2024-09-20 13:52:09 -04:00
microproofs
eb37ed0da5 Clippy fix 2024-09-20 13:47:56 -04:00
microproofs
4f1de2d3b5 Add test for flat error when encoding bls constant 2024-09-20 13:41:58 -04:00
microproofs
fa2aa0a3e8 When we find bls constants in UPLC convert them to their a hoisted compressed form with an uncompress call 2024-09-20 12:31:36 -04:00
KtorZ
a8b37820e8 Fix incorrect warning about unused variable when softcasting without explicit right-pattern.
See note added in code for a rationale.
2024-09-20 15:09:00 +02:00
Matthias Benkort
7155b4e45d Merge pull request #1023 from solidsnakedev/main
Add wrap constructor to V1/V2 StakeCredential
2024-09-20 14:47:08 +02:00
microproofs
3fddab4724 Add test for hard cast and soft cast on same type 2024-09-19 23:48:06 -04:00
microproofs
18e79db4b2 Fix edge case with traces off and usage of softcast and hardcast on the same type 2024-09-19 22:29:19 -04:00
KtorZ
83ac723a50 Fix extraneous space added after multiline alternative patterns 2024-09-19 20:24:59 +02:00
KtorZ
3f149ab346 Provide intermediate feedback during property test runs.
Avoid the interface to hang for several seconds without feedback when counterexamples are being simplified. This sends a heads-up to the user to indicate that a research of a counter example is going on.
2024-09-19 20:19:49 +02:00
KtorZ
91843b2c0e Tweak error output for failed data reification. 2024-09-19 20:18:53 +02:00
microproofs
43182721f5 Update PlutusV1 cost model 2024-09-19 10:36:36 -04:00
microproofs
b50fa91d4c Finish updating v2 models 2024-09-18 12:06:36 -04:00
microproofs
b26e16e319 Start updating v2 cost models 2024-09-18 12:06:36 -04:00
solidsnakedev
75b5332288 fix: Add wrap constructor to V1/V2 stake_credential when Purpose is Rewarding 2024-09-17 19:45:39 -06:00
KtorZ
47a15cf8b2 Fix formatting of long multiline if/is expressions. 2024-09-15 14:59:47 +02:00
KtorZ
12c0d0bc04 Fix formatter adding extra unnecessary newlines after literal lists clause values or assignments. 2024-09-15 14:40:40 +02:00
KtorZ
d6c728c0f6 Fix link_tree generation when re-inserting the same modules. 2024-09-14 16:30:28 +02:00
microproofs
7047c7720e chore: Release 2024-09-13 16:52:20 -04:00
KtorZ
a9a7a4f977 Fix few formatter annoyances. 2024-09-13 18:53:26 +02:00
KtorZ
799546b654 Show strings as UTF-8 text string during type reification
Instead of defaulting to hex-encoded bytearrays.
2024-09-13 18:34:54 +02:00
KtorZ
9cf908d07f Fix type reification of Data 2024-09-13 18:34:54 +02:00
KtorZ
4fb13af49f Fix type reification of PRNG. 2024-09-13 18:34:53 +02:00
Matthias Benkort
a1045352d7 Merge pull request #1018 from solidsnakedev/main
fix: Plutus V3 NoDatum
2024-09-13 09:29:55 +02:00
microproofs
16e222e997 Clippy fixes 2024-09-12 19:34:40 -04:00
microproofs
3f2de2665d Clippy fixes 2024-09-12 19:13:31 -04:00