Go to file
KtorZ fd50473a32
Only compile modules the project depends on
This changes ensure that we only compile modules from dependencies
  that are used (or transitively used) in the project. This allows to
  discard entire compilation steps at a module level, for modules that
  we do not use.

  The main goal of this change isn't performances. It's about making
  dependencies management slightly easier in the time we decide whether
  and how we want to manage transitive dependencies in Aiken.

  A concrete case here is aiken-lang/stdlib, which will soon depend on
  aiken-lang/fuzz. However, we do not want to require every single
  project depending on stdlib to also require fuzz. So instead, we want
  to seggregate fuzz API from stdlib in separate module, and only
  compile those if they appear in the pruned dependency graph.

  While the goal isn't performances, here are some benchmarks analyzing
  the performances of deps pruning on a simple project depends on a few
  modules from stdlib:

	Benchmark 1: ./aiken-without-deps-pruning check scratchpad
	  Time (mean ± σ):     190.3 ms ± 101.1 ms    [User: 584.5 ms, System: 14.2 ms]
	  Range (min … max):   153.0 ms … 477.7 ms    10 runs

	Benchmark 2: ./aiken-with-deps-pruning check scratchpad
	  Time (mean ± σ):     162.3 ms ±  46.3 ms    [User: 572.6 ms, System: 14.0 ms]
	  Range (min … max):   142.8 ms … 293.7 ms    10 runs

  As we can see, this change seems to have an overall positive impact on
  the compilation time.
2024-03-14 19:41:50 +01:00
.github fix: blst stuff is not happy on windows aarch64 2023-12-04 22:29:23 -05:00
aikup feat(aikup): error message when version not found 2024-02-27 21:38:00 -05:00
crates Only compile modules the project depends on 2024-03-14 19:41:50 +01:00
examples Fix indentation of pipelines. 2024-03-09 20:44:51 +01: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 chore: update changelog 2024-03-12 08:10:33 -04:00
CONTRIBUTING.md chore: add release instructions in contributing.md 2023-08-24 15:43:26 -06:00
Cargo.lock feat: serialize as cbor 2024-03-08 19:19:07 -05:00
Cargo.toml chore: bump pallas 2024-01-25 11:07:18 -05:00
LICENSE chore: adjustment cargo.toml 2023-05-23 10:40:26 -04:00
README.md chore: use updated theme method 2024-02-15 14:47:53 -05:00
flake.lock bump flake ... but in a way that works for external builds?! 2024-03-04 14:32:27 +00:00
flake.nix bump flake ... but in a way that works for external builds?! 2024-03-04 14:32:27 +00:00

README.md

Aiken

A modern smart contract platform for Cardano

Licence Crates.io Tests


Installation

How to use

For more information please see the user manual.

Contributing

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


Note

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

Stats

Alt