We were statically creating a new string per log message, so re-using
the same message would cause duplicate byte sizes.
Now, all prefixes / suffixes are only defined once, the file name is
defined once per file, the line number should be defined once per unique
line.
This just saves some memory in the final binary, allowing things to be
optimised a little better.
removed function definitions and opted for using macros instead.
It now does not have a set limit when it comes to printing (at least,
it's the stdc's limit again). However, it is now no longer possible to
use a character pointer to print information to the screen.
I am choosing gnu99 over c99, since I am planning to use GNU extensions,
like bswap. (in a future commit)
Why I choose c99 over c17, is because this'll produce more portable
code.
c99 does not implement noreturn.h, thus I added it to the compiler
attributes header.
implementaitons do not need modifiers if the definition already has
these.
Also move the comments to be above the implementations, rather than
behind the definitions.