Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix license #1

Merged
merged 52 commits into from
Sep 22, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
3b6b39e
chore: Upgrade clap in fcomm (#577)
huitseeker Aug 10, 2023
5ddd40f
Fix feature configurations in Cargo.toml (#595)
huitseeker Aug 10, 2023
cfa69b4
Fix `lurk help` to print correctly (#587)
winston-h-zhang Aug 11, 2023
1e27d72
Remove match & TryFrom boilerplate (#603)
huitseeker Aug 13, 2023
dacd67c
Minimal stable rustfmt (#604)
samuelburnham Aug 14, 2023
98edfbb
ci: Transition to self-hosted runners (#598)
samuelburnham Aug 14, 2023
7fd5b0e
Checkout submodule (#611)
samuelburnham Aug 15, 2023
b63f1db
ci: Refactor GitHub workflows for specific branch triggers (#612)
huitseeker Aug 15, 2023
d497652
Implement packages (#578)
arthurpaulino Aug 15, 2023
91ee13b
Decrease timeout and add retry (#615)
samuelburnham Aug 15, 2023
2ffa799
chore: Set up clippy to avoid creeping annotations (#602)
huitseeker Aug 17, 2023
34a3e65
Switch to Arecibo (#620)
samuelburnham Aug 18, 2023
3fe74c9
Update .gitignore (#623)
arthurpaulino Aug 19, 2023
58105dc
LEM eval completed (#617)
gabriel-barrett Aug 19, 2023
d995fba
feat: Refactor nova.rs for new Public Parameters tuned to a SNARK (#626)
huitseeker Aug 19, 2023
eeeac29
Small simplifications (#624)
huitseeker Aug 19, 2023
e05b942
Integrate Circom into Bellperson for Coprocessors (#555)
winston-h-zhang Aug 22, 2023
b53e26c
LEM match optimization (#605)
gabriel-barrett Aug 23, 2023
7c98f32
Fix printing for keywords (#635)
arthurpaulino Aug 28, 2023
9aa8b75
Simplify Multiframe (#634)
huitseeker Aug 29, 2023
dd91a68
Standardize logging with `tracing` crate + implement micro-benchmarki…
winston-h-zhang Aug 30, 2023
ffab8c8
MIT license formatting (#646)
samuelburnham Aug 31, 2023
612e54d
fix hashing of symbols (#636)
arthurpaulino Aug 31, 2023
f422e6c
IVC Coprocessor Benchmarks (#640)
winston-h-zhang Sep 1, 2023
a574b51
chore(deps): bump actions/checkout from 3 to 4 (#650)
dependabot[bot] Sep 5, 2023
8d40670
fix: derive Implement `Debug` trait across various structs and enums …
huitseeker Sep 6, 2023
92e687a
better error handling when trying to load public parameters (#655)
arthurpaulino Sep 7, 2023
899c433
chore: Remove `sppark` crate patch from Cargo.toml (#645)
huitseeker Sep 7, 2023
c678647
refactor: Refactor Ptr struct to generic with type Tag (#651)
huitseeker Sep 7, 2023
e5093a6
simplify match (#656)
hnfgns Sep 8, 2023
1d5c3cc
refactor: Refactor error handling (mostly in circuits) (#649)
huitseeker Sep 8, 2023
0bfa5bf
Unwrap setup result. (#659)
porcuquine Sep 9, 2023
fc9156d
Use reduction_count=2 in sha256 example. (#638)
porcuquine Sep 12, 2023
17aea37
fix new repl and subject it to the lurk-lib tests (#666)
arthurpaulino Sep 13, 2023
37585f4
some isolated changes from #629 (#663)
arthurpaulino Sep 13, 2023
f2e62fa
give more meaningful names to LEM type variants and struct fields (#669)
arthurpaulino Sep 13, 2023
4e8bf9b
reuse original ZPtr to define LEM's; get rid of CtrlTag (#668)
arthurpaulino Sep 14, 2023
62ab3e7
make LEM's generated data compatible with Lurk Alpha (#674)
arthurpaulino Sep 15, 2023
351e894
Add a help command to the repo (#662)
larskuhtz Sep 18, 2023
e9bfd6b
replace nova::PublicParams::setup call by new (#685)
arthurpaulino Sep 19, 2023
2a2d555
Implement NIVC Coprocessors. (#677)
porcuquine Sep 19, 2023
c91cc59
LEM circuit cleanup (#689)
gabriel-barrett Sep 19, 2023
078ceaa
refactor: Enhance error handling and messaging across modules (#660)
huitseeker Sep 20, 2023
fe65ab4
Add GPU benchmark comment (#688)
samuelburnham Sep 20, 2023
ee2f0f4
refactor: Tidying up changes after #677 (#690)
huitseeker Sep 20, 2023
4525db4
solve load bug when not in the REPL (#697)
arthurpaulino Sep 21, 2023
d1a5ea2
Remove padding hack. (#692)
porcuquine Sep 21, 2023
d8aa231
LEM booleans (#698)
gabriel-barrett Sep 21, 2023
060bc7a
Tmp
samuelburnham Sep 22, 2023
ce6524d
Create LICENSE
samuelburnham Sep 22, 2023
acac0ae
Delete LICENSE-MIT
samuelburnham Sep 22, 2023
07b5e69
Rename LICENSE to LICENSE-MIT
samuelburnham Sep 22, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions .cargo/config
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,24 @@
xclippy = [
"clippy", "--workspace", "--all-targets", "--",
"-Wclippy::all",
"-Wclippy::match_same_arms",
"-Wclippy::cast_lossless",
"-Wclippy::dbg_macro",
"-Wclippy::disallowed_methods",
"-Wclippy::derive_partial_eq_without_eq",
"-Wclippy::enum_glob_use",
"-Wclippy::filter_map_next",
"-Wclippy::flat_map_option",
"-Wclippy::inefficient_to_string",
"-Wclippy::large_types_passed_by_value",
"-Wclippy::manual_assert",
"-Wclippy::manual_ok_or",
"-Wclippy::map_flatten",
"-Wclippy::map_unwrap_or",
"-Wclippy::needless_borrow",
"-Wclippy::checked_conversions",
"-Wclippy::trait_duplication_in_bounds",
"-Wrust_2018_idioms",
"-Wtrivial_numeric_casts",
"-Wunused_lifetimes",
]
228 changes: 12 additions & 216 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -1,18 +1,13 @@
version: 2.1

setup-env: &setup-env
MSRV: 1.60.0
MSRV: 1.70.0
RUSTFLAGS: "-Dwarnings"
CARGO_INCREMENTAL: 0
RUST_BACKTRACE: 1
RUST_LOG: info

executors:
default:
machine:
image: ubuntu-2004:202101-01
working_directory: ~/lurk
resource_class: xlarge
arm64:
machine:
image: ubuntu-2004:202101-01
Expand Down Expand Up @@ -99,191 +94,47 @@ commands:
cargo --version
rustc --version

save_rustup_cache:
steps:
- save_cache:
name: "Save rustup cache"
key: cargo-v2-{{ checksum "rust-toolchain" }}-{{ checksum "Cargo.toml" }}-{{ checksum "Cargo.lock" }}-{{ arch }}
paths:
- "~/.cargo"
- "~/.rustup"

restore_rustup_cache:
steps:
- restore_cache:
keys:
- cargo-v2-{{ checksum "rust-toolchain" }}-{{ checksum "Cargo.toml" }}-{{ checksum "Cargo.lock" }}-{{ arch }}

install_gpu_deps:
steps:
- run: sudo apt update && sudo apt install -y ocl-icd-opencl-dev curl build-essential

jobs:
cargo_fetch:
executor: default
environment: *setup-env
test:
parameters:
os:
type: executor
executor: << parameters.os >>
steps:
- checkout
- run:
name: Update submodules
command: |
git submodule update --init --recursive
- restore_rustup_cache
- set_env_path
- set_versions_n_runners
- run: cargo fetch
- run: rm -rf .git
- persist_to_workspace:
root: ~/
paths:
- lurk
- save_rustup_cache

linux_release:
executor: default
environment: *setup-env
steps:
- checkout
- attach_workspace:
at: "~/"
- restore_rustup_cache
- set_env_path
- setup-sccache
- install_gpu_deps
- restore-sccache-cache
- run:
name: Linux Tests
command: cargo nextest run --profile ci --workspace --cargo-profile dev-ci --run-ignored ignored-only -E 'all() - test(groth16::tests::outer_prove_recursion) - test(test_make_fcomm_examples) - test(test_functional_commitments_demo) - test(test_chained_functional_commitments_demo)'
- run:
name: Benches build successfully
command: cargo bench --no-run --profile dev-ci
- run:
name: Linux Doc Tests
command: cargo test --doc --workspace --profile dev-ci
- save-sccache-cache
- run:
name: Print sccache stats
command: sccache -s

linux_exhaustive:
executor: default
environment: *setup-env
steps:
- checkout
- attach_workspace:
at: "~/"
- restore_rustup_cache
- set_env_path
- install_gpu_deps
- restore-sccache-cache
- run:
name: Linux Tests
command: cargo nextest run --profile ci --workspace --cargo-profile dev-ci --run-ignored all
- run:
name: Benches build successfully
command: cargo bench --no-run --profile dev-ci
- run:
name: Linux Doc Tests
command: cargo test --doc --workspace --profile dev-ci
- save-sccache-cache
- run:
name: Print sccache stats
command: sccache -s

arm64:
executor: arm64
environment: *setup-env
steps:
- checkout
- run:
name: Update submodules
command: |
git submodule update --init --recursive
- attach_workspace:
at: "~/"
- set_versions_n_runners
- set_env_path
- install_gpu_deps
- setup-sccache
- restore-sccache-cache
- run:
name: Arm64 Tests
command: cargo nextest run --profile ci --workspace --cargo-profile dev-ci
no_output_timeout: 120m
- run:
name: Benches build successfully
command: cargo bench --no-run --profile dev-ci
- run:
name: Arm64 Doc Tests
command: cargo test --doc --workspace --profile dev-ci
- save-sccache-cache
- run:
name: Print sccache stats
command: sccache -s

mac:
executor: darwin
environment: *setup-env
steps:
- checkout
- run:
name: Update submodules
command: git submodule update --init --recursive
- attach_workspace:
at: "~/"
- set_versions_n_runners
- set_env_path
- setup-sccache
- restore-sccache-cache
- run:
name: MacOS Tests
name: Run cargo tests
command: cargo nextest run --profile ci --workspace --cargo-profile dev-ci
no_output_timeout: 120m
- run:
name: Benches build successfully
command: cargo bench --no-run --profile dev-ci
- run:
name: MacOS Doc Tests
name: Doc Tests
command: cargo test --doc --workspace --profile dev-ci
- save-sccache-cache
- run:
name: Print sccache stats
command: sccache -s

clippy:
executor: default
environment: *setup-env
steps:
- checkout
- set_env_path
- attach_workspace:
at: "~/"
- restore_rustup_cache
- run: cargo clippy --all -- -D warnings

rustfmt:
executor: default
environment: *setup-env
steps:
- checkout
- set_env_path
- attach_workspace:
at: "~/"
- restore_rustup_cache
- run: cargo fmt --all -- --check

workflows:
test-all:
jobs:
- cargo_fetch:
filters:
branches:
ignore:
- gh-pages
- staging.tmp
- trying.tmp
- staging-squash-merge.tmp
- arm64:
- test:
matrix:
parameters:
os: [arm64, darwin]
filters:
branches:
ignore:
Expand All @@ -292,58 +143,3 @@ workflows:
- staging.tmp
- trying.tmp
- staging-squash-merge.tmp
- mac:
filters:
branches:
ignore:
- master
- gh-pages
- staging.tmp
- trying.tmp
- staging-squash-merge.tmp
- linux_release:
requires:
- cargo_fetch
filters:
branches:
ignore:
- master
- gh-pages
- staging.tmp
- trying.tmp
- staging-squash-merge.tmp
- rustfmt:
requires:
- cargo_fetch
filters:
branches:
ignore:
- master
- gh-pages
- staging.tmp
- trying.tmp
- staging-squash-merge.tmp
- clippy:
requires:
- cargo_fetch
filters:
branches:
ignore:
- master
- gh-pages
- staging.tmp
- trying.tmp
- staging-squash-merge.tmp
nightly:
triggers:
- schedule:
cron: "0 0 * * *"
filters:
branches:
only:
- master
jobs:
- cargo_fetch
- linux_exhaustive:
requires:
- cargo_fetch
1 change: 1 addition & 0 deletions .clippy.toml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
type-complexity-threshold = 999
too-many-arguments-threshold = 20
disallowed-methods = [
# we use strict naming for pasta fields
Expand Down
6 changes: 4 additions & 2 deletions .config/nextest.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,7 @@ failure-output = "immediate-final"
status-level = "skip"
# Do not cancel the test run on the first failure.
fail-fast = false
# Mark tests as slow after 5mins, kill them after 50
slow-timeout = { period = "300s", terminate-after = 10 }
# Mark tests as slow after 5mins, kill them after 20mins
slow-timeout = { period = "300s", terminate-after = 4 }
# Retry failed tests once, marked flaky if test then passes
retries = 1
65 changes: 65 additions & 0 deletions .github/workflows/bench_pr_comment.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# Creates a PR benchmark comment with a comparison to master
name: Benchmark pull requests
on:
issue_comment:
types: [created]

env:
CARGO_TERM_COLOR: always

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

jobs:
run-benchmark:
name: run end2end benchmark
runs-on: [self-hosted, bench]
if:
github.event.issue.pull_request
&& github.event.issue.state == 'open'
&& contains(github.event.comment.body, '!benchmark')
&& (github.event.comment.author_association == 'MEMBER' || github.event.comment.author_association == 'OWNER')
steps:
- uses: xt0rted/pull-request-comment-branch@v2
id: comment-branch

- uses: actions/checkout@v4
if: success()
with:
ref: ${{ steps.comment-branch.outputs.head_ref }}
# Set the Rust env vars
- uses: actions-rs/toolchain@v1
- uses: Swatinem/rust-cache@v2
- uses: boa-dev/criterion-compare-action@v3
with:
# Optional. Compare only this benchmark target
benchName: "end2end"
# Needed. The name of the branch to compare with
branchName: ${{ github.ref_name }}

gpu-benchmark:
name: run fibonacci benchmark on GPU
runs-on: [self-hosted, gpu-bench]
if:
github.event.issue.pull_request
&& github.event.issue.state == 'open'
&& contains(github.event.comment.body, '!benchmark')
&& (github.event.comment.author_association == 'MEMBER' || github.event.comment.author_association == 'OWNER')
steps:
- uses: xt0rted/pull-request-comment-branch@v2
id: comment-branch

- uses: actions/checkout@v4
if: success()
with:
ref: ${{ steps.comment-branch.outputs.head_ref }}
# Set the Rust env vars
- uses: actions-rs/toolchain@v1
- uses: Swatinem/rust-cache@v2
- uses: boa-dev/criterion-compare-action@v3
with:
# Optional. Compare only this benchmark target
benchName: "fibonacci"
# Needed. The name of the branch to compare with
branchName: ${{ github.ref_name }}
Loading
Loading