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

subtyping nontermination: UX degraded between 1.5.4 and 1.6.2 #41669

Closed
ulysses4ever opened this issue Jul 21, 2021 · 3 comments
Closed

subtyping nontermination: UX degraded between 1.5.4 and 1.6.2 #41669

ulysses4ever opened this issue Jul 21, 2021 · 3 comments

Comments

@ulysses4ever
Copy link
Contributor

Here's a version of the famous Bounded Quantification Undecidable paper (POPL '92), constructed by @RossTate:

function Neg(T)
  return (Ref{X} where X>:T)
end
function Kappa(T)
  return (Tuple{Ref{Y},Neg(Y)} where Y>:T)
end
const Theta = (Tuple{Ref{Z},Neg(Kappa(Z))} where Z)

println(Kappa(Theta) <: Theta) # does not terminate

On 1.5.4 it used to fail gracefully with a StackOverFlow exception. On 1.6.2 it goes into an unspeakable state where nothing makes it stop even Ctrl+C, and I have to kill the terminal altogether. Returning to the original behavior would be good, probably.

/cc @julbinb @BenChung

@JeffBezanson
Copy link
Member

What OS is this on? We have an ongoing problem with catching stack overflows on mac os (#17109). I still get a stack overflow error on linux.

@ulysses4ever
Copy link
Contributor Author

ulysses4ever commented Jul 21, 2021

Ok, here's what seems to be happening: (1) I ran 1.6.2 on a slower machine and seemed to be too hasty with my Ctrl+C, which (2) seemed to hit it in some particularly unfortunate moment. Now I can't reproduce it anymore. And if wait enough, it does print out the exception. So, closing. Sorry for the noise!

@ulysses4ever
Copy link
Contributor Author

For posterity, it was Linux.

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

No branches or pull requests

2 participants