Skip to content

Conversation

@StefanKarpinski
Copy link
Member

No description provided.

The old name sounds like an alias for `Bottom = Union{}` rather
than `Type{Bottom} == typeof(Bottom)`. (This last should hold
but currently doesn't – see #21016.)
@tkelman
Copy link
Contributor

tkelman commented Mar 16, 2017

wasn't exported, but would break JLD - https://github.com/JuliaIO/JLD.jl/blob/aced8cbe4c89712b48434e73d62ac96b582bf409/src/JLD.jl#L1039

add a non-exported deprecation?

@StefanKarpinski
Copy link
Member Author

add a non-exported deprecation?

What about just fixing the one case where it's used, i.e. JLD.

@tkelman
Copy link
Contributor

tkelman commented Mar 16, 2017

Possibly used in private or non-github code, and it's not like a deprecation is hard to add?

In order to still be able to benchmark against intermediate commits JLD will also have to account for both names at different versions.

@StefanKarpinski
Copy link
Member Author

StefanKarpinski commented Mar 16, 2017

Adding a deprecation for an unexported, undocumented name that was added in this release and is used by only one package uses is silly.

@ararslan
Copy link
Member

Out of curiosity, what's the motivation for the change?

ANY

"""
Core.TypeofBottom
Copy link
Contributor

Choose a reason for hiding this comment

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

This doesn't look right

julia> Core.BottomType == Type{Union{}}
false

julia> Core.BottomType === Type{Union{}}
false

Copy link
Member

Choose a reason for hiding this comment

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

#21023 fixes that (the == call at least).

Copy link
Member Author

Choose a reason for hiding this comment

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

Yes, it's currently not true. Jeff and Jameson are having an ongoing debate about whether this should be true or not. Consider it aspirational.

@StefanKarpinski
Copy link
Member Author

The motivation is that BottomType sounds like Union{} whereas this is the type of that, so calling it TypeofBottom seems considerably less confusing.

Copy link
Member

@ararslan ararslan left a comment

Choose a reason for hiding this comment

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

macOS failure looks entirely unrelated

@StefanKarpinski
Copy link
Member Author

@JeffBezanson: what do you think? Should I drop the docstring commit and then merge this?

@JeffBezanson
Copy link
Member

I think this is ok. I would remove Type{Union{}} from the docstring but keep the rest, and also rename jl_bottomtype_type to jl_typeofbottom_type in src/.

@tkelman
Copy link
Contributor

tkelman commented Mar 20, 2017

It's "silly" to add a single line to avoid hard-breaking a widely used package during feature freeze?

Copy link
Contributor

@tkelman tkelman left a comment

Choose a reason for hiding this comment

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

either the old name should be deprecated or a fix to JLD (that keeps the ability for the package to work at versions that used the old name) should be staged, or this will be disruptive, break benchmarking and quite a few other packages

StefanKarpinski added a commit to JuliaIO/JLD.jl that referenced this pull request Mar 20, 2017
This change should be merged and tagged in a release before
JuliaLang/julia#21057 renames Core.BottomType
@StefanKarpinski
Copy link
Member Author

PR created for JLD. Deprecating a binding in Core is not so simple, but you're welcome to take a crack at it.

@tkelman tkelman dismissed their stale review March 20, 2017 22:06

that works. wonder why it wasn't written as typeof to begin with

@StefanKarpinski
Copy link
Member Author

wonder why it wasn't written as typeof to begin with

Maybe because it wasn't entirely clear that Core.BottomType == typeof(Union{}) in the first place? Whoever wrote this may have wanted Type{Union{}} to work, but those are currently different.

@tkelman
Copy link
Contributor

tkelman commented Mar 21, 2017

Jeff wrote it - JuliaIO/JLD.jl@1fa3929
though I think it was while the type system rewrite was still getting finished up, to get benchmarking working for it.

@StefanKarpinski
Copy link
Member Author

In that case it's because he's probably used to referring to the type that way :)

ararslan pushed a commit to JuliaIO/JLD.jl that referenced this pull request Mar 23, 2017
This change should be merged and tagged in a release before
JuliaLang/julia#21057 renames Core.BottomType
(cherry picked from commit 4dc9447)
@ararslan
Copy link
Member

@nanosoldier runbenchmarks(ALL, vs=":master")

@nanosoldier
Copy link
Collaborator

Your benchmark job has completed - possible performance regressions were detected. A full report can be found here. cc @jrevels

@ararslan
Copy link
Member

Cool, looks like Nanosoldier is ready, and the AV appears unrelated. Good to merge, I think.

@StefanKarpinski StefanKarpinski merged commit 70bb32f into master Mar 25, 2017
@StefanKarpinski StefanKarpinski deleted the sk/typeofbottom branch March 25, 2017 00:37
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.

7 participants