Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rgbds 0.9.0 #202439

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

rgbds 0.9.0 #202439

wants to merge 1 commit into from

Conversation

BrewTestBot
Copy link
Member

Created by brew bump


Created with brew bump-formula-pr.

  • resource blocks have been checked for updates.
release notes
> [!TIP]
> Starting with this release, we publish universal ("fat") binaries for macOS, so they'll support x86-64 *and* newer ARM (“Apple Silicon”) CPUs!

:warning: Deprecated

  • Treating multi-character strings as numbers (you can use a single 32-bit character mapping instead)
  • ldio (use ldh instead)
  • ld [c] (use ldh instead)
  • ldh [$xx] (use ldh [$FFxx] instead)

We now document RGBDS's history of deprecated and removed/replaced features in rgbasm-old.5.

Added

  • The contrib/view_palettes.sh script lets you render a GBC .pal file as an image
  • RGBASM -s outputs a "state file", listing the values of (non-label) symbols when finished assembling
  • RGBASM -Wpurge warns when purging exported symbols or labels
  • RGBASM -Wunmatched-directive warns when PUSHC, PUSHO, or PUSHS lacks a POPC, POPO, or POPS
  • Symbols can have non-leading $ characters (so an interpolated prefix{numeric} symbol works)
  • Symbols can have the same names as reserved keywords by prefixing them with a #
  • CHARMAP can map characters to sequences of multiple values, with values not limited to 8 bits
  • A string constant . (period) which expands to the current global label scope
  • A string constant .. (two periods) which expands to the current fully-qualified local label scope (e.g. Global.local)
  • 0x, 0b, and 0o prefixes for hex, binary, and octal numbers (in addition to $, %, and &)
  • LOAD FRAGMENT (removed in 0.5.1 due to bugs; we're not totally certain that all bugs are fixed, testing is appreciated!)
  • BITWIDTH(n) returns the number of bits necessary to represent n
  • TZCOUNT(n) returns the count of trailing zero bits of n
  • EXPORT DEF defines and exports a numeric symbol in a single line
  • PUSHC name acts like PUSHC followed by SETCHARMAP name
  • PUSHS ... acts like PUSHS followed by SECTION ...
  • PUSHO ... acts like PUSHO followed by OPT ...
  • ENDL is explicitly optional, but with an opt-in -Wunterminated-load warning about it
  • cpl can also be written as cpl a
  • Allow a no- prefix to negate "meta" warnings (-Wno-all, -Wno-extra, -Wno-everything)
  • Allow -Wno-error=... to override -Werror (including for "meta" warnings)
  • RGBLINK supports e.g. ROMX FLOATING in linker scripts, which allows assigning a section to no particular bank (this is generally only useful with SDCC object files)
  • RGBLINK's .sym file now includes exported numeric constants (if this breaks your tools, please check the .sym specification!)
  • RGBGFX -i/--input-tileset uses a given tileset instead of generating all the tiles itself
  • RGBGFX -r 0 infers a valid width for the reversed image
  • RGBGFX -X or -Y only mirror tiles horizontally or vertically (-X -Y acts like -m)

Changed

  • Macro invocations can be at column 1, the very start of a line
  • ** exponent operator is right-associative (so p ** q ** r == p ** (q ** r))
  • LOW(Label) can be constant if Label is aligned to 8 or more bits
  • !expr can be constant 0 if expr has any non-zero bits
  • Error messages for undefined symbols mention if the symbol was previously purged
  • Sections that grew too big are reported after the whole assembly file has been processed
  • When RGBLINK encounters an unknown symbol, it lists the potential un-exported symbols by that name
  • RGBLINK reports source locations for conflicts between object files
  • Escape characters in section names in map files, and format empty sections more consistently too
  • RGBGFX -r gives a detailed warning if -c and -p mismatch; improved several other error messages too
  • LOW() and HIGH() have their own RPN operators in the object file (this should lead to nicer output from rgbobj)
  • Clarified a lot of documentation, including for fixed-point numbers, macros, and DAA
  • Explicitly document that FMOD behaves differently than %
  • Increment object file revision number to 11
  • Tests can be run with CTest if you use CMake

Fixed

  • Label & CONSTANT was not actually doing the & operation!
  • Some nonsensical uses of empty local labels (Global.) were ignored
  • Many bugs prevented SDCC object files from being processed correctly (special thanks to @RubenZwietering for helping with bugfixing and testing!)
  • Crash when assembling a nonexistent file
  • Crash when INCLUDEing an unbounded-size file (e.g. /dev/urandom)
  • Crash when passing an object file with invalid patch offsets to RGBLINK
  • Crash when specifying palette files within RGBGFX at-files
  • Crash when reversing an image if the tilemap referred to nonexistent tiles
  • Multiple bugs with parsing text palette files (GPL, HEX, and PSP)
  • Reversing a 1bpp image had incorrect tile data
  • Palette generation was suboptimal, potentially failing to fit within 8 palettes
  • Palette generation was also inconsistent between platforms
  • Tiles with too many colors were being detected incorrectly
  • Maximum number of palettes wrapped around after 255
  • Allow text palette files to have the maximum number of colors
  • Allow tab character after backslash for line continuation
  • Syntax errors at the beginning of a line do not abort assembly
  • -Wall did not enable -Wcharmap-redef
  • -Wnested-comment was undocumented
  • Building works on BSD systems
  • Building works on systems with bison 3.8.0

@github-actions github-actions bot added rust Rust use is a significant feature of the PR or issue bump-formula-pr PR was created using `brew bump-formula-pr` labels Dec 25, 2024
@chenrui333
Copy link
Member

  ==> /opt/homebrew/Cellar/rgbds/0.9.0/bin/rgbobj -A -s data -p data output.o
  error: Object file 57 revision 11 is not supported (must be between 6 and 10)
  Error: rgbds: failed
  An exception occurred within a child process:
    BuildError: Failed executing: /opt/homebrew/Cellar/rgbds/0.9.0/bin/rgbobj -A -s data -p data output.o

@chenrui333 chenrui333 added the test failure CI fails while running the test-do block label Dec 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bump-formula-pr PR was created using `brew bump-formula-pr` rust Rust use is a significant feature of the PR or issue test failure CI fails while running the test-do block
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants