File rgbds.changes of Package rgbds
------------------------------------------------------------------- Wed Jan 01 10:04:43 UTC 2025 - stigpro@outlook.fr - Update to version 0.9.0: * Release 0.9.0 * Update man page dates * Update CI test project commits * Using C++20 `[[unlikely]]` here would be excessive micro-optimization * Remove redundant 0xC7 masking for RST values (the parser handles it) * Sorting RGB palettes by luminance is not a "legacy" feature * Rename parser value `const` to `iconst` to distinguish it from C++ keyword * Fix man page formatting * List LDHL as an unsupported instruction alias * Deprecate `LDH` with $00-$FF (#1575) * Deprecate `LD` with `[C]` (#1574) * Consistently use UINT32_MAX, not -1, for uint32_t values * List post-release steps to take for other gbdev projects * Document obsolete syntax in rgbasm-old(5) (#1571) * Use C++-style casts (#1576) * Consistently capitalize C * Deprecate `LDIO` (#1567) * Remove sample comments in workflow * ci: re-trigger build-container.yml with fine-grained PAT * ci: clean up untagged artifacts * Fix `**` right-associativity, and clarify docs (#1566) * Improve the instruction documentation (#1561) * Remove the use of floating-point for palette packing (#1565) * Explain the DAA instruction algorithm (#1564) * Implement `-Wunmatched-directive` * Add TRACE-level verbose logging for efficiency calculations * Avoid precision loss from floating-point division in calculating efficiency * Add `color_curve` RGBGFX test * Add `reverse_1bit` RGBGFX test (#1555) * Fix rgbasm(1) formatting * Document the RGBGFX `-X` and `-Y` options * contributing: add paragraph regarding the container image * Add more RGBGFX test coverage (#1553) * Allow `LOAD FRAGMENT` (#1552) * Refactor how map file sections are printed * Escape characters in section names in map files * Correctly recover from syntax errors at the first token of a line (#1549) * Clean up some man pages (#1547) * Release 0.9.0-rc2 * Fix detection of tiles with too many colors (#1546) * `LOAD FRAGMENT` is not allowed (#1536) * Swap manpage descriptions of HIGH(n) and LOW(n) (#1545) * Make `ENDL` optional like `ENDSECTION` (#1538) * Update some RGBLINK error messages (#1544) * Make tests work with CTest (#1539) * Fix nested undefined interpolation segfault (#1542) * Implement `0x/0o/0b` number prefixes (#1533) * Refactoring and enhancements to RGBASM warnings (#1526) * Allow tab character after backslash line continuation * ci: run only the "build tagged container image" step on tag pushes * ci: add descriptions to built container images * Process the last line of textual palette specs even without a trailing newline * Correct some documentation of RGBASM warnings * `-Wall` enables `-Wcharmap-redef`, and document `-Wnested-comment` (#1528) * Remove duplicated condition check * Move definition of `_POSIX_C_SOURCE` to `include/platform.hpp` (#1524) * Use `setmode` instead of `fdopen` (#1520) * Simplify some C++ abstractions (#1518) * Run clang-format * Fix swapped warning comments * Refer to "end of line", not "newline" (#1517) * Avoid treating labels and macros differently in column 1 (#1515) * Add test to demonstrate lack of expansions in `skipIfBlock` (#1516) * ci: give packages/write permission to build container image action * ci: tag release container images * ci: add explicit write permission to the build container image job * Refactor some workflows for consistency (#1510) * Only publish container for gbdev * Use latest docker/login-action * ci: build "master" container image and publish it to ghcr on every push * Document extra pre-release updates * Clarify when to manually publish prerelease docs * Give release workflow permission to create a release * Update release instructions * Release 0.9.0-rc1 * Update man page and license copyright dates * Update test dependencies * Track local label scope, string equated as `..` (#1504) * No need for `.c_str()` with `keywordDict` lookups (#1505) * Prefer `snprintf` to `sprintf` * `\#` will always be defined inside macros * Implement `.` string constant for the current label scope (#1499) * Make error messages for "undefined" built-ins more accurate (#1501) * Refer to "label scope", not "symbol scope" * More asserts like the one in `addLabel` * Consistently handle auto-scoping of local symbols * Remove redundant and sometimes inaccurate comments * Rename variables to avoid C++ reserved "_[A-Z]" prefix * Refactor symbol value getters for less redundancy * Rephrase error messages for consistency * Store a pointer to the scoped label, not just its name * Report locations for RGBLINK errors with conflicting objects (#1494) * Revert "Implement `INCLUDE_ONCE` directive (#1481)" * Implement `INCLUDE_ONCE` directive (#1481) * Factor out common sanity checks for section union and fragment * Use `camelCase` instead of `lowercase` for static functions * RGBLINK lists local symbols when encountering an unknown symbol reference (#1496) * These extensions should be binary * Allow syntax `cpl a` * Fix condition for assuming at EOF * Avoid attempting to link if assembling fails * Implement `--input-tileset` (#1464) * Allow dollar signs in identifiers (#1493) * Rearrange switches so default cases are last * Improve string/interpolation formatting (#1491) * Traverse the charmap trie to reconstruct mappings instead of saving them (#1487) * Replace `unmangle` with `cygpath` (#1490) * Revert "Show test issues as annotations in the GitHub Actions job summary" * Update some names and comments * Run clang-format * Show test issues as annotations in the GitHub Actions job summary * A few more rgbasm documentation tweaks * Rewrite and rearrange some rgbasm docs * Forward declare `struct Section` to avoid a nested header `include` * Avoid bogus comparisons when linking fails * Check that there is enough room to write a patch when linking * Remove outdated "absolute data" terminology in function names * Update the best proto-pal relative size when a new best is found * Fix a false positive reported by `scan-build` * Charmaps cannot map an empty string (#1486) * Enable more testing of RGBGFX output (#1473) * Report any section overflows at the end of assembly (#1482) * Edit some documentation of unions and macros * Implement a '#' prefix for raw identifiers that may alias keywords (#1480) * Test RGBLINK on SDCC object files (#1479) * Use a custom generic tagged union `Either` instead of `std::variant` for efficiency (#1476) * Add RGBFIX tests for MBC names (#1477) * Improve some documentation (#1474) * Test the RGBASM state file output (#1472) * Document `!cc` support alongside `HIGH(r16)` and `LOW(r16)` support (#1475) * Allow mirroring only the X or Y axes (#1468) * Reword some RGBASM docs * Refactor test.sh scripts for consistency * Add some more tests, and fix some existing ones * Test macro args `\0` and `\<0>` * Pass `RGBDS=` to `make clean` as well in downstream tests * Correctly apply section fragment offsets to contained symbols * Avoid softlock if linker script contains a comment but no newline * Trap bad `__at()` values too * Implement floating bank in linker script * Clarify error message when a section lacks a type * Trap invalid section types in RGBDS objs * Report attempts to assign a SDCC area in a way inconsistent with its data * Reserve space to avoid file sym array realloc * Clear the old line buffer when filling the next one in nextLine * Use line.reserve in sdobj_ReadFile instead of constructor * Add a contrib script for visualising the generated palettes as a PNG * Fix `ProtoPalette::compare` * Fix charmap state output for inherited characters * Comment the parsers better (#1463) * Build “fat binaries” for macOS (#1461) * Fix constant expression detection functions (#1462) * Fix incorrect name of `macos-static` artifact * Use macOS 14 in CI (#1335) * Sync warning flags between Makefile and CMakeLists.txt * Enforce C++ compiler when building test binaries in CI too * Pass CXX env var through when compiling RGBGFX test binaries * Be verbose about building the RGBGFX test binaries * Be stricter in test scripts * Pass libpng CFLAGS when building `rgbgfx_test.cpp` too * Improve fixed-point documentation (#1455) * Advise on how to use `-x` to make `-r` work (#1459) * Fix RGBGFX reversal (#1425) * Make `test/gfx/at-file-ref` consistent * Sort proto-palettes by decreasing size when refitting overloaded palettes * Fix ineffective sorting of palettes pre-packing * Disable optimisations in `make debug` * Document the behavior of `FMOD`, and other man page cleanup (#1458) * Implement `BITWIDTH` and `TZCOUNT` functions (#1450) * Error messages note when a symbol has been purged (#1453) * Output exported numeric constants to sym file (#1439) * Rephrase `numeric-string` warning to not be identical to another one (#1449) * Multiple fixes and enhancements to RPN behavior: (#1448) * Implement `-Wpurge=` (#1443) * Implement state file output for RGBASM (#1435) * Deprecate treating multi-unit strings as numbers (#1438) * Remove redundant "unknown option" error messages (#1441) * Update the 'ucity' commit used for testing * Update test deps (#1440) * Implement multi-value charmaps (#1429) * Consistently use "palette spec" not "color spec" * Add `rgbgfx -r 0` to infer a width (#1437) * Run clang-format * With `-r`, print both palettes if `-c` and `-p` mismatch * Fix parsing of GPL files * Fix parsing of textual colours * Fix textual palettes not accepting to be filled * Ignore empty lines in HEX files * Distinguish EOF and empty lines when parsing text pal files * "Write" to files, "print" to console * Use appropriate format specifier for number of palettes * Fix max number of palettes wrapping around after 255 * Remove outdated RGBASM options from man page * More refactoring and renaming * Some refactoring and reformatting (#1431) * Implement `EXPORT DEF` to define and export symbols (#1422) * Improve the error messages for interpolating undefined or invalid symbols (#1423) * Add syntax to push and modify stacks in one line (#1421) * Fix use-after-free when keeping pointers to args from at-files (#1426) * Fix bison.sh for patch-less bison versions (#1416) * Release 0.8.0 * Fix generating a palette overriding a previous pal spec (#1415) * Keep the object version as RGB9; only increment the revision to 10 (#1413) * Allow a suffix (e.g. the version) to be added when installing (#1406) * Miscellaneous refactoring of code and docs (#1411) * Allow NUL characters in strings (#1405) * Specify a custom logo file to use instead of the Nintendo logo (#1400) * Add more test cases (#1409) * Remove unsupported macOS 11 from CI (#1410) * Give names to links in man pages (#1407) * Fix reading ACO palette files (#1404) * `X && 0` and `X & 0` are constant 0; `X || 1` is constant 1 (#1399) * Refactor macros for fixing/trashing header values (#1401) * Use a smaller size for the lexer buffer * Allow padding to coexist with overlay file (#1395) * Use the standard stream buffer size for the lexer buffer (#1396) * Make some error messages more consistent (#1393) * Fix rectangular rgbgfx --reverse --columns (#1392) * Use consistent `RGBDS_<PROG>_<NAME>_HPP` header guard convention * Replace `assert` with `assume` for release build optimization (#1390) * Use `std::variant` for RPN expression value (#1389) * Fix two bugs with RGBASM fixed-point math (#1388) * Add a build target for `include-what-you-use` * Rename some variables left from the C parser (e.g. `yylval`) * Update the 'ucity' commit used for testing * Add more RGBLINK tests (#1386) * Update the 'libbet' commit used for testing * Make test built of 'libbet' reproducible with old Pillow versions (#1385) * Verify ROM hashes for all CI test projects (#1384) * Patch test projects so they build without deprecated features * Remove documentation of already-removed RGBGFX options * Remove the deprecated RGBGFX `--output-*` options (use `--auto-*`) * Remove deprecated `-i` for `--include` (use `-I`) * Remove deprecated `DEF`-less definitions * Remove the deprecated `-H/-h/-L/-l` options * Split the `.peek()` method into its next-char and lookahead cases * Remove the suboptimal `.canPeek()` and `.peek()` methods * Refactor `peekInternal` to be a `LexerState` method * Refactor `BufferedContent` and `Expansion` to have methods * Run clang-format 14 on everything * Run clang-format * Report as many build errors as possible in CI * Disable some spurious MSVC warnings * Clean up `#include`s * Use standard attribute syntax instead of IBM `__attribute__` * Refactor to avoid redundant `obj_CheckAssertions` function * Use `QUOTEDSTRLEN` macro instead of `sizeof` or `strlen` * Defer closing of depend file * No more memory leaks! * Remove now-redundant `MmappedContent` struct * Group pointer and size as a `ContentSpan` struct * Use `std::shared_ptr` for lexer capture buffers * Use a `Defer` struct to close files and restore lexer state with RAII (#1379) * Rename `CaptureBody` to `Capture`, and refactor its methods * Use content-specific destructors for lexer state * Use `STR` and `CAT` macros for `#` and `##` * Rename a few variables * Remove RGBLINK's unimplemented '-s' "smart linking" placeholder flag * Use automatically-allocated `std::string_view` for macros * Make `CaptureBuf`s be parser values instead of a single `static` global * Refactor to keep `lexerState` and `lexerStateEOL` static * Update test project commits (#1377) * Remove .simple.err files, since we require Bison 3.0 (#1373) * Use RAII to unmap or close the lexer states' files automatically * Refactor macro args to be owned collectively by their fstack contexts * Use `std::shared_ptr` for `MacroArgs` * Do not limit strings to 255 characters * Use `std::shared_ptr<std::string>` for lexed/parsed strings * Refactor string-formatting routines to append to an existing string * Simplify `\@` handling by using `std::shared_ptr<std::string>` * Use `std::shared_ptr` for fstack nodes (#1371) * Use methods for RPN `Expression` (#1372) * Remove unused `Visitor` template * Only restore parent context's `\@` value if it had one defined (#1366) * Convert bison.sh to posix shell (#1369) * Fix some header `#include`s with `clangd` LSP (#1370) * Use "snake_case" consistently in parsers * Add `make profile`, optimized for callgrind * Use `std::get_if` instead of `std::visit` (#1367) * Remove workaround for GitHub Actions issue (#1368) * Built-in symbols are "<builtin>", not "<command-line>" (#1362) * Use `std::string` for string-formatted values (#1360) * Fix CI builds for Ubuntu 22.04 (#1361) * Use `sed` instead of `awk` to extract Bison version * Use `std::string` for lexer state paths * Pass `std::string` references to RPN functions * Pass `std::string` references to fstack functions * Pass `std::string` references to symbol functions * Pass `std::string` references to output functions * Pass `std::string` references to section functions * Pass `std::string` references to charmap functions * Pass `std::string` references to parser semantic functions instead of `.c_str()` pointers * Use `std::string` for most intermediate parsed strings * Run `clang-format` on everything * Use `std::unordered_map` and `std::vector` for sections * Use `std::unordered_map` for symbols * Use `std::unordered_map` for charmaps * Fix build failure with GCC 13 * Use a `std::unordered_map` for looking up sections by name (#1357) * Sort .sym files in ascending order, and test for it (#1355) * Move a SECTION FRAGMENT test to the test/link/section-fragment folder (#1354) * Strip CI binaries built with `make` (#1345) * Allow multiple identical exported numeric constants (#1341) * Add test cases for SECTION UNION defining multiple identical labels (#1349) * Add license header to test/CMakeLists.tst like the rest * Refactor link/test.sh to avoid repeating test names (#1353) * Fix a reference being used after being invalidated (#1352) * Use a unique name to upload W32/W64 binaries in CI * Update Actions to Node 20 * Disable a Clang warning * Refactor `FileStackNode::dump` to not need a helper function * Avoid a couple of clang-format quirks * Consistently format type qualifiers like `const` on the right (#1347) * Use move semantics for more parsed values * No need to manually do the `Expression` destructor's job * Refactor `mapFile` for Windows * Remove RPN symbol name length limit * Reduce the header declarations (#1342) * Make enum patterns more explicit (#1343) * Use automatic allocation and `std::move` for RPN bytes (#1336) * Use `std::unique_ptr` for rgblink sections (#1337) * Fix `-O` being always ignored (#1339) * Remove an unnecessary `.close()` call that the destructor handles * Fix enum: REG_SP == REG_AF == 3 * Remove unused `yyerror` declaration * Remove now-unnecessary `enum` keyword (#1338) * Fix a typo bug in sdas_obj.cpp * Use `std::optional` for fstack paths * Avoid an extra operation if `!labelScope` (thanks, ISSOtm) * Print summaries at the end of test.sh scripts * Replace some macros with static functions or constants * Remove unused `#define` * Ignore `callgrind` output files * Use `std::reverse` for binary digits * Get rid of some fixed-size char buffers * Use `fwrite` and `fputs` instead of multiple `putc` * Remove 255-character limit on symbol names * Use `std::string` for symbol names * Run clang-format to fix some inconsistent style * Use automatic allocation for RPN reasons * Use `std::nothrow` from `<new>` with every `new` allocation * Use automatic allocation for some parser values * Stop explicitly passing zlib/libpng path to CMake in Windows CI * Update Windows libpng to 1.6.43 * Adapt the RGBASM parser to C++ (#1333) * Remove declaration for compatibility with macOS bison 2.3 * Update to use winflexbison 2.5.25 (bison 3.8.2) * Fix some numeric bases in RGBLINK output * Make sure that parsed subexpressions are fully defined * Fix a latent bug with parsing macro args * Avoid using Bison's typed mid-rule actions * Refactor `case`s for simplicity, and remove redundant comments * Improve some const correctness in RGBASM * Rename `fail` to `sectError`, since it increments `nbSectErrors` * Use `FileStackNode` constructor to avoid `std::monostate` possibility * Add some more trailing commas * Run `clang-format` on everything (#1332) * Use `std::variant` for symbol values (#1331) * Avoid using `std::get` except in `holds_alternative`-`assert`ing accessors * Remove EQUS callbacks for symbols * Update contributors * Use `std::variant` for symbol values (#1330) * Use uncommented sizes for pointer-to-array arguments (#1329) * Improve tests a little (#1324) * Use `std::variant` for lexer mmap/buffer state (#1328) * Implement `-c #none` (#1301) * Replace RGBLINK non-null pointers with references * Replace RGBFIX non-null pointers with references * Replace RGBASM non-null pointers with references * Check RGBGFX warning/error format strings with `format_` macro * Remove commented-out C-only macro features * We do not call `malloc/free` any more * Use `new` allocation for expanding `\#` * Use `std::vector` for capture buffer * Use `std::string_view` for macro bodies (#1326) * Use `std::string` for macro args * Use `std::string` for STRFMT spec and args * Use `std::string` for section names * Use `std::optional<std::string>` for lexer expansion names * Use RAII `std::string` and `std::vector` in randtilegen (#1325) * Use `std::deque<std::vector>` for free space (#1323) * Refactor structs to use methods instead of functions (#1322) * Remove redundant `(void)` parameter declarations * Reorganize the asm parser to be more like the linker script parser * Replace `NULL` with `nullptr` (#1321) * Remove now-unnecessary `struct` keyword (#1320) * Use `std::visit` with `Visitor` helper instead of `std::holds_alternatve` * Use `std::vector` for SDCC object section data * Use `std::vector` for SDCC object line buffer * Rename `isWRA0Mode` to `isWRAM0Mode` * Use `std::vector` for rgbfix ROMX data * Use `vec.data()` instead of `&vec[0]` * Rename `lexer_DeleteState` to `lexer_CleanupState` * Remove now-unnecessary cleanup functions * Use automatic allocation for section data * Use automatic allocation for `tryReadstring` * Use automatic allocation for assertion error messages * Use automatic allocation for symbol names * Use automatic allocation for section symbols * Use automatic allocation for section names * Use automatic allocation for patches * Clarify comment explaining how `referenced` works * Refactor to avoid repeating `rpn_isKnown(expr)` * `struct Section`'s `src` can be `const` * Use `std::variant` and automatic allocation for file stack node data * Use `std::vector`'s `.size()` for SDCC sections and symbols * Use copy constructor for file stack node * Use move semantics for the union stacks * Use `std::variant` for `STRFMT` arguments * Use `std::unordered_map` for the keyword dict * Use `std::string` for `PURGE` args * Use `std::string` for `FOR` loop variables * Use `std::string` for symbol/section/node names and assertion messages * Use `std::vector` for charmap output * Use `std::vector` for section data * Use automatic allocation for object file symbols * Use `std::vector` for section symbols * Use `std::vector` for reading object file symbols * Use `std::vector` for file stack nodes * Use `std::vector` for reading object file sections * Use automatic allocation for IF stacks and expansions * Use automatic allocation for lexer states * Use `std::string` for RPN error reasons * Use `std::variant` for file stack nodes * Use `std::string` for target file name * Use automatic allocation for fstack nodes' iters/names * Use `std::vector` for RPN expressions * Use `std::vector` for section patches * Use `std::vector` for fstack REPT nodes * Use automatic allocation for symbols * Use `std::vector` for include paths * Use `std::stack` for fstack contexts * Use `std::vector` for SDAS file sections * Use `std::vector` for RPN data * Use automatic allocation for RPN stack * Use automatic allocation for `DS` args * Use automatic allocation for `PURGE` args * Use automatic allocation for `STRFMT` args * Use automatic allocation for macro args * Use automatic allocation for charmaps * Use automatic allocation for patch RPN * Use automatic allocation for section data * Use automatic allocation for patches * Use automatic allocation for sections * Use automatic allocation for assertions * Use `std::deque` for expansions * Use `std::deque` for unassigned sections * Use `std::deque` for file stack nodes * Use `std::deque` for assertions * Use `std::vector` for sorted symbols * Use `std::deque` for sorted sections * Remove our custom hashmap * Use `std::map` for rgbasm charmaps * Use `std::map` for rgbasm symbols * Use `std::map` for rgblink symbols and sections * Use `std::deque` for symbol lists * Use `std::deque` for sections * Use `std::stack` for unions * Use `std::deque` for section patches * Use `std::deque` for assertions * Use `std::vector` for symbols * Use `std::deque` (iterable) for section stack * Use `std::stack` for `IF` stack * Use `std::stack` for options * Use `std::stack` for charmaps * Document how to run the test suite * Give explicit test output if the scramble-romx size is wrong * Fix fstack traces for macro nodes (#1318) * Refactor some redundant error/warning-printing code * Remove `#include <stdbool.h>` (#1317) * Build with pedantically standard C++ (#1309) * No more flexible array members (not standard C++) (#1307) * Simplify `fstk_FindFile` usage (#1310) * Add missing license header * Remove unused struct definition * Remove obsolete `#undef fail` * Free all the charmaps after parsing * Clarify TODO comment * Separate union members for EQUS and MACROs * No more anonymous structs (not standard C++) (#1305) * Fix behavior of non-ASCII bytes with `INCHARMAP` (#1308) * Log indiviual rgblink test variants * Remove unused rgblink function `sym_ForEach` * .dockerignore is too trivial to license :P * Fix coverage script checking for `.c` files * Add a few more linker script tests * Reformat some deeply-indented lines * Ensure that mid-section `align 16` makes PC constant * Honor alignment offset for `ALIGN[16, N]` * Add several tests for linker script syntax * Report mismatched file better when diff fails * Only look for linkerscripts in the same dir as the asm file * Make sure to detect Git info from *our* Git repo (#1303) * Avoid links that just say "here" * Remove now-unnecessary indentation of code blocks * Refer to https URLs when applicable * Update some contributors * Convert reStructuredText to Markdown * Fix some reStructuredText * Report "<stdin>" or "<stdout>" when using "-" as a filename placeholder (#1297) * Provide guidance to remove the deprecated rgbasm flags (#1296) * Phrase error messages as "Failed to", not "Could not" or "Couldn't" (#1298) * Truncate long format spec strings before using them (#1299) * Use semicolons, not comma splices * Fix two instances of possible infinite loops in the linker (#1292) * Update to Zlib 1.3.1 * Use `rgbasm -I`, not `-i` * Fix some usually disabled compiler warnings (#1286) * Increment object file revision number to 10 (#1287) * Gameboy -> Game Boy ------------------------------------------------------------------- Wed May 22 05:51:39 UTC 2024 - stigpro@outlook.fr - Update to version 0.7.0: * Move to cmake usage * Move to _service-based revision management * Release v0.7.0 * Remove `.Tg` macro * Allow fewer tRNS entries than PLTE colors (#1284) * Get rid of macOS hack to try having the filesystem cake and eat it too * Revert "Switch to using `std::filesystem` (#1235)" * Generate macOS static bins under correct name * Fix build compatibility for macOS 10.14 and below (#1280) * Fix "build from source" link in README (#1281) * Improve linker scripts a little (#1275) * Fix documentation for ATAN2's (y, x) argument order ------------------------------------------------------------------- Fri Apr 23 17:43:32 UTC 2021 - Matthias Mailänder <mailaender@opensuse.org> - initial packaging of version 0.5.0