Rangi42
ad3188f038
Fix garbage characters at EOF causing an infinite loop
2025-12-04 15:15:41 -05:00
Rangi
1eb4eb3339
Reuse the usage.name for printing version info
2025-11-18 22:32:45 -05:00
Rangi
a3d3e1525a
Fix RGBLINK object type detection
2025-11-18 22:01:43 -05:00
Rangi
3553c9c4da
Fix RGBLINK evaluation of undefined RPN symbols
...
This was the only RPN case to not assign a deliberate value
in all possible branches.
Fixes #1858
2025-11-18 16:40:24 -05:00
Rangi
5c2c893ced
Refactor getSectionDescription in src/link/assign.cpp
2025-11-16 17:37:01 -05:00
Rangi
04e3a904c2
Avoid calling style_Set/Reset before strerror(errno),
...
since they may call `isatty` which can change `errno`
Fixes #1857
2025-11-08 12:06:16 -05:00
Rangi
395b03e88e
Disallow SECTION UNION for ROM sections
...
Fixes #1855
2025-11-07 11:38:06 -05:00
Rangi42
fb9fa6038c
Release version 1.0.0
2025-10-31 20:19:24 -04:00
Rangi42
558d3ca0fc
Disallow labels before ENDC
2025-10-31 18:21:59 -04:00
Rangi42
df5162edca
Use loops instead of tail calls and musttail
...
gcc 15.2.1 20250813 complains "address of automatic variable can
escape to `musttail` call" from `-Wmaybe-musttail-local-addr`,
and guaranteeing tail-call optimization cross-platform is more
trouble than it's worth.
2025-10-27 12:05:27 -04:00
Rangi42
2519d1e698
Mention REDEF and FOR regarding EQUS expansion
...
Fixes #1851
2025-10-27 10:54:16 -04:00
Rangi42
ca383c91ca
Revert "More accurate 8-bit <=> 5-bit RGB color conversion ( #1827 )"
...
This reverts commit 223b3d1921 .
2025-10-24 13:32:59 -04:00
Rangi
8bedd710d7
Simplify musl's getopt, including removing optind, optopt, opterr, idx, and longonly
2025-10-23 13:39:28 -04:00
Rangi
efb5a88edb
Show conventional colored "error:"/"FATAL:" for CLI option errors
2025-10-23 12:40:29 -04:00
Rangi
a0bb830679
More consistent man page descriptions for CLI options
2025-10-22 14:48:24 -04:00
Rangi
7654c6e27a
More consistent man page descriptions for warning diagnostics
2025-10-22 14:03:34 -04:00
Rangi
400375b2e5
Share some handling between two tests of rgbasm -M -
2025-10-20 20:57:48 -04:00
Rangi
1badba03d8
Clean up some #define callables
...
These are used where anonymous functions would not be sufficient
2025-10-13 13:14:49 -04:00
Rangi42
64bcef99bd
Lower default -Wtrunction= level to 1
2025-10-13 11:48:33 -04:00
Rangi42
aa672bbec9
Rephrase PURGE documentation and raise the default level to 2
...
Fixes #1847
2025-10-13 11:43:29 -04:00
Rangi42
651877e094
Avoid reusing a static local variable (too fragile)
2025-10-08 21:19:23 -04:00
Rangi
26c48cc409
Add RGBGFX test for libpng warning with invalid bKGD chunk
2025-10-08 15:44:15 -04:00
Rangi
23b9039716
Give clearer names to template parameters
2025-10-08 14:55:43 -04:00
Rangi
711fba5e35
Add more tests for things that only the external tests had covered
2025-10-08 13:32:48 -04:00
Rangi
089fc11e31
A local label starting with a keyword (e.g. jr.local) is an error
2025-10-08 12:23:08 -04:00
Rangi42
837f552987
Fix bank increment never happening due to unsigned overflow
2025-10-07 16:20:24 -04:00
Rangi
cb8c973453
Add test for undefined __SCOPE__
2025-10-06 17:51:21 -04:00
Rangi
cca3794dd0
Mention libpng in its internal warning and error messages
2025-10-06 17:03:51 -04:00
Rangi
02c2408f58
Implement reversed template for reversing for-each loops
2025-10-06 16:50:47 -04:00
Rangi
fba0562650
Fix repeated REPT nodes in backtraces
2025-10-06 16:36:55 -04:00
Rangi
0c9920d4a6
Use C++ iterator for fragment/union "pieces" of RGBLINK sections
2025-10-05 15:07:25 -04:00
Rangi
13e85b5151
Replace all ctype.h functions with locale-independent ones
2025-10-03 12:52:24 -04:00
Rangi
268b586c9d
Release v1.0.0-rc2
2025-09-30 18:56:00 -04:00
Rangi
85d3b5df58
Add more RGBFIX tests
2025-09-30 18:20:53 -04:00
Rangi
eea277ae9c
Add more tests for RGBFIX
2025-09-29 22:43:16 -04:00
Rangi
538395b92c
Prevent simple syntax highlighters from breaking on /* in a string
2025-09-29 11:11:40 -04:00
Rangi
3108fb5297
Rename gbz80.7 "CPU opcode reference" to "Game Boy CPU instruction reference"
2025-09-28 16:43:36 -04:00
Rangi42
f99591bf6f
Link FORCE_COLOR and NO_COLOR
2025-09-25 14:06:44 -04:00
Rangi42
0297da4d4c
Add more tests for RGBASM coverage
2025-09-25 13:30:30 -04:00
Rangi42
96b953fe51
Add a test case for overlapping IF/ENDC and REPT/ENDR
...
This trips an asserton in the Rust rewrite because of its different
conditional stack design
2025-09-25 11:57:56 -04:00
Rangi42
0670c03bc2
Add CLI tests for RGBASM
2025-09-25 11:57:56 -04:00
Rangi42
09ef5b7e06
Refactor error fix suggestions in fstk_RunMacro
2025-09-24 19:35:41 -04:00
Rangi42
d5bb462f25
Separate isLetter into isUpper and isLower
2025-09-24 19:19:50 -04:00
Rangi42
b0727e9779
Suggest removing space before colon to define a label instead of invoking a macro
2025-09-24 18:32:45 -04:00
Rangi42
ca4b890273
Consistently do & alignMask, not % alignSize
...
Also add more unrelated tests for coverage
2025-09-23 13:25:51 -04:00
Rangi42
96a75500d3
Test gb-starter-kit from codeberg.org, not github.com
2025-09-23 13:06:12 -04:00
Rangi42
c8d22d8744
Refactor some iterator template code in RGBGFX pal_packing.cpp
2025-09-21 10:59:59 -04:00
Rangi42
3ece61b103
Use fewer templates in RGBGFX pal_packing.cpp
2025-09-20 22:00:17 -04:00
Rangi42
a82fd17529
Simplify RGBGFX code by using fewer templates
2025-09-20 21:06:51 -04:00
Rangi42
e7f5ab3f55
Warn about rgbgfx -O without -o or any of -A -T -P -Q
2025-09-20 20:23:29 -04:00
Rangi42
595c87b2f8
Update test dependencies
2025-09-20 15:23:02 -04:00
Rangi42
d8aff148bb
Factor out RRANGE macro like RANGE
2025-09-19 16:53:44 -04:00
Rangi42
6cffd991f7
Document rgbasm -Wempty-data-directive
...
Fixes #1829
2025-09-15 09:44:50 -04:00
Rangi42
1fdeb34e50
Fix too-short .out.bin expected test results
...
RGBASM tests now use `rgblink -x` instead of `dd` to get trimmed
test output. RGBLINK tests cannot do so because some of them
(e.g. bank-numbers.asm and sizeof-startof.asm) rely on ROMX
sections above 1, and `-x` implies `-t` which breaks that.
2025-09-15 09:25:33 -04:00
Rangi42
9f16881d64
Use for-each loop
2025-09-10 21:18:33 -04:00
Rangi42
d404621e0d
Don't silence strings-as-numbers with OPT Wno-obsolete in tests
2025-09-07 12:17:39 -04:00
Rangi42
c8a088f281
Avoid nonessential EQUS expansion in tests
2025-09-06 13:45:12 -04:00
Rangi42
94ed28acf8
Avoid nonessential strings-as-numbers in tests
2025-09-06 12:45:01 -04:00
Rangi42
00b5077b2a
Make usage info output responsive to the terminal width
2025-09-05 21:58:17 -04:00
Rangi42
024b33b63a
make format should apply to all .cpp and .hpp files
2025-09-05 21:05:58 -04:00
Rangi42
dcc10cebc3
Add test for duplicate section after use of fragment literal
...
Verifies that #1822 was fixed (by c6997fe73c )
2025-09-05 20:14:01 -04:00
Rangi42
1fc9ba86c4
Some RGBLINK refactoring
...
- Consistently refer to `Section` fragments/unions as "pieces" (renaming `.nextu`)
- Remove `Symbol`'s `.label()` accessors (use `std::get<Label>`)
- Move some `Label`-related logic into `Symbol` methods
2025-09-05 16:34:51 -04:00
Rangi42
e569e0c200
Don't comment "; Next fragment/union" in .map files for empty section pieces
...
Fixes #1821
2025-09-05 15:31:46 -04:00
Rangi42
f7fb3af615
Run make tidy with Checks: '-*,misc-include-cleaner' in .clang-tidy (IWYU)
2025-09-04 13:39:23 -04:00
Rangi42
1dfc1d3231
Factor out isBinDigit and parseHexDigit utility functions
2025-09-04 13:23:10 -04:00
Rangi42
891e6f98df
Fix formatting of very long fixed-point numbers
2025-09-04 12:54:14 -04:00
Rangi42
bdc885bd69
Avoid UB when checking truncation range
...
Fixes #1818
2025-09-04 12:04:10 -04:00
Rangi42
5b67dc94b6
Add more test coverage
2025-09-04 01:29:50 -04:00
Rangi42
4f702a4be8
Try to optimize RPN expressions with .emplace_back instead of .push_back
2025-09-03 23:00:06 -04:00
Rangi42
c5d437ab3c
Tell people to use character literals or CHARVAL instead of strings as numbers
2025-09-03 22:46:19 -04:00
Rangi42
c5c2800f17
Move RPN buffer encoding logic into rpn.cpp
2025-09-03 22:36:00 -04:00
Rangi42
c798500563
Don't call rpn.clear() when we can safely assume it's already empty()
2025-09-03 21:02:57 -04:00
Rangi42
5701d747d4
Document the stricter rules for lexing underscores in integer constants
2025-09-02 14:39:28 -04:00
Rangi42
2110aaca20
Fix RGBLINK and RGBGFX warning/error message colors
2025-09-01 20:51:33 -04:00
Rangi42
8df88f92ba
Release v1.0.0-rc1
2025-09-01 18:09:42 -04:00
Rangi42
cc96b4d517
Two small improvements
...
- Check whether `.read()` completed
- `.reserve()` expected space ahead of time
2025-09-01 11:46:41 -04:00
Rangi42
0ccdbf509a
Simplify format specs to not use a per-character state machine
2025-08-30 12:23:01 -04:00
Rangi42
c6997fe73c
Factor out InsertionOrderedMap to group an indexed list with a string-keyed map
2025-08-26 16:04:45 -04:00
Rangi42
c578a7b761
More specific error message when an expression is not constant because a symbol is undefined
2025-08-24 22:02:41 -04:00
Rangi42
8564df51e5
-Wexport-undefined warning for exporting undefined symbols
2025-08-24 17:36:47 -04:00
Rangi42
62d3b44768
Add test for UNION without NEXTU
2025-08-24 13:08:27 -04:00
Rangi42
ead5337fe0
Use scoped blocks for case-specific variables
2025-08-23 21:52:22 -04:00
Rangi42
0d509aa65c
Suggest DEF when undefined macros look like definitions
2025-08-23 21:40:51 -04:00
Rangi42
fcfc931867
Shorten lexing of simple tokens
2025-08-20 22:37:03 -04:00
Rangi42
92ed6ece53
Support 32-bit addresses ("XL4") as of SDCC 4.4.0
2025-08-20 09:17:45 -04:00
Rangi42
e0e9ef190a
Clarify DAA documentation
2025-08-20 08:57:32 -04:00
Rangi42
386fb5f398
Add more character utility functions
2025-08-19 19:17:40 -04:00
Rangi42
94e9ef5213
Factor shared code out of lexer_CaptureRept and lexer_CaptureMacro
2025-08-19 18:11:50 -04:00
Rangi42
f7167d8115
More consistent documentation for NP-complete heuristics
2025-08-18 21:45:26 -04:00
Rangi42
77a105e189
Mention the "first-fit bin packing" algorithm of RGBLINK
2025-08-18 11:51:01 -04:00
Rangi42
a16dcc0ea5
Downgrade FreeBSD release used for testing from 15 to 14.3
...
See https://github.com/vmactions/freebsd-vm/issues/108
We get the error:
ld-elf.so.1: Shared object "libutil.so.10" not found, required by "pkg"
2025-08-17 14:09:39 -04:00
Rangi42
9f373d49ac
Add more tests for edge-case macro and interpolation expansion behavior
...
Fixes #1803
2025-08-17 13:52:58 -04:00
Rangi42
ea1358bbe6
Predef std::pair to two-element std::tuple
2025-08-13 20:48:54 -04:00
Rangi42
2bdf61da70
Increase RGBASM test coverage
2025-08-13 12:26:01 -04:00
Rangi42
92826a726a
Move some static variables into the only functions that use them
2025-08-13 09:34:49 -04:00
Rangi42
1bf1219e07
Factor out shared --color-parsing code
2025-08-12 15:53:57 -04:00
Rangi42
30a8503dcd
Format RGBFIX and RGBGFX warnings/errors the same way as RGBASM and RGBLINK
2025-08-11 15:16:00 -04:00
Rangi42
02310489c6
Suggest ld and call when failing to link ldh and rst
2025-08-11 15:02:18 -04:00
Rangi42
7ade3e74b3
Avoid the need to repeat -Weverything in test .flags
2025-08-11 08:11:32 -04:00
Rangi42
2130a5ba1f
Error messages refer to "undefined" symbols and sections
2025-08-08 19:47:42 -04:00