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

Deprecate setrounding #27166

Merged
merged 6 commits into from
May 29, 2018
Merged

Deprecate setrounding #27166

merged 6 commits into from
May 29, 2018

Conversation

simonbyrne
Copy link
Contributor

Fixes #26935.

This is the "minimal" change of deprecating Float32/Float64 support.

Fixes #26935.

This is the "minimal" change of deprecating Float32/Float64 support.
@simonbyrne simonbyrne added the status:triage This should be discussed on a triage call label May 18, 2018
@JeffBezanson
Copy link
Sponsor Member

I'm not sure this is worth doing until we have a replacement.

@StefanKarpinski
Copy link
Sponsor Member

Except that it will be a breaking change, no? We don't want the existence of old, broken functionality to prevent us from introducing the new, correctly working functionality.

@JeffBezanson
Copy link
Sponsor Member

I thought we were just going to remove setrounding eventually, not reuse the name.

@JeffBezanson
Copy link
Sponsor Member

@simonbyrne Please advise --- can we keep this for now and add a totally separate better mechanism later, or is it necessary to remove this first?

@simonbyrne
Copy link
Contributor Author

I'm not sure what the ultimate solution will look like: my best guess is something based on Cassette, similar to the Int64 -> Int32 literal conversion pass.

The main argument for removing it is that this design is fundamentally broken: basically it works for small toy examples, but if you try to use it with anything non-trivial the results aren't reliable.

@JeffBezanson
Copy link
Sponsor Member

Ok; if you think it's unreliable enough that we're better off removing it then we can do that.

@JeffBezanson JeffBezanson added the kind:deprecation This change introduces or involves a deprecation label May 23, 2018
@orkolorko
Copy link

Setting rounding modes for Float64 is now implemented through intrinsics in LLVM.

https://reviews.llvm.org/D74729

I think it may be worth to bring back this change to Julia base; directed rounding are used in some verified linear algebra algorithms to take advantage of LAPACK matrix multiplication to compute rigorous enclosures.

I wrote a small workaround package
https://github.com/orkolorko/SetRoundingLLVM.jl
but I think this should be brought back to Base.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind:deprecation This change introduces or involves a deprecation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

what to do with setrounding?
4 participants