Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support Ruby 3.1 UCRT binary #13

Merged
merged 2 commits into from Jun 9, 2022

Conversation

ashie
Copy link
Contributor

@ashie ashie commented Jun 8, 2022

RubyInstaller has migrate from msvcrt.dll to ucrt.dll:
https://rubyinstaller.org/2021/12/31/rubyinstaller-3.1.0-1-released.html

So that symbols should be loaded from later one.
Althouth I considered introducing a new constant like UCRT_DLL, this
commit still using MSVCRT_DLL even if Ruby is run on ucrt.dll to keep
backward compatibility. I think replacing MSVCRT_DLL with UCRT_DLL
is almost meaningless, they won't used at same time.

Signed-off-by: Takuro Ashie ashie@clear-code.com

@ashie
Copy link
Contributor Author

ashie commented Jun 8, 2022

Oops, CI (AppVeyor) failed on Ruby 3.1...

RubyInstaller has migrate from msvcrt.dll to ucrt.dll:
https://rubyinstaller.org/2021/12/31/rubyinstaller-3.1.0-1-released.html

So that symbols should be loaded from later one.
Althouth I considered introducing a new constant like `UCRT_DLL`, this
commit still using `MSVCRT_DLL` even if Ruby is run on ucrt.dll to keep
backward compatibility. I think replacing `MSVCRT_DLL` with `UCRT_DLL`
is almost meaningless, they won't used at same time.

Signed-off-by: Takuro Ashie <ashie@clear-code.com>
@ashie
Copy link
Contributor Author

ashie commented Jun 8, 2022

Succeeded on GitHub Actions:
ashie#2

What's wrong?

@ashie
Copy link
Contributor Author

ashie commented Jun 8, 2022

Oops, CI (AppVeyor) failed on Ruby 3.1...

Hmm, it tried to build win32-api and failed on Ruby-3.1.
On other Ruby versions, win32-api universal-mingw32 is used.
Probably we need to run with ridk exec on Ruby 3.1.

@cosmo0920
Copy link
Owner

Oops, CI (AppVeyor) failed on Ruby 3.1...

Hmm, it's tried to build win32-api and failed on Ruby-3.1. On other Ruby versions, win32-api universal-mingw32 is used. Probably we need to run with ridk exec on Ruby 3.1.

I tried to use ridk exec for Ruby 3.1 and other ridk available Rubies. But, it didn't succeeded to build win32-api extension gem.

So, we might have to keep AppVeyor's CI task entries from Ruby 2.0 to Ruby 3.0.
For Ruby 3.1 or later, we have to use GitHub Actions for CI.

@ashie
Copy link
Contributor Author

ashie commented Jun 8, 2022

I tried to use ridk exec for Ruby 3.1 and other ridk available Rubies. But, it didn't succeeded to build win32-api extension gem.

I succeeded to build it on x86_64 but not yet on x86:
https://ci.appveyor.com/project/ashie/windows-api/builds/43793998

And drop Ruby 3.1 for x86, it's too hard to install current win32-api
due to unexpected univeral binary. In addition, probably no one uses
Ruby 3.1 for x86 recent days...

Signed-off-by: Takuro Ashie <ashie@clear-code.com>
@cosmo0920
Copy link
Owner

In my thoughts, we can drop Ruby 3.1 x86 from CI target.
This is because we don't have actual use case for 32bit version of td-agent packaging requirements on Windows.

Copy link
Owner

@cosmo0920 cosmo0920 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks attractive for me.

@cosmo0920 cosmo0920 merged commit 8b83e4b into cosmo0920:master Jun 9, 2022
@ashie ashie deleted the support-ruby-3.1-ucrt branch June 9, 2022 02:12
@ashie
Copy link
Contributor Author

ashie commented Jun 9, 2022

Thanks!

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.

None yet

2 participants