diff --git a/.forgejo/workflows/test.yml b/.forgejo/workflows/test.yml new file mode 100644 index 0000000..da25a67 --- /dev/null +++ b/.forgejo/workflows/test.yml @@ -0,0 +1,80 @@ +name: "per-push tests" + +on: + push: + branches: + - main + pull_request: + pull_request_target: + types: + - opened + - synchronized + - reopened + +jobs: + build: + runs-on: docker + steps: + - name: checkout code + uses: actions/checkout@v4 + - name: setup rust toolchain + uses: msrd0/rust-toolchain@nightly + - name: compile components + run: | + cargo build --lib + cargo build --bin decomposer + + test-frontend: + needs: [build] + runs-on: docker + steps: + - name: checkout code + uses: actions/checkout@v4 + - name: setup rust toolchain + uses: msrd0/rust-toolchain@nightly + - name: test lexer + run: cargo test lexer + - name: test parser + run: cargo test parser + + timed-decomposer-parse: + needs: [test-frontend] + runs-on: docker + steps: + - name: checkout code + uses: actions/checkout@v4 + - name: setup rust toolchain + uses: msrd0/rust-toolchain@nightly + - name: build decomposer + run: cargo build --bin decomposer + - name: download test scheme source + run: curl https://raw.githubusercontent.com/ecraven/r7rs-benchmarks/refs/heads/master/src/compiler.scm --output test.scm + - name: time parsing of test source + run: cargo run --bin decomposer -- -t test.scm + + test-utility: + needs: [build] + runs-on: docker + steps: + - name: checkout code + uses: actions/checkout@v4 + - name: setup rust toolchain + uses: msrd0/rust-toolchain@nightly + - name: test number package + run: cargo test number + - name: test double stack data type + run: cargo test stackstack + - name: test hashmap data type + run: cargo test hmap + + test-backend: + needs: [build] + runs-on: docker + steps: + - name: checkout code + uses: actions/checkout@v4 + - name: setup rust toolchain + uses: msrd0/rust-toolchain@nightly + - name: test instruction decoding + run: cargo test util # this is instruction decoding code + diff --git a/decomposer/Cargo.toml b/decomposer/Cargo.toml index 60b0f8e..071e041 100644 --- a/decomposer/Cargo.toml +++ b/decomposer/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "decomposer" version = "0.1.0" -edition = "2021" +edition = "2024" authors = ["Ava Affine "] [dependencies] diff --git a/mycelium/Cargo.toml b/mycelium/Cargo.toml index 7bc4e79..9370cd3 100644 --- a/mycelium/Cargo.toml +++ b/mycelium/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "mycelium" version = "0.1.0" -edition = "2021" +edition = "2024" [dependencies] num = { version = "0.4.3", features = ["alloc"] } diff --git a/mycelium/src/lexer.rs b/mycelium/src/lexer.rs index 431054c..c6266d3 100644 --- a/mycelium/src/lexer.rs +++ b/mycelium/src/lexer.rs @@ -187,7 +187,7 @@ impl Iterator for Lexer { } let res = self.seek_next_token(); - if let Err(ref e) = res { + if let Err(e) = &res { self.has_error_state = Some(e.clone()); } @@ -617,7 +617,7 @@ impl Lexer { } if let Some(ref res) = output { - if let Err(ref e) = res { + if let Err(e) = &res { self.has_error_state = Some(e.clone()); } } diff --git a/mycelium/src/lib.rs b/mycelium/src/lib.rs index b68beca..e6896e7 100644 --- a/mycelium/src/lib.rs +++ b/mycelium/src/lib.rs @@ -16,7 +16,6 @@ */ #![cfg_attr(not(test), no_std)] -#![feature(let_chains)] #![feature(iter_collect_into)] #![feature(if_let_guard)] #![feature(core_float_math)]