-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
julia REPL aborting after harmless syntax error #24078
Comments
I see, that the dups all have the same reason: Redefine of base methods. |
Because there is nothing special about base methods compared to other methods. The guideline that you go against by defining these methods are discussed at https://docs.julialang.org/en/latest/manual/style-guide/#Avoid-type-piracy-1. |
It would still be nice to (eventually) find a way to prevent the crash. An optional optional blacklist of functions that can’t be redefined, or modules whose functions can’t be redefined? Maintaining global state for one Julia instruction and rolling back if there’s a catchable |
Sure. Before people decided they didn't like that behavior (#19916, #20545, #21027, others), it wouldn't have crashed.
Please don't call an arbitrary crash a "segfault". A segfault is a very specific failure that isn't catchable and results in the word "segfault" being printed or displayed. |
@vtjnash, given that, do you suggest
Okay, updated to " |
Yes.
It could be a good feature to allow doing this, but such features
|
I've been wondering whether it's feasible to prevent (accidental) type-piracy by ensuring that if a method is added (or overwritten) to a function defined in another module, the signature may not be the supertype of any signature defined solely using types defined outside the current module, except Of course, there would have to a be way to disable the check, a |
|
I found a reproducible abort of julia, when I played around with
=>
.Same effect with
Version 0.6.0 (2017-06-19 13:05 UTC)
Question evoked by the crash:
Why is
const => = Pair
(=> is a type alias) and not=>(a,b) = Pair(a,b)
(=> is an operator)?The text was updated successfully, but these errors were encountered: