moonlight-planar 1.2.0.0 → 1.2.0.1
raw patch · 10 files changed
+38/−38 lines, 10 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- CHANGELOG.md +6/−0
- README.md +9/−12
- docs/category-observatory/README.md +2/−3
- docs/curve-authoring-status.md +6/−8
- docs/delaunay-compare/README.md +4/−4
- docs/knight-rig/README.md +5/−5
- docs/moonblade/README.md +1/−1
- docs/noctilucent-garden/README.md +1/−1
- ffi/bindings/typescript/README.md +2/−2
- moonlight-planar.cabal +2/−2
CHANGELOG.md view
@@ -1,5 +1,11 @@ # Changelog +## 1.2.0.1 - 2026-10-01++- Simplify README and guide wording; replace machine-specific example paths+ with paths relative to the checkout.+- No library or API changes from 1.2.0.0.+ This is release chronology, not current interface authority. The package [README](./README.md), Cabal manifest, and linked focused guides own the live surface.
README.md view
@@ -319,7 +319,7 @@ curves as the source of truth; neither SVG strings nor triangulation vertices are the editing interface. -This is a strong foundation, not a finished illustration language. The+The illustration API is incomplete. The [curve-authoring status](docs/curve-authoring-status.md) records what the measured and certified layer provides, its capability boundary, and the missing offset, intersection, relational, repetition, and diagnostic algebras required@@ -412,12 +412,11 @@ motif = leaf 8 positiveTwo ``` -For an agent, the workflow is: name parts and attachment frames; choose a-profile or interpolating contour; express its widths and landmarks as equations-of a small control record; reuse the value with `place` and `foldMap`; paint in-explicit back-to-front order. Inspect the fixed-camera render and diagnostics-after editing a meaningful control. Do not replace the profile with a traced-list of cubic handles merely to match one rendered sample.+To build an illustration, name its parts and attachment frames, choose a+profile or interpolating contour, and express its widths and landmarks as+functions of a control record. Reuse the value with `place` and `foldMap`,+painting in explicit back-to-front order. A fixed camera and diagnostic render+help compare the effect of each control change. `Moonlight.Planar.Illustration.Svg` publishes with `renderSvg :: (part -> String) -> SvgOptions -> Picture part -> Either SvgError String`.@@ -503,10 +502,8 @@ recessed energy channel, repeated typed inscriptions and a single affine pose. `defaultSpaceSwordControls` and `overchargedSpaceSwordControls` change the blade system without perturbing the crossguard, grip, counterweight or star field.-It is source-authored mathematics, not traced output wearing a lab coat.-Both illustration authors use the reusable authoring operations rather than-constructing Bezier control handles. Low-level curve construction remains-available for algorithms that actually need it.+These examples use the reusable authoring operations rather than constructing+Bezier control handles directly. Low-level curve construction is also available. From the repository root, render the fixed-camera baseline, combined edited variant, and diagnostics using the isolated build directory:@@ -515,7 +512,7 @@ scripts/safe-cabal.sh run moonlight-planar:exe:moonlight-planar-illustration-study \ --project-file=cabal.project.planar-dev \ --builddir=dist-newstyle-planar-illustration --enable-benchmarks -j1 -- \- /Volumes/Sirius/work/pm-artifacts/planar-illustration-20260911/attachments-layout-20260912/candidate+ "$PWD/.artifacts/planar-illustration" ``` The output directory must be absolute. Knight outputs are `knight-crescent.svg`,
docs/category-observatory/README.md view
@@ -140,6 +140,5 @@ | `.Identifier` | the single identifier/label interpretation shared by all projections | | `.Picture` | compact pure SVG projection of the admitted exhibit | -The split is semantic rather than ceremonial: no wrapper modules, no duplicate-projection types, no hand-maintained duplicate mesh coordinates, and no mutable-orchestration wearing an expensive hat.+Each module implements a distinct projection, sharing the model types,+identifiers, and mesh coordinates.
docs/curve-authoring-status.md view
@@ -1,10 +1,8 @@ # Curve authoring: present boundary and missing algebra -Moonlight Planar has a credible curve core and, since 1.2.0.0, a measured and-certified layer over it. It does **not** yet have a mature-illustration-authoring system. The distinction matters: eliminating hand-traced-Bezier handles and measuring curves honestly is a useful foundation, not-evidence that an agent can reliably author a complete illustration.+Moonlight Planar provides exact curves and, since 1.2.0.0, certified measurement+operations. It does **not** yet provide a complete illustration-authoring API.+The supported operations and remaining limitations are listed below. ## What exists now @@ -84,7 +82,7 @@ - Exact curve Booleans need an algebraic-number representation for intersection points. That is a separate design decision, not a small extension of `ExactPoint`.-- A relation solver, if one is ever earned, must distinguish inconsistent,+- A relation solver would need to distinguish inconsistent, underdetermined, ambiguous, and budget-exhausted outcomes, and satisfy declared residual bounds. @@ -101,7 +99,7 @@ 3. curve noding and arrangement receipts over an explicit algebraic representation, connecting curve topology to the existing exact region owner beyond the simple-region domain;-4. offset and stroke-outline construction with honest error and topology+4. offset and stroke-outline construction with explicit error and topology witnesses; 5. a pure relational authoring language whose solver either returns a checked construction or a typed refusal.@@ -115,7 +113,7 @@ Curve authoring is not illustration-ready merely because an example can be rendered. A credible readiness claim requires all of the following: -- an agent can place and repeat motifs by geometric relations rather than copied+- authors can place and repeat motifs by geometric relations rather than copied coordinates; - edits preserve declared attachment, continuity, spacing, and topology laws; - unavoidable approximations carry bounds and refuse exhausted budgets;
docs/delaunay-compare/README.md view
@@ -185,7 +185,7 @@ ## Harness difference -Upstream uses Rust Criterion. This port uses Haskell `tasty-bench`, so it does-not pretend Criterion's warm-up seconds or sample-count knobs map one-to-one to-another calibrator. The inputs, sizes, implementation calls, and timed/setup-boundary are preserved; calibration and reporting are honestly Haskell.+Upstream uses Rust Criterion. This port uses Haskell `tasty-bench`, whose+calibration settings do not map one-to-one to Criterion's warm-up duration or+sample count. The inputs, sizes, implementation calls, and timed/setup boundary+are preserved; calibration and reporting use `tasty-bench`.
docs/knight-rig/README.md view
@@ -16,14 +16,14 @@ ```sh scripts/safe-cabal.sh run moonlight-planar:exe:moonlight-planar-knight-rig \ --project-file=cabal.project.planar-dev \- --builddir=/Volumes/Sirius/work/pm-artifacts/planar-collapse-20260907/build \- --offline -j6 -- /Volumes/Sirius/work/pm-artifacts/knight-rig-20260907/knight.obj+ --builddir=dist-newstyle-planar-dev \+ --offline -j6 -- "$PWD/.artifacts/knight-rig/knight.obj" blender --background --factory-startup --python-exit-code 1 \ --python compiler/foundation/moonlight-planar/docs/knight-rig/rig.py -- \- /Volumes/Sirius/work/pm-artifacts/knight-rig-20260907/knight.obj \- /Volumes/Sirius/work/pm-artifacts/knight-rig-20260907+ "$PWD/.artifacts/knight-rig/knight.obj" \+ "$PWD/.artifacts/knight-rig" python3 compiler/foundation/moonlight-planar/docs/knight-rig/package.py \- /Volumes/Sirius/work/pm-artifacts/knight-rig-20260907+ "$PWD/.artifacts/knight-rig" ``` The interpreter targets Blender 5.1.1; preview packaging uses Pillow with WebP
docs/moonblade/README.md view
@@ -28,7 +28,7 @@ --project-file=cabal.project.planar-dev --builddir=dist-newstyle-planar-dev --offline -j6 scripts/safe-cabal.sh run moonlight-planar:exe:moonlight-planar-moonblade \ --project-file=cabal.project.planar-dev --builddir=dist-newstyle-planar-dev --offline -j6 -- \- /Users/bluerose/Developer/pale-meridian/compiler/foundation/moonlight-planar/docs/moonblade/moonblade.svg+ "$PWD/compiler/foundation/moonlight-planar/docs/moonblade/moonblade.svg" ``` Edit the source and regenerate; do not hand-edit the derived SVG.
docs/noctilucent-garden/README.md view
@@ -21,7 +21,7 @@ --project-file=cabal.project.planar-dev --builddir=dist-newstyle-planar-dev --offline -j6 scripts/safe-cabal.sh run moonlight-planar:exe:moonlight-planar-noctilucent-garden \ --project-file=cabal.project.planar-dev --builddir=dist-newstyle-planar-dev --offline -j6 -- \- /Users/bluerose/Developer/pale-meridian/compiler/foundation/moonlight-planar/docs/noctilucent-garden/noctilucent-garden.svg+ "$PWD/compiler/foundation/moonlight-planar/docs/noctilucent-garden/noctilucent-garden.svg" ``` The SVG is generated by this source; edit the source and rerun, not the output.
ffi/bindings/typescript/README.md view
@@ -7,7 +7,7 @@ lifetime and error terms; the generated raw declarations descend from the same Haskell contract as the C header, Python declarations, and Rust declarations. -This source package does not pretend to contain a native binary. Supply an+This source package does not include a native binary. Supply an explicit path to the ABI-version-2 shared library: ```typescript@@ -40,5 +40,5 @@ Every operation that can be refused returns `Result<Value, MoonlightFailure>`. No raw Koffi handle, constructor capability, or numeric status code crosses the package entrypoint. Owned meshes, regions, and structuring elements implement-both `dispose()` and `Symbol.dispose`; morphology therefore keeps the honest+both `dispose()` and `Symbol.dispose`; morphology therefore keeps the domain method `region.close(element)`.
moonlight-planar.cabal view
@@ -1,6 +1,6 @@ cabal-version: 3.4 name: moonlight-planar-version: 1.2.0.0+version: 1.2.0.1 synopsis: Native hex regions, Delaunay meshes, and exact planar algebra. description: Native packed hexagonal cell regions and Delaunay and constrained Delaunay triangulation as lawful@@ -124,7 +124,7 @@ source-repository this type: git location: https://github.com/PaleRoses/moonlight.git- tag: moonlight-planar-1.2.0.0+ tag: moonlight-planar-1.2.0.1 subdir: moonlight-planar flag warnings-as-errors