Skip to content

Add Ruby version 4.0.1 to branch protection workflow#99

Merged
corybuecker merged 1 commit intomainfrom
corybuecker-patch-1
Feb 13, 2026
Merged

Add Ruby version 4.0.1 to branch protection workflow#99
corybuecker merged 1 commit intomainfrom
corybuecker-patch-1

Conversation

@corybuecker
Copy link
Owner

@corybuecker corybuecker commented Feb 7, 2026

Adding 4.0.1 to help with #97.

@jtarchie
Copy link

It seems to work here. Could this something with the version of Rust then?

@corybuecker
Copy link
Owner Author

@jtarchie could you try running Rake on this branch? Here are my Rust and Ruby versions, as well as the output of my rake command.

➜  ruby-native-statistics git:(corybuecker-patch-1) cargo version
cargo 1.93.0 (083ac5135 2025-12-15)
➜  ruby-native-statistics git:(corybuecker-patch-1) ruby --version
ruby 4.0.1 (2026-01-13 revision e04267a14b) +PRISM [arm64-darwin25]
➜  ruby-native-statistics git:(corybuecker-patch-1) bundle
Bundle complete! 4 Gemfile dependencies, 8 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
➜  ruby-native-statistics git:(corybuecker-patch-1) rake
mkdir -p tmp/arm64-darwin25/ruby_native_statistics/4.0.1
cd tmp/arm64-darwin25/ruby_native_statistics/4.0.1
/opt/homebrew/opt/ruby/bin/ruby -I. ../../../../ext/ruby_native_statistics/extconf.rb
checking for clang... yes
checking for clang++... yes
checking for ar... yes
checking for install_name_tool... yes
cd -
cd tmp/arm64-darwin25/ruby_native_statistics/4.0.1
/usr/bin/make
generating /Users/corybuecker/projects/ruby-native-statistics/target/debug/libruby_native_statistics.dylib (dev)
cargo rustc  --manifest-path /Users/corybuecker/projects/ruby-native-statistics/ext/ruby_native_statistics/Cargo.toml --target-dir /Users/corybuecker/projects/ruby-native-statistics/target --lib --profile dev -- -C linker=clang -L native=/opt/homebrew/Cellar/ruby/4.0.1/lib -L native=/opt/homebrew/Cellar/libyaml/0.2.5/lib -L native=/opt/homebrew/Cellar/openssl@3/3.6.1/lib -C link-arg=-Wl,-undefined,dynamic_lookup -l pthread
   Compiling proc-macro2 v1.0.106
   Compiling unicode-ident v1.0.23
   Compiling quote v1.0.44
   Compiling memchr v2.8.0
   Compiling glob v0.3.3
   Compiling libc v0.2.181
   Compiling regex-syntax v0.8.9
   Compiling minimal-lexical v0.2.1
   Compiling cfg-if v1.0.4
   Compiling either v1.15.0
   Compiling libloading v0.8.9
   Compiling bindgen v0.69.5
   Compiling itertools v0.12.1
   Compiling bitflags v2.10.0
   Compiling shlex v1.3.0
   Compiling clang-sys v1.8.1
   Compiling lazy_static v1.5.0
   Compiling lazycell v1.3.0
   Compiling rustc-hash v1.1.0
   Compiling shell-words v1.1.1
   Compiling aho-corasick v1.1.4
   Compiling nom v7.1.3
   Compiling rb-sys-env v0.2.3
   Compiling thiserror v2.0.18
   Compiling seq-macro v0.3.6
   Compiling syn v2.0.115
   Compiling magnus v0.8.2
   Compiling regex-automata v0.4.14
   Compiling cexpr v0.6.0
   Compiling regex v1.12.3
   Compiling magnus-macros v0.8.0
   Compiling thiserror-impl v2.0.18
   Compiling rb-sys-build v0.9.124
   Compiling rb-sys v0.9.124
   Compiling ruby_native_statistics v2.0.0 (/Users/corybuecker/projects/ruby-native-statistics/ext/ruby_native_statistics)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.48s
