- Apr 10, 2025
-
-
STEVAN Antoine authored
This MR explains the use of `make.rs` and `nob.rs` in the README for newcomers.
-
- Apr 08, 2025
-
-
STEVAN Antoine authored
This adds a Dockerfile to build an image for the pipelines, once and for all, until we decide to bump the Rust toolchain. ## changelog - add `.gitlab-ci.dockerfile` which - uses `rust:latest` as a base (it appears using `alpine:latest` is both bigger and slower
) - installs basic system dependencies - uses `rust-toolchain.toml` to install the toolchain of the project - installs `cargo-script` - use [`gitlab-registry.isae-supaero.fr/dragoon/komodo:bcb0e6b5`](https://gitlab.isae-supaero.fr/dragoon/komodo/container_registry/42) in the GitLab pipelines and [`ghcr.io/dragoon-rs/dragoon/komodo:bcb0e6b5`](https://github.com/orgs/dragoon-rs/packages/container/dragoon%2Fkomodo/388672772?tag=bcb0e6b5f73420762f6208700a43291e0066c2c3) in the GitHub pipelines and remove the "manual" dependency installation - add `./make.rs container`, `./make.rs container --login` and `./make.rs container --push` - uses `nob.rs@7ea6be8` to capture output of commands with `+` syntax - get the current Git SHA as the tag of the image - instructions have been added to the `README.md` for later reference ## mirror | id | head_sha | status | conclusion | run_started_at | | ------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------- | --------- | ---------- | --------------------- | | [`14262324842`](https://github.com/dragoon-rs/komodo/actions/runs/14262324842) | [`c93d9c87`](https://github.com/dragoon-rs/komodo/commit/c93d9c87928964aa20f347c1302757a06d2da628) | completed | success | `2025-04-04T11:28:30` | | [`14262372440`](https://github.com/dragoon-rs/komodo/actions/runs/14262372440) | [`f905e576`](https://github.com/dragoon-rs/komodo/commit/f905e57633f5e3dc7b1c38faa463daf54fb674bb) | completed | cancelled | `2025-04-04T11:31:12` | | [`14262477396`](https://github.com/dragoon-rs/komodo/actions/runs/14262477396) | [`21b26efd`](https://github.com/dragoon-rs/komodo/commit/21b26efd988b2d8d7159d24cae37341135cfb1b9) | completed | success | `2025-04-04T11:36:59` | | [`14263257396`](https://github.com/dragoon-rs/komodo/actions/runs/14263257396) | [`5bdca8cd`](https://github.com/dragoon-rs/komodo/commit/5bdca8cdb96e6ac2c25035513721485bcb08645d) | completed | success | `2025-04-04T12:22:10` | | [`14263314072`](https://github.com/dragoon-rs/komodo/actions/runs/14263314072) | [`bcb0e6b5`](https://github.com/dragoon-rs/komodo/commit/bcb0e6b5f73420762f6208700a43291e0066c2c3) | completed | success | `2025-04-04T12:25:27` | | [`14263368772`](https://github.com/dragoon-rs/komodo/actions/runs/14263368772) | [`ddd4a2a9`](https://github.com/dragoon-rs/komodo/commit/ddd4a2a9c1c28f4502814065de6aeca00b8b7a2f) | completed | success | `2025-04-04T12:28:30` | | [`14263575177`](https://github.com/dragoon-rs/komodo/actions/runs/14263575177) | [`f9400e61`](https://github.com/dragoon-rs/komodo/commit/f9400e619a066294714024174dacd4a0501a369c) | completed | success | `2025-04-04T12:40:44` | ## speed the performance appears to be around - ~ 1min 35sec on GitLab (see [8331](https://gitlab.isae-supaero.fr/dragoon/komodo/-/pipelines/8331), [8332](https://gitlab.isae-supaero.fr/dragoon/komodo/-/pipelines/8332), [8333](https://gitlab.isae-supaero.fr/dragoon/komodo/-/pipelines/8333), [8334](https://gitlab.isae-supaero.fr/dragoon/komodo/-/pipelines/8334), [8335](https://gitlab.isae-supaero.fr/dragoon/komodo/-/pipelines/8335), [8336](https://gitlab.isae-supaero.fr/dragoon/komodo/-/pipelines/8336), [8337](https://gitlab.isae-supaero.fr/dragoon/komodo/-/pipelines/8337), [8338](https://gitlab.isae-supaero.fr/dragoon/komodo/-/pipelines/8338), [8339](https://gitlab.isae-supaero.fr/dragoon/komodo/-/pipelines/8339), [8340](https://gitlab.isae-supaero.fr/dragoon/komodo/-/pipelines/8340), [8341](https://gitlab.isae-supaero.fr/dragoon/komodo/-/pipelines/8341), all after b82e8950) - ~ 4min on GitHub (see [14263257396](https://github.com/dragoon-rs/komodo/actions/runs/14263257396), [14263314072](https://github.com/dragoon-rs/komodo/actions/runs/14263314072), [14263368772](https://github.com/dragoon-rs/komodo/actions/runs/14263368772), [14263575177](https://github.com/dragoon-rs/komodo/actions/runs/14263575177), all after [5bdca8cd](https://github.com/dragoon-rs/komodo/commit/5bdca8cdb96e6ac2c25035513721485bcb08645d))
-
- Apr 03, 2025
-
-
STEVAN Antoine authored
that's an attempt at using Rust to build itself. this is using [`gitlab.isae-supaero.fr:a.stevan/nob.rs@e4b03cdd`](a.stevan/nob.rs@e4b03cdd). >
**Note** > > to be honest, this is not a 100% replacement of the `Makefile`... > > `make.rs` does a lot more and provides a full CLI with easy-to-use options, e.g. instead of `make fmt` and `make fmt-check`, we now have `./make.rs fmt` and `./make.rs fmt --check` > > (see the API below) ## the API ``` Usage: make [OPTIONS] [COMMAND] Commands: fmt Formats the code check Checks the code clippy Runs Clippy test Runs the tests version Shows the version of all the tools used, doc Builds the documentation help Print this message or the help of the given subcommand(s) Options: -h, --help Print help -V, --version Print version ``` ``` Usage: make fmt [OPTIONS] Options: -c, --check Only checks instead of really formatting ``` ``` Usage: make check ``` ``` Usage: make clippy ``` ``` Usage: make test [OPTIONS] Options: -v, --verbose Be extra verbose with the output of the tests -e, --examples Run the examples instead of regular tests ``` ``` Usage: make version ``` ``` Usage: make doc [OPTIONS] Options: -o, --open Open the documentation in the browser -p, --private Document private items -f, --features Document all features ``` ## running the pipeline in the GitHub mirror ```bash const GH_API_OPTIONS = [ -H "Accept: application/vnd.github+json" -H "X-GitHub-Api-Version: 2022-11-28" ] let res = gh api ...$GH_API_OPTIONS /repos/dragoon-rs/komodo/actions/runs | from json ``` ```bash let runs = $res.workflow_runs | where head_branch == "use-nob-to-build" | select id head_sha status conclusion run_started_at | into datetime run_started_at | sort-by run_started_at ``` ```bash $runs | update id { $"[`($in)`]\(https://github.com/($GITHUB_MIRROR)/actions/runs/($in)\)" } | update run_started_at { format date "%Y-%m-%dT%H:%M:%S" } | to md --pretty ``` | id | head_sha | status | conclusion | run_started_at | | ------------------------------------------------------------------------------ | ---------------------------------------- | --------- | ---------- | ------------------- | | [`14237650542`](https://github.com/dragoon-rs/komodo/actions/runs/14237650542) | d67f1cfd | completed | success | 2025-04-03T07:44:14 | | [`14237741570`](https://github.com/dragoon-rs/komodo/actions/runs/14237741570) | 9ef598a1 | completed | success | 2025-04-03T07:49:40 | | [`14238086977`](https://github.com/dragoon-rs/komodo/actions/runs/14238086977) | 0a79edf3 | completed | success | 2025-04-03T08:09:13 | | [`14238175174`](https://github.com/dragoon-rs/komodo/actions/runs/14238175174) | a84b2b12 | completed | success | 2025-04-03T08:13:52 | | [`14239395984`](https://github.com/dragoon-rs/komodo/actions/runs/14239395984) | 8594c9bf | completed | success | 2025-04-03T09:16:00 |
-
- Apr 02, 2025
-
-
STEVAN Antoine authored
this should close #17. SACLIN has been moved to [`gitlab.isae-supaero.fr:dragoon/komodo.nu`](https://gitlab.isae-supaero.fr/dragoon/komodo.nu).
-
- Feb 03, 2025
-
-
STEVAN Antoine authored
this is an attempt at making benchmarks easier to work with - `benchmarks run` will read benchmarks from NUON data and run them - `benchmarks plot` will plot benchmark results - the output format will be something - a directory whose name is the hash of the CPU spec and the Komodo commit hash - contains `cpu.json` with the CPU info - contains `komodo.txt` with the Komodo commit hash - contains NDJSON result files >
**Note** > > results will typically be uploaded to https://gitlab.isae-supaero.fr/dragoon/komodo-benchmark-results > **Note** > > this MR goes alongside the [`komodo-benchmark-results@restart`](https://gitlab.isae-supaero.fr/dragoon/komodo-benchmark-results/-/compare/main...restart) branch ## changelog - bump Nushell to 0.101.0 - parallel `$in` => remove useless `let input = $in` when possible, e.g. still required when using the function's `$in` in a `for` loop - `group-by` changed => `group-by x --to-table` will now produce a table with columns `x` and `items` instead of `group` and `items` as in 0.95.0 - add link to results repo - the Nushell benchmarks lib - rename `--force` to `--no-confirm (-y)` - add `--append` - reject columns that GPLT will complain about, e.g. `$.points.k` for the FRI plots - add `--save` to the FRI plot - move the "field" and "curve group" benchmarks from `benchmarks/src/bin/operations/` to `benchmarks/src/bin/` - remove `benchmarks/params/fri.nu` because it's been uniformized with the other methods - rewrite the README - add main function to `benchmarks/` that runs the benchmarks from a NUON record specification - simplify the output of FRI run ## TODO - [x] fix "_atomic operations_" (done in 4f69a1d6) - [x] check that _plotting_ still works ## images ### Field     ### Linear algebra    ### FEC      ### ZK   ### FRI        
-
- Nov 13, 2024
-
-
STEVAN Antoine authored
this MR adds two new badges to the README - the crate (links to the [Komodo crate](https://crates.io/crates/komodo)) - the documentation (links to the [doc](https://docs.rs/komodo/latest/komodo/))
-
STEVAN Antoine authored
this adds three badges to the README: - the latest release (links to the [release page](https://gitlab.isae-supaero.fr/dragoon/komodo/-/releases)) - the GitLab CI status (links to the [GitLab pipeline dashboard](https://gitlab.isae-supaero.fr/dragoon/komodo/-/pipelines)) - the GitHub CI status (links to the [GitHub workflow runs dashboard](https://github.com/dragoon-rs/komodo/actions))
-
- Nov 05, 2024
-
-
STEVAN Antoine authored
-
- Sep 23, 2024
-
-
STEVAN Antoine authored
## changelog - _semi\_avid_, _kzg_ and _aplonk_ examples have been added - the `fs` module has been hidden behind an `fs` feature - the `conversions` module has been properly hidden behind the `test` config feature - the documentation has been completed - some error messages have been improved > **Note** > > the documentation of aPlonK has been left as-is for now
-
- Aug 01, 2024
-
-
STEVAN Antoine authored
## changelog - `src/main.rs` has been moved to a new crate: `bins/saclin` which stands for **S**emi-**A**VID **CLI** in **N**ushell - dependencies of `komodo` have been fixed - Nushell and Rust tests have been split in the Makefile: by default, only Rust tests will run locally and Nushell tests and examples can be run manually if desired. The CI will still run everything. - the README has been updated - test images have been moved to `assets/` - the majority of the old `./nu-utils/` module have been moved to internals of `./benchmarks/` and imports have been fixed - `cargo.nu` has been moved to `./bins/` and a new `./bins/README.md` mentions it - `./bins/saclin/` has been created and should be a self-contained Rust crate + Nushell module
-
- Jul 12, 2024
-
-
STEVAN Antoine authored
this MR is two-fold - it restructures the two main Nushell modules so that they are easier to read and use - it improves the "run" and "plot" modules for the benchmarks ## changelog - `.nushell/` is now renamed to `nu-utils/` - `benchmarks/` is now a valid Nushell module which exports a bunch of modules - `benchmarks linalg`: measure and plot linear algebra operations - `benchmarks setup`: measure and plot trusted setup building - `benchmarks commit`: measure and plot crafting commitments - `benchmarks recoding`: measure and plot the recoding of shards - `benchmarks fec`: measure and plot FEC operations, such as encoding and recoding, and allow combining these results with the pure recoding ones - the submodules of `benchmarks` typically have a `run` and a `plot` command, whith the exception of `benchmarks fec` which has a `run` module and multiple "plot" commands in `benchmarks fec plot` - the "run" commands will create a random temp file by default and ask for confirmation otherwise if the output file already exists, unless `--force` is used - snippetds in `benchmarks/README.md` have been updated
-
- Jul 05, 2024
-
-
STEVAN Antoine authored
see the changelogs of - [Nushell `0.94.0`](https://www.nushell.sh/blog/2024-05-28-nushell_0_94_0.html) - [Nushell `0.94.1`](https://www.nushell.sh/blog/2024-05-30-nushell_0_94_1.html) - [Nushell `0.94.2`](https://www.nushell.sh/blog/2024-06-03-nushell_0_94_2.html) i also removed the `bytes encode` and `bytes decode` commands from `.nushell/binary.nu` because... well they did not work anymore and they were not used anywhere
-
- May 29, 2024
-
-
STEVAN Antoine authored
this MR turns `./.nushell/` into a directory module by - adding `mod.nu` - exporting all the modules all uses of `.nushell/` have been fixed to not mention `.nu` internal modules anymore. >
**Note** > the `.nushell venv` module has been removed because, when the `$venv.VENV` activation script is not there, Nushell can't parse the whole `.nushell` module, which is very annoying to have to rely of the state of the external filesystem to be able to simply parse a module... -
STEVAN Antoine authored
this also bumps Nushell to 0.93.0 to include the "extra" command `fmt`, see [Nushell 0.92.0](https://www.nushell.sh/blog/2024-04-02-nushell_0_92_0.html#incorporating-the-extra-feature-by-default-toc)
-
- May 28, 2024
-
-
STEVAN Antoine authored
## new structure for the repository - benchmarks are in `./benchmarks/` and can be run with either `cargo run --package benchmarks --bin <bench>` or the commands in `./benchmarks/README.md` ``` ├── Cargo.toml ├── README.md └── src └── bin ├── commit.rs ├── fec.rs ├── linalg.rs ├── operations │ ├── curve_group.rs │ └── field.rs ├── recoding.rs ├── setup.rs └── setup_size.rs ``` - examples are now in `./bins/` as standalone binaries and can be run either with `cargo run --package <pkg>` or with the help of the `cargo bin` command from `.nushell/cargo.nu` ``` ├── curves │ ├── Cargo.toml │ ├── README.md │ └── src │ └── main.rs ├── inbreeding │ ├── build.nu │ ├── Cargo.toml │ ├── consts.nu │ ├── mod.nu │ ├── plot.nu │ ├── README.md │ ├── run.nu │ └── src │ ├── environment.rs │ ├── main.rs │ └── strategy.rs ├── rank │ ├── Cargo.toml │ └── src │ └── main.rs └── rng ├── Cargo.toml └── src └── main.rs ``` - Nushell modules are now located in `./.nushell/` ## changelog apart from the changes to the general structure of the repo: - `binary.nu` -> `.nushell/binary.nu` - new `cargo bin` command from `.nushell/cargo.nu` - `error throw` is now defined in `.nushell/error.nu` - main TOML has been greatly simplified because the dependencies of "examples" have been moved to the associated crates - the rest is basically the same but in the new structure
-
- Apr 26, 2024
-
-
STEVAN Antoine authored
this MR - moves the last "recoding" benchmark to `examples/benches/` - moves the README, which is now all alone, to `examples/benches/` - adds a mention to `examples/benches/README.md` in `README.md` - some minor improvements to the bench README ## TODO - [x] find a way to plot the "recoding" results (thanks to !90)
-
- Jan 12, 2024
-
-
STEVAN Antoine authored
related to - !13 ## description in !13, i noticed that decoding can be pretty sensitive to the order of the shards... this is why i thought testing all possible permutations of the shards could be beneficial
see the [run attached to this MR](https://gitlab.isae-supaero.fr/dragoon/komodo/-/jobs/11281#L1120) to see all the combinations of shards used in the tests, e.g. `[0, 2, 3]` means that shards `0`, `2` and `3` have been used and shards `1` and `4` have been "_lost_" ## changelog this MR - adds an inline `math` module to `tests/cli.nu` which defines - `choose` which computes all the sets of $k$ choose $n$ in $[|0, ..., n - 1|]$ - `perm` which computes all the permutations on $[|0, ..., n - 1|]$ - see the inline `_test_choose` and `_test_perm` commands for concrete examples of their behaviours - compute all the permutation of $k'$ choose $n$ shards, where $k'$ ranges from $k$ to $n$ - run the reconstruction test on all these cases - moves the CLI example from `README.md` to `examples/cli.nu` > **Note** > also removes the newline added to the stdout of `komodo` commands, so that the output is prettier, without spurious empty lines
-
- Dec 06, 2023
-
-
STEVAN Antoine authored
this is to make the passing of bytes easier as `cargo run` wants strings.
-
- Dec 01, 2023
-
-
STEVAN Antoine authored
-
STEVAN Antoine authored
-
- Nov 30, 2023
-
-
STEVAN Antoine authored
-
STEVAN Antoine authored
-