Releases: your-diary/piet_programming_language
v3.0.0
Breaking Changes
-
Previously,
out(number)command printed an integer followed by a newline. This newline was not standard-compliant and inconsistent without(char). Now no newline is printed. -
Previously,
in(char)command read the next non-whitespace character, ignoring the trailing whitespace (if any). Now it reads the next character including whitespace.- See 3.8
in(number),in(char)command section ofREADME.mdfor the details.
- See 3.8
New Features
- Added
--base64option, which makes it possible to read a base64-encoded image. This is useful inside a Docker container.
Bug Fixes
- Fixed #3:
out(number)is not standard-compliant, andin(char)unexpectedly skips whitespace.
Documentation
-
Added Run without Installation section to
README.md.Dockerfileis also provided.
Internal Changes
-
Upgraded to Rust 2024.
-
Switched to use
cargo llvm-covfor coverage.
Full Changelog
v2.0.0
Breaking Changes
-
Zero-division in
divideandmodcommand is now ignored instead of terminating the program. This change follows the spec's recommendation. -
An error is returned instead of panicking when the starting point (i.e. the top-left codel) is black.
-
Some error messages are improved.
-
--verbosenow prints DP and CC directions in addition to the current index.
New Features
-
Add
--max-iteroption, which limits the max number of iterations (useful for debugging). -
Add
--fall-back-to-whiteand--fall-back-to-blackoptions, which treat unknown colors as white or black, respectively.
Bug Fixes
- Fixed #2: Infinite loop inside white block due to improper implementation of retrace detection.
Other Changes
-
improved documentation (
README.md) -
performance improvement
Internal Changes
-
thorough refactoring
-
improved test coverage
-
many doc comments added
-
"Development" section added to
README.md