#!/bin/bash echo "=== RustyTorch++ Comprehensive Compilation Check ===" echo "Date: $(date)" echo "" # Arrays to track status declare -a compiling_crates=() declare -a failing_crates=() # Get all crates from cargo metadata crates=$(cargo metadata --format-version 1 --no-deps 2>/dev/null | jq -r '.packages[].name' | sort) # Check each crate for crate in $crates; do echo -n "Checking $crate... " # Find the crate directory crate_dir=$(cargo metadata --format-version 1 --no-deps 2>/dev/null | jq -r ".packages[] | select(.name == \"$crate\") | .manifest_path" | xargs dirname) if [ -z "$crate_dir" ]; then echo "❌ Cannot find crate directory" failing_crates+=("$crate (not found)") continue fi # Try to compile the crate if cd "$crate_dir" && cargo check --quiet 2>/dev/null; then echo "✅ COMPILES" compiling_crates+=("$crate") else echo "❌ FAILS" failing_crates+=("$crate") fi done echo "" echo "=== Summary ===" echo "Total crates: $(echo "$crates" | wc -l)" echo "Compiling: ${#compiling_crates[@]}" echo "Failing: ${#failing_crates[@]}" echo "" echo "=== Compiling Crates ===" printf '%s\n' "${compiling_crates[@]}" echo "" echo "=== Failing Crates ===" printf '%s\n' "${failing_crates[@]}"