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

Pointer ABI for Windows #16

Merged
merged 20 commits into from
Apr 4, 2019
Merged

Pointer ABI for Windows #16

merged 20 commits into from
Apr 4, 2019

Conversation

RalphAS
Copy link
Collaborator

@RalphAS RalphAS commented Mar 5, 2019

The Windows (msys) libraries apparently use pointer ABI for Float128. This is an attempt to accommodate them.

@RalphAS
Copy link
Collaborator Author

RalphAS commented Mar 5, 2019

I think arithmetic, comparisons, and basic conversions are working. Tests are currently crashing when doing BigFloat conversions. Could you look that section over again, @simonbyrne ?

@simonbyrne
Copy link
Member

My mistake: I had the limb size of MPFR wrong. Should be working now.

Copy link
Member

@simonbyrne simonbyrne left a comment

Choose a reason for hiding this comment

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

Woohoo, thanks!

Did you want to make any further changes? Otherwise I'm happy to merge

@RalphAS RalphAS changed the title WIP: pointer ABI for Windows Pointer ABI for Windows Mar 6, 2019
@RalphAS
Copy link
Collaborator Author

RalphAS commented Mar 6, 2019

I tried adding Win32 back to the test matrix (since I found the correct library name), but there is still some problem there - hence the AppVeyor failure above. I'm not able to do much on Windows myself, so I'd be glad if you merge and leave the remaining issue for someone with a stake. (problem found and fixed in later commit)

src/Quadmath.jl Outdated Show resolved Hide resolved
src/Quadmath.jl Outdated Show resolved Hide resolved
RalphAS added 4 commits March 6, 2019 10:05
Since Win32 args are on the stack, it should not use Ptr ABI
for everything.
It requires a sort of hybrid between the *nix and Win64
conventions, but the details are not clear, so implementation
and testing agains Win32 are postponed.
@RalphAS RalphAS force-pushed the ras/ptr4win branch 2 times, most recently from cedf4fa to d3e9b69 Compare March 9, 2019 18:12
@RalphAS
Copy link
Collaborator Author

RalphAS commented Mar 9, 2019

@simonbyrne I think this is finally ready now that it actually tests the wrappers; I'd suggest a squash+merge.

src/Quadmath.jl Outdated Show resolved Hide resolved
@simonbyrne simonbyrne mentioned this pull request Apr 1, 2019
src/Quadmath.jl Outdated
function Float64(x::Float128)
ccall((:__trunctfdf2,quadoplib), Cdouble, (Ref{Cfloat128},), x)
end
else
Copy link
Member

Choose a reason for hiding this comment

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

Why doesn't this need the separate branch to handle the 32-bit windows case?

@simonbyrne simonbyrne mentioned this pull request Apr 3, 2019
@simonbyrne simonbyrne merged commit 71907aa into JuliaMath:master Apr 4, 2019
@simonbyrne
Copy link
Member

Thanks @RalphAS for your help!

@RalphAS RalphAS deleted the ras/ptr4win branch April 5, 2019 02:03
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.

2 participants