Git Product home page Git Product logo

Comments (9)

MSP-Greg avatar MSP-Greg commented on July 3, 2024 1

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.

soutaro avatar soutaro commented on July 3, 2024 1

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.

soutaro avatar soutaro commented on July 3, 2024 1

Thanks Greg,
I will revise the CI setup to use only windows-latest. (And add some released ruby versions.)

from rbs.

MSP-Greg avatar MSP-Greg commented on July 3, 2024

@soutaro

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.

MSP-Greg avatar MSP-Greg commented on July 3, 2024

@soutaro

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.

soutaro avatar soutaro commented on July 3, 2024

@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.

soutaro avatar soutaro commented on July 3, 2024

It compiles! 🎉 https://github.com/ruby/rbs/actions/runs/9479776888/job/26157488917
I really appreciate your help!

from rbs.

MSP-Greg avatar MSP-Greg commented on July 3, 2024

@soutaro

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.

MSP-Greg avatar MSP-Greg commented on July 3, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.