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

Support for 0-indexed and arbitrary-indexed arrays #16260

Merged
merged 44 commits into from
Jun 14, 2016
Merged

Support for 0-indexed and arbitrary-indexed arrays #16260

merged 44 commits into from
Jun 14, 2016

Commits on Jun 12, 2016

  1. Configuration menu
    Copy the full SHA
    252f0ff View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    25b5ee5 View commit details
    Browse the repository at this point in the history
  3. Rework bounds-checking so it uses indices

    This is also a redesign of how all this code works, in particular
    making `checkbounds(Bool, A, I...)` more first-class and splitting the
    1d checking into `checkindex`.
    timholy committed Jun 12, 2016
    Configuration menu
    Copy the full SHA
    9ee6112 View commit details
    Browse the repository at this point in the history
  4. Speed up in for UnitRange

    timholy committed Jun 12, 2016
    Configuration menu
    Copy the full SHA
    7cf1163 View commit details
    Browse the repository at this point in the history
  5. Use indices rather than size in equality checks

    This also fixes a serialize test that seems broken
    timholy committed Jun 12, 2016
    Configuration menu
    Copy the full SHA
    7925233 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    4a9affa View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    43c8d84 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    7a30542 View commit details
    Browse the repository at this point in the history
  9. Support indices in similar

    timholy committed Jun 12, 2016
    Configuration menu
    Copy the full SHA
    4b385f0 View commit details
    Browse the repository at this point in the history
  10. Make get index-friendly

    timholy committed Jun 12, 2016
    Configuration menu
    Copy the full SHA
    9ef029b View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    b7eec60 View commit details
    Browse the repository at this point in the history
  12. Update NEWS.md

    timholy committed Jun 12, 2016
    Configuration menu
    Copy the full SHA
    d3667ef View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    53ef3ae View commit details
    Browse the repository at this point in the history
  14. Tweaks to 0-d indexing

    timholy committed Jun 12, 2016
    Configuration menu
    Copy the full SHA
    3469fa9 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    95a9a6f View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    266890c View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    cdf325b View commit details
    Browse the repository at this point in the history
  18. Add IndicesBehavior trait and use it for similar/indexing

    I was trying to avoid adding another trait, but the reality is that this means less specialization for user-types (especially of "difficult" functions like index_shape), and may be the only way to write certain algorithms in a type-stable manner.
    timholy committed Jun 12, 2016
    Configuration menu
    Copy the full SHA
    071dbfe View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    0735ad0 View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    79f649f View commit details
    Browse the repository at this point in the history
  21. Fix show for OffsetArrays

    timholy committed Jun 12, 2016
    Configuration menu
    Copy the full SHA
    0d688dd View commit details
    Browse the repository at this point in the history
  22. Configuration menu
    Copy the full SHA
    eb51aa2 View commit details
    Browse the repository at this point in the history
  23. Configuration menu
    Copy the full SHA
    1520c63 View commit details
    Browse the repository at this point in the history
  24. Fixes to sort and unique

    timholy committed Jun 12, 2016
    Configuration menu
    Copy the full SHA
    c2e0b2c View commit details
    Browse the repository at this point in the history
  25. Configuration menu
    Copy the full SHA
    1b59063 View commit details
    Browse the repository at this point in the history
  26. Avoid calling sub2ind for AbstractVector in indexing

    sub2ind is ambiguous when using unconventional indexing in 1-d, so handle all logic separately.
    This fixes a problem with `show`ing OffsetVectors that cropped up after rebase.
    timholy committed Jun 12, 2016
    Configuration menu
    Copy the full SHA
    a57e872 View commit details
    Browse the repository at this point in the history
  27. Configuration menu
    Copy the full SHA
    9e66642 View commit details
    Browse the repository at this point in the history
  28. Fix slicedim/flipdim

    timholy committed Jun 12, 2016
    Configuration menu
    Copy the full SHA
    a547b9f View commit details
    Browse the repository at this point in the history
  29. Changes to broadcast to support .<, .==, etc for indices

    Broadcast looks like it needs rewriting for jbfunctions. This starts on the process for these specific operations, but leaves the rest of the problem untouched.
    
    One issue here is that I'm implicitly assuming that `parent(P)` returns the "inner" type requested by `allocate_for`. I haven't had to make that assumption yet.
    timholy committed Jun 12, 2016
    Configuration menu
    Copy the full SHA
    54658a8 View commit details
    Browse the repository at this point in the history
  30. Configuration menu
    Copy the full SHA
    522547b View commit details
    Browse the repository at this point in the history
  31. Configuration menu
    Copy the full SHA
    b66d06c View commit details
    Browse the repository at this point in the history
  32. Configuration menu
    Copy the full SHA
    d5750d1 View commit details
    Browse the repository at this point in the history
  33. Redesign allocate_for so it always gets passed a reference array

    Introduces promote_indices (is this a good name?) that picks one array to represent a list of arrays, as long as there is no inconsistency in array types.
    timholy committed Jun 12, 2016
    Configuration menu
    Copy the full SHA
    336cfe6 View commit details
    Browse the repository at this point in the history
  34. Make Colon index-preserving

    timholy committed Jun 12, 2016
    Configuration menu
    Copy the full SHA
    9d97d4a View commit details
    Browse the repository at this point in the history
  35. Configuration menu
    Copy the full SHA
    877ae39 View commit details
    Browse the repository at this point in the history
  36. Docs and NEWS

    timholy committed Jun 12, 2016
    Configuration menu
    Copy the full SHA
    b81b729 View commit details
    Browse the repository at this point in the history
  37. More show fixes and tests

    timholy committed Jun 12, 2016
    Configuration menu
    Copy the full SHA
    ea2e2d7 View commit details
    Browse the repository at this point in the history
  38. Use atsign-inbounds in next for AbstractArrays

    Since the iterator is guaranteed to be inbounds, there is no reason to use a bounds-check. This leads to substantial performance improvements for certain array types.
    timholy committed Jun 12, 2016
    Configuration menu
    Copy the full SHA
    d6e65e4 View commit details
    Browse the repository at this point in the history
  39. Optimize specializations of indices

    Very worthwhile from a performance perspective, since bounds-checking is so performance-critical
    timholy committed Jun 12, 2016
    Configuration menu
    Copy the full SHA
    02f111b View commit details
    Browse the repository at this point in the history

Commits on Jun 13, 2016

  1. Fixes to index_shape

    timholy committed Jun 13, 2016
    Configuration menu
    Copy the full SHA
    9da5ffc View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    9a5c4e9 View commit details
    Browse the repository at this point in the history
  3. Use type-stable newindexer in broadcast

    I was hoping that a small amount of type instability would pay for itself later, but no such luck.
    timholy committed Jun 13, 2016
    Configuration menu
    Copy the full SHA
    a5c16e4 View commit details
    Browse the repository at this point in the history
  4. Improve performance of bounds-checking for SubArrays

    SubArrays have slow indices(S, d) but fast indices(S), so exploit this.
    timholy committed Jun 13, 2016
    Configuration menu
    Copy the full SHA
    5924290 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    a7b88cf View commit details
    Browse the repository at this point in the history