Replace sizeof(jl_tagged_value_t) with sizeof(void*) for MSVC #11776
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This (along with one small int128 patch, not included with this PR) results in a successful MSVC-built julia repl, see discussion at 8b8b261#commitcomment-11018031
MSVC was getting a different answer for
sizeof(jl_taggedvalue_t)
because there are some GNU extension tricks that make the current "types as C structs" arrangement work.Amazingly all the linalg tests pass (
ccall
ing into a mingw-built openblas dll), there's a failure in numbers that's likely due to missing int128 intrinsics, andI still need to run the rest of the tests to get an idea what other failures there areseveral other failures to look into. See #7761 (comment) for instructions on how to build with MSVC - it currently downloads mingw-built dependency dll's from a nightly julia binary, but leveraging #11754 should eventually be able to make the build process less hacky, including building as many deps as possible with MSVC to make things msys and mingw-independent.Should probably open an MSVC support tracking issue after this gets merged, to figure out how to manage any MSVC-only changes in base, get an MSVC-built Julia to properly identify itself as such, etc.