Commit Graph

100 Commits

Author SHA1 Message Date
KtorZ 22172069f8
chore: Release 2024-12-13 16:44:12 +01:00
KtorZ b1977214ca
disable katex conversion on non-windows builds.
I am not going to spend time figuring out how to get katex working on Windows. If someone wants, feel free.
2024-12-13 16:43:30 +01:00
KtorZ da1c478b2f
chore: Release 2024-12-13 15:22:10 +01:00
adrian052 51af046fcb
Switched to KaTeX for LaTeX rendering and used cmark-provided delimiters 2024-12-13 13:46:39 +01:00
KtorZ e2fb28b4ce
chore: Release 2024-11-19 15:55:23 +01:00
microproofs 18054eed1a
chore: Release 2024-11-13 15:17:53 -05:00
KtorZ 10c1b46bf7
Bump minimum rust version everywhere to 1.70.0 2024-11-13 19:38:57 +01:00
microproofs a7741ec286
chore: Release 2024-10-19 13:45:54 -04:00
microproofs 356d845a9a
chore: Release 2024-10-01 16:14:25 -04:00
microproofs 3d77b5c378
chore: Release 2024-09-20 14:05:15 -04:00
microproofs 7047c7720e
chore: Release 2024-09-13 16:52:20 -04:00
KtorZ 0905146140
chore: Release 2024-09-10 13:25:04 +02:00
rvcas be31a7ce38
chore: Release 2024-09-03 17:01:41 -04:00
rvcas 20ac89fc33
chore: reset version 2024-09-03 17:01:24 -04:00
KtorZ c21466831c
Bump versions to 1.1.0, in anticipation. 2024-08-29 09:12:37 +02:00
KtorZ e31c6de04e
Adjust module organization to facilitate resurrection of the playground.
The playground doesn't / cannot depend on aiken-project because that becomes a gigantic pain. So instead, we try to keep essential stuff inside aiken-lang when possible.
2024-08-29 09:12:37 +02:00
KtorZ 745f14ccb2
Adjust doc to support blockquote alerts. 2024-08-28 15:28:49 +02:00
KtorZ b479a289cf
Implement source linker and add URL to source code in generated docs.
Long overdue.
2024-08-22 16:37:48 +02:00
KtorZ 10c829edfa
Parse and display documentation section headers.
The idea is pretty simple, we'll just look for lines starting with Markdown heading sections, and render them in the documentation. They appear both in the sidebar, and within the generated docs themselves in between functions. This, coupled with the order preservation of the declaration in a module should make the generated docs significantly more elegant to organize and present.
2024-08-22 15:47:00 +02:00
KtorZ 91e0e2493a
Provide better errors on unknown type in cyclic definitions.
Let's consider the following case:

  ```
  type Var =
    Integer

  type Vars =
    List<Var>
  ```

  This incorrectly reports an infinite cycle; due to the inability to
  properly type-check `Var` which is also a dependent var of `Vars`. Yet
  the real issue here being that `Integer` is an unknown type.

  This commit also upgrades miette to 7.2.0, so that we can also display
  a better error output when the problem is actually a cycle.
