Performance
- Lazy per-record hashing: ~15-30% faster on common workloads by @johnkerl in #2081
- Batch-arena field allocation for line-based readers by @johnkerl in #2082
- Batch-allocate per-record objects; reuse CSV-writer field buffer by @johnkerl in #2083
- Pool DSL stack frames across records (~8-9% perf on
mlr put) by @johnkerl in #2086 - Pool DSL stack-frame sets across UDF/subroutine calls (~31% perf on function-heavy
mlr put) by @johnkerl in #2088 - Drop redundant deep-copy of UDF return values (~3-16% perf on UDFs in
mlr put) by @johnkerl in #2089 - Bind scalar locals/params by reference, not by copy (~4-9% on DSL) by @johnkerl in #2090
- docs: add "Allocation/GC optimizations: June 2026" performance section by @johnkerl in #2091
Features
- Add
--omd-alignedflag for column-padded markdown output by @johnkerl in #2057 - Default to "cat" verb when none is supplied by @johnkerl in #2060
Bug fixes
- Fix mlr -s shebang doc and reject arrays/maps in contains/index by @johnkerl in #2058
- Fix data dropped from ragged implicit-header TSV/CSV-lite input by @johnkerl in #2059
- Fix column alignment for wide and combining Unicode chars (#1520, #379) by @johnkerl in #2061
- Apply join prefixes/rename to unpaired records (#1821) by @johnkerl in #2062
- Fix PPRINT alignment with multi-character OFS (#1819) by @johnkerl in #2063
- Allow empty-string keys in JSON and YAML input by @johnkerl in #2068
- Update ubuntu/python versions in .readthedocs.yaml by @johnkerl in #2092
- Fix exponential memory use when chaining seqgen (#2072) by @johnkerl in #2094
Dependency updates
- Bump goreleaser/goreleaser-action from 7.0.0 to 7.1.0 by @dependabot[bot] in #2045
- Bump goreleaser/goreleaser-action from 7.1.0 to 7.2.1 by @dependabot[bot] in #2047
- Bump github.com/mattn/go-isatty from 0.0.21 to 0.0.22 by @dependabot[bot] in #2048
- Bump github.com/klauspost/compress from 1.18.5 to 1.18.6 by @dependabot[bot] in #2050
- Bump github/codeql-action from 4.35.2 to 4.35.3 by @dependabot[bot] in #2051
- Bump github/codeql-action from 4.35.3 to 4.35.4 by @dependabot[bot] in #2052
- Bump golang.org/x/term from 0.42.0 to 0.43.0 by @dependabot[bot] in #2055
- Bump golang.org/x/text from 0.36.0 to 0.37.0 by @dependabot[bot] in #2054
- Bump github/codeql-action from 4.35.4 to 4.35.5 by @dependabot[bot] in #2056
- Bump goreleaser/goreleaser-action from 7.2.1 to 7.2.2 by @dependabot[bot] in #2064
- Bump github.com/lestrrat-go/strftime from 1.1.1 to 1.2.0 by @dependabot[bot] in #2065
- Bump github/codeql-action from 4.35.5 to 4.36.0 by @dependabot[bot] in #2066
- Bump golang.org/x/sys from 0.44.0 to 0.45.0 by @dependabot[bot] in #2067
- Bump github/codeql-action from 4.36.0 to 4.36.1 by @dependabot[bot] in #2069
- Bump github/codeql-action from 4.36.1 to 4.36.2 by @dependabot[bot] in #2070
- Bump golang.org/x/text from 0.37.0 to 0.38.0 by @dependabot[bot] in #2073
- Bump golang.org/x/term from 0.43.0 to 0.44.0 by @dependabot[bot] in #2074
- Bump golang.org/x/sys from 0.45.0 to 0.46.0 by @dependabot[bot] in #2075
- Bump pault.ag/go/debian from 0.19.0 to 0.20.0 by @dependabot[bot] in #2077
- Bump pault.ag/go/debian from 0.20.0 to 0.21.0 by @dependabot[bot] in #2078
- Bump github.com/cloudflare/circl from 1.6.2 to 1.6.3 by @dependabot[bot] in #2079
- Bump actions/checkout from 6 to 7 by @dependabot[bot] in #2080
Full Changelog: v6.18.1...v6.19.0