Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: airlift/slice
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 2.6
Choose a base ref
...
head repository: airlift/slice
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 2.7
Choose a head ref
  • 20 commits
  • 13 files changed
  • 3 contributors

Commits on Mar 6, 2026

  1. Configuration menu
    Copy the full SHA
    12a0aa3 View commit details
    Browse the repository at this point in the history

Commits on Mar 8, 2026

  1. Add SWAR-based lastIndexOf implementation

    wendigo authored and dain committed Mar 8, 2026
    Configuration menu
    Copy the full SHA
    3a7850b View commit details
    Browse the repository at this point in the history
  2. Use modern main() syntax

    wendigo authored and dain committed Mar 8, 2026
    Configuration menu
    Copy the full SHA
    6df546c View commit details
    Browse the repository at this point in the history

Commits on Mar 9, 2026

  1. Add release snapshot workflow

    wendigo authored and dain committed Mar 9, 2026
    Configuration menu
    Copy the full SHA
    6775d2a View commit details
    Browse the repository at this point in the history

Commits on Mar 13, 2026

  1. Configuration menu
    Copy the full SHA
    66c2451 View commit details
    Browse the repository at this point in the history
  2. Refactor SliceUtf8 byte-array internals and remove wrapper accessors

    unwrapping slice makes it easier to see what is happening in these
    algorithms and makes it easier to optimize. Additionally this makes
    these functions usable without having to wrap them into a slice.
    dain committed Mar 13, 2026
    Configuration menu
    Copy the full SHA
    2921ea1 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    05c0c4a View commit details
    Browse the repository at this point in the history
  4. Optimize compareUtf16BE

    Benchmark (benchmarkCompareUtf16BE, length=1000):
    
    - ascii=true: 3.483 -> 0.102 ns/codepoint
    
    - ascii=false: 8.214 -> 6.395 ns/codepoint
    dain committed Mar 13, 2026
    Configuration menu
    Copy the full SHA
    8be9ad7 View commit details
    Browse the repository at this point in the history
  5. Optimize reverse

    Benchmark (benchmarkReverse, length=1000):
    
    - ascii=true: 0.318 -> 0.067 ns/codepoint
    
    - ascii=false: 3.397 -> 3.406 ns/codepoint (flat within noise)
    dain committed Mar 13, 2026
    Configuration menu
    Copy the full SHA
    cb65e6b View commit details
    Browse the repository at this point in the history
  6. Optimize toUpperCase

    Benchmark (benchmarkToUpperCase, length=1000):
    
    - ascii=true: 3.053 -> 0.601 ns/codepoint
    
    - ascii=false: 7.254 -> 5.019 ns/codepoint
    dain committed Mar 13, 2026
    Configuration menu
    Copy the full SHA
    36bd3fc View commit details
    Browse the repository at this point in the history
  7. Optimize toLowerCase

    Benchmark (benchmarkToLowerCase, length=1000):
    
    - ascii=true: 3.029 -> 0.501 ns/codepoint
    
    - ascii=false: 7.145 -> 4.183 ns/codepoint
    dain committed Mar 13, 2026
    Configuration menu
    Copy the full SHA
    a02fc01 View commit details
    Browse the repository at this point in the history
  8. Optimize fixInvalidUtf8

    Benchmark (benchmarkFixInvalidUtf8WithoutReplacement, inputLength=1024):
    
    - valid_non_ascii: 6.341 -> 3.978 ns/byte
    
    - invalid_non_ascii: 6.242 -> 4.549 ns/byte
    dain committed Mar 13, 2026
    Configuration menu
    Copy the full SHA
    22cd199 View commit details
    Browse the repository at this point in the history
  9. Optimize leftTrim

    Benchmark (benchmarkLeftTrim, length=1000):
    
    - ascii=true: 1.919 -> 0.344 ns/codepoint
    
    - ascii=false: 3.137 -> 2.201 ns/codepoint
    dain committed Mar 13, 2026
    Configuration menu
    Copy the full SHA
    9d02f1d View commit details
    Browse the repository at this point in the history
  10. Optimize rightTrim

    Benchmark (benchmarkRightTrim, length=1000):
    
    - ascii=true: 0.551 -> 0.359 ns/codepoint
    
    - ascii=false: 2.939 -> 2.534 ns/codepoint
    dain committed Mar 13, 2026
    Configuration menu
    Copy the full SHA
    ace3d34 View commit details
    Browse the repository at this point in the history
  11. Optimize trim(..., whiteSpaceCodePoints)

    Benchmark (benchmarkTrimCustom, length=1000):
    
    - ascii=true: 2.702 -> 0.474 ns/codepoint
    
    - ascii=false: 5.224 -> 4.329 ns/codepoint
    dain committed Mar 13, 2026
    Configuration menu
    Copy the full SHA
    d26a0e8 View commit details
    Browse the repository at this point in the history
  12. Optimize setCodePointAt

    Benchmark (benchmarkSetCodePointAt, length=1000):
    
    - ascii=true: 0.336 -> 0.332 ns/codepoint
    
    - ascii=false: 2.259 -> 2.334 ns/codepoint
    
    Related benchmark (benchmarkCodePointToUtf8, length=1000):
    
    - ascii=false: 2.404 -> 2.154 ns/codepoint
    dain committed Mar 13, 2026
    Configuration menu
    Copy the full SHA
    25f04bd View commit details
    Browse the repository at this point in the history
  13. Add toCodePoints UTF-8 decode API

    Useful for Trino VARCHAR->code points casts and similar decode loops.
    
    Benchmark (ns/byte, length=1000):
    
    - toCodePointsApi ascii: 0.2319 (baseline two-pass: 2.4902)
    
    - toCodePointsApi non-ascii: 1.0820 (baseline two-pass: 1.6643)
    dain committed Mar 13, 2026
    Configuration menu
    Copy the full SHA
    46634e6 View commit details
    Browse the repository at this point in the history
  14. Add fromCodePoints UTF-8 encode API

    Adds fromCodePoints to encode code-point arrays directly into UTF-8
    Slice output. This is useful for Trino-style loops that currently
    pre-size and encode with repeated setCodePointAt calls.
    
    Benchmark (SliceUtf8Benchmark, length=1000 code points):
    
    - ascii=true: fromCodePointsApi 0.326 ns/codepoint vs Trino baseline 0.500 ns/codepoint
    
    - ascii=false: fromCodePointsApi 2.062 ns/codepoint vs Trino baseline 3.230 ns/codepoint
    dain committed Mar 13, 2026
    Configuration menu
    Copy the full SHA
    c30fe18 View commit details
    Browse the repository at this point in the history
  15. Add UTF-8 code-point byte-length helper for Trino-style pad loops

    Adds codePointByteLengths so callers can decode UTF-8 once and directly
    materialize per-code-point byte widths (1..4) for padding/loop planning.
    
    Benchmark (SliceUtf8Benchmark, length=128 code points):
    
    - ascii=true: helper(byte[]) 0.696 ns/codepoint vs Trino byte[] baseline 1.020 ns/codepoint
    
    - ascii=false: helper(byte[]) 2.129 ns/codepoint vs Trino byte[] baseline 3.596 ns/codepoint
    dain committed Mar 13, 2026
    Configuration menu
    Copy the full SHA
    aa8a4d1 View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    a4d32c8 View commit details
    Browse the repository at this point in the history
Loading