cd -
mkdir -p tmp/arm64-darwin25/stage/lib/ruby_native_statistics
cp Cargo.lock tmp/arm64-darwin25/stage/Cargo.lock
cp Cargo.toml tmp/arm64-darwin25/stage/Cargo.toml
cp README.md tmp/arm64-darwin25/stage/README.md
cp Rakefile tmp/arm64-darwin25/stage/Rakefile
cp UNLICENSE tmp/arm64-darwin25/stage/UNLICENSE
cp changelog.md tmp/arm64-darwin25/stage/changelog.md
mkdir -p tmp/arm64-darwin25/stage/ext/ruby_native_statistics
cp ext/ruby_native_statistics/Cargo.toml tmp/arm64-darwin25/stage/ext/ruby_native_statistics/Cargo.toml
cp ext/ruby_native_statistics/extconf.rb tmp/arm64-darwin25/stage/ext/ruby_native_statistics/extconf.rb
mkdir -p tmp/arm64-darwin25/stage/ext/ruby_native_statistics/src
cp ext/ruby_native_statistics/src/dispersion.rs tmp/arm64-darwin25/stage/ext/ruby_native_statistics/src/dispersion.rs
cp ext/ruby_native_statistics/src/lib.rs tmp/arm64-darwin25/stage/ext/ruby_native_statistics/src/lib.rs
cp ext/ruby_native_statistics/src/mathematics.rs tmp/arm64-darwin25/stage/ext/ruby_native_statistics/src/mathematics.rs
cp lib/ruby_native_statistics.rb tmp/arm64-darwin25/stage/lib/ruby_native_statistics.rb
cp lib/ruby_native_statistics/version.rb tmp/arm64-darwin25/stage/lib/ruby_native_statistics/version.rb
/usr/bin/make install sitearchdir=../../../../lib/ruby_native_statistics sitelibdir=../../../../lib/ruby_native_statistics target_prefix=
generating /Users/corybuecker/projects/ruby-native-statistics/target/debug/libruby_native_statistics.dylib (dev)
cargo rustc  --manifest-path /Users/corybuecker/projects/ruby-native-statistics/ext/ruby_native_statistics/Cargo.toml --target-dir /Users/corybuecker/projects/ruby-native-statistics/target --lib --profile dev -- -C linker=clang -L native=/opt/homebrew/Cellar/ruby/4.0.1/lib -L native=/opt/homebrew/Cellar/libyaml/0.2.5/lib -L native=/opt/homebrew/Cellar/openssl@3/3.6.1/lib -C link-arg=-Wl,-undefined,dynamic_lookup -l pthread
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.01s
installing ruby_native_statistics.bundle to ../../../../lib/ruby_native_statistics
/usr/bin/install -c -m 0755 ruby_native_statistics.bundle ../../../../lib/ruby_native_statistics
cp tmp/arm64-darwin25/ruby_native_statistics/4.0.1/ruby_native_statistics.bundle tmp/arm64-darwin25/stage/lib/ruby_native_statistics/ruby_native_statistics.bundle
Run options: --seed 11081

# Running:

...................................

Finished in 1.008694s, 34.6983 runs/s, 73.3622 assertions/s.

35 runs, 74 assertions, 0 failures, 0 errors, 0 skips

@jtarchie
Copy link

jtarchie commented Feb 12, 2026

When running rake from the gem there were no issues.
So I went back to update my project, still an issue:

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    current directory: /Users/jtarchie/.rbenv/versions/4.0.1/lib/ruby/gems/4.0.0/gems/ruby_native_statistics-2.0.0/ext/ruby_native_statistics
/Users/jtarchie/.rbenv/versions/4.0.1/bin/ruby extconf.rb
checking for clang... yes
checking for clang++... yes
checking for ar... yes
checking for cargo... yes
checking for install_name_tool... yes

current directory: /Users/jtarchie/.rbenv/versions/4.0.1/lib/ruby/gems/4.0.0/gems/ruby_native_statistics-2.0.0/ext/ruby_native_statistics
make -j11 DESTDIR\= sitearchdir\=./.gem.20260212-58500-6dosxs sitelibdir\=./.gem.20260212-58500-6dosxs clean

