Skip to content
Closed
Show file tree
Hide file tree
Changes from 73 commits
Commits
Show all changes
170 commits
Select commit Hold shift + click to select a range
f61e764
feat: optimize data structures for memory efficiency and performance
Copilot Aug 31, 2025
c431733
fix: update tests to work with optimized SmallVec data structures
Copilot Aug 31, 2025
e1115fd
feat: implement robust caching system with intelligent eviction and c…
Copilot Aug 31, 2025
8f1019c
style: format code according to rustfmt standards
Copilot Aug 31, 2025
898758e
chore: lint fix
MuntasirSZN Aug 31, 2025
8426154
fix: resolve all clippy warnings with code improvements and boxing op…
Copilot Aug 31, 2025
9547f23
chore: lint fix and remove allow 'unused' and 'dead_code' annotations
MuntasirSZN Aug 31, 2025
8758985
fix: remove unused smallvec macro import
Copilot Aug 31, 2025
d83e2ff
fix: apply coderabbitai review fixes for cache, documentation, and un…
Copilot Aug 31, 2025
f1293db
refactor: use target/rustowl/cache, bring back dead_code and unused
MuntasirSZN Aug 31, 2025
57d6da3
fix: prevent cache memory overshoot by adding post-insertion eviction…
Copilot Aug 31, 2025
e555ccb
chore: apply fixes
MuntasirSZN Aug 31, 2025
0f96914
chore: format
MuntasirSZN Aug 31, 2025
98ce316
chore: fix
MuntasirSZN Aug 31, 2025
cd118b9
chore: remove unused import
MuntasirSZN Aug 31, 2025
c8a3c5d
feat: implement error handling with eros crate
Copilot Sep 1, 2025
e2ebac7
feat: migrate from tower-lsp to tower-lsp-server for better maintenance
Copilot Sep 1, 2025
c8c6f6d
refactor: improve shells.rs to delegate to clap_complete instead of c…
Copilot Sep 1, 2025
fd4c969
docs: add comprehensive documentation to core modules
Copilot Sep 1, 2025
75fae53
test: add comprehensive unit tests for utils, error, and shells modules
Copilot Sep 1, 2025
5ea3ff9
perf: optimize string operations and improve error handling robustness
Copilot Sep 1, 2025
dab8dde
chore: fix deps and issues
MuntasirSZN Sep 1, 2025
47aba25
chore: cleanup
MuntasirSZN Sep 1, 2025
3ac859c
chore: cleanup again
MuntasirSZN Sep 1, 2025
0be4ce6
chore: format
MuntasirSZN Sep 1, 2025
f7dfd5f
chore: remove pub extern crate
MuntasirSZN Sep 1, 2025
d28d08f
chore: remove tracing again
MuntasirSZN Sep 1, 2025
c0ae6b0
chore: invasive replace all hashmaps and hashsets with indexmap + fol…
MuntasirSZN Sep 1, 2025
717fc6a
chore: fix, use quality foldhash hasher, fix seen_ids|
MuntasirSZN Sep 1, 2025
aa5c873
chore: fix tests
MuntasirSZN Sep 1, 2025
b84b9e3
chore: foldhash, tracing, tracing_subscriber
MuntasirSZN Sep 2, 2025
4e296af
chore: format sh files and shellcheck
MuntasirSZN Sep 2, 2025
5198f6c
fix: resolve rustowl check command workspace detection issue
Copilot Sep 2, 2025
43b3f1a
chore: format
MuntasirSZN Sep 2, 2025
d25c27d
chore: remove debug
MuntasirSZN Sep 2, 2025
305e2c3
perf: centralize MIR helpers, optimize range merging, add SmolStr + o…
MuntasirSZN Sep 4, 2025
f073cc4
perf: enable memchr path by default, remove simd_opt feature
MuntasirSZN Sep 4, 2025
c190dc1
chore: remove unused effective_live helper
MuntasirSZN Sep 4, 2025
9002718
chore(bench): run both rustowl_bench_simple and line_col_bench via BE…
MuntasirSZN Sep 4, 2025
b667a19
chore(bench): remove duplicate body, fix measurement_time collection …
MuntasirSZN Sep 4, 2025
19e042e
feat(bench): add line_col_bench and rand dev-dependency
MuntasirSZN Sep 4, 2025
92d522f
perf(analyze): stream live location ranges and reduce allocations
MuntasirSZN Sep 4, 2025
356a1d0
refactor(core): reorder modules and replace async join loop with sync…
MuntasirSZN Sep 4, 2025
e7618d0
refactor(logging): centralize initialize_logging in library and use a…
MuntasirSZN Sep 4, 2025
f9713bf
chore(lsp): elevate invalid target to error and async file read
MuntasirSZN Sep 4, 2025
0213f70
chore: minor fs path usage and formatting in utils/toolchain
MuntasirSZN Sep 4, 2025
237c3a7
chore: update deps and lockfile
MuntasirSZN Sep 4, 2025
d019847
chore: add a lot of tests (coverage 64.02%) (#91)
Copilot Sep 6, 2025
a1b309a
chore: remove weird tests
MuntasirSZN Sep 6, 2025
1630cb5
feat(cache,lsp): add mtime invalidations metric, refactor cache get, …
MuntasirSZN Sep 7, 2025
822902b
chore: format
MuntasirSZN Sep 7, 2025
8cd6250
chore: add more tests (72% coverage)
MuntasirSZN Sep 7, 2025
3989cb3
chore: remove weird tests
MuntasirSZN Sep 7, 2025
433d748
chore: remove weird tests
MuntasirSZN Sep 7, 2025
44a05a5
chore: fix miri
MuntasirSZN Sep 7, 2025
0684c3e
chore: add coverage workflow + change checks workflow
MuntasirSZN Sep 7, 2025
ffca827
chore: fix tests
MuntasirSZN Sep 7, 2025
9b809ae
chore: fix workflow
MuntasirSZN Sep 7, 2025
ebef0bc
chore: fix workflow
MuntasirSZN Sep 7, 2025
b62beca
chore: fix and enrich
MuntasirSZN Sep 7, 2025
4ec6636
chore: fix
MuntasirSZN Sep 7, 2025
02fcce8
chore: add perms
MuntasirSZN Sep 7, 2025
89362a9
chore: add cache
MuntasirSZN Sep 7, 2025
463a074
chore: fix workflow
MuntasirSZN Sep 7, 2025
fe8e34c
Update coverage.yml
MuntasirSZN Sep 8, 2025
cda0d98
Update coverage.yml
MuntasirSZN Sep 8, 2025
0f47fee
chore: fix?
MuntasirSZN Sep 8, 2025
6d03e7b
Merge branch 'main' into feat/test-frenzy
MuntasirSZN Sep 19, 2025
1ac6f85
chore: fix lockfile
MuntasirSZN Sep 19, 2025
9ec0d53
Merge branch 'main' into feat/test-frenzy
MuntasirSZN Oct 6, 2025
cf2e049
Merge branch 'main' into feat/test-frenzy
MuntasirSZN Nov 6, 2025
eefd856
chore: lockfile
MuntasirSZN Nov 6, 2025
0324904
ci: use moonrepo/setup-rust, use oidc in crates.io, use committed, ca…
MuntasirSZN Dec 9, 2025
b6c993f
fix
MuntasirSZN Dec 9, 2025
2ced635
Update build.yaml
MuntasirSZN Dec 10, 2025
0e68bfc
remove
MuntasirSZN Dec 10, 2025
a0f4fc7
fix
MuntasirSZN Dec 10, 2025
a6f45b9
fix
MuntasirSZN Dec 10, 2025
5daa325
Merge remote-tracking branch 'origin/main' into feat/test-frenzy
MuntasirSZN Dec 10, 2025
955c3c6
finale
MuntasirSZN Dec 10, 2025
47fe970
finale
MuntasirSZN Dec 10, 2025
7719c4a
Update zizmor.yml
MuntasirSZN Dec 11, 2025
3e5db6b
Update validate-pr-title.yml
MuntasirSZN Dec 11, 2025
7fe4e17
finale
MuntasirSZN Dec 11, 2025
c959f78
finale
MuntasirSZN Dec 11, 2025
48ebe6f
feat: rustc 1.92.0
MuntasirSZN Dec 12, 2025
dac801a
fix: now errors if rustowlc (child) errors, fixed erroring in 1.92.0
MuntasirSZN Dec 12, 2025
bbb125b
format
MuntasirSZN Dec 12, 2025
0eb60fb
chore: move to divan instead of criterion
MuntasirSZN Dec 12, 2025
d730f06
Merge remote-tracking branch 'origin/main' into feat/test-frenzy
MuntasirSZN Dec 21, 2025
3a6eecd
Merge remote-tracking branch 'upstream/ci/refactor' into feat/test-fr…
MuntasirSZN Dec 21, 2025
6c7735f
fix: run pinact
MuntasirSZN Dec 21, 2025
40246bd
fix: zizmor
MuntasirSZN Dec 21, 2025
cf07985
fix: fixes>
MuntasirSZN Dec 21, 2025
7049c79
feat: improve logging by a gazillion times
MuntasirSZN Dec 21, 2025
b984475
fix: remove spammy TRACE
MuntasirSZN Dec 21, 2025
d4e08b3
fix: update deps (cve)
MuntasirSZN Dec 21, 2025
df1f155
fix: workflow
MuntasirSZN Dec 22, 2025
3e74532
Update build.yaml
MuntasirSZN Dec 22, 2025
598b009
fix: workflows issues
MuntasirSZN Dec 23, 2025
c50a868
refactor!: more perf, acknowledge review comments
MuntasirSZN Dec 23, 2025
f7bb77d
Merge remote-tracking branch 'upstream/main' into feat/test-frenzy
MuntasirSZN Dec 23, 2025
d86a781
chore: done
MuntasirSZN Dec 29, 2025
69b7a5e
Delete PROMPT.md
MuntasirSZN Dec 29, 2025
2cdc554
Update utils.rs
MuntasirSZN Dec 29, 2025
9ac8672
Update cache.rs
MuntasirSZN Dec 29, 2025
230d4dc
Update rustowlc.rs
MuntasirSZN Dec 29, 2025
af20da8
Merge remote-tracking branch 'upstream/main' into feat/test-frenzy
MuntasirSZN Dec 31, 2025
cf738cf
fix: allow webpki license
MuntasirSZN Dec 31, 2025
09ee9bb
fix: acknowledge comments?
MuntasirSZN Dec 31, 2025
972a633
fix: acknowledge more comments
MuntasirSZN Dec 31, 2025
61a0dbf
feat: coverage, miri, 75%
MuntasirSZN Jan 5, 2026
a37a68e
chore: run tests and build explicitly on target and os (no grey area)
MuntasirSZN Jan 5, 2026
95b7f60
chore: explicit result type
MuntasirSZN Jan 5, 2026
0ce45ca
Merge remote-tracking branch 'upstream/main' into feat/test-frenzy
MuntasirSZN Jan 5, 2026
ea16740
chore: fix
MuntasirSZN Jan 5, 2026
bb182a6
chore: never run in prs
MuntasirSZN Jan 5, 2026
c356ca1
chore: fix windows by forcing bash
MuntasirSZN Jan 5, 2026
7d5b205
chore: fix again
MuntasirSZN Jan 5, 2026
d6cd701
chore: fix again 2
MuntasirSZN Jan 5, 2026
76a50cb
chore: fix again 3
MuntasirSZN Jan 5, 2026
54065f6
chore: fix again 4
MuntasirSZN Jan 5, 2026
92d353d
chore: fix again 5
MuntasirSZN Jan 5, 2026
59ce701
chore: fix again 6
MuntasirSZN Jan 5, 2026
fe58ba5
chore: fix again 7
MuntasirSZN Jan 5, 2026
4c00270
chore: fix again 8
MuntasirSZN Jan 5, 2026
3179257
chore: fix again 9
MuntasirSZN Jan 5, 2026
694655a
refactor: use after finished download to disk then extract
MuntasirSZN Jan 6, 2026
6940051
chore: fix
MuntasirSZN Jan 6, 2026
d0e9cbe
chore: fix
MuntasirSZN Jan 6, 2026
3421205
chore: add codeql
MuntasirSZN Jan 6, 2026
a320fc5
chore: fix miri
MuntasirSZN Jan 10, 2026
97ebaed
chore: fix codeql
MuntasirSZN Jan 10, 2026
7d87080
chore: fix codeql 2
MuntasirSZN Jan 10, 2026
ffa5b95
test: remove early return (so it fails regardless)
MuntasirSZN Jan 10, 2026
ff676a7
test: fix windows test
MuntasirSZN Jan 10, 2026
b38a64c
test: fix tests
MuntasirSZN Jan 10, 2026
fccd4ff
test: fix tests for windows again
MuntasirSZN Jan 11, 2026
e0b81ac
test: fix tests by installing msvc
MuntasirSZN Jan 11, 2026
4581de5
test: fix tests by installing msvc 2
MuntasirSZN Jan 11, 2026
8370e4a
test: fix tests again by correcting script
MuntasirSZN Jan 11, 2026
126709b
test: fix tests again by correcting script 2
MuntasirSZN Jan 11, 2026
7d6dd2f
test: fix tests again by correcting script 3
MuntasirSZN Jan 11, 2026
f15582c
test: rename miri_async_test! to async_test!
MuntasirSZN Jan 11, 2026
ad69ed3
test: fix arm64 windows last time?
MuntasirSZN Jan 11, 2026
72c061e
feat!: convert to workspace
MuntasirSZN Jan 11, 2026
b02aea8
fix: windows again (now ci in nightly)
MuntasirSZN Jan 11, 2026
e6f731e
ci: fix again
MuntasirSZN Jan 11, 2026
45df60f
ci: fix again 2
MuntasirSZN Jan 11, 2026
8f04bf0
ci: fix again 3
MuntasirSZN Jan 11, 2026
f4d4035
ci: fix again 4
MuntasirSZN Jan 11, 2026
23fe75e
ci: fix again 5
MuntasirSZN Jan 11, 2026
7bde1cc
ci: fix again 6
MuntasirSZN Jan 11, 2026
cb7b1c9
ci: fix again 7
MuntasirSZN Jan 11, 2026
5719720
ci: fix again 8
MuntasirSZN Jan 11, 2026
197cae8
ci: fix again 10
MuntasirSZN Jan 11, 2026
0ec8069
ci: fix again 11
MuntasirSZN Jan 11, 2026
3e2763e
ci: fix again 12
MuntasirSZN Jan 11, 2026
4c48ced
ci: fix again 13
MuntasirSZN Jan 11, 2026
41cb6a4
ci: fix again 13
MuntasirSZN Jan 12, 2026
582f753
fix: use newest rustc jemalloc setup, fix tests, fix coverage
MuntasirSZN Jan 12, 2026
46c309f
ci: fix finale
MuntasirSZN Jan 12, 2026
bc173f1
ci: finally fixed...
MuntasirSZN Jan 12, 2026
563e501
ci: finally fixed... 2?
MuntasirSZN Jan 12, 2026
c4b9778
ci: fix x86_64-pc-windows-msvc
MuntasirSZN Jan 12, 2026
fbd549f
Merge remote-tracking branch 'upstream/main' into feat/test-frenzy
MuntasirSZN Jan 12, 2026
7a60d79
chore: final update (@cordx56)
MuntasirSZN Jan 13, 2026
fdc0e76
fix: fix docker
MuntasirSZN Jan 13, 2026
a5c3ebc
fix: fix toolchain
MuntasirSZN Jan 13, 2026
c7e8217
fix: fix some more
MuntasirSZN Jan 13, 2026
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
7 changes: 7 additions & 0 deletions .github/workflows/checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,13 @@ jobs:
- name: Cache dependencies
uses: Swatinem/rust-cache@v2

# Use miri instead of this, this is temporary see https://github.com/rust-lang/miri/issues/602
# there is a security workflow for this
- name: Run tests
run: |
cargo install cargo-nextest
cargo nextest run && cargo test --doc

- name: Build release
run: ./scripts/build/toolchain cargo build --release

Expand Down
114 changes: 114 additions & 0 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
name: Coverage Check

on:
pull_request_target:
push:
branches: [ main ]

jobs:
coverage:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write

steps:
- uses: actions/checkout@v5
with:
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 0

- name: Cache dependencies
uses: Swatinem/rust-cache@v2

- uses: dtolnay/rust-toolchain@master
with:
toolchain: nightly

- name: Install cargo-llvm-cov and nextest
run: |
cargo install cargo-llvm-cov cargo-nextest

- name: Run llvm-cov on current branch
run: |
mkdir -p ./current-coverage
cargo llvm-cov --no-report nextest
cargo llvm-cov --no-report --doc
cargo llvm-cov report --json --summary-only --doctests --output-path ./current-coverage/coverage.json

- name: Checkout base branch
run: git checkout ${{ github.event.pull_request.base.sha }}

- name: Cache base coverage
uses: actions/cache@v4
id: base-cache
with:
path: ./base-coverage
key: coverage-${{ github.event.pull_request.base.sha }}

- name: Run llvm-cov on base branch
if: steps.base-cache.outputs.cache-hit != 'true'
run: |
mkdir -p ./base-coverage
cargo llvm-cov --no-report nextest
cargo llvm-cov --no-report --doc
cargo llvm-cov report --json --summary-only --doctests --output-path ./base-coverage/coverage.json

- name: Compare coverage
id: compare
continue-on-error: true
run: |
current=$(jq '.totals.lines.percent // .data[0].totals.lines.percent // .lines.percent // 0' ./current-coverage/coverage.json)
base=$(jq '.totals.lines.percent // .data[0].totals.lines.percent // .lines.percent // 0' ./base-coverage/coverage.json)
diff=$(echo "$current - $base" | bc -l)
if (( $(echo "$current < $base" | bc -l) )); then
echo "Coverage decreased from $base% to $current%"
echo "FAILED" > coverage_status.txt
fi

- name: Post or update PR comment
uses: actions/github-script@v8
with:
script: |
const fs = require('fs');
const currentData = JSON.parse(fs.readFileSync('./current-coverage/coverage.json', 'utf8'));
const baseData = JSON.parse(fs.readFileSync('./base-coverage/coverage.json', 'utf8'));
const currentTotals = currentData.totals || currentData.data?.[0]?.totals || {};
const baseTotals = baseData.totals || baseData.data?.[0]?.totals || {};
const currentLines = currentTotals.lines?.percent || 0;
const baseLines = baseTotals.lines?.percent || 0;
const currentFunctions = currentTotals.functions?.percent || 0;
const baseFunctions = baseTotals.functions?.percent || 0;
const currentRegions = currentTotals.regions?.percent || 0;
const baseRegions = baseTotals.regions?.percent || 0;
const diff = (currentLines - baseLines).toFixed(6);
const failed = fs.existsSync('./coverage_status.txt');
const status = failed ? '❌ Decreased' : currentLines > baseLines ? '✅ Increased' : '➡️ No change';
const body = `## Coverage Report\n\n### Overall Metrics\n- **Lines:** ${currentLines.toFixed(2)}% (base: ${baseLines.toFixed(2)}%)\n- **Functions:** ${currentFunctions.toFixed(2)}% (base: ${baseFunctions.toFixed(2)}%)\n- **Regions:** ${currentRegions.toFixed(2)}% (base: ${baseRegions.toFixed(2)}%)\n\n### Summary\n- **Difference:** ${diff}%\n- **Status:** ${status}\n\n${failed ? '⚠️ Coverage regression detected. Please add tests to maintain or increase coverage.' : ''}`;

const comments = await github.rest.issues.listComments({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
});

const existing = comments.data.find(c => c.body.includes('## Coverage Report'));
if (existing) {
await github.rest.issues.updateComment({
owner: context.repo.owner,
repo: context.repo.repo,
comment_id: existing.id,
body: body
});
} else {
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
body: body
});
}

- name: Fail if coverage decreased
if: steps.compare.outcome == 'failure'
run: exit 1
1 change: 1 addition & 0 deletions .github/workflows/security.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ jobs:
- name: Run comprehensive security checks
shell: bash
run: |
cargo install cargo-nextest
# The security script will auto-detect CI environment and install missing tools
# Exit with proper code to fail CI if security tests fail
if ! ./scripts/security.sh; then
Expand Down
1 change: 1 addition & 0 deletions .typos.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
[default.extend-words]
enew = "enew"
Ba = "Ba"

[files]
extend-exclude = ["CHANGELOG.md"]
Loading
Loading