Path to this page:
Subject: CVS commit: pkgsrc/devel/rgbds
From: Nia Alarie
Date: 2020-04-12 13:32:30
Message id: 20200412113230.53280FB27@cvs.NetBSD.org
Log Message:
rgbds: Update to 0.4.0
Very big release! This includes a lot of bug fixes, large portions of the
code rewritten, and some features deprecated or removed. We hope not to
break anyone's code, but we won't keep bugs for compatibility's sake. If
your code broke and the change isn't in the list below, please open an
issue in our tracker.
New:
* Added warning flags to RGBASM: by default, most warnings are disabled
now. Please see man rgbasm for more info
* "LOAD blocks" simplify writing code that should run in RAM; users of
unofficial program rgbbin may want to look into this
* Shiny new assertions, whose checking can be deferred to RGBLINK
* "Unionized" sections offer a sort of cross-file UNION
* More flags in the RGBASM -M family for better automatic dependency
management
* Bracketed symbols can be nested (example)
* SHIFT can now shift multiple times at once
* Long options (such as --version for -V) have been added to all
programs
* RGBASM now accepts escape \r in strings
* INCBIN now works with unseekable files as well
Deprecations and removals:
* As part of a cleanup effort, features previously marked as deprecated
have been removed, such as the CODE section type
* Labels not starting with a dot nor followed by a colon have been
deprecated; in a future version, they will be treated as macro
invocations
* Deprecated OPT z in favor of new and more consistent OPT p
* Deprecated GLOBAL symbol (and its synonym XDEF), as it has the same
effect as EXPORT
* Removed "section-local" charmap (deprecated in 0.3.9)
Changes:
* .sym and .map files are now output sorted
* The argument to rst does not need to be known to RGBASM anymore (so
labels can be used at all times)
* Only labels may have dots in their name now
* Labels beginning with a dot may have whitespace before their
declaration
* DEF() now accepts labels as arguments
* ROMX and WRAMX sections can be used in RGBLINK's -t and -w modes,
respectively
* RGBLINK will report more detailed "error stacks", like RGBASM
* RGBASM tries harder to treat expressions as "constant"
* Second byte of stop can be specified without resorting to using db
For further information on new or changed features, please refer to our
documentation.
Fixes:
* gbz80(7) had incorrect flag descriptions for sub
* Arguments to RGBASM -i have a / implicitly appended if they don't end
with one
* = was treated as identical to set, so = 7, [hl] was valid; this has
been fixed
* Corrected wrong line reporting with REPT blocks
* Changing sections now resets the label scope
* Built-ins and symbols referenced in link-time expressions can no
longer be PURGEd
* __ISO_8601_UTC__ and __ISO_8601_LOCAL__ symbols fixed on Windows (with
a caveat for the latter)
Notes:
* RGBDS is now compiled with optimizations by default. To disable
optimizations, use make CFLAGS=-O0. To compile in "debug mode", build
using make develop instead of make; this requires a fairly specific
configuration, though, and might not work for you.
* Performance of RGBASM and RGBLINK should have been improved (beyond
the above), but we would need help from someone experienced with YACC
/ Bison to make more significant changes
* Reliability across systems and platforms has been improved:
* RGBASM parser grammar has been cleaned up
* Undefined behavior has been removed from various programs
* Nightly builds are available for each commit now ("Actions" tab ⇒
"Regression testing" ⇒ click on the commit name)
* Docs have received an overhaul, including a more responsive and
mobile-friendly styling
* General system stability improvements to enhance the user's experience
Files: