Happy New Year! 🎊 🐎
As promised, we use semantic versioning now, so 1.0.1 being a "patch" release means that it's fully backwards compatble with 1.0.0. All that's changed is fixing various bugs (and typos, internal refactorings, etc).
(Many of these bugs were found with the "fuzzing" tool AFL++, so they involve unrealistic inputs which would be unlikely or impossible in normal usage of RGBDS. Still, even specifically-crafted garbage inputs should give sensible error messages and not crash, so we try to find and fix these.)
RGBASM:
- Symbol names of just three or more periods ("
...", "....", etc) were mistakenly allowed SECTION UNIONwas mistakenly allowed for ROM sections (when there was no secondSECTION UNIONof the same name)-MGand-MCwere not accounting for-P/--preincludefiles- Non-UTF-8 "garbage" characters at the end of a file could hang in an infinite loop
RGBLINK:
- Undefined symbols could cause extra warning messages about meaningless values in expressions
- Various invalid object files (which RGBASM would not output in the first place) could print misleading error messages or outright crash
RGBGFX:
- Input images with ambiguous alpha channel values (neither transparent nor opaque) could crash due to an assertion failure
- Clarify documentation of
rgbgfx -C/--color-curve - Improve some error messages
All programs:
- Some errors with command-line options could be incorrectly reported (due to inaccurate
errnovalues) - For RGBASM and RGBLINK, very long error location backtraces could crash with a stack overflow (only ever observed during fuzzing)