ISSOtm
646fc62b89
Avoid running duplicate CI on macOS
...
`gcc` is just an alias to `clang` on macOS, so save on CI time.
2021-10-26 01:39:05 +02:00
ISSOtm
699c00dc20
Enable MacOS Big Sur in CI
2021-10-20 23:11:19 +02:00
Eldred Habert
9b9f3ffb96
Remove Ubuntu 16.04 from CI
...
It's been deprecated, see https://github.com/actions/virtual-environments/issues/3287
2021-10-05 22:24:24 +02:00
Eldred Habert and Rangi
00a67c3fb2
Clarify xref to fmt spec
...
Co-authored-by: Rangi <[email protected] >
2021-09-09 15:08:52 +02:00
ISSOtm
50d6403c72
Move section interpolation to its own section
...
Fixes #907
2021-09-09 15:08:52 +02:00
Eldred Habert
9111157b82
Add NieDzejkob and JL2210 to contributor list
...
Significant contributions all around are worth acknowledging.
2021-09-09 14:53:34 +02:00
Eldred Habert
794dd6cd7e
Mark Rangi and I as main contributors
...
I think we've earned it, at least for being maintainers for a couple years.
I believe the work done by those before us is more important (relicensing & cleanup),
but we've both made significant changes on top of what they made possible.
2021-09-09 14:37:23 +02:00
ISSOtm
ae4352c198
Fix typos in rgbasm(5)
2021-08-23 18:39:19 +02:00
ISSOtm
94d07c78d8
Fix MBC3+TIMER + handle lack of BATTERY
...
`TIMER & BATTERY` is 0, but even `|` would only be checking if
*either* is set; instead, imply BATTERY as soon as TIMER is given,
printing a warning if it was not given.
2021-08-12 10:20:09 +02:00
ISSOtm
20fd6eabbb
Fix up gitignores
...
Move tests gitignore into its own directory
Use stricter patterns where they make sense
2021-07-25 12:15:56 +02:00
ISSOtm
fbe29006d4
Document two two .github subdirectories
2021-07-25 12:12:36 +02:00
Eldred Habert
9868a01163
Format -m help better in the man page
...
Use semantic macros instead of plain text
2021-05-30 13:59:02 +02:00
Eldred Habert
0c8cdd92d6
Make instruction descriptions more proper English
...
Use articles where appropriate
Use adjectives where it makes sense
2021-05-24 22:07:36 +02:00
ISSOtm
872af9c7ed
Remove dead store in linker script CRLF handling
2021-05-21 17:20:47 -04:00
ISSOtm
06ea7b20bf
Reinstate "empty filename" assertion in __FILE__ callback
...
This assertion was mentioned by a comment, but deleted for some reason.
2021-05-21 17:20:47 -04:00
ISSOtm
a3c4652bfd
Fix dead stores in charmap_ConvertNext
...
Also cleanup / rearrange some of the function while we're at it.
2021-05-21 17:20:47 -04:00
ISSOtm
e3b7339dd6
Save UNION stack when using PUSHS as well
...
This allows using the latter within the former
2021-05-21 09:47:27 +02:00
ISSOtm
69d7f84502
Reset LOAD offset when changing SECTIONs
...
This would cause spurious section overflow messages, since the load offset
is added to the section's when computing its size.
2021-05-21 09:37:17 +02:00
ISSOtm
e970b6d6eb
Update Zsh completions with CLI changes
...
Also fix some misc. issues with them, and fix an incorrect reported ID for MBC1
2021-05-15 19:21:39 +02:00
ISSOtm
d9cce3fa1f
Update TPP1 canonical name to "TIMER", not "RTC"
...
See previous commit
2021-05-15 19:13:24 +02:00
ISSOtm
aa02958e18
Fix mandoc warnings
2021-05-15 12:23:05 +02:00
ISSOtm
011d4ec392
Use the Ad macro for RST addresses
...
Sy has no semantic meaning, and Ad may fix how the "x" is rendered
in the HTML export
2021-05-15 12:03:20 +02:00
ISSOtm
afbaf10185
Fix MBC help string
...
It's called TIMER, not RTC >_<
2021-05-15 11:25:09 +02:00
Eldred Habert and Rangi
c06985a7ad
Fix incorrect lexing of "$ff00+c" ( #882 )
...
Fixes #881 by moving the task from the lexer to the parser.
This both alleviates the need for backtracking in the lexer,
removing what is (was) arguably a hack, and causes tokenization
boundaries to be properly respected, fixing the issue mentioned above.
Co-authored-by: Rangi <[email protected] >
2021-05-05 02:04:19 +02:00
ISSOtm
c502804192
Update winflexbison to 2.5.24
...
Updates Bison to 3.7.4, removing support for VS2015
https://github.com/lexxmark/winflexbison/releases/tag/v2.5.24
2021-05-05 01:57:16 +02:00
ISSOtm
75f1bcde31
Make SECTION size overflow non-fatal
...
Fixes #538
2021-05-04 15:34:20 +02:00
ISSOtm
60b85298a9
Fix all memory leaks in RGBLINK
...
At least all that were reported in the tests.
Partial fix for #709 , that only leaves RGBASM to be fixed... oh boy!
2021-05-03 12:50:14 +02:00
ISSOtm
8bbafb7200
Rename out_ functions in section.c to sect_
...
More consistent with convention used everywhere, and makes it easier to
know which file the functions come from.
2021-05-03 12:22:14 +02:00
ISSOtm
75ce230dce
Make UNION-related errors non-fatal
2021-05-03 10:57:14 +02:00
ISSOtm
1d01268249
Remove LOAD FRAGMENT
...
It's very troublesome, with flaky semantics and a very restricted use space.
2021-05-03 10:51:55 +02:00
ISSOtm
02cb5a0526
Avoid performing invalid actions on LOAD errors
...
These are rejected because they could lead to incorrect behavior,
so then don't do it...
2021-05-03 10:46:52 +02:00
ISSOtm
6e1a5dcc9d
Add TPP1 support
...
Fixes #846
2021-05-02 19:09:53 +02:00
ISSOtm
dcb8c69661
Fix UAF in lexer capture
...
Fixes #689
2021-05-02 03:24:18 +02:00
ISSOtm
cc6b70f1d5
Add option to list accepted MBC names and clarify man page
...
Referring to "Pan Docs names" skims over a lot of details.
Add `-m help` to list accepted names for clarity
2021-05-02 00:39:42 +02:00
ISSOtm
38a9a613da
Make data output outside of a SECTION non-fatal
2021-05-01 23:48:48 +02:00
ISSOtm
ad9a766a56
Allow dollar-prefixed hex for RGBFIX -m
...
Fixes #872
2021-05-01 23:48:23 +02:00
Eldred Habert
21b59c4651
Reinstate PUSHS clearing the SECTION scope ( #870 )
...
* Reinstate PUSHS clearing the SECTION scope
Otherwise you can use `PUSHS` to simulate the old `ds -21`, and possibly cause bugs
* Have PUSHS push LOAD block state as well
It does not make sense not to, and coud cause bugs.
2021-05-01 23:30:09 +02:00
ISSOtm
3ffdd50909
Test that RGBFIX does nothing when given no flags
2021-05-01 14:16:45 +02:00
ISSOtm
dd8f396227
Fix compiler warnings
...
As reported in #789
2021-04-25 20:40:11 +02:00
ISSOtm
b60853ea21
Fix RGBFIX option parsing on platforms with unsigned char
...
Such as Termux, once again.
2021-04-25 11:05:34 +02:00
ISSOtm
b936ca27ab
Enable _ISOC11_SOURCE
...
See #789
2021-04-23 17:07:52 +02:00
ISSOtm
db1f77f90b
Correct "| operator" line not including the pipe
2021-04-23 14:24:53 +02:00
ISSOtm
6d0a3c75e9
Get rid of Hungarian notation for good
...
Bye bye it was not nice knowing ya
2021-04-19 22:12:10 +02:00
ISSOtm
e35585960c
Avoid generating CRLF'd release tarballs
...
Fixes #841
2021-04-18 23:19:22 +02:00
ISSOtm
432c769d60
Release v0.5.0
2021-04-17 22:53:00 +02:00
ISSOtm
ba3428314b
Add contact info for potential contributors
...
I'm going on a break, but I'll stay available if anyone wants to contribute.
2021-04-13 00:27:49 +02:00
ISSOtm
de7d1facf3
Add assertion that an expansion's total len doesn't overflow
...
Typically not needed because the recursion depth limit should prevent it,
but it might help debug weird lexer issues.
2021-04-03 18:31:30 +02:00
Eldred Habert
7461170956
Add LOAD FRAGMENT pc test ( #800 )
...
Reproduces a reported problem, fix pending
2021-03-28 15:11:20 -04:00
ISSOtm
4216f0a9b0
Init top-level fstack node line number
...
It still gets written to the object file, generating Valgrind warnings
about using uninitialized memory. To silence those errors, and make
output more reproducible, init the line no to a dummy (0) value.
2021-03-25 11:26:58 +01:00
ISSOtm
e3fde986ad
Remove hashmap collision warning
...
It was only used to check hashmap collision rate in the wild,
but it no longer has a purpose and produces spurious messages
2021-03-23 21:34:08 +01:00
ISSOtm
46d6652df1
Fix missing .sym/.map symbols in SECTION UNION/FRAGMENTs
...
Only the first "slice"'s symbols were considered, forgetting some symbols
2021-03-22 23:23:06 +01:00
ISSOtm
5406674cdd
Install groff to build PDFs correctly in CI
2021-03-20 02:09:47 +01:00
ISSOtm
5d2e2e2182
Make docs update script also produce PDFs
...
See rgbds-www#12
2021-03-20 01:53:26 +01:00
ISSOtm
a929f36bc5
Replace UTF-8 hyphens with ASCII ones in man pages
2021-03-20 01:25:17 +01:00
ISSOtm
bdb84a901f
Use sub-sections for the different symbol types
...
This will make them appear in the ToC, and generate HTML anchors for them
2021-03-19 11:04:22 +01:00
ISSOtm
5fb7fcf461
Fix description of rgbgfx -h
...
The old description was backwards and mostly confusing.
2021-03-18 15:35:01 +01:00
ISSOtm
3ca58e13dc
Fix verbose messages claiming non-existent errors
...
They were confusing when trying to debug other things
2021-03-14 18:52:16 +01:00
ISSOtm
aaa4e17454
Add verbose messages for early exit from -MG
...
Should help debugging Make invocations
2021-03-14 18:28:05 +01:00
ISSOtm
60019cf476
Fix a bunch of Clang warnings
...
As reported by #789
Should avoid relying on 32-bit int (for implicit conversions)
and account for more extreme uses of RGBDS.
2021-03-10 10:56:57 +01:00
ISSOtm
5a6a44cbc1
Fix master documentation updater
...
Its path was not synced with a recent change
2021-03-10 01:15:51 +01:00
ISSOtm
b61a187b19
Add forgotten __RGBDS_RC__ symbol
2021-03-10 01:09:18 +01:00
ISSOtm
6382f13647
Release 0.5.0-rc1
2021-03-10 01:04:23 +01:00
ISSOtm
714d39c86f
Make some INCBIN errors non-fatal
2021-03-10 01:02:45 +01:00
ISSOtm
f11241c2ae
Add INCBIN tests
2021-03-10 01:02:45 +01:00
ISSOtm
028e7af7d1
Prepare release candidates
...
We'll use "-rcX" instead of "-pre" to allow multiple ones, jic
Additionally, they will be able to be detected using __RGBDS_RC__
Finally, adapt everything version-related to this new system
2021-03-10 00:06:32 +01:00
ISSOtm
e141da1d94
Compute fallback version string at compile time
2021-03-09 23:59:34 +01:00
ISSOtm
35367282e4
Add workflow to auto-prepare a release
...
Just push a tag beginning with "v" and a number to trigger it
2021-03-09 22:58:42 +01:00
ISSOtm
4c0fa6732e
Fix release doc creation workflow
2021-03-09 22:58:42 +01:00
ISSOtm
e9d9a44687
Make release doc update also register docs
2021-03-09 22:58:42 +01:00
ISSOtm
611bd46e0b
Ignore CRLF vs LF for syntax error test check
2021-03-09 22:58:32 +01:00
ISSOtm
e67254093e
Delete version test if stale
2021-03-09 22:58:00 +01:00
ISSOtm
3ce3d2f662
Explicitly force tested projects to use tested bins
2021-03-09 22:56:59 +01:00
ISSOtm
3da9d81071
Ignore DLLs too
...
Since you may want to put them next to the EXEs here
2021-03-09 22:46:17 +01:00
ISSOtm
40c6b840f8
Add tests for certain directives at EOF without a newline
2021-03-02 16:53:56 -08:00
Eldred Habert
dafef5a953
Remove column 1 restriction for labels with colons ( #635 )
...
Partial fix for #457
2021-02-23 14:42:24 -05:00
ISSOtm
72911ada2d
Prevent non-numeric symbol from overriding refs
...
Fixes #751
2021-02-22 13:00:25 +01:00
ISSOtm
bee62076c6
Allow ENDC at EOF without a newline
2021-02-20 00:51:33 +01:00
ISSOtm
cd072d5e6a
Add assertion check for potential UAF trigger
...
It actually currently triggers if an INCLUDE directive is given at EOF,
but #742 will fix that.
2021-02-19 16:53:30 +01:00
ISSOtm
6ef3ee1391
Give void* ptr to %p formatter
...
Silences a format type mismatch warning
2021-02-19 16:53:26 +01:00
ISSOtm
c29b616f93
Fix forgotten initialization of lexerState->isReferenced
2021-02-18 16:33:06 +01:00
ISSOtm
122ba6eba5
Update deprecated feature examples
...
Those have been removed, lol
2021-02-16 22:09:31 +01:00
ISSOtm
88e1cc7302
Make EOF token name consistent across Bison versions
...
The "end of file" name apparently only became a default recently
2021-02-11 13:04:43 +01:00
ISSOtm
b3c0db218d
Remove "EOF-newline" lexer hack
...
In preparation for an upcoming change
Makes for nicer error messages, complaining about EOF instead of newlines
The hack had to be kept for the lexer raw mode to avoid a bug;
see the relevant code comment for more info.
2021-02-11 12:48:37 +01:00
ISSOtm
76446e6d00
Change behavior of merging FRAGMENTs to constrain each fragment individually
...
Additionally, remove the deprecated merging of non-fragment SECTIONs
2021-02-10 10:19:16 +01:00
ISSOtm
6623b1dc45
Fix CI on macOS
...
Apple supplies version 2.3 (from 2006!!), which doesn't support `%empty`.
2021-01-23 13:45:12 +01:00
ISSOtm
70bbb098d3
Remove stale keywords
...
They were removed from the grammar, but not the lexer
2021-01-23 00:05:56 +01:00
ISSOtm
1926065377
Enable Bison warnings
...
-Wall should be old enough.
Also use %empty instead of comments
2021-01-23 00:05:56 +01:00
ISSOtm
a679e02246
Get rid of asm.h and localasm.h
...
No need to make them global
2021-01-22 13:34:16 +01:00
ISSOtm
592e9b3725
Reorganize and comment better main()
2021-01-22 11:09:27 +01:00
ISSOtm
effc58241d
Rework defining variables on command-line
...
Avoids allocating memory
Detects CLI errors even when failing to open file
Reports symbols as defined on command-line instead of input line 0 (!?)
2021-01-22 11:03:43 +01:00
ISSOtm
3697065afc
Add asm/opt.c to CMakeLists
...
Fixes compiling with CMake
2021-01-22 11:01:33 +01:00
ISSOtm
fa0fa4d5ac
Significantly overhaul OPT code
...
Simplify the mess that was option setting (2 redundant variables !?)
Move options to a separate file
Have "modules" own their options, and OPT only access them (less redundancy)
Simplify code, respect naming conventions better
2021-01-22 10:41:09 +01:00
ISSOtm
5acc48fa54
Error out when given several input files
...
Also rename tzMainFile
2021-01-22 09:44:41 +01:00
ISSOtm
1487eebe79
Remove time counter
...
Nobody uses that, and it requires running extra code for each line
2021-01-22 08:51:57 +01:00
ISSOtm
993c034039
Avoid using EXPAND_AND_STR with external defines
...
There is no guarantee that they are purely numeric, use the values instead
2021-01-22 08:51:35 +01:00
ISSOtm
09f16bda4a
Use putc instead of fputc
...
Also rename some functions for consistency
2021-01-22 08:32:28 +01:00
ISSOtm
41d544a4eb
Rewrite RGBFIX
...
- Make it work inside pipelines
- Add RGBFIX tests to the suite
- Be more flexible in accepted MBC names
- Add warnings for dangerous or nonsensical input params
- Improve man page
2021-01-20 21:22:55 +01:00
ISSOtm
ca1c934629
Have CMake use specified compiler in CI, not system default
...
Otherwise it's just GCC on Linux and Clang on macOS...
2021-01-19 16:35:06 +01:00
ISSOtm
15ec6efc28
Fix missing newline in charmap override warning
2021-01-17 20:13:51 +01:00
ISSOtm
57b734a7df
Reinstate RL into the _RS family
...
Removal of colon-less labels lifted the grammar ambiguity that
prevented `RL` from being usable as a variable declarator.
Thus, reinstate its functionality.
2021-01-11 01:38:03 +01:00