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

RFC: move Vararg specType rewriting into dispatch #16159

Closed
wants to merge 32 commits into from

Commits on Apr 29, 2016

  1. Add a length parameter N to Vararg, Vararg{T,N}

    This also:
    - adds an enum classification of Vararg types
    - implements a few convenience functions
    - switches some checks from jl_is_va_tuple to jl_va_tuple_kind(t) == JL_VARARG_UNBOUND
    - updates jl_wrap_vararg to take two inputs
    - displays such Varargs properly in the REPL
    timholy authored and vtjnash committed Apr 29, 2016
    Configuration menu
    Copy the full SHA
    c9fe086 View commit details
    Browse the repository at this point in the history
  2. Add NTuple translation utilities

    timholy authored and vtjnash committed Apr 29, 2016
    Configuration menu
    Copy the full SHA
    cde289a View commit details
    Browse the repository at this point in the history
  3. Add flexible Vararg info utilities

    timholy authored and vtjnash committed Apr 29, 2016
    Configuration menu
    Copy the full SHA
    458cdde View commit details
    Browse the repository at this point in the history
  4. Add new jl_tuple_subtype_ algorithm

    This leaves the old one in place and compares the results of the two.
    This way we can catch bugs immediately, rather than trying to deduce
    what went wrong from the indirect consequences.
    timholy authored and vtjnash committed Apr 29, 2016
    Configuration menu
    Copy the full SHA
    0b53e36 View commit details
    Browse the repository at this point in the history
  5. Test jl_subtype_le more thoroughly, return "new" result

    This also makes tweaks to the algorithm to prevent matches like
    Array{Tuple{Int}} <: Array{NTuple}
    timholy authored and vtjnash committed Apr 29, 2016
    Configuration menu
    Copy the full SHA
    4acbe56 View commit details
    Browse the repository at this point in the history
  6. Update jl_type_morespecific

    timholy authored and vtjnash committed Apr 29, 2016
    Configuration menu
    Copy the full SHA
    6125202 View commit details
    Browse the repository at this point in the history
  7. Update type_match for new va tuples

    timholy authored and vtjnash committed Apr 29, 2016
    Configuration menu
    Copy the full SHA
    469a244 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    d0c5848 View commit details
    Browse the repository at this point in the history
  9. Update typejoin for new Varargs

    This also turns debugging output back on in preparation for the final implementation
    The cmdlineargs test fails, but only due to the extra output generated.
    timholy authored and vtjnash committed Apr 29, 2016
    Configuration menu
    Copy the full SHA
    a4903e4 View commit details
    Browse the repository at this point in the history
  10. Delete redundant debugging code

    timholy authored and vtjnash committed Apr 29, 2016
    Configuration menu
    Copy the full SHA
    302a951 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    5f2cd6a View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    15d95ad View commit details
    Browse the repository at this point in the history
  13. Don't wrap V<:Vararg in TypeVar(:_, V)

    timholy authored and vtjnash committed Apr 29, 2016
    Configuration menu
    Copy the full SHA
    ed641b3 View commit details
    Browse the repository at this point in the history
  14. Fix problem with NTuple instantiation

    Matching the symbols turns out to be really dangerous, it's necessary
    to match pointers.
    timholy authored and vtjnash committed Apr 29, 2016
    Configuration menu
    Copy the full SHA
    6b96ae7 View commit details
    Browse the repository at this point in the history
  15. Delete debugging code

    timholy authored and vtjnash committed Apr 29, 2016
    Configuration menu
    Copy the full SHA
    162c92d View commit details
    Browse the repository at this point in the history
  16. Add docs and NEWS on Vararg{T,N}

    timholy authored and vtjnash committed Apr 29, 2016
    Configuration menu
    Copy the full SHA
    396b0ac View commit details
    Browse the repository at this point in the history
  17. Don't assume a limited set of types for N in Vararg{T,N}

    Needed for NTuple{Integer} declarations like found in sparsematrix.jl.
    timholy authored and vtjnash committed Apr 29, 2016
    Configuration menu
    Copy the full SHA
    52708c5 View commit details
    Browse the repository at this point in the history
  18. Add more Vararg{T,N} tests

    timholy authored and vtjnash committed Apr 29, 2016
    Configuration menu
    Copy the full SHA
    11cdf6f View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    08f7f8e View commit details
    Browse the repository at this point in the history
  20. Add space in Vararg test expectation

    timholy authored and vtjnash committed Apr 29, 2016
    Configuration menu
    Copy the full SHA
    919604e View commit details
    Browse the repository at this point in the history
  21. Configuration menu
    Copy the full SHA
    8b26138 View commit details
    Browse the repository at this point in the history
  22. Fix segfault with invoke

    timholy authored and vtjnash committed Apr 29, 2016
    Configuration menu
    Copy the full SHA
    1711ea5 View commit details
    Browse the repository at this point in the history
  23. Fix Type{Tuple{}} <: Type{NTuple{TypeVar(:N,true)}}

    On current master, this gave true but
       Type{Tuple{}} <: Type{Tuple{Vararg}}
    gave false. Now they both give true.
    timholy authored and vtjnash committed Apr 29, 2016
    Configuration menu
    Copy the full SHA
    db39b22 View commit details
    Browse the repository at this point in the history
  24. Validate Vararg parameters

    timholy authored and vtjnash committed Apr 29, 2016
    Configuration menu
    Copy the full SHA
    974a73c View commit details
    Browse the repository at this point in the history
  25. Re-fix #12092

    timholy authored and vtjnash committed Apr 29, 2016
    Configuration menu
    Copy the full SHA
    8dc43c5 View commit details
    Browse the repository at this point in the history
  26. Rename enum types

    timholy authored and vtjnash committed Apr 29, 2016
    Configuration menu
    Copy the full SHA
    908047b View commit details
    Browse the repository at this point in the history
  27. Configuration menu
    Copy the full SHA
    ddf288b View commit details
    Browse the repository at this point in the history
  28. Fix Vararg method printing

    timholy authored and vtjnash committed Apr 29, 2016
    Configuration menu
    Copy the full SHA
    ac9ed2b View commit details
    Browse the repository at this point in the history
  29. normalize more Tuple{Vararg{T,N}} to Tuple{T,...}

    c.f. "Instantiate Tuple{Vararg{Int,3}} as Tuple{Int,Int,Int}"
    vtjnash committed Apr 29, 2016
    Configuration menu
    Copy the full SHA
    9f3f075 View commit details
    Browse the repository at this point in the history

Commits on Apr 30, 2016

  1. apply type-signature correction to ml-matches

    this ensures that type-inference gets the same method signature from type-intersection
    as will be used for the actual call
    vtjnash committed Apr 30, 2016
    Configuration menu
    Copy the full SHA
    0bd3fb5 View commit details
    Browse the repository at this point in the history

Commits on May 2, 2016

  1. Configuration menu
    Copy the full SHA
    578fe68 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    47101ac View commit details
    Browse the repository at this point in the history