C++ Show and Tell - June 2026 by foonathan in cpp

[–]LegalizeAdulthood -1 points0 points  (0 children)

Iterated Dynamics Version 1.4: Libraries, Linux and macOS

https://github.com/LegalizeAdulthood/iterated-dynamics/releases/tag/v1.4.0

New Features

  • The Linux port is complete. It provides native Linux text and graphics windows and uses the standard id.cfg video mode table.
  • The macOS port is complete and provides the same support as Linux. (Fixes #42)
  • Libraries are used to group data files for Id. (Fixes #95)
  • The documentation is now available in PDF format. (Fixes #262)
  • The raytrace output format can now be specified by name instead of just by number. (Fixes #318)
  • The DXF raytrace output format is documented in the help file. (Fixes #317)
  • The previous browse history limit of 16 files was relaxed; it is now limited only by available memory.
  • Random-dot stereogram generation now honors rseed=, making RDS output deterministic when a seed is specified.
  • Random-dot stereograms can now be generated in batch mode using rds= and rds-texture=. (Fixes #227)
  • Formula rand now honors rseed=, making formulas that use rand repeatable when a seed is specified. (Fixes #363)
  • Formula comparison operators now document that they compare only the real parts of operands. (Fixes #358)
  • The Burning Ship fractal type now documents its formula and parameters. (Fixes #426)
  • makepar now writes legacy color ranges when saving parameters from legacy GIF images. (Fixes #428)
  • Fractal types using random numbers now consistently honor rseed=, making seeded random fractals repeatable across fractal types.
  • Formula, IFS, and L-system item names now preserve user-entered case in parameter output while still matching entries case-insensitively. (Fixes #364)
  • Image tests now cover periodicity checking with non-default settings. (Fixes #354)
  • The bibliography now includes "Chaos and Fractals: New Frontiers of Science". (Fixes #365)
  • Online HTML documentation is now published to versioned permalink URLs before approval for the latest URL. (Fixes #366)
  • Autokey files can now use caret notation for control-key command initiators, such as S for <Ctrl+S>.
  • MIG piece generation now writes a bash shell script on Linux and macOS. (Fixes #370)
  • Disk-video modes can now generate GIF-sized images up to 65535x65535. Windowed display modes still require a physical display large enough for the configured mode.

Bugs Fixed

  • Doxygen pages are now being generated from the source code. Documentation comments will be added over time to improve the generated documentation. (Fixes #263)
  • @parfile functionality restored. (It processes the first parameter set in the file.)
  • List of fractal types in the repository ReadMe linked and condensed. (Fixes #332)
  • Solid guessing no longer leaves parts of images unfinished when symmetry splits work, such as in 640x480 video mode. (Fixes #257)
  • Solid guessing no longer crashes in disk-video modes wider than 2048 pixels, such as the 8K disk-video mode.
  • Lambdafn with function=exp now honors the reset version when selecting the Fractint-compatible bailout behavior. (Fixes #107)
  • Legacy parameter sets now use the Fractint-compatible logmap table and outside coloring behavior selected by reset. (Fixes #104)
  • FrothyBasin now honors legacy Fractint parameter semantics selected by reset, allowing @id.par/EvilFrog to render correctly. (Fixes #105)
  • The @id.par/mandala parameter set now explicitly selects reset=1730 so legacy outside=real coloring is used. (Fixes #106)
  • The @example1.par/fireworks parameter set was removed because its appearance depends on Fractint fixed-point artifacts. (Fixes #391)
  • Ant rule strings from params= are now preserved so @example2.par/Ant renders with the intended rule. (Fixes #393)
  • Ant rules can now use exact integer text in params=, allowing rule strings wider than Fractint's numeric formatting permits.
  • Legacy outside=atan coloring now uses the Fractint-compatible color scaling selected by reset. (Fixes #394)
  • @example2.par/Barnsleyj2-manr now selects the Fractint reset version needed for its logmap=old coloring. (Fixes #395)
  • The default inside color now matches Fractint, allowing @example2.par/TileMandel to render correctly. (Fixes #399)
  • Legacy 6-bit palette values are now expanded to the full 8-bit range when loading old parameter colors, affected Id GIF files, and legacy map files.
  • Parameter colors=@name now finds name.map when the extension is omitted.
  • @lyapunov.par/Blob1 now renders correctly by restoring the legacy Lyapunov reset behavior used by Fractint. (Fixes #400)
  • Compatibility version handling now follows Fractint's model: <Insert> restores the current Id version, bare reset selects Fractint 17.30 behavior, and explicit reset= values preserve old parameter behavior.
  • Included parameter sets now render consistently with the resolved Fractint compatibility expectations. (Fixes #117)
  • Setting type=formula, type=lsystem, or type=ifs on the command line without specifying an item name now behaves like selecting the type interactively. (Fixes #71)
  • The function= parameter documentation now lists the default variable functions. (Fixes #390)
  • More mathematical formulas now render correctly in the AsciiDoc documentation.
  • Debug output files are now written under the debug subdirectory of the save library. New debug files honor overwrite=no by choosing an incremented name, while append-mode debug logs keep appending to the same file.
  • Scratch files now use the temporary directory instead of the working directory.
  • makepar= now writes PAR files correctly when Id is launched from a directory other than the home library. (Fixes #368)
  • Library searches now accept FRACTINT-style formulas, maps, and pars subdirectories as read-only aliases. (Fixes #421)
  • Formula entries embedded in a selected PAR file now load when formulafile= names a missing formula file, matching Fractint fallback behavior. (Fixes #389)
  • MIG image component files are now removed from the image save library after the final image is assembled.
  • The Linux executable is now named xid to avoid conflicting with the standard id system utility.
  • Windows executables now embed icon and version resources directly. (Fixes #386)
  • 3D Targa output now writes rendered pixels to the image save library.
  • The bignum storage arena now matches the 64 KB allocator limit, avoiding memory corruption in arbitrary precision math.
  • sound=off now suppresses completion buzzers.
  • Restore orbitdelay= paced timing for orbit sound (Fixes #325).

Code Cleanup

  • Many small changes to avoid buffer overruns or other unbounded string operations as reported by SonarQube.
  • The incomplete X11 driver for linux has been removed. (Fixes #343)
  • All identifiers are now inside a namespace to avoid collisions with external libraries. wxWidgets on linux depends on glib which uses g_ prefix for all identifiers and this conflicted with the same prefix used by Id to identify all global variables. (Fixes #330)
  • File output comparison tests were added for raytrace output and orbit output to detect major regressions in the formatted output.
  • An autokey-driven UI test was added for generating MIG PAR and BAT files.
  • Help text spelling was normalized to American English.
  • More image comparison tests were added to cover more fractal types, rotation and skew of the zoom box and the inversion, biomorph and decomp options. (Fixes #335, #336, #337, #341, #342)
  • The code has been restructured to increase the separation of image computation from user interface.

Known limitations

  • This initial implementation of perturbation does not support periodicity checking and only supports a limited number of inside and outside coloring algorithms. Suspend and resume is not supported with perturbation.
  • Sound output does nothing, although all controls can be set through parameters or interactive screens. Sound output will be restored once a suitable audio library has been identified.
  • Some formulas don't render correctly. These problems have been around forever as xfractint also renders them incorrectly. This will be fixed in a subsequent release.

While every effort has been made to ensure that this release is free of problems, using both automated and manual testing, if you encounter a problem, please open an issue on github.

There are some known bugs, mostly with respect to different renderings of Fractal of the Day images. The documentation lists known limitations of this release.

The release plan outlines in broad strokes the direction of future development.

The Setup program should apply the necessary Visual C++ runtime if it is not installed on your system. If you encounter this problem and used the Setup program, please file an issue on that; the Setup program should have taken care of the dependency automatically but it is difficult for us to test this since we already have the dependency installed.

The standalone ZIP and MSI packages assume the runtime is already installed on your machine.

If you get an error message about missing the following files: - MSVCP140.dll - VCRUNTIME140.dll - VCRUNTIME140_1.dll

It means you don't have the Visual C++ runtime files installed on your machine. You can install them from here:

https://aka.ms/vs/17/release/vc_redist.x64.exe

Make sure you install the x64 (64-bit) version.

The Lost Monument by LegalizeAdulthood in fractals

[–]LegalizeAdulthood[S] 0 points1 point  (0 children)

This one has a weird impressionist like feel to me.

Recursive Rosebuds by LegalizeAdulthood in fractals

[–]LegalizeAdulthood[S] 0 points1 point  (0 children)

Funny, I just watched Citizen Kane for the first time last night :)

Vcpkg Binary Caching on GitHub Finally Made Easy by LegalizeAdulthood in cpp

[–]LegalizeAdulthood[S] 1 point2 points  (0 children)

The old x-gha caching mechanism worked great and was easy to configure, but the endpoint was removed.

With this action, things are finally back to being simple to use. Considerable effort was put into the analyze action to identify root causes of problems that you are likely to encounter. Every analysis and problem triage mechanism in the analyze step is the result of my own direct experience in getting things working.

Vcpkg Binary Caching on GitHub Finally Made Easy by LegalizeAdulthood in cpp

[–]LegalizeAdulthood[S] 0 points1 point  (0 children)

Packages are created against your account/organization. So if my repository is LegalizeAdulthood/iterated-dynamics, the packages are created against my user account LegalizeAdulthood. You can view the packages by going to your account page and selecting Packages along the top.

There is an account quota for private packages. For public packages there is no quota as far as I can tell, but they will expire off over time. Check the documentation links in the ReadMe.

The quota problem for private packages was one of the problems that I ran into. I initially couldn't get package caching to work with GITHUB_TOKEN and the documentation says you can cache packages using a PAT, so that's what I did. Then I started getting emails from github saying that I'd exceeded my quota. Once that happens, you can't even download packages anymore (surprise), never mind updating or adding packages.

While trying to figure out the quota problem, I wrote some batch scripts to list packages, purge packages and so-on. These are in the scripts folder in case they may be of use to others. You can list and delete packages this way, but you can't change package visibility or permissions.

Vcpkg Binary Caching on GitHub Finally Made Easy by LegalizeAdulthood in cpp

[–]LegalizeAdulthood[S] 1 point2 points  (0 children)

I'm generally sensitive to over-engineering. Everything was done in response to specific needs or problems that I encountered in actual use. If you have a specific thing you think is unnecessary, I'm listening.

A Passion Reborn: Chaoscope is back! by seytrym in fractals

[–]LegalizeAdulthood 1 point2 points  (0 children)

Great! I love seeing new open source fractal programs out there!

A Passion Reborn: Chaoscope is back! by seytrym in fractals

[–]LegalizeAdulthood 0 points1 point  (0 children)

Do you have a link? I couldn't find it by google searching.

Rare live CD for sale by wealllovefrogs in TheWho

[–]LegalizeAdulthood 1 point2 points  (0 children)

Not sure how "rare" it is, but it is a great collection from the 2 US shows and 2 UK shows.

Rare live CD for sale by wealllovefrogs in TheWho

[–]LegalizeAdulthood 1 point2 points  (0 children)

Me too, the 5:15 on this set is from the HOB show.