ISSOtm
6b09838739
Sort proto-palettes by decreasing size when refitting overloaded palettes
...
Since that refitting process is a First-Fit, it benefits from that sorting step.
2024-08-08 12:12:29 +02:00
ISSOtm
0f1137c6ec
Fix ineffective sorting of palettes pre-packing
...
We were sorting the *IDs*, not the proto-palettes...
2024-08-08 11:31:46 +02:00
ISSOtm
1ad9383042
Disable optimisations in make debug
...
I am starting to feel aggravated by `$1 = <optimized out>`
2024-08-08 11:15:19 +02:00
ISSOtm
98bca79df4
Run clang-format
2024-08-02 22:36:33 -04:00
ISSOtm
dae4219acd
With -r, print both palettes if -c and -p mismatch
2024-08-02 22:36:33 -04:00
ISSOtm
3d1f5386c2
Fix parsing of GPL files
...
Can you tell this was *not* tested whatsoever?
2024-08-02 22:36:33 -04:00
ISSOtm
1f8f28cac8
Fix parsing of textual colours
...
`n`'s input value was not honored, and its updating logic incorrect
2024-08-02 22:36:33 -04:00
ISSOtm
8e60d1f0b8
Fix textual palettes not accepting to be filled
...
A weird case of off-by-one error
2024-08-02 22:36:33 -04:00
ISSOtm
d8aceaea4a
Ignore empty lines in HEX files
...
They are free-form enough that empty lines should probably be supported.
2024-08-02 22:36:33 -04:00
ISSOtm
a23b4732e3
Distinguish EOF and empty lines when parsing text pal files
2024-08-02 22:36:33 -04:00
ISSOtm
41046c287f
Use appropriate format specifier for number of palettes
2024-08-02 21:59:51 +02:00
ISSOtm
f4d0f01f91
Fix max number of palettes wrapping around after 255
2024-08-02 16:14:43 +02:00
Eldred Habert
1d89d75381
Fix use-after-free when keeping pointers to args from at-files ( #1426 )
2024-07-25 23:00:48 +02:00
ISSOtm
20b7b591d4
Run clang-format
...
Fix some small style inconsistencies
2024-03-28 01:41:25 +01:00
ISSOtm
d327138cd8
Report as many build errors as possible in CI
...
This allows debugging more problems in a single cycle
2024-03-28 01:37:10 +01:00
ISSOtm
0c0923ac16
Disable some spurious MSVC warnings
...
Not that it will de-clutter our CI logs very much, but eh, you know.
2024-03-28 01:33:21 +01:00
ISSOtm
e5078aba3b
Clean up #includes
...
Remove unused headers, and avoid relying on transitive inclusions
`include-what-you-use` has been very useful for this!
2024-03-28 01:25:38 +01:00
ISSOtm
cae7b5dcf6
Use standard attribute syntax instead of IBM __attribute__
...
Move format attrs to proper standard location
For some reason, GCC 13 is more lax than earlier versions...
2024-03-27 20:01:12 -04:00
ISSOtm
e255af9e10
Do not limit strings to 255 characters
2024-03-22 14:25:36 -04:00
ISSOtm
9f239f6dcc
Use std::shared_ptr<std::string> for lexed/parsed strings
2024-03-22 14:25:36 -04:00
ISSOtm
412073774c
Refactor string-formatting routines to append to an existing string
2024-03-22 14:25:36 -04:00
ISSOtm
52e8e1f9fc
Simplify \@ handling by using std::shared_ptr<std::string>
...
This has been relocated from macro.cpp to fstack.cpp, since both
MACRO and REPT/FOR nodes have their own unique `\@` values.
2024-03-22 14:25:36 -04:00
ISSOtm
e4a3509845
Fix build failure with GCC 13
...
It complains about *those* calls returning a dangling reference...
Unfortunately, GCC does not provide more information about what the
reference *is*. (It only mentions the temporary being destroyed at
the end of this *huge* expression.)
I am normally not one to just commit a thing that gets rid of a
warning if I can't explain why, but this eludes me.
Stubbing out the calls to only return a captured variable still
complains, which led me to test that the error wasn't stemming
from the `Visitor` itself... which it seems to?
But I don't see why a reference to the *visitor* should be kept...
Anyway, here is the obligatory part where I state my yearning for Rust :)
2024-03-15 21:40:11 +01:00
Eldred Habert
08066d4692
Fix a reference being used after being invalidated ( #1352 )
...
Your classic use-after-free bug.
2024-03-12 22:19:01 -04:00
ISSOtm
42d32c72a6
Use a unique name to upload W32/W64 binaries in CI
...
This now breaks in CI.
2024-03-13 01:07:28 +01:00
ISSOtm
81ed5fe41e
Update Actions to Node 20
...
There are some warnings in CI about this.
2024-03-13 00:15:43 +01:00
ISSOtm
b9596890c9
Disable a Clang warning
...
Fixes `make develop` with Clang 17.
The warning only triggers on the auto-generated `yynerrs_` in `src/asm/parser.cpp`,
so it's not very useful to us right now.
2024-03-13 00:04:11 +01:00
ISSOtm
0ea174f0dd
Stop explicitly passing zlib/libpng path to CMake in Windows CI
...
Turns out CMake auto-detects the libs just fine from the
`CMAKE_INSTALL_PREFIX`, and `PNG_BUILD_ZLIB` was actually breaking things.
2024-03-06 21:02:13 -05:00
Eldred Habert
0da216897a
Improve tests a little ( #1324 )
...
* Avoid redirecting error messages in RGBLINK tests
We check that RGBLINK prints nothing to stdout, so all that
would be captured on stdout is a putative failure message.
* Require each RGBLINK test to check error output
Otherwise, you can have a test that just... checks nothing!
* Document how to add tests
Fixes #1300 's last remaining item.
Also add `checkdiff` rules to remind us to update that doc if
any of the test driver scripts are updated.
2024-03-03 19:12:29 -05:00
ISSOtm
0e07408c63
Document how to run the test suite
2024-02-29 11:03:45 +01:00
ISSOtm
a0ae37d580
Fix coverage script checking for .c files
...
This tripped `gcov`.
2024-02-19 00:30:43 +01:00
ISSOtm
18e83c17b4
Add a few more linker script tests
2024-02-19 00:23:08 +01:00
ISSOtm
1b08a12b26
Ensure that mid-section align 16 makes PC constant
...
This makes `align 16` a sort of `org`, which is *very* useful :)
2024-02-18 17:53:56 -05:00
ISSOtm
36dad4380e
Honor alignment offset for ALIGN[16, N]
...
The *one* place where it was missed...
2024-02-18 17:53:56 -05:00
ISSOtm
b100c8ebee
Add several tests for linker script syntax
...
Fixes a slice of #1276
2024-02-18 23:25:58 +01:00
ISSOtm
0769694839
Report mismatched file better when diff fails
2024-02-18 23:25:58 +01:00
ISSOtm
4064e4a7a9
Only look for linkerscripts in the same dir as the asm file
2024-02-18 23:25:58 +01:00
Eldred Habert
efaef7039e
Make sure to detect Git info from *our* Git repo ( #1303 )
2024-02-18 17:08:30 -05:00
ISSOtm
8d48cc79a2
Update to Zlib 1.3.1
2024-02-08 11:08:08 +01:00
ISSOtm
08f3e360c9
Release v0.7.0
2023-12-31 13:18:52 +01:00
ISSOtm
0524eeb61a
Remove .Tg macro
...
Downstream support seems to be too sparse for the time being,
not worth the tiny gain we get from it
2023-12-31 13:18:37 +01:00
ISSOtm
528a4c0b70
Get rid of macOS hack to try having the filesystem cake and eat it too
2023-12-30 23:20:04 -05:00
ISSOtm
6b559e99b2
Revert "Switch to using std::filesystem ( #1235 )"
...
This reverts commit cf62ff772f .
Some functions used by this break on macOS before 10.15,
which we want to keep supporting.
2023-12-30 23:20:04 -05:00
ISSOtm
93d1d85f94
Generate macOS static bins under correct name
...
168950855 only did one half of the job, lol.
2023-12-29 23:25:28 +01:00
Eldred Habert
ccf9dcb851
Improve linker scripts a little ( #1275 )
...
* Allow for optional sections in linker scripts
These are more useful for frameworks/toolchains.
* Check for an active mem region everywhere
Do you like segfaults? Too bad!
* Allow the address to be floating in linker scripts
Try and make the life of SDCC interop easier.
* Also validate alignment when floating
* Overhaul the linker script manual page
Documenting the new features, but also restructuring the
existing documentation to make the manual page (hopefully)
easier to understand.
2023-12-24 23:29:11 -05:00
ISSOtm
98cecaee9e
Fix some formatting errors in man pages
2023-12-24 17:12:38 +01:00
Eldred Habert and Rangi42
fd78a9ae83
Port linkerscript parser to Bison ( #1266 )
...
Notable side effects:
* Use the standard-conformant MSVC preproc
* Add test for linker script INCLUDE
* Improve wording of placement conflict errors
* Fix errors from not newline-terminated files
* Teach checkdiff about the linker script doc
* Call linker script "commands" "directives" instead
---------
Co-authored-by: Rangi42 <[email protected] >
2023-12-11 02:29:37 +01:00
Eldred Habert
e1220d6fc6
Acknowledge Liji's contribution to RGBGFX
...
Make their help with #1241 more prominent, since it won't appear in the commit log
2023-11-27 18:04:30 +01:00
ISSOtm
c5721b749c
Use proper style to document long opts
...
Correct mandoc style is to use `Fl \-`, not `Fl Fl`, apparently.
2023-11-24 21:41:21 +01:00
ISSOtm
6f0defbfe5
Fix shellcheck warnings in the test scripts
...
Making them more robust to changes.
We ought to automate this some day.
My version of ShellCheck (v0.9.0) errors on test/gfx/test.sh, though...
2023-11-24 20:54:28 +01:00
ISSOtm
aa5b163944
Clean up RGBGFX's "SEE ALSO" section
...
Applying the previous fix there, plus reordering xrefs more usefully.
2023-11-23 18:10:45 +01:00
ISSOtm
eb237ea4e1
Update link to Pan Docs gfx overview
...
"Rendering" is now a much lower-level description of the rendering
process, not exactly what we are looking for there :)
2023-11-23 18:08:18 +01:00
ISSOtm
27c1237daa
Fix formatting errors in man pages
...
As reported by the following command:
mandoc -T lint man/* | grep -v "input text line longer than 80 bytes"
(One of them also showed up as a warning while setting up Debian packaging.)
2023-11-23 18:05:55 +01:00
ISSOtm
93285f8ea8
Fix use of input slice without dedup active
2023-11-06 08:14:13 +01:00