Repository navigation
Releases: alex-1974/raster-d
Release list
v0.5.5
What's Changed
- Fix masked histogram benchmark acceptance for issue #274 by @alex-1974 in #277
- Fix parallel row worker binding and coverage guarantees by @alex-1974 in #282
- Document parallel execution and tile qualification by @alex-1974 in #283
- Prepare raster-d v0.5.5 release by @alex-1974 in #284
Full Changelog: v0.5.4...v0.5.5
v0.5.4
What's Changed
- Fix imagery-shaped histogram benchmark by @alex-1974 in #275
- Prepare raster-d v0.5.4 release by @alex-1974 in #276
Full Changelog: v0.5.3...v0.5.4
raster-d v0.5.3
raster-d v0.5.3 release notes
raster-d v0.5.3 extends bounded, synchronous data-plane execution to
multiple independently backed source views. It remains generic: RGB, mask,
histogram and colour semantics belong to consumers such as imagery-d.
Public API
withViewsParallelPhasesfor source-only multi-view analysis;withViewsIntoParallelPhasesfor multi-view analysis followed by a
destination transform;- independent view and plane validation with common logical extents;
- callback-scoped grouped affine windows with the existing bounded phase
barriers, stable worker indices and alias checks.
The source-view collection is homogeneous by sample type. This keeps the
public callback strongly typed and allocation-free while supporting RGB data
plus a separately backed byte mask.
Qualification
- DMD and LDC unit tests pass, including DIP1000 probes;
- all PR #272 release gates pass;
- the release benchmark covers the imagery-shaped RGB plus separate-mask
workload with worker-local 65,536-bin histograms and deterministic
reduction before the three-channel float transform.
v0.5.2
raster-d v0.5.1
raster-d v0.5.1 release notes
raster-d v0.5.1 adds a generic, opt-in parallel row-kernel primitive to the
callback-scoped data-plane API. It is independent of imagery-d and does not
install a process-wide scheduler.
Public API
parallelRowsParallelRowsResultwithPlanesIntoParallel
The callback receives callback-scoped source/destination windows and a
half-open logical row range. It must be @safe nothrow, write only its assigned
rows, and must not retain borrowed arguments. All workers are joined before
return. Failed callbacks may leave partial destination writes.
Qualification
- DMD and LDC unit tests pass.
- LDC ThreadSanitizer unit tests pass.
- Tests cover negative row strides, ROI geometry, alias rejection, callback
failure, sequential fallback and multi-worker coverage. - The release benchmark covers 1024×768 and 1920×1080 with multiple worker
limits and chunk sizes.
Persistent worker reuse, queueing, cancellation and affinity remain caller
responsibilities and are not part of raster-d's public scheduler contract.
v0.5.0
Highlights
- Added public callback-scoped strided row access for planar and interleaved kernels.
- Exposed validated row data and sample stride through
RasterPlaneRowandWritableRasterPlaneRow. - DMD RGB benchmark improved from 3.78 ns/pixel to 1.79 ns/pixel with no material LDC regression.
- Added release notes and external-consumer benchmark evidence.
Full changelog: v0.4.1...v0.5.0
v0.4.1
What's Changed
- docs: document v0.4.0 publication by @alex-1974 in #263
- perf: optimize affine multi-plane data paths by @alex-1974 in #264
Full Changelog: v0.4.0...v0.4.1
v0.4.0
v0.3.0
What's Changed
- perf(strict-sum): inline checked ulong accumulation by @alex-1974 in #209
- chore(release): integrate published v0.2.0 into develop preserving development history by @alex-1974 in #247
- docs: correct v0.2.0 publication status without rewriting release history by @alex-1974 in #248
- docs: make divideInto DDox example exercise divideInto by @alex-1974 in #249
- feat(histogram): add exact generic ubyte histogram256 reduction by @alex-1974 in #252
- feat(histogram): add generic caller-buffered numeric interval histograms by @alex-1974 in #253
- docs(readme): acknowledge AI-assisted development by @alex-1974 in #256
- fix(release): repair multiline v0.3 status-test fixtures by @alex-1974 in #257
- fix(release): distinguish v0.3 candidate docs from stale v0.2 claims by @alex-1974 in #258
- docs(release): prepare publication-neutral raster-d v0.3.0 metadata by @alex-1974 in #259
- release: prepare raster-d v0.3.0 candidate and full qualification by @alex-1974 in #255
Full Changelog: v0.2.0...v0.3.0
v0.2.0
What's Changed
- docs(release): record v0.1.0 tag publication state by @alex-1974 in #83
- chore(release): forward-integrate v0.1.0 into develop by @alex-1974 in #84
- docs(release): reconcile completed v0.1 publication state by @alex-1974 in #122
- docs(api): inventory current raster public surface by @alex-1974 in #123
- docs(api): define v0.2 raster family boundary by @alex-1974 in #124
- docs(api): design Raster owning type by @alex-1974 in #125
- docs(api): define Raster ownership construction family by @alex-1974 in #126
- docs(api): define ergonomic raster view family by @alex-1974 in #127
- test(roi): freeze subregion semantics by @alex-1974 in #128
- docs(api): define explicit clone semantics by @alex-1974 in #129
- test(api): freeze M1 UFCS ergonomics by @alex-1974 in #130
- feat(api): add v0.2 transformInto bridge by @alex-1974 in #131
- feat(api): add allocating transform convenience by @alex-1974 in #132
- feat(api): add zipTransformInto primitive by @alex-1974 in #133
- feat(api): add arithmetic wrappers over zipTransformInto by @alex-1974 in #134
- feat(api): reconcile v0.2 copy and fill family by @alex-1974 in #135
- docs(api): define generic reduction semantics by @alex-1974 in #136
- feat(api): add generic strict sum reduction by @alex-1974 in #137
- feat(api): add min max and minMax reductions by @alex-1974 in #138
- feat(api): add generic mean reduction by @alex-1974 in #139
- feat(api): define exact raster conversion policy by @alex-1974 in #140
- feat(api): add generic exact convertRasterInto by @alex-1974 in #141
- feat(api): add allocating exact conversion by @alex-1974 in #142
- feat(api): add reusable raster sample traits by @alex-1974 in #143
- docs(api): audit fixed 3x3 neighbourhood family by @alex-1974 in #144
- feat(api): add compile-time neighbourhood shape by @alex-1974 in #145
- feat(api): add generic applyNeighbourhoodInto by @alex-1974 in #146
- feat(api): add generic raster border policies by @alex-1974 in #147
- feat(api): add fixed-kernel convolution family by @alex-1974 in #148
- research(perf): add prepared convolution qualification harness by @alex-1974 in #149
- docs(research): define generic raster resampling boundary by @alex-1974 in #150
- fix(bench): run prepared convolution from merged develop state by @alex-1974 in #151
- research(perf): isolate prepared convolution state benefit by @alex-1974 in #152
- perf(bench): establish v0.2 benchmark families by @alex-1974 in #153
- bench(m5): add binary transform arithmetic family by @alex-1974 in #154
- docs(perf): qualify binary transform arithmetic family by @alex-1974 in #155
- bench(m5): add fill copy benchmark family by @alex-1974 in #156
- docs(perf): qualify fill copy benchmark family by @alex-1974 in #157
- bench(m5): add conversion benchmark family by @alex-1974 in #158
- docs(perf): qualify conversion benchmark family by @alex-1974 in #159
- bench(m5): add allocated transform benchmark by @alex-1974 in #160
- docs(perf): qualify unary transform benchmark family by @alex-1974 in #161
- bench(m5): add reduction family benchmark by @alex-1974 in #162
- docs(perf): qualify reduction benchmark family by @alex-1974 in #163
- bench(m5): add neighbourhood family benchmark by @alex-1974 in #164
- docs(perf): qualify neighbourhood benchmark family by @alex-1974 in #165
- docs(perf): complete M5.2 layout specialization evaluation by @alex-1974 in #166
- bench(m5): add neighbourhood codegen diagnostic by @alex-1974 in #167
- fix(neighbourhood): preserve stride initialization in release by @alex-1974 in #168
- docs(perf): correct post-fix M5 evidence by @alex-1974 in #169
- perf(neighbourhood): add signed-affine executor by @alex-1974 in #170
- docs(perf): qualify M5.2 signed-affine layout execution by @alex-1974 in #171
- bench(m5): add signed-affine codegen diagnostic by @alex-1974 in #172
- bench(m5): add affine multiversion diagnostic by @alex-1974 in #173
- perf(neighbourhood): multiversion small sample strides on LDC by @alex-1974 in #174
- bench(m5): add convolution codegen diagnostic by @alex-1974 in #175
- perf(convolution): expand fixed kernel at compile time by @alex-1974 in #176
- docs(m5): record fixed convolution qualification by @alex-1974 in #177
- bench(m5): add reduction codegen diagnostic by @alex-1974 in #179
- perf(reduction): remove canonical strict-sum codegen cliff by @alex-1974 in #180
- perf(extrema): expose updates to DMD hot loop by @alex-1974 in #182
- bench(m5): isolate binary multiply codegen signal by @alex-1974 in #183
- docs(m5): close M5.3 codegen audit by @alex-1974 in #184
- bench(m5): qualify explicit SIMD convolution by @alex-1974 in #185
- docs(m5): close SIMD qualification by @alex-1974 in #186
- docs(m5): reconcile caller-owned scheduling by @alex-1974 in #187
- docs(m5): define prepared-state qualification policy by @alex-1974 in #188
- bench(m5): establish comparable C++ convolution gate by @alex-1974 in #189
- docs(m5): close comparable C++ performance gate by @alex-1974 in #191
- chore(repo): harden v0.2 package and documentation by @alex-1974 in #192
- fix(backing): remove package-wide DIP1000 dependency by @alex-1974 in #197
- bench(release): establish v0.2 feature-freeze baseline by @alex-1974 in #200
- docs(bench): record v0.2 feature-freeze baseline by @alex-1974 in #201
- validation(api): audit v0.2 public contract by @alex-1974 in #203
- docs(api): record completed v0.2 API freeze by @alex-1974 in #204
- docs(view): begin post-freeze source Ddoc review by @alex-1974 in #205
- docs(api): remove milestone references from frozen Ddoc by @alex-1974 in #206
- docs(safety): clarify raster lease and trusted access contracts by @alex-1974 in #207
- docs(v0.2): clarify stride units and lease/view lifetime limits by @alex-1974 in #210
- docs(v0.2): explain raster data and first-use workflows by @alex-1974 in #212
- docs(v0.2): add a complete zero-copy ROI how-to by @alex-1974 in #213
- docs(v0.2): add checked raster sum how-to by @alex-1974 in #214
- docs(v0.2): explain exact raster sample conversion by @alex-1974 in #215
- docs(v0.2): explain fixed convolution and halo requirements by @alex-1974 in #217
- docs(release): require final exact-head publication-status audit by @alex-1974 in #218
- docs(v0.2): reconcile README and changelog with frozen release candidate by @alex-1974 in #219
- ci(release): guard README and changelog agai...