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

WIP: Give NTuple{N, T} a layout #31681

Closed
wants to merge 5 commits into from
Closed

WIP: Give NTuple{N, T} a layout #31681

wants to merge 5 commits into from

Commits on Apr 12, 2019

  1. Configuration menu
    Copy the full SHA
    d0d01c0 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    d14696e View commit details
    Browse the repository at this point in the history
  3. WIP: Give NTuple{N, T} a layout

    In the type system, we generally support tuples of the patter Tuple{..., Vararg{T, N}}.
    However, when it comes to actually allocating these, we expand them out to
    `Tuple{..., T, T, T, T, T, ...}`. This makes tuples not particularly suitable
    as the representation for various memory buffers, because the cost of doing various
    operations on their datatypes is proportional to the number of elements. This attempts
    to keep them in the Vararg{T, N} form throughout the system, and similarly adding
    a form of the layout specification that works for repeated trailing arguments.
    
    Current status: Various things work, printing a tuple of this sort crashes in interesting
    places. Inverse normalization (repeated trailing elements to NTuple) not yet implemented.
    Keno committed Apr 12, 2019
    Configuration menu
    Copy the full SHA
    b8c0e12 View commit details
    Browse the repository at this point in the history
  4. Fix a thing

    Keno committed Apr 12, 2019
    Configuration menu
    Copy the full SHA
    bf001f8 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    05ae3a2 View commit details
    Browse the repository at this point in the history