The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
Swift6 compatibility/strict concurrency update
When I originally created this package, async/await wasn't yet available. In supporting strict concurrency and the upcoming Swift 6 release, I've updated the Swift language support to require at least Swift 5.8, and changed the API to utilize async/await on the modules that produce results, with either a custom definition file for the Lindenmayer system, or leveraging the stochastic (random choices) features available in some of the Lindenmayer systems.
## Known Issues
- there's one remaining Swift6 compatibility issue, complaining that I SwiftUI's [ScrollViewProxy](https://developer.apple.com/documentation/swiftui/scrollviewproxy) isn't `Sendable`, even with a `@preconcurrency` import into the view that uses it (this is in the [LindenmayerViews](https://swiftpackageindex.com/heckj/Lindenmayer/documentation/lindenmayerviews) module). I suspect it will be marked as `Sendable` in the future, but am hesitant to apply my own assertions on that front, so I'm leaving it alone as the final remaining Swift6 compatibility issue.
## What's Changed
* use @_exported to expand SwiftUI Angle to be easier to find by @heckj in https://github.com/heckj/Lindenmayer/pull/39
* Experimental skip synthesized symbols by @finestructure in https://github.com/heckj/Lindenmayer/pull/40
* updating swift tooling to prep for Swift 6 concurrency updates by @heckj in https://github.com/heckj/Lindenmayer/pull/41
* Concurrency lockdown by @heckj in https://github.com/heckj/Lindenmayer/pull/42
## New Contributors
* @finestructure made their first contribution in https://github.com/heckj/Lindenmayer/pull/40
**Full Changelog**: https://github.com/heckj/Lindenmayer/compare/0.7.3...0.8.0
## What's Changed
* removing Squirrel3 dependency by @heckj in https://github.com/heckj/Lindenmayer/pull/36, which allows for Lindenmayer to be used within Swift Playgrounds as it's now all pure-swift code (no C-based dependencies)
**Full Changelog**: https://github.com/heckj/Lindenmayer/compare/0.7.2...0.7.3
Dependency updates and transitive fixes
2 years ago
## What's Changed
* updating 3D rendering by @heckj in https://github.com/heckj/Lindenmayer/pull/30
* Roll to vertical by @heckj in https://github.com/heckj/Lindenmayer/pull/32
* Updating documentation for Lindenmayer by @heckj in https://github.com/heckj/Lindenmayer/pull/31
* final tweaks to resource locations by @heckj in https://github.com/heckj/Lindenmayer/pull/34
* fixes for updates in dependency modules that are pre-release
**Full Changelog**: https://github.com/heckj/Lindenmayer/compare/0.7.1...0.7.2
Debugging view
2 years ago
## What's Changed
* module cleanup, normalizing rendering commands by @heckj in https://github.com/heckj/Lindenmayer/pull/23
* Faster iteration by @heckj in https://github.com/heckj/Lindenmayer/pull/24
* Debug view by @heckj in https://github.com/heckj/Lindenmayer/pull/28
**Full Changelog**: https://github.com/heckj/Lindenmayer/compare/0.7.0...0.7.1
(0.7.0) Ergonomics update
2 years ago
**BREAKING CHANGES**
Writing rules ergonomic updates:
The process of writing LSystems has been improved by including factory/wrapper methods on the various types of LSystems (basic, RNG, Parameters, RNG+Parameters), and now all the rules are explicitly typed. This in turn allows for the closures that produce the rewriting for the relevant modules to be explicitly typed, so there's no longer a need to down-cast from the existential Module type into the specific kind of module in order to use the types parameters when computing what replaces it.
The rules all now also have additional evaluation criteria enabled through an optional (typed) closure so that you can choose if rules are activated not only by the types they match, but in addition with a closure that you provide that can interrogate the modules that were matched.
Initial experimental release
2 years ago
(2021-12-23)
The initial release of Lindenmayer.
The library supports creating context-free and contextual parametric L-systems. Built-in modules support 2D and basic 3D visualizations, and some reference implementations of previously described L-systems.
The API is by no means finished, complete, or in a final form. There are several places where I'm considering how to make creating L-systems written in the Swift language more ergonomic, and additional features that I want to add for broader support (such as stochastic production rules).
This edition is suitable for experimentation, and I certainly welcome feedback in the [discussion section](https://github.com/heckj/Lindenmayer/discussions) of the [Github repository](https://github.com/heckj/Lindenmayer/).
**Full Changelog**: https://github.com/heckj/Lindenmayer/commits/0.5.0