rucc-session 0.2.18

The per-compilation session, options and diagnostic sink for the rucc C compiler.
Documentation
/* stdbool.h, three macros and a claim.
 *
 * C23 made `bool`, `true` and `false` keywords and this header a formality, and it says the
 * header is obsolescent. It is still here because the amount of C that includes it is not
 * going down, and because a program that includes it and then writes `#ifdef bool` is
 * entitled to an answer. */

#ifndef __RUCC_STDBOOL_H
#define __RUCC_STDBOOL_H

#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L
/* The three names are keywords. Defining the macros anyway would be legal, since each
 * expands to itself, but `#undef bool` in a later header would then take the keyword away. */
#define __bool_true_false_are_defined 1
#else
#define bool _Bool
#define true 1
#define false 0
#define __bool_true_false_are_defined 1
#endif

#endif