2024-08-06 19:24:48 +02:00
KtorZ 4645257e62
Prune pallas dependencies.
Using 'pallas' as a dependency brings utxo-rpc other annoying dependencies such as _tokyo_. This not only makes the overall build longer, but it also prevents it to even work when targetting wasm.
2024-08-03 14:14:49 +02:00
rvcas 4645fd3e28
chore: Release 2024-07-25 08:28:15 -04:00
KtorZ 49190b485a
chore: Release 2024-07-25 09:58:06 +02:00
KtorZ 216dab99d4
chore: Release 2024-06-06 11:19:34 +02:00
rvcas 338fc0eba6
chore: Release 2024-05-23 16:45:10 -04:00
rvcas ff50d4d2cf
chore: Release 2024-05-23 16:23:59 -04:00
rvcas c3ad52b50f
feat: add compiler version to aiken.toml 2024-05-22 15:35:57 -04:00
rvcas f8ce46d0f4 chore(ci): run cargo dist init 2024-05-08 11:05:30 -04:00
rvcas 075668b52e
chore: Release 2024-03-25 22:09:37 -04:00
KtorZ 4e8042fd06
chore: Release 2024-03-22 16:10:17 +01:00
rvcas 2b5ed95df5 feat: serialize as cbor 2024-03-08 19:19:07 -05:00
KtorZ a9d596f4cb
Memoize simplification steps during property-based shrinking.
I've been benchmarking that through the shrink of 'large' lists, and the cache brings about 1.5x speed increase. For small and simple cases, the cache as no visible effects (positive or negative).
2024-03-08 18:58:51 +01:00
KtorZ bff822ea7f
Rework unit test report to leverage new reification
And also provide slightly better errors when traces, or trace-if-false operators are present.
2024-03-07 01:20:40 +01:00
microproofs b146db8c95 update package dependency 2024-03-05 10:23:29 -05:00
KtorZ 362acd43a3
Rework and optimize PRNG
Using ByteArrays as vectors on-chain is a lot more efficient than relying on actul Data's list of values. From the Rust end, it doesn't change much as we were already manipulating vectors anyway.
2024-03-04 14:27:16 +01:00
KtorZ 3762473a60
Add preliminary plumbing to run property test through the CLI.
This is very very rough at the moment. But it does a couple of thing:

  1. The 'ArgVia' now contains an Expr/TypedExpr which should unify to a Fuzzer. This is to avoid having to introduce custom logic to handle fuzzer referencing. So this now accepts function call, field access etc.. so long as they unify to the right thing.

  2. I've done quite a lot of cleanup in aiken-project mostly around the tests and the naming surrounding them. What we used to call 'Script' is now called 'Test' and is an enum between UnitTest (ex-Script) and PropertyTest. I've moved some boilerplate and relevant function under those module Impl.

  3. I've completed the end-to-end pipeline of:
     - Compiling the property test
     - Compiling the fuzzer
     - Generating an initial seed
     - Running property tests sequentially, threading the seed through each step.

   An interesting finding is that, I had to wrap the prop test in a similar wrapper that we use for validator, to ensure we convert primitive types wrapped in Data back to UPLC terms. This is necessary because the fuzzer return a ProtoPair (and soon an Array) which holds 'Data'.

  At the moment, we do nothing with the size, though the size should ideally grow after each iteration (up to a certain cap).

  In addition, there are a couple of todo/fixme that I left in the code as reminders of what's left to do beyond the obvious (error and success reporting, testing, etc..)
2024-03-03 19:33:24 +01:00
rvcas d698f76e3c
fix(codegen): builtin calls for g1 and g2 where flipped
closes #840
2024-02-29 12:13:51 -05:00
microproofs 982eff449e chore: Release 2024-01-31 13:48:20 -05:00
rvcas 3a7a0c1971
chore: remove unused deps 2024-01-30 12:28:18 -05:00
microproofs 8584adc1b7 chore: Release 2024-01-25 15:10:11 -05:00
rvcas defd36ad8c
chore: Release 2024-01-25 11:07:32 -05:00
rvcas 589bb9a4b3
chore: change how we depend on pallas 2024-01-24 21:26:48 -05:00
KtorZ 0e2b8ae251
Bump pallas dependencies to include flat bigint patch
Fixes #796.
2024-01-18 18:26:21 +01:00
rvcas 2647e4aae6
chore: Release 2023-12-04 22:14:03 -05:00
rvcas b17b7f287c
chore: update to pallas v0.20.0 2023-12-04 21:44:19 -05:00
Pi Lanningham 5068da3a17
Refactor into cargo-project
Rather than have this logic in the aiken binary, this provides a generic
mechanism to do "something" on file change events.  KtorZ is going to
handle wiring it up to the CLI in the best way for the project.

I tried to write some tests for this, but it's hard to isolate the
watcher logic without wrestling with the borrow checker, or overly
neutering this utility.
2023-11-24 08:37:54 +01:00
rvcas b6f6064aaf test: add all plutus conformance tests 2023-11-15 15:55:56 -05:00
microproofs 2f694b01cb chore: use insta snapshot for blueprint validator tests 2023-11-06 15:37:04 -05:00
microproofs 49bd4ba33d chore: Release 2023-10-25 19:00:03 -04:00
KtorZ d56d5180cf
Move compile-time build info to aiken-project
So that we can use it as part of the blueprints.
2023-10-06 14:08:47 +02:00