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

fix isbits predicate #25044

Closed
vtjnash opened this issue Dec 12, 2017 · 9 comments · Fixed by #25496
Closed

fix isbits predicate #25044

vtjnash opened this issue Dec 12, 2017 · 9 comments · Fixed by #25496
Assignees
Labels
regression Regression in behavior compared to a previous version
Milestone

Comments

@vtjnash
Copy link
Member

vtjnash commented Dec 12, 2017

Right now, it returns wrong answers. Also, we should look into fixing the isleaftype predicate.

@vtjnash vtjnash added this to the 1.0 milestone Dec 12, 2017
@vtjnash vtjnash self-assigned this Dec 12, 2017
@vtjnash vtjnash added the regression Regression in behavior compared to a previous version label Dec 12, 2017
@JeffBezanson
Copy link
Member

Example(s)?

@vtjnash
Copy link
Member Author

vtjnash commented Dec 13, 2017

#23567 and #17086

edit: also related #25310

@StefanKarpinski
Copy link
Member

@vtjnash: please define what your notion of "correct" is in this case. I've noticed that your definitions are not always what I would consider intuitive.

@vtjnash
Copy link
Member Author

vtjnash commented Dec 13, 2017

Master is the only version where this is broken. It was correct on all our releases.

@StefanKarpinski
Copy link
Member

StefanKarpinski commented Dec 13, 2017

Yes, but previously Union{Int, Void}, for example, was not represented as "just bits". Does that qualify as isbits according you your notion of this or not?

@vtjnash
Copy link
Member Author

vtjnash commented Dec 13, 2017

isbits is defined in https://docs.julialang.org/en/stable/manual/calling-c-and-fortran-code/#Type-Correspondences:-1 (somewhat vaguely worded, but that can be fixed). It isn't a floating definition based on the representation. This is already documented in the linked issues, I just needed a placeholder issue to make sure I remember to address this regression before 0.7-release

@StefanKarpinski
Copy link
Member

Are tuples of bits types also bits types? Again, that definition was written before we had the ability to represent simple unions as "just bits". Yes, we could just leave it as is, but should we?

@vtjnash
Copy link
Member Author

vtjnash commented Dec 13, 2017

simple unions aren't represented as "just bits", they use a special layout and don't map to a C type

@StefanKarpinski
Copy link
Member

They do map to C unions if you ignore the selector bits, which are not in the "main" part of the value.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
regression Regression in behavior compared to a previous version
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants