Comments (9)
I added a patch to the mswin build win32-setup.mak.patch, and it seems to fix the issue.
If it's okay here, I can open a PR in ruby/ruby.
It allows Ruby mswin builds using VS 2022 or later to also compile other items (ext gems, etc) using the previous version of VS.
from rbs.
Everyone else is just using 'windows-latest'.
Hmm. Do you think testing only windows-latest
makes more sense? I have no strong opinion on this in fact.
(Note that the build matrix is what you write for the project. 😆)
from rbs.
Thanks Greg,
I will revise the CI setup to use only windows-latest
. (And add some released ruby versions.)
from rbs.
Not sure. I know MSVC has always had compatibility issues with 'current' C standards.
It seems like the failures started with #1870 'Make c99, c23 compatible'. But, the error message shown in CI is odd, it indicates that the issue is unrelated.
Also, the last passing mswin job used the same GHA runner image as the first failing job. I've got 2022 & 2019 installed locally, so I'll see if I can repro.
from rbs.
I can repro the issue but I'm still trying to determine what change caused the failure. The ucrt & mswin builds used in setup-ruby come from ruby-loco, and it (at present) only builds mswin with VS 2022. I'm going to build mswin with VS 2019 locally and see what happens. I'm AFK for a bit, not sure for how long...
from rbs.
@MSP-Greg Thank you so much for your response and the patch!
I'm sorry, I don't know the detail of windows support in ruby/ruby. Looks like they don't have build issues though...
from rbs.
It compiles! 🎉 https://github.com/ruby/rbs/actions/runs/9479776888/job/26157488917
I really appreciate your help!
from rbs.
Glad I could help, thanks for testing it. I checked a few of the other extension gems, and you're the only one testing mswin on the 'windows-2019' GHA runner image. Everyone else is just using 'windows-latest'.
As you might guess, setup-ruby only provides one mswin build, and it's compiled with 'windows-latest'. That could be changed.
Generally, I think that if code compiles, it will run.
The issue is that the current ruby/ruby code fails if one tries to compile with a MSVC version that is earlier than the one Ruby was built with. That might be more strict than it needs to be. That's what the above patch changes.
@nobu Sorry for the ping. Do you know if the patch at win32-setup.mak.patch will cause problems?
EDIT: another issue that may also affect things is the current vcpkg archive file is also built with VS 2022. I do have two separate vcpkg installs locally, one using VS 2022 and the other using VS 2019. I haven't used the 2019 version for quite a while. I don't believe rbs requires any of the vcpkg files to compile. Not sure.
from rbs.
Do you think testing only windows-latest makes more sense?
If you use windows-latest
, you don't have to keep an eye on GHA setup. Or, you'll be updated to the latest image when it's available. Conversely, some repos would prefer to not have an 'automatic change', which could break CI.
Yes, I did set up the GHA workflow at the time. The windows-2022
GHA image was first available (as a release) with the 10-Jan-2022 image, it was in beta a few months before that.
I have no strong opinion on this in fact.
I feel the same. Given that the actual VS build tools are free, and a paid version is now a 'subscription', I don't see why people would still be using VS 2019. But, GHA is still supporting it with their runner image...
from rbs.
Related Issues (20)
- "singleton(class with this mixin)" is not supported
- [RBS::Test] Cannot call `super` in block
- How to deal with gems with integrations
- Incorrrect signatures for ruby 3.3.0
- Type signature failures in net-http
- support * in tuples HOT 3
- Position of RBS::Location should be byte length HOT 3
- `rbs collection install` fails with parse error HOT 8
- Identify and skip `development` dependencies
- Support type narrowing HOT 2
- Cannot call `super` in block
- Test for project integration HOT 1
- Test for project integration
- %a{pure} does not seem to work for attr_reader HOT 3
- inline type narrowing HOT 1
- Array(T | Array[T]) not well handled HOT 2
- Method overload narrowing
- calling #each on obj typed with record yields |bot, bot| types HOT 3
- rbs validate: NoMethodError for a method taking a block
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rbs.