Rangi
1e4a060d9e
Guard against undefined behavior in double2fix
...
I haven't found input which triggers any, but this is more
technically correct just in case.
2026-07-06 22:38:06 -04:00
Rangi
fe3b238dea
Do not allow defining labels outside sections ( #2013 )
...
Creating a `Symbol` with `type = SYM_LABEL` but `section = nullptr`
is inconsistent and dangerous. I was not able to cause any buggy
behavior so far, but it's safer and reasonable to not create such
a symbol in the first place.
The main consequence is that `DEF(LabelOutsideSection)` will now
evaluate as 0.
2026-07-06 16:18:42 -04:00
Rangi
46a6966b70
Fix $8000_0000 % -1 to warn with -Wdiv like $8000_0000 / -1 does ( #2012 )
2026-07-06 15:08:44 -04:00
Rangi
be3fc61859
Fix included linker scripts with no newline at EOF ( #2011 )
2026-07-06 14:01:40 -04:00
Rangi
0adbb92e50
Same-line shellcheck comment explanations
...
These are obvious even with `git grep shellcheck`.
2026-07-06 04:43:08 +02:00
Rangi
09da4e001a
Use Bash arrays instead of POSIX splitting when possible
2026-07-06 04:43:08 +02:00
ISSOtm
3eb8c7e8f2
Let tests know they are being run under Cygwin
2026-07-05 20:58:50 -04:00
Rangi
189c679e13
Parallelize build jobs according to CPU count
2026-07-05 20:58:50 -04:00
Rangi
5d5000011a
Remove CMAKE_INSTALL_PARALLEL_LEVEL
...
This value "has no impact unless `INSTALL_PARALLEL` is enabled",
and since our install procedure is so simple, I don't think we need
to add that. (The `make install` commands don't use `-j` either.)
2026-07-05 20:58:50 -04:00
Rangi
f81f5fe63c
Use git clean -fdx instead of make clean in external projects
2026-07-05 20:58:50 -04:00
Rangi
6e643406a2
Refactor warning diagnostic code to reduce repeated output logic
2026-07-04 23:02:16 -04:00
Rangi
de36a11be7
Prevent rgblink -Wno-* disabled warnings from printing a location trace anyway
...
Fixes #2005
2026-07-04 23:02:16 -04:00
Rangi
799c55b4dd
Add [[gnu::format(printf, 1, 2)]] attribute to variadic function sectError
2026-07-04 23:02:16 -04:00
Rangi
ddd8f37508
Remove unnecessary default constructor for Token
2026-07-04 18:48:03 -04:00
Rangi
c55dec254d
Remove unnecessary const_casting methods
2026-07-04 18:45:41 -04:00
Rangi
0996a2f5ed
Encapuslate UTF-8 decoder state in a struct
2026-07-03 19:35:23 -04:00
Rangi
e3c594c250
Explain why we do not use file(GLOB ext_projects CONFIGURE_DEPENDS "external/*.cfg")
2026-07-03 18:38:07 -04:00
Rangi
daba94b495
Remove pointless std::move from non-move constructor
2026-07-03 13:12:29 -04:00
Rangi
2f604bfa9a
Fix error message when an rgbgfx output file cannot be created
2026-07-03 13:08:28 -04:00
Rangi
9bbb2247a7
Fix rgbasm -Werror=... not adding to the final error count
2026-07-03 13:05:33 -04:00
Rangi
9b4df11473
Describe how to patch external projects
2026-07-02 12:37:26 -04:00
ISSOtm
4a77c42ed7
Remove redundant labels from tests
...
It's possible to filter tests by name (`-R`)
2026-07-02 10:39:59 -04:00
ISSOtm
b12eac356e
Try to automatically determine the test OS name
2026-07-02 10:39:59 -04:00
ISSOtm
82702d8149
Point out an ordering dep isn't a success one
2026-07-02 10:39:59 -04:00
ISSOtm
1f9cc9651a
Avoid fetching some repos twice
...
Also enables a nice bit of logic cleanup
2026-07-02 10:39:59 -04:00
ISSOtm
04b9c7fa3d
Move external tests files to tests/external/
2026-07-02 10:39:59 -04:00
ISSOtm
5e8a6cde20
Remove the need to explicitly list external tests
...
I like having a single source of truth!
2026-07-02 10:39:59 -04:00
ISSOtm
d59081a918
Shorten external test prop names slightly
...
Makes the scripts a bit easier to read, I think
2026-07-02 10:39:59 -04:00
Rangi
250a94c588
Tell Dependabot to ignore minor and patch releases ( #2001 )
...
We specify major-only versions, e.g. `actions/checkout@v7`,
which automatically uses the latest minor+patch of that release.
2026-07-02 13:55:16 +02:00
37818a1847
Updates actions/checkout from 6 to 7 ( #1999 )
...
---------
Signed-off-by: dependabot[bot] <[email protected] >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Rangi <[email protected] >
2026-07-01 23:06:12 -04:00
Rangi
0e3d1df129
Generate install.sh with make -n install ( #1996 )
2026-06-30 21:28:45 +02:00
Rangi
586c3073f9
Revert "Remove static compile flags"
...
This reverts commit e3fc46f933 .
We need compile_flags.txt to support clang-tidy
2026-06-30 11:16:14 -04:00
ISSOtm
e3fc46f933
Remove static compile flags
...
We support CMake now, which can generate a more accurate `compile_commands.json` database
(and our `develop` preset automatically enables them)
2026-06-30 16:52:31 +02:00
Rangi
3941a28661
Remove unused variables
2026-06-30 10:30:31 -04:00
Rangi
a829e6c067
Refactor the test harness for external repo tests ( #1994 )
...
- Use CTest labels to filter tests ("internal"/"external", "free"/"nonfree",
and individual tool+project names) instead of defining `TESTS_RUN_NONFREE`
- Allow each external test to run independently in CTest
- Remove the unused no-op `fetch-test-deps.sh --only-internal` option
2026-06-30 16:19:41 +02:00
Rangi
b252877b05
Comment why we use Ninja as the generator for CMake
2026-06-28 17:38:50 -04:00
Rangi
22a3625144
Explicitly test installation with Make and CMake ( #1992 )
2026-06-28 17:31:24 -04:00
Eldred Habert and Rangi
6cba5518e9
Install Pillow together with the rest of our CI deps ( #1952 )
...
We shouldn't assume how the user wants to install things.
In particular, `--break-system-packages` is egregious.
---------
Co-authored-by: Rangi <[email protected] >
2026-06-28 13:06:40 -04:00
Rangi
caf561457d
Warn about CMake <3.27 for Windows-targeted builds ( #1989 )
...
We only use `$<INSTALL_PREFIX>`` when cross-compiling for MinGW on Linux,
so the relevant block is now wrapped in `if(WIN32)`
so a user can more easily lower the `cmake_minimum_required` version.
2026-06-24 23:53:11 +02:00
Rangi
fc7d9ad573
Handle more numeric literal syntax errors in linker scripts
2026-06-09 18:46:51 -04:00
Rangi
0b91bf654b
Rename BaseV to ValidBaseV
2026-06-09 17:55:38 -04:00
Rangi
6b2b6e6000
Fix off-by-one error with INCLUDEd linker script line numbers
2026-06-09 16:16:21 -04:00
Rangi42
f72a4d53e2
Add -Wlarge-constant to RGBLINK as it is for RGBASM
2026-06-09 16:16:21 -04:00
vulcandth
998f636495
Fix rgbgfx -Z palette overgeneration on merged color sets ( #1912 )
...
- Fix logic for color set comparison (which affects sorting them)
- Prune color sets which are proper subsets of newly-encountered ones
(a comment implied we were already doing this, but we weren't)
- Add more verbose logging to debug this behavior
2026-06-07 09:55:05 -04:00
Rangi
075f132d77
Use a smaller unordered_map just for looking up line-leading keywords
2026-05-27 22:01:20 -04:00
Rangi
31e1d2ec87
Do not build up a std::string when skipping leading keywords
2026-05-27 22:01:20 -04:00
Rangi
673c62414f
Use std::string_view keys for UpperMap
...
This avoids constructing temporary `std::string` objects on lookup
2026-05-27 22:01:20 -04:00
Rangi
007672f080
Intern identifier strings only after checking for keywords
2026-05-25 23:55:57 -04:00
Rangi
7eaca1577d
Update .gitattributes for test/asm/crlf.asm
...
A fresh clone showed a diff even without any bytes changed.
2026-05-25 22:57:52 -04:00
Rangi
996469ee28
Ensure CRLF line endings are preserved when necessary
...
Some test cases need CRLF line endings checked out even on Unix.
Also some source files had inadvertently contained CR bytes.
2026-05-25 22:00:45 -04:00