ISSOtm
3afa6b5a5a
Use pedantic warnings in Makefile default config as well
...
We aim to be standard-conformant, and the CMakeLists already does it
2022-02-05 20:11:25 +01:00
Rangi
bdcef6f252
Refactor error reporting to simplify BSD-style err ( #949 )
2021-11-21 16:16:54 -05:00
ISSOtm
0d6bfb84ce
Ignore unknown warning options
...
GCC and Clang do not understand the exact same warning option sets
2021-10-31 21:17:51 +01:00
Rangi
6d2db2ef64
make checkdiff does CI documentation checks (#900 )
...
Fixes #744
2021-06-24 17:49:08 -04:00
Rangi
869021f47d
Fix -Wformat build warnings on macOS
...
C arithmetic promotes certain expressions to `int`,
so formatting has to use "%d" or "%x", not inttypes.h.
Fixes #883
2021-05-04 21:28:57 -04:00
Jakub Kądziołka
d360d03403
Enable address sanitizer in develop builds ( #834 )
...
Co-authored-by: ISSOtm <eldredhabert0@gmail.com >
2021-05-02 18:08:03 +02:00
Rangi
d37aa93a7d
Port some cleanup from the WIP 'strings' branch
...
This is mostly variable renaming
2021-04-28 11:58:56 -04:00
ISSOtm
b936ca27ab
Enable _ISOC11_SOURCE
...
See #789
2021-04-23 17:07:52 +02:00
Rangi
ac2cefdd87
Refactor some math functions into a shared file for rgbasm and rgblink
...
Fixes #769
Fixes #770
2021-03-02 11:40:03 +01:00
Rangi
0774f5eb9d
Rename math.c/mymath.h to fixpoint.c/.h
...
This also changes the functions' prefix
from "math_" to "fix_".
2021-03-02 11:40:03 +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
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
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
Rangi
5ef8e0a1f6
Use an IELR parser if available
2021-01-14 18:36:10 +01:00
Rangi
eb4952c188
Use more verbose syntax error messages
...
Fixes #385
2021-01-14 18:36:10 +01:00
ISSOtm
b598911e96
Enable LTO in release builds
...
Fixes #693
2021-01-09 20:31:15 +01:00
Rangi
c0ce1da4c3
Implement STRFMT and more printf-like format specifiers for string interpolation ( #646 )
...
Fixes #570
Fixes #178
Use errors for inapplicable format spec flags instead of -Wstring-format
2020-12-29 22:53:15 +01:00
ISSOtm
aa27e714d4
Make Bison version detection more portable
...
- POSIX sh actually does NOT support `+=`,
but Bash does even in compatibility mode
- `mawk` does not fully support POSIX EREs (regexes),
so work around its lack of brace support
Fixes building on Debian, apparently.
2020-12-29 22:31:15 +01:00
Rangi
3690546795
make checkpatch and make checkcodebase check the same files
...
Only check src and include (not test), and
exclude src/extern and include/extern.
2020-12-29 20:27:00 +01:00
ISSOtm
3e4c2fe712
Avoid error with old Bison versions
...
`api.token.raw` is only defined starting with Bison 3.5
Since it's not essential, define it on the command-line iff the Bison
version is sufficient.
2020-12-10 15:13:45 +01:00
ISSOtm
3fe2fa43bb
Switch to GNU Bison as a dependency
...
First step for #595
2020-12-09 20:30:31 +01:00
ISSOtm
6c57ad2226
Have make clean delete parser artifacts
...
Forgot to update the names there
2020-10-25 16:26:58 +01:00
ISSOtm
01637768cf
Rename asmy to more explicit parser
...
This should make the purpose of that file clearer to newcomers
2020-10-11 21:03:41 +02:00
ISSOtm
06f7387466
Avoid using VLA in EQUS dumping
...
MSVC does not support those...
Also add a `develop` warning about VLAs, to avoid future incidents
2020-10-06 08:55:45 +02:00
James Larrowe
761c775043
Modularize CMake build configuration
...
Build type no longer defaults to Release (!)
have separate options for extra warning flags and sanitizers
toss DEVELOP macro
Fix sanitizers with CMake while I'm at it :|
2020-10-04 13:28:00 -04:00
ISSOtm
5a65188ca9
Implement compact file stacks in object files
...
Gets rid of `open_memstream`, enabling Windows compatibility again
Also fixes #491 as a nice bonus!
2020-10-04 04:46:01 +02:00
ISSOtm
cd747d8175
Fix many lexer bugs
...
More to come...
2020-10-04 04:39:25 +02:00
ISSOtm
e11f25024e
Add test for built-in file symbol
...
It's currently defined in fstack.c, making it more prone to accidental
dropping. Let's not repeat the 0.3.9 scenario...
2020-10-04 04:38:53 +02:00
ISSOtm
6dc4ce6599
Implement infrastructure around new lexer
...
The lexer itself is very much incomplete, but this is intended to be a
safe point to revert to should further implementation go south.
2020-10-04 04:37:58 +02:00
ISSOtm
8e4a9a5c21
Remove assertions from release builds
...
I believe the CMakeLists already did that, but the Makefile did not.
2020-09-27 17:05:52 +02:00
ISSOtm
210a4a957a
Get rid of in-repo HTML documentation
...
The online documentation is now managed by a CI hook
2020-09-15 18:39:22 +02:00
ISSOtm
ce47b57b03
Document version string fallback in Makefile
...
For a packager just looking at the Makefile, it's not obvious that there
is one...
2020-07-22 16:21:58 +02:00
ISSOtm
f3c916ab96
Allow env vars to override default CFLAGS etc.
...
Should make the work easier for downstream packagers
2020-07-22 16:21:21 +02:00
James Larrowe
f88d9e728d
Fix DJGPP build
...
GCC with the -std=c11 defines __STRICT_ANSI__. DJGPP checks if
__STRICT_ANSI__ is defined and if so doesn't define some things
mandated by POSIX such as struct stat, PATH_MAX, and others.
The -std=gnu11 option does not define this macro, so use it instead.
_DEFAULT_SOURCE isn't needed as no GNU nor BSD-specific functions
are used. Remove it.
Fix the last two occurrences of incorrect format specifiers for standard
fixed-width integer types.
2020-05-19 19:21:16 -04:00
JL2210
1e3ce2a36f
Use more conventional permissions and man-page directory
...
As 444 and 555 seem to be used for no apparent reason, use the more
conventional 644 and 755.
/man is typically unused or a symlink to /share/man now, so just use
/share/man.
Signed-off-by: JL2210 <larrowe.semaj11@gmail.com >
2020-04-05 17:02:12 -04:00
ISSOtm
153915dc2f
Improve portability of new make dist
2020-04-04 14:48:15 +02:00
ISSOtm
ced38bc6ee
Add new Makefile target for release tarballs
2020-04-04 14:23:28 +02:00
Eldred Habert
1f5ca39559
Merge pull request #494 from ISSOtm/docs
...
Overhaul man pages
2020-04-03 11:56:41 +02:00
ISSOtm
7eb73d766e
Make compilation optimized unless debugging
...
Note: I wanted to enable `-Og` on `develop`, but this generated warnings
(thus, errors) that aren't in `-O0`. Needs further investigation, but
annoyingly some of those are within `extern/` code, thus requiring
different flags, which AFAIK is only possible (sanely) with GNU Make.
2020-04-02 16:56:04 +02:00
ISSOtm
51e225cd75
Add post-processor for HTML renders
...
Adds links to argument descriptions in synopsis
Adds links to man pages in the set (not to external ones)
Removes artifact from the way long opts are encoded
Makes description blurb inline, consistently with terminal output
2020-03-26 23:11:01 +01:00
ISSOtm
7ddbe44b21
Use hashmap system for charmap
2020-03-15 15:23:32 +01:00
ISSOtm
ffdb1fbfe5
Split macro arg management into its own file
...
It has no relation to symbols, and helps a tiny bit deflate `symbol.c`
2020-03-11 02:39:36 +01:00
ISSOtm
cb62076f8c
Use $(MAKE) instead of make in develop
2020-03-06 18:15:32 +01:00
ISSOtm
93747af215
Allow overriding the base ref for checkpatch
...
The default is sane, but not a catch-all.
2020-02-19 00:55:00 +01:00
ISSOtm
3fce9ed9a4
Have Wine shim explicitly require bash
...
I didn't know the substitution was Bash-only..!
2020-02-17 15:03:46 +01:00
ISSOtm
21ffcc74db
Don't use echo -e for creating the Wine shim
...
Apparently that's not as portable as I expected.
2020-02-17 14:32:35 +01:00
ISSOtm
5fd38c5f67
Do not try to link libpng statically
2020-02-14 03:07:24 +01:00
ISSOtm
42faffe6f3
Make the Wine shims a separate target
2020-02-13 23:06:05 +01:00
ISSOtm
d0ec35628f
Split section management into its own file
2020-02-10 03:34:58 +01:00
ISSOtm
1d78cd0f03
Axe the constexpr expression evaluator
...
This avoids redundancy between them (and also having to port fixes and features)
The error messages have been preserved through a string reporting mechanism
2020-02-10 02:51:48 +01:00