current directory: /Users/jtarchie/.rbenv/versions/4.0.1/lib/ruby/gems/4.0.0/gems/ruby_native_statistics-2.0.0/ext/ruby_native_statistics
make -j11 DESTDIR\= sitearchdir\=./.gem.20260212-58500-6dosxs sitelibdir\=./.gem.20260212-58500-6dosxs
generating target/release/libruby_native_statistics.dylib (release)
cargo rustc  --manifest-path ./Cargo.toml --target-dir target --lib --profile release -- -C linker=clang -L native=/Users/jtarchie/.rbenv/versions/4.0.1/lib -L
native=/opt/homebrew/Cellar/gmp/6.3.0/lib -C link-arg=-Wl,-undefined,dynamic_lookup -l pthread
   Compiling proc-macro2 v1.0.95
   Compiling unicode-ident v1.0.18
   Compiling memchr v2.7.5
   Compiling glob v0.3.2
   Compiling libc v0.2.174
   Compiling minimal-lexical v0.2.1
   Compiling cfg-if v1.0.1
   Compiling regex-syntax v0.8.5
   Compiling either v1.15.0
   Compiling bindgen v0.69.5
   Compiling bitflags v2.9.1
   Compiling libloading v0.8.8
   Compiling rustc-hash v1.1.0
   Compiling shlex v1.3.0
   Compiling itertools v0.12.1
   Compiling lazycell v1.3.0
   Compiling lazy_static v1.5.0
   Compiling shell-words v1.1.0
   Compiling rb-sys-env v0.1.2
   Compiling thiserror v2.0.12
   Compiling seq-macro v0.3.6
   Compiling clang-sys v1.8.1
   Compiling aho-corasick v1.1.3
   Compiling nom v7.1.3
   Compiling magnus v0.7.1
   Compiling quote v1.0.40
   Compiling syn v2.0.104
   Compiling regex-automata v0.4.9
   Compiling cexpr v0.6.0
   Compiling regex v1.11.1
   Compiling magnus-macros v0.6.0
   Compiling thiserror-impl v2.0.12
   Compiling rb-sys-build v0.9.116
   Compiling rb-sys v0.9.116
error[E0308]: mismatched types
    --> /Users/jtarchie/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/magnus-0.7.1/src/fiber.rs:469:21
     |
 466 |                 Value::new(rb_fiber_raise(
     |                            -------------- arguments to this function are incorrect
...
 469 |                     &e.as_rb_value() as *const VALUE,
     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ types differ in mutability
     |
     = note: expected raw pointer `*mut u64`
                found raw pointer `*const u64`
note: function defined here
-->
/Users/jtarchie/.rbenv/versions/4.0.1/lib/ruby/gems/4.0.0/gems/ruby_native_statistics-2.0.0/ext/ruby_native_statistics/target/release/build/rb-sys-46ade97ab20fc776/out/bindings-0.9.116-mri-arm64-darwin25-4.0.1.rs:5362:16
     |
5362 |         pub fn rb_fiber_raise(fiber: VALUE, argc: ::std::os::raw::c_int, argv: *mut VALUE)
     |                ^^^^^^^^^^^^^^

error[E0609]: no field `typed_flag` on type `&rb_sys::RTypedData`
   --> /Users/jtarchie/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/magnus-0.7.1/src/r_typed_data.rs:202:58
    |
202 |                     let typed_flag = typed_data.as_ref().typed_flag;
    |                                                          ^^^^^^^^^^ unknown field
    |
    = note: available fields are: `basic`, `fields_obj`, `type_`, `data`

Some errors have detailed explanations: E0308, E0609.
For more information about an error, try `rustc --explain E0308`.
error: could not compile `magnus` (lib) due to 2 previous errors
make: *** [target/release/libruby_native_statistics.dylib] Error 101

make failed, exit code 2

Gem files will remain installed in /Users/jtarchie/.rbenv/versions/4.0.1/lib/ruby/gems/4.0.0/gems/ruby_native_statistics-2.0.0 for inspection.
Results logged to /Users/jtarchie/.rbenv/versions/4.0.1/lib/ruby/gems/4.0.0/extensions/arm64-darwin-25/4.0.0/ruby_native_statistics-2.0.0/gem_make.out

  /Users/jtarchie/.rbenv/versions/4.0.1/lib/ruby/4.0.0/rubygems/ext/builder.rb:139:in 'Gem::Ext::Builder.run'
  /Users/jtarchie/.rbenv/versions/4.0.1/lib/ruby/4.0.0/rubygems/ext/builder.rb:65:in 'block in Gem::Ext::Builder.make'
  /Users/jtarchie/.rbenv/versions/4.0.1/lib/ruby/4.0.0/rubygems/ext/builder.rb:57:in 'Array#each'
  /Users/jtarchie/.rbenv/versions/4.0.1/lib/ruby/4.0.0/rubygems/ext/builder.rb:57:in 'Gem::Ext::Builder.make'
  /Users/jtarchie/.rbenv/versions/4.0.1/lib/ruby/4.0.0/rubygems/ext/ext_conf_builder.rb:44:in 'Gem::Ext::ExtConfBuilder.build'
  /Users/jtarchie/.rbenv/versions/4.0.1/lib/ruby/4.0.0/rubygems/ext/builder.rb:221:in 'Gem::Ext::Builder#build_extension'
  /Users/jtarchie/.rbenv/versions/4.0.1/lib/ruby/4.0.0/rubygems/ext/builder.rb:255:in 'block in Gem::Ext::Builder#build_extensions'
  /Users/jtarchie/.rbenv/versions/4.0.1/lib/ruby/4.0.0/rubygems/ext/builder.rb:252:in 'Array#each'
  /Users/jtarchie/.rbenv/versions/4.0.1/lib/ruby/4.0.0/rubygems/ext/builder.rb:252:in 'Gem::Ext::Builder#build_extensions'
  /Users/jtarchie/.rbenv/versions/4.0.1/lib/ruby/4.0.0/rubygems/installer.rb:809:in 'Gem::Installer#build_extensions'
  /Users/jtarchie/.rbenv/versions/4.0.1/lib/ruby/gems/4.0.0/gems/bundler-2.7.2/lib/bundler/rubygems_gem_installer.rb:111:in 'Bundler::RubyGemsGemInstaller#build_extensions'
  /Users/jtarchie/.rbenv/versions/4.0.1/lib/ruby/gems/4.0.0/gems/bundler-2.7.2/lib/bundler/rubygems_gem_installer.rb:30:in 'Bundler::RubyGemsGemInstaller#install'
  /Users/jtarchie/.rbenv/versions/4.0.1/lib/ruby/gems/4.0.0/gems/bundler-2.7.2/lib/bundler/source/rubygems.rb:220:in 'Bundler::Source::Rubygems#install'
  /Users/jtarchie/.rbenv/versions/4.0.1/lib/ruby/gems/4.0.0/gems/bundler-2.7.2/lib/bundler/installer/gem_installer.rb:55:in 'Bundler::GemInstaller#install'
  /Users/jtarchie/.rbenv/versions/4.0.1/lib/ruby/gems/4.0.0/gems/bundler-2.7.2/lib/bundler/installer/gem_installer.rb:17:in 'Bundler::GemInstaller#install_from_spec'
  /Users/jtarchie/.rbenv/versions/4.0.1/lib/ruby/gems/4.0.0/gems/bundler-2.7.2/lib/bundler/installer/parallel_installer.rb:133:in 'Bundler::ParallelInstaller#do_install'
  /Users/jtarchie/.rbenv/versions/4.0.1/lib/ruby/gems/4.0.0/gems/bundler-2.7.2/lib/bundler/installer/parallel_installer.rb:124:in 'block in Bundler::ParallelInstaller#worker_pool'
  /Users/jtarchie/.rbenv/versions/4.0.1/lib/ruby/gems/4.0.0/gems/bundler-2.7.2/lib/bundler/worker.rb:62:in 'Bundler::Worker#apply_func'
  /Users/jtarchie/.rbenv/versions/4.0.1/lib/ruby/gems/4.0.0/gems/bundler-2.7.2/lib/bundler/worker.rb:57:in 'block in Bundler::Worker#process_queue'
  /Users/jtarchie/.rbenv/versions/4.0.1/lib/ruby/gems/4.0.0/gems/bundler-2.7.2/lib/bundler/worker.rb:54:in 'Kernel#loop'
  /Users/jtarchie/.rbenv/versions/4.0.1/lib/ruby/gems/4.0.0/gems/bundler-2.7.2/lib/bundler/worker.rb:54:in 'Bundler::Worker#process_queue'
  /Users/jtarchie/.rbenv/versions/4.0.1/lib/ruby/gems/4.0.0/gems/bundler-2.7.2/lib/bundler/worker.rb:90:in 'block (2 levels) in Bundler::Worker#create_threads'

An error occurred while installing ruby_native_statistics (2.0.0), and Bundler cannot continue.

In Gemfile:
  ruby_native_statistics

Versions:

ruby 4.0.1 (2026-01-13 revision e04267a14b) +PRISM [arm64-darwin25]
Bundler version 2.7.2
cargo 1.93.0 (Homebrew)

@jtarchie
Copy link

jtarchie commented Feb 12, 2026

Interesting, I updated my Gemfile to point to the path: '../ruby-native-statistics and it appears to work fine. Though I am not sure if it compiled anything.

So, something with the currently distributed gem?

@corybuecker
Copy link
Owner Author

Thanks, that is useful information. I'm publishing v2.0.1 shortly, could you try that?

@corybuecker corybuecker merged commit 1ddc4a6 into main Feb 13, 2026
9 checks passed
@corybuecker corybuecker deleted the corybuecker-patch-1 branch February 13, 2026 11:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants