Conversation
This release adds prime and factorization features, improves numeric precision, and expands simulator and user documentation. New features ============ * Add `IsPrime`, `Factors`, `PrevPrime` and `NextPrime` commands * Add `MaxFactorsBits` and `MaxFactorIterations` settings for factorization * Add `TRIGSIN` command for Pythagorean identity rewrites * Add a Unix man page and simulator documentation * Add simulator recorder dump on `F16`; move demo playback to `F13`-`F15` * Paint navigation arrows in `SHOW` * Accept `CR/LF` line endings when reading Windows files Bug fixes ========= * Fix `expm1` precision loss for small arguments, including complex values * Fix `ln1p` precision loss for small arguments * Fix shift behavior after transient alpha, and support shift/xshift for transalpha * Reset `show_x` and `show_y` when exiting `SHOW` * Ensure the simulator creates the `screens` directory when needed * Fix an infinity optimization regression in arithmetic * Add missing null-dereference checks in factorization code Enhancements ============ * Refactor and optimize the decimal factorization code path, with expanded tests * Add conversion support to `float` and `double` in algebraic code * Update to recorder v1.2.3 * Add documentation updates (DeepWiki reference, legal notice updates) * Add build preparation for upcoming make-it-quick integration * Welcome several new authors to the team, see AUTHORS file * Add LEGAL-NOTICE.md about compliance with California and Colorado laws Signed-off-by: Christophe de Dinechin <christophe@dinechin.org>
Signed-off-by: jcbenoist <61346755+jcbenoist@users.noreply.github.com>
|
Arg ! db48x markdown renderer does not support tables. Hold on, I'll try to make Python generate menus bmp.. |
|
Well : I have investigated 3 possibilities :
So I have tried the third way. The result is not bad. |
79a4500 to
550d14d
Compare
|
Thanks @jcbenoist I like the idea. Neat. I just pushed an updated build system based on one of my earlier projects called One of the key benefits for me of that new build system is that make now always succeeds, including when the CRC check fails (it then only rebuild the required files). It's also easier on the eyes, at least to me. |
Signed-off-by: jcbenoist <61346755+jcbenoist@users.noreply.github.com>
|
I have heavy problems with new Makefile, probably because I have NAME= in my system environment, overriding NAME var in Makefile. Also memory problems, I hadn't before. Hold on, I'm on it Also issues with dm42n target. Claude is examining them. |
|
All compile OK now. "NAME" in environment is not supported. I have to unset it (but it was a synonym of HOSTNAME). Here are Claude explanations for dm42n target failure : Variable forwarding in fw-% rule
Per-file define key (DEFINES_src/dmcp/qspi_check.c → DEFINES_src/dmcp/qspi_check) Missing tools in config.arm-none-eabi.mkOBJCOPY and SIZE are used in the post-build rules but weren't defined. Added: OBJCOPY=$(CROSS_COMPILE)-objcopy .mkdir-only fallback rule$(OUTPUT).mkdir-only normalizes to .mkdir-only (make strips ./), which doesn't match the %/.mkdir-only pattern in rules.mk. Added an empty rule in the ifeq ($(KIND),fw) block since the current directory always exists. |
|
Hi @jcbenoist, Regarding having For the first point, Claude is hallucinating here. You don't need to forward variables that way. Try $(info FOO=$(FOO) BAR=$(BAR) ZOO=$(ZOO))
all: foo-bar-zoo-all
foo-%:
make FOO=foo-$(BAR) $*
bar-%:
make BAR=bar-$(ZOO) $*
zoo-%:
make ZOO=zoo-$(FOO) $*For the second point, you probably did not to a For the |
|
I'll redo all with a proper submodule init at first. I have to learn make-it-quick (which seems interesting). |
|
Here it is ! Minimal changes to Makefile after this imbroglio. |
|
To me the Menu tree is a very welcome addition to the documentation. Is it possible for you to add information about "how to get to a particular menu"? The mapping for the menus that are directly accessible from the keyboard are in config/db48x.48k. |
|
@evgaster This was an excellent idea, and add much value to the documentation. Feel free to comment the format of access paths description or other points. There is perhaps a last point to discuss. Some menus have now duplicated hyperlinks, because there were already docs for them in "manual" documentation (in # Menus section) , like ## MathMenu. I'll (for now) rename the generated duplicated hyperlinks to have a clear situation, but a reflexion is needed to "merge" manual documentation for menus, and automated documentation. |
|
Here is the policy for renaming conflicting hyperlinks (last commit). The conflicting generated hyperlinks are renamed " reference" (because generated doc is sort ot "reference manual", and existing doc "user manual"). A link "See also" to "user manual" is generated for all conflicting menus. For example : MainMenu ReferenceSee also: MainMenu user documentation Access: 🟦🟦 Σ+ |
|
Your quick response (I think) shows you are having fun programming this, in Python. It also shows that adding this "Access" functionality benefits from an already strong basis. In other words: your design, approach and code look very good to me. Its output is fantastic.
You deviate from the convention quoted here:
I would prefer No italics, normal text. The 🟦🟦 should be just 🟦. LOG should according to the convention be "D (ALGB)" but I would prefer "D (LOG)". I locate LOG quicker then D. The ":", colon, after Access is appropriate. But then "; ", semicolon space, should separate the list elements. I understand the -reference in the link. I would not mind skipping " Reference" in the title.
I think we should restructure all the user documentation. |
|
@evgaster I don't know how to have a displayed title different of his hyperlink in Markdown. OK for all your other remarks. For the sake of honesty and transparency, I have heavy help from Claude Opus, but I have fun nonetheless, and I orient or corrects the directions taken by Claude. There is still a pilot in the plane.. |
|
An other similar challenge ... A complete list of commands, with their alternative spellings (see 6-ImplementationStatus.md), and ... their Access. |
|
@evgaster Thanks for your remarks. I'll see what I can do. For "cas" (or other similar) symbol, I have seen it : it render OK on the simulator and real hardware built-in doc, but not in an external markdown browser. So, I have to keep this character, otherwise it will not render well inside the db48x.. EquationsMenu or other not rendered menus are EXTERNAL_MENU. Their content depends of dynamic configuration like csv for equations. I'll render stubs for them, cannot do better. |
|
Well, I fixed as much as I can. To do better, as you said, "we should restructure user documentation", and have more "generator friendly" source files. But it is pretty much interesting and useful as it, isnt it ? |
I dont see clearly how to articulate that with "Implemented commands". I cannot overwrite this, and 9-list-of-commands would be redundant. What is your opinion about that ? @c3d what is your opinion too ? |





A new .md /db48x/doc/menus-tree.md is automatically generated from menu.cc, ids.tbl etc.. by a Python script, invoked by Makefile if a command is added or modified.
Hyperlinks are all functionnal. This gives also an overview of undocumented or unimplemented commands.
doc/menus-tree.md is added to git, but is a generated document, not to be edited. This permits to observe diffs between db48x versions.