Skip to content

help: Fix broken and missing figure references in equation library - #1715

Open
Wiljea wants to merge 19 commits into
c3d:devfrom
Wiljea:fix-equation-figures
Open

help: Fix broken and missing figure references in equation library#1715
Wiljea wants to merge 19 commits into
c3d:devfrom
Wiljea:fix-equation-figures

Conversation

@Wiljea

@Wiljea Wiljea commented Aug 7, 2026

Copy link
Copy Markdown

Many equation-library figures were not shown on the device because their references in doc/calc-help/equations.md did not match any BMP in doc/img (the build only copies doc/img/*.bmp to the on-device help/img). Causes: images committed only as PNG (never reaching the device), references using spaces / non-breaking spaces / wrong suffixes, misspelled image filenames, and one placeholder reference.

  • Add 7 physics figures as BMP (Hall Effect, Cyclotron, Helicoidal Motion, Fiber Optic, Rayleigh's Criterion, Malus Law, Driven Damped Oscillations) and drop the stale PNG/orphan copies that never reached the device.
  • Correct 15 references in equations.md to existing BMP names (e.g. Series&Parallel -> SeriesAndParallel, Mohr's -> MohrsCircle, Projectile_BW -> ProjectileMotion, "Missing name" -> HookesLaw).
  • Rename 3 misspelled image files (Bernouilli -> Bernoulli, 1DElasti -> 1DElastic, FlowWIth -> Flowwith).
  • Remove the reference to the non-existent DC Inductor Voltage figure.
  • Regenerate help/db48x.md and update help/db50x.md accordingly.

Result: 0 broken figure references in the equation library.

c3d and others added 19 commits June 21, 2026 18:52
While evaluating the program for `DoList` or `DoSub`, the scratch pad
could be expanded by the program, adding "junk" to the generated list.

Added code that restores the scratchpad after program evaluation if
necessary.

This bug was detected by the GitHub CI on Windows where it was causing
an assertion failure on the generated list.

Signed-off-by: Christophe de Dinechin <christophe@dinechin.org>
The agents kept getting RPL case independence wrng.
A slightly stronger wording might help avoiding having useless aliases
pop up in `ids.tbl` or useless test concerns about `x` vs `X`.

Signed-off-by: Christophe de Dinechin <christophe@dinechin.org>
Add `FlightRecorderConfigure` command to configure recorder tracing
from within DB48x.

Add `FlightRecorderDump` and `FlightRecorderDumpSome` to to a full or
partial dump of the flight recorder.

Signed-off-by: Christophe de Dinechin <christophe@dinechin.org>
When using a `scribble` object to create temporaries, it was possible
for intermediate allocations to add junk on the runtime
scratchpad. That junk could then end up in whatever object the
scribble was causing.

This was exposed by a memory corruption affecting the `DoList` and
`DoSubs` commands when the intermediate program was leaving leftovers
on the scratchpad: that leftover was then integrated in the list, and
that manifested as a corrupt object where the recorded length did not
match the internal structure, causing an assert. For some reason, that
assert only triggeded on Windows.

This exposed an underlying assumption in the `scribble` class, which
is now explicitly checked by keeping track of where the allocation is
supposed to be. To faciliate that, helpers in the `scribble` class
wrap the `runtime` allocation routines, ensuring that we know where
the allocation is supposed to be. The wrapper checks the internal
consistency of the scribble state.

In pratice, this means replacing the `rt.allocate()` or `rt.append()`
calls with `scr.allocate()` or `scr.append()`.

Signed-off-by: Christophe de Dinechin <christophe@dinechin.org>
We were running on Qt 6.8.4 with AGL, which was available on macOS15
runners. However, with macOS 26, that option is gone.

Switch to Qt 6.9.2 for compatibility wiht macOS 26.

Signed-off-by: Christophe de Dinechin <christophe@dinechin.org>
When there is an object error we probably want to dump the recorder to
be able to investigate.

Signed-off-by: Christophe de Dinechin <christophe@dinechin.org>
Use 1ULL instead of 1UL for WordSize() bit masks: on Windows,
unsigned long is 32-bit, so shifts like 1UL << 32 or 1UL << 48
produced wrong masks and broke rotate/neg at non-default word sizes.

Co-authored-by: Cursor <cursoragent@cursor.com>
Reported-by: Christophe de Dinechin <christophe@dinechin.org>
Reviewed-by: Christophe de Dinechin <christophe@dinechin.org>
If some cleanup happened before we display the stack, it is possible
under some specific conditions for the stack cache to become stale,
because it points to temporaries that were purged.

Clear the stack cache before displaying the stack if that happens.

Signed-off-by: Christophe de Dinechin <christophe@dinechin.org>
On Windows, 1L is a 32-bit value, it's 64-bit on other platforms.
This was causing a number of funny crashes exposed by the test suite.

Signed-off-by: Christophe de Dinechin <christophe@dinechin.org>
Increase test wait and refresh polling on Windows CI runners, and
preserve failed reference images as artifacts for debugging.

Co-authored-by: Cursor <cursoragent@cursor.com>
Wide L' literals are 16-bit on Windows MinGW and truncate supplementary-plane
characters; U' matches our unsigned unicode type and is portable everywhere.

Co-authored-by: Cursor <cursoragent@cursor.com>
Replaces ~0U and ~0ULL where the target type is size_t, avoiding LLP64
truncation on 64-bit Windows and truncation warnings on 32-bit firmware.

Co-authored-by: Cursor <cursoragent@cursor.com>
Packed bitfield union members did not share storage on Windows GCC, so white
pattern bits became 0x07FF (cyan) instead of 0xFFFF and broke color tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
Sort now uses value_sort_compare, which breaks equal evaluated values
with reverse symbolic compare_to, while Unique keeps value_compare so
ties still collapse correctly.

Co-authored-by: Cursor <cursoragent@cursor.com>
Strip CR from CRLF line endings in file::get() and getchar() so help
content and RPL example insertion behave consistently on Windows
without relying on .gitattributes.

Co-authored-by: Cursor <cursoragent@cursor.com>
Determine the end of code examples as being the last non-CR character.
The benefit if that works on Windows which sends us stupid CR/LF
sequences that mess up with the position otherwise.

Signed-off-by: Christophe de Dinechin <christophe@dinechin.org>
Many equation-library figures were not shown on the device because their
references in doc/calc-help/equations.md did not match any BMP in doc/img
(the build only copies doc/img/*.bmp to the on-device help/img). Causes:
images committed only as PNG (never reaching the device), references using
spaces / non-breaking spaces / wrong suffixes, misspelled image filenames,
and one placeholder reference.

- Add 7 physics figures as BMP (Hall Effect, Cyclotron, Helicoidal Motion,
  Fiber Optic, Rayleigh's Criterion, Malus Law, Driven Damped Oscillations)
  and drop the stale PNG/orphan copies that never reached the device.
- Correct 15 references in equations.md to existing BMP names (e.g.
  Series&Parallel -> SeriesAndParallel, Mohr's -> MohrsCircle,
  Projectile_BW -> ProjectileMotion, "Missing name" -> HookesLaw).
- Rename 3 misspelled image files (Bernouilli -> Bernoulli,
  1DElasti -> 1DElastic, FlowWIth -> Flowwith).
- Remove the reference to the non-existent DC Inductor Voltage figure.
- Regenerate help/db48x.md and update help/db50x.md accordingly.

Result: 0 broken figure references in the equation library.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@c3d
c3d force-pushed the dev branch 2 times, most recently from 1ba2834 to d3925c0 Compare August 25, 2026 23:33
@c3d c3d added documentation Improvements or additions to documentation user Reported by an actual user, yay! done Issues that are done on dev (will be in next release) labels Aug 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation done Issues that are done on dev (will be in next release) user Reported by an actual user, yay!

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants