-
-
Notifications
You must be signed in to change notification settings - Fork 45
Comparing changes
Open a pull request
base repository: oxidize-rb/rb-sys
base: v0.9.116
head repository: oxidize-rb/rb-sys
compare: v0.9.117
- 15 commits
- 141 files changed
- 6 contributors
Commits on Jul 6, 2025
-
Update CI and bindings for AVX512/MinGW issues (#574)
- Bump setup-ruby-and-rust action to latest commit - Add AVX512/FP16 workaround for Windows x86_64 in bindgen - Disable layout/debug derives for Ruby 2.7/3.0 on MinGW - Opaque __mingw_ldbl_type_t to avoid ABI issues
Configuration menu - View commit details
-
Copy full SHA for 6e382ce - Browse repository at this point
Copy the full SHA 6e382ceView commit details
Commits on Jul 7, 2025
-
Update rubygems detection logic for nix and add tests (#572)
* Update rubygems detection logic and add tests Refine rubygems_invoked? to ignore Nix environments, update comments for clarity, and add comprehensive tests to ensure correct detection in various contexts. * Update oxidize-rb/actions to latest commit Bump actions/upload-core-dumps and setup-ruby-and-rust to ad2f407 for improved reliability and updates across CI workflows. * Add separate lint job to CI workflow Move linting steps (clippy, fmt, Standard.rb) to a new lint job for improved workflow structure and clarity. * Block AVX512 intrinsics for Clang 20 compatibility Block specific AVX512 types and headers in bindgen to avoid Clang 20 issues with these intrinsics. * Fix whitespace and line break inconsistencies Standardize spacing, blank lines, and indentation across docs and code for improved readability. No functional changes. * Work around Clang 20 AVX512 bindgen issues on Windows Add header guards to prevent AVX512 intrinsics inclusion on Windows, fixing bindgen errors. Remove related blocklists now unnecessary. * Block AVX512 intrinsics in bindgen for Windows Move header blocking from clang args to bindgen blocklists for better handling of Clang 20 issues with AVX512 types on Windows. * Remove extra whitespace and fix trailing space Clean up excess blank line and trailing space in blocklist_item. * Suppress Clang builtin headers on Windows Avoid AVX512 intrinsics issues by disabling Clang's builtin headers via -nostdinc. Removes related blocklists for cleaner bindgen config. * Refactor AVX512 workaround for Windows Clang Replace -nostdinc hack with targeted blocklists for AVX512 intrinsics and types to avoid bindgen failures on Windows with Clang 20. Improves maintainability and avoids suppressing all builtin headers. * Prevent AVX512 intrinsics headers on Windows Define header guards in clang args to avoid inclusion of problematic AVX512-related headers when building on Windows. * Disable AVX512 features in bindgen on Windows Replace header guard defines with clang flags to disable AVX512, AVX10.2, and AMX-AVX512 CPU features when generating bindings on Windows. This prevents problematic intrinsics from being included. * Improve Windows handling of AVX512 intrinsics Switch from disabling CPU features to undefining related macros and adding MinGW include paths to address intrinsics issues when generating bindings on Windows. * Fix AVX512 intrinsics issues on Windows with Clang Add target flags, header guards, and blocklists to disable AVX512 and AVX10 intrinsics/types for Windows builds. This prevents build failures with Clang 20 and MinGW. * Fix AVX512 intrinsics issues on Windows with Clang - Add comprehensive header guards for all AVX512/AVX10 intrinsics - Create wrapper_windows.h to predefine guards before includes - Add extensive -mno-avx* flags and -U macros for feature detection - Update bindings.rs to use multi-level defense against intrinsics This fixes the 'unknown type name __m512h' errors when building with bindgen on Windows using Clang 20. * Fix formatting issues * Remove unrecognized AVX512 compiler flags for Windows - Removed -mno-avx512er and -mno-avx512pf flags that are not recognized by some Clang versions - These flags were causing 'unknown argument' errors on Windows CI - MinGW include paths were already added for mm_malloc.h support * Disable AVX/AVX2 and pre-define problematic types for Windows - Disable AVX and AVX2 to prevent loading of immintrin.h - Pre-define __m128h, __m256h, __m512h types before any headers - Pre-define _Float16 and vector types to avoid conflicts - Add more header guards for SSE/AVX intrinsics headers * Disable SSE instructions to prevent any intrinsics loading - Disable SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2 - This should prevent loading of emmintrin.h and other intrinsics - Fix _Float16 typedef guard to prevent redefinition * Remove typedef definitions and add -msoft-float flag - Removed problematic typedef struct definitions from wrapper_windows.h - Added -msoft-float flag to completely avoid floating-point issues - Keep header guards and macro undefinitions only * Fix cargo fmt formatting issue - Fixed formatting in bindings.rs line 65 * Remove -msoft-float flag causing parse errors on Windows - The -msoft-float flag was causing 'expected square brackets' parse errors - Windows builds should work with the AVX/SSE disable flags alone * Limit CI matrix to Ruby 3.2 on Windows only Comment out other Ruby versions and OSes to speed up CI runs or simplify debugging. All non-essential configurations are temporarily disabled. * Clear BINDGEN_EXTRA_CLANG_ARGS on Windows to prevent conflicts - The CI environment sets BINDGEN_EXTRA_CLANG_ARGS with invalid target triple - This was causing "expected square brackets" parse errors in bindgen - Clear the environment variable on Windows before running bindgen - Also added header guards for __AVX512FP16INTRIN_H format used by CI Co-Authored-By: Claude <noreply@anthropic.com> * Filter invalid target triple from BINDGEN_EXTRA_CLANG_ARGS - The CI sets BINDGEN_EXTRA_CLANG_ARGS with --target=stable-x86_64-pc-windows-gnu - The "stable" prefix is invalid and causes bindgen parse errors - Filter out the invalid target flag while keeping other args - This should fix the "expected square brackets" error on Windows Co-Authored-By: Claude <noreply@anthropic.com> * Move BINDGEN_EXTRA_CLANG_ARGS filtering to build script start - Filter the environment variable at the very beginning of main() - This ensures it's cleaned before bindgen reads it internally - Also add sysroot detection for Windows builds - Remove duplicate filtering logic from bindings.rs Co-Authored-By: Claude <noreply@anthropic.com> * Use fixed version of setup-ruby-and-rust action - Update CI to use debug-windows branch with target triple fix - Remove now-unnecessary BINDGEN_EXTRA_CLANG_ARGS filtering - The fix is now upstream in the actions repository 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix invalid target triple in BINDGEN_EXTRA_CLANG_ARGS on Windows - Parse and fix the invalid --target=stable-x86_64-pc-windows-gnu - Replace with correct --target=x86_64-pc-windows-gnu - This is done within the bindings generation code before bindgen runs - Revert CI to use the main branch of oxidize-rb/actions The upstream CI sets BINDGEN_EXTRA_CLANG_ARGS with an invalid target triple that includes "stable-" prefix, which causes bindgen parse errors. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix cargo fmt issue 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Move BINDGEN_EXTRA_CLANG_ARGS fix to start of build script - Fix the invalid target triple at the very beginning of main() - This ensures it's fixed before any bindgen operations read it - Remove duplicate fix from bindings.rs The CI sets BINDGEN_EXTRA_CLANG_ARGS with --target=stable-x86_64-pc-windows-gnu which causes bindgen parse errors. We need to fix it as early as possible. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix BINDGEN_EXTRA_CLANG_ARGS in rb_sys mkmf helper - Fix the invalid target triple in create_rust_makefile method - This ensures all rb-sys projects get the fix, not just rb-sys itself - The CI sets BINDGEN_EXTRA_CLANG_ARGS with --target=stable-x86_64-pc-windows-gnu - We filter out the invalid target and replace with correct one This fix is applied when any rb-sys project calls create_rust_makefile, ensuring the environment variable is corrected before the build starts. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Add Windows BINDGEN_EXTRA_CLANG_ARGS fix to Makefile generation - Add windows_bindgen_fix method to mkmf.rb - Uses sed to replace invalid --target=stable-* with correct target - Applied in generated Makefile before cargo is run - Only runs on Windows platforms (mingw/mswin) This ensures the environment variable is fixed before cargo/bindgen sees it, avoiding the "expected square brackets" parse error. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix Windows BINDGEN_EXTRA_CLANG_ARGS using Ruby string manipulation - Replace sed-based approach with Ruby gsub - Fix lint issue: use match? instead of =~ - Fix environment variable at Ruby level before Makefile generation - Export corrected value to Makefile Sed doesn't work reliably in Windows MSYS environments, so we fix the invalid target triple using Ruby string manipulation instead. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Add debug output for BINDGEN_EXTRA_CLANG_ARGS fix - Add debug logging in both build/main.rs and bindings.rs - Fix the invalid target triple at both locations to ensure it's caught - This will help us see if the fix is being applied and why it might not work The CI sets BINDGEN_EXTRA_CLANG_ARGS with --target=stable-x86_64-pc-windows-gnu which is invalid and causes bindgen parse errors. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix BINDGEN_EXTRA_CLANG_ARGS in CI workflow for Windows - Add a step after setup-ruby-and-rust to fix the invalid target triple - The upstream action sets --target=stable-x86_64-pc-windows-gnu - Replace it with correct --target=x86_64-pc-windows-gnu - Export the fixed value to GITHUB_ENV for subsequent steps This fixes the issue at the CI level rather than trying to fix it in multiple places within rb-sys itself. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Remove debug code for BINDGEN_EXTRA_CLANG_ARGS fix - Remove debug output from build/main.rs and bindings.rs - The fix is now handled in the CI workflow instead - Keep the codebase clean by removing temporary debug code 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix Standard.rb lint errors in mkmf.rb - Use safe navigation operator (&.) for ENV variable check - Replace single quotes with double quotes per Ruby style guide - Auto-fixed by standardrb tool for consistency 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Add debug output for Ruby CPPFLAGS - Log Ruby's CPPFLAGS before passing them to bindgen - This will help diagnose the 'expected square brackets' parse error - The error might be coming from malformed flags or shell substitution 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix cargo fmt issues - Remove extra blank line in main.rs - Keep code formatting consistent with rustfmt rules 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Remove AVX512 defines from BINDGEN_EXTRA_CLANG_ARGS - The upstream setup-ruby-and-rust action adds -D__AVX512VLFP16INTRIN_H -D__AVX512FP16INTRIN_H - These defines interfere with our header guard approach - Remove them in the CI workflow after the action runs - This should finally resolve the "expected square brackets" parse error 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Add debug output for bindgen parse errors - Enable RUST_BACKTRACE=1 in CI for better error diagnostics - Add RUST_LOG=bindgen=debug to get verbose bindgen output - Improve error handling in bindings.rs to log full clang args - This will help identify the source of 'expected square brackets' error 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix compilation error - clone clang_args before moving - Fix 'borrow of moved value' error by cloning clang_args - The vector is moved into default_bindgen() but we need it for debug logging - This allows the error handler to print the full clang args on failure 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Remove SSE disable flags and -march that might cause bindgen parse errors - Remove -mno-sse* flags that might be incompatible with MinGW - Remove -march=x86-64 that might conflict with the target - Fix cargo fmt issues with proper blank lines - The 'expected square brackets' error might be related to these flags 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Try blocklist_file to prevent Clang loading intrinsics headers - Add comprehensive blocklist_file patterns to prevent loading any intrinsics headers - Remove AVX disable flags that might trigger header inclusion - Remove -U macros that might cause issues - Add explicit -target flag to ensure correct target - Clang is still loading its built-in headers despite our guards 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Try using -nostdinc to prevent Clang from loading builtin intrinsics headers The blocklist_file approach didn't work because Clang's built-in headers are loaded internally and cannot be blocked with bindgen's blocklist_file. Using -nostdinc prevents Clang from loading any system headers at all, which should finally prevent the AVX512 intrinsics headers from being loaded. We then manually add back the necessary include paths for MinGW. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Try undefining CPU feature macros instead of using -nostdinc The -nostdinc approach was too aggressive and prevented Clang from finding basic headers like stdarg.h. Instead, try undefining all the CPU feature macros (__AVX512F__, __AVX__, etc.) to prevent the intrinsics headers from being conditionally included. Also set -march=x86-64 and -mtune=generic to target a basic x86_64 without vector extensions. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Clean up PR: restore full CI matrix and move linting to separate job - Restored the full test matrix for all Ruby versions and platforms - Kept the lint job as a separate step for better CI organization - Removed duplicate lint steps from the test job - Kept only the changes necessary for the Windows AVX512 fix * Keep nix detection changes to avoid recompilation in nix environments This adds detection for NIX_STORE environment variable to prevent rb-sys from treating nix environments as rubygems installations. This avoids unnecessary recompilation in development when using nix. Includes tests to verify the behavior in various scenarios. * Fix linting: add final newline to test_rubygems_detection.rb 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Update AVX512 workaround for Windows bindgen - Simplify Windows AVX512/FP16 workaround: use -mno-sse/-mno-avx for MinGW x86_64 - Remove custom wrapper_windows.h and related header guard logic - Improve layout/debug impl gating for old Ruby on MinGW - Switch to action version tags in CI workflows * Refactor rubygems_invoked? and fix doc formatting - Move rubygems_invoked? to public method in CargoBuilder - Clean up whitespace and formatting in documentation files --------- Co-authored-by: Claude <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for bfb8d5e - Browse repository at this point
Copy the full SHA bfb8d5eView commit details
Commits on Jul 15, 2025
-
Replace legacy book/ docs with new docsite (#577)
* New docsite * Add new docs: patterns, cookbook, FAQ, glossary - Introduce new documentation pages: - basic-patterns.mdx (essential Rust/Ruby extension patterns) - cookbook.mdx (ready-to-use code recipes) - faq.mdx (common questions and troubleshooting) - glossary.mdx (terminology reference) - Update sidebars, CSS, and navigation to integrate new docs - Improve installation, getting started, and quick start guides for clarity and onboarding * Update magnus version from 0.6 to 0.7 in all documentation * Remove legacy book/ docs and update workflow to deploy docsite * Add docsite branch to publish-docs workflow for testing * Remove temporary branch from publish-docs workflow
Configuration menu - View commit details
-
Copy full SHA for 8fdabbd - Browse repository at this point
Copy the full SHA 8fdabbdView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9bfb0dd - Browse repository at this point
Copy the full SHA 9bfb0ddView commit details -
Update documentation, add doctest support, and improve error handling…
… across multiple files.
Configuration menu - View commit details
-
Copy full SHA for 5d3f09a - Browse repository at this point
Copy the full SHA 5d3f09aView commit details -
chore: streamline doctest workflow and update examples
- Simplify GitHub workflow for doctests: use `oxidize-rb/setup-ruby-and-rust`, run `bundle exec rake doctest:run` - Remove manual code extraction and compilation steps in CI - Update Rust and Ruby code examples for idiomatic usage and error handling improvements - Fix typos and update deprecated APIs (e.g., use `rb_sys::activate()` in build.rs) - Improve interior mutability patterns using `RefCell` - Refactor comparable module example with proper error handling and idiomatic Rust - Enhance error handling examples and memory management patterns - Add real-world examples for mixing rb-sys and Magnus usage - Improve documentation examples for working with Ruby objects, arrays, hashes, and error handling - Add build.rs for test environment linking on macOS - Run clippy checks on doctest examples with relaxed lints but warnings on unwrap/expect usage
Configuration menu - View commit details
-
Copy full SHA for d518a7f - Browse repository at this point
Copy the full SHA d518a7fView commit details -
Refactor doctest workflow and unify jobs (#579)
* Refactor doctest workflow and unify jobs Simplify the doctest GitHub Actions workflow by removing job matrix and separate jobs. Update Ruby version to 3.4 and Node.js to 20. Combine doctests, doc build, and link checks into a single job for streamlined execution. * Refactor doctest rake task for clarity and robustness - Remove unused/commented Ruby env setup - Standardize string quoting style to double quotes - Simplify file writing and string formatting - Change build.rs to return Result, improve error handling - Replace Open3 calls with Rake sh for commands - Adjust clippy flags to deny unwrap/expect usage - Remove tmp/doctest from Cargo.toml workspace members - Clean up Ruby syntax check to use sh command - Improve output messages and code comments * Update doctest workflow to trigger on doctest-stabilize branch Add 'doctest-stabilize' branch to push event triggers in doctest.yml to run documentation tests on both main and doctest-stabilize branches. * Refactor docs, improve Rust examples, and tighten clippy checks - Reformat documentation outline for clarity and structure - Simplify Rust code examples by removing unused imports and parameters - Replace manual C string literals with safer macros - Fix minor bugs in example functions and improve initialization patterns - Update project setup with Display trait implementation for URL wrapper - Tighten clippy linting in doctest task by removing lenient allowances - Minor workflow YAML syntax fix (double quotes for cache)
Configuration menu - View commit details
-
Copy full SHA for 562d2cd - Browse repository at this point
Copy the full SHA 562d2cdView commit details -
Add CNAME file for custom domain oxidize-rb.org
Include CNAME in docsite static to enable custom domain setup.
Configuration menu - View commit details
-
Copy full SHA for bcf2d43 - Browse repository at this point
Copy the full SHA bcf2d43View commit details -
chore(docsite): update Docusaurus to v3.8.1 and improve SEO
- Remove outdated intro.md tutorial page - Update favicon to .ico format - Add meta tags for keywords, description, robots, author, and canonical URL - Enable last update author/time in docs - Configure sitemap with weekly changefreq and priority 0.5 - Add Twitter and Open Graph metadata - Upgrade Docusaurus dependencies and plugins to v3.8.1 - Hide duplicate code language labels in CSS - Update homepage title for clarity - Enhance robots.txt with crawl delay and explicit sitemap URL - Upgrade various package dependencies in package-lock.json
Configuration menu - View commit details
-
Copy full SHA for c0785b2 - Browse repository at this point
Copy the full SHA c0785b2View commit details
Commits on Jul 16, 2025
-
Configuration menu - View commit details
-
Copy full SHA for 239bf74 - Browse repository at this point
Copy the full SHA 239bf74View commit details
Commits on Jul 18, 2025
-
NetBSD defines some symbols starting with "__pthread_" that are not captured by "^pthread_.*".
Configuration menu - View commit details
-
Copy full SHA for 503f661 - Browse repository at this point
Copy the full SHA 503f661View commit details -
Bump syn from 2.0.101 to 2.0.104 (#566)
Bumps [syn](https://github.com/dtolnay/syn) from 2.0.101 to 2.0.104. - [Release notes](https://github.com/dtolnay/syn/releases) - [Commits](dtolnay/syn@2.0.101...2.0.104) --- updated-dependencies: - dependency-name: syn dependency-version: 2.0.104 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for 82f02bc - Browse repository at this point
Copy the full SHA 82f02bcView commit details -
Bump aquasecurity/trivy-action (#576)
Bumps [aquasecurity/trivy-action](https://github.com/aquasecurity/trivy-action) from 99baf0d8b4e787c3cfd7b602664c8ce60a43cd38 to 77137e9dc3ab1b329b7c8a38c2eb7475850a14e8. - [Release notes](https://github.com/aquasecurity/trivy-action/releases) - [Commits](aquasecurity/trivy-action@99baf0d...77137e9) --- updated-dependencies: - dependency-name: aquasecurity/trivy-action dependency-version: 77137e9dc3ab1b329b7c8a38c2eb7475850a14e8 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for d66aa34 - Browse repository at this point
Copy the full SHA d66aa34View commit details
Commits on Aug 1, 2025
-
Configuration menu - View commit details
-
Copy full SHA for d9ffcca - Browse repository at this point
Copy the full SHA d9ffccaView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9907867 - Browse repository at this point
Copy the full SHA 9907867View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff v0.9.116...v0.9.117