Go to file
KtorZ fbe2f82582
Thread down environment module from cli down to the type-checker
We simply provide a flag with a free-form output which acts as
  the module to lookup in the 'env' folder. The strategy is to replace
  the environment module name on-the-fly when a user tries to import
  'env'.

  If the environment isn't found, an 'UnknownModule' error is raised
  (which I will slightly adjust in a following commits to something more
  related to environment)

  There are few important consequences to this design which may not seem
  immediately obvious:

  1. We parse and type-check every env modules, even if they aren't
     used. This ensures that code doesn't break with a compilation error
     simply because people forgot to type-check a given env.

     Note that compilation could still fail because the env module
     itself could provide an invalid API. So it only prevents each
     modules to be independently wrong when taken in isolation.

  2. Technically, this also means that one can import env modules in
     other env modules by their names. I don't know if it's a good or
     bad idea at this point but it doesn't really do any wrong;
     dependencies and cycles are handlded all-the-same.
2024-08-04 10:27:32 +02:00
.github Split benchmarks out of acceptance tests job. 2024-07-17 13:01:17 +02:00
benchmarks Remove clause guards. 2024-08-02 00:16:27 -04:00
crates Thread down environment module from cli down to the type-checker 2024-08-04 10:27:32 +02:00
examples Remove clause guards. 2024-08-02 00:16:27 -04:00
.editorconfig rename examples/tests/{a,b,c,d,e,f} into examples/acceptance_tests/00{1,2,3,4,5,6} 2022-12-14 09:45:24 +01:00
.gitattributes Add support for Nix flakes. 2023-02-07 13:16:17 +01:00
.gitignore chore: commit an ignore we can all use without accidentally commiting test files/folders 2024-03-12 08:10:33 -04:00
CHANGELOG.md Allow pattern-matching on bytearrays 2024-08-03 13:51:36 +02:00
CONTRIBUTING.md chore: add release instructions in contributing.md 2023-08-24 15:43:26 -06:00
Cargo.lock Prune pallas dependencies. 2024-08-03 14:14:49 +02:00
Cargo.toml Prune pallas dependencies. 2024-08-03 14:14:49 +02:00
LICENSE chore: update license 2024-05-01 22:10:47 -04:00
README.md refresh README. 2024-05-31 09:48:14 +02:00
flake.lock nix use rustc 1.79. Add analyzer to devshell 2024-06-19 15:18:18 +00:00
flake.nix Fix: Nix expression doesn't work in Darwin 2024-07-02 11:51:46 +01:00

README.md

Aiken

A modern smart contract platform for Cardano

Licence Tests Twitter/X

Crates.io NPM


Getting Started

Hello, World!

Wanna get started right-away? Complete the Hello, World! tutorial!

Contributing

Want to contribute? See CONTRIBUTING.md to know how.

Changelog

Be on top of any updates using the CHANGELOG and the Project Tracking.

Stats

Alt

[!NOTE]

The name comes from Howard Aiken, an American physicist and a pioneer in computing.