-
Notifications
You must be signed in to change notification settings - Fork 8
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
Config.pm: Windows: Ensure x64 architecture #28
base: main
Are you sure you want to change the base?
Conversation
As far as I know, Rakudo is not building under 32bit Windows. If so, let's check and assure we use the MSVC 64bit cl.exe for a desired build run. See also MoarVM/MoarVM#1789 (comment)
lib/NQP/Config.pm
Outdated
if ( version->parse($actual_version) < $expect_version ) { | ||
$self->sorry( "Expected Microsoft Compiler version " | ||
. $expect_version | ||
. "+, but got " | ||
. $actual_version ); | ||
} | ||
if ( $cl_arch ne "x64" ) { | ||
$self->sorry( "Rakudo compiles currently only on " | ||
. "x64 architectures, but we are on " |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've built rakudo on arm64 Windows before. If I remember correctly it requires using c11-atomics (which is how I ended up writing this PR) and an updated version of dyncall
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also if I understand correctly the issue you linked to in MoarVM is related to building libuv, yet one can pass an option to use an external copy of libuv. We shouldn't block the user from installing on architectures due to a flaw in how we build a 3rd party dependency, particularly if that dependency can be provided in another way.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've built rakudo on arm64 Windows before. If I remember correctly it requires using c11-atomics (which is how I ended up writing this PR) and an updated version of dyncall
Wow, cool, thanks for this info!!!
I have tried to build Rakudo & friends on my arm-based Lenovo Windows10 box, which emulates Windows x86 / 32bit, some months ago. This definitely didn't build / compile.
Have adopted the regex'es now to match [\D+64$] ... this should work for arm64 then as well...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also if I understand correctly the issue you linked to in MoarVM is related to building libuv, yet one can pass an option to use an external copy of libuv. We shouldn't block the user from installing on architectures due to a flaw in how we build a 3rd party dependency, particularly if that dependency can be provided in another way.
Well, that's just an example... I've tried to build Rakudo on some of my older 32bit Windows boxes (up to Windows10) in the past and never succeeded.. at that time, I was told, Rakudo doesn't compile on Win 32bit "per purpose"... and if this is the case, let's implement a check in parallel to the CL.EXE version...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
and if this is the case, let's implement a check in parallel to the CL.EXE version..
Agreed, and indeed we should confirm it doesn't compile on 32 bit windows on purpose. If you could happen to find that conversation in the irc logs and link it in a comment of this PR I think that'd be sufficient
thanks to @ugexe for the review and hint!
As far as I know, Rakudo is not building under 32bit Windows.
If so, let's check and assure we use the MSVC 64bit cl.exe for a desired build run.
See also MoarVM/MoarVM#1789 (comment)