Rename some stuff.

This commit is contained in:
Kevin Trogant 2026-04-19 14:01:14 +02:00
parent db6b9fcdc1
commit 6695101c48
6 changed files with 57 additions and 45 deletions

17
CMakeLists.txt Normal file
View File

@ -0,0 +1,17 @@
project(rtcore C)
set(CMAKE_C_STANDARD 99)
function(compile_opts target)
target_compile_options(${target} PRIVATE
$<IF:$<C_COMPILER_ID:GNU>,
-Wall -Wextra -Wpedantic, # -Wno-unused-parameter,
>
$<IF:$<C_COMPILER_ID:MSVC>,
/W4,
>)
set_target_properties(${target} PROPERTIES COMPILE_WARNING_AS_ERROR ON)
endfunction()
add_executable(rtcore_test rtcore_test.c rtcore.h)
compile_opts(rtcore_test)

View File

@ -1,2 +1,4 @@
-DRT_JSON_IMPLEMENTATION
-DRT_CORE_IMPLEMENTATION
-DRT_MPMC_IMPLEMENTATION
-std=c99

View File

@ -88,14 +88,14 @@ typedef int32_t b32;
#if defined(__GNUC__) || defined(__clang__)
#ifdef __has_builtin
#if __has_builtin(__builtin_expect)
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#define Likely(x) __builtin_expect(!!(x), 1)
#define Unlikely(x) __builtin_expect(!!(x), 0)
#endif
#endif
#endif
#ifndef likely
#define likely(x) (x)
#define unlikely(x) (x)
#ifndef Likely
#define Likely(x) (x)
#define Unlikely(x) (x)
#endif
#define internal static
@ -107,20 +107,20 @@ typedef int32_t b32;
#define exported __dllexport
#endif
#define min(a, b) ((a) < (b) ? (a) : (b))
#define max(a, b) ((a) > (b) ? (a) : (b))
#define Min(a, b) ((a) < (b) ? (a) : (b))
#define Max(a, b) ((a) > (b) ? (a) : (b))
#define kilobytes(n) ((n) * 1024)
#define megabytes(n) ((n) * 1024 * 1024)
#define gigabytes(n) ((n) * 1024 * 1024 * 1024)
#define Kilobytes(n) ((n) * 1024)
#define Megabytes(n) ((n) * 1024 * 1024)
#define Gigabytes(n) ((n) * 1024 * 1024 * 1024)
#define isizeof(x) (isize)sizeof(x)
#define ISizeof(x) (isize)sizeof(x)
/* number of elements in array a */
#define countof(a) (isize)(sizeof(a) / sizeof(*(a)))
#define CountOf(a) (isize)(sizeof(a) / sizeof(*(a)))
/* number of characters in string constant s (exluding the terminating 0) */
#define lengthof(s) (countof(s) - 1)
#define LengthOf(s) (CountOf(s) - 1)
#if defined(__GNUC__) || defined(__clang__)
#define assert(x) \
#define Assert(x) \
while (!(x)) \
{ \
__builtin_trap(); \
@ -129,7 +129,7 @@ typedef int32_t b32;
#define force_inline inline __attribute__((always_inline))
#elif defined(_MSC_VER)
#define assert(x) \
#define Assert(x) \
if (!(x)) \
{ \
__debugbreak(); \
@ -137,20 +137,20 @@ typedef int32_t b32;
#define force_inline __forceinline
#else
#define assert(x)
#define Assert(x)
#define force_inline inline
#endif
#if __STDC_VERSION__ >= 201112L
/* C11 introduces _Alignof */
#define ALIGNOF(T) _Alignof(T)
#define AlignOf(T) _Alignof(T)
#else
#if defined(__GNUC__) || defined(__clang__)
/* Use the compiler-specific keyword/operator */
#define ALIGNOF(T) __alignof__(T)
#define AlignOf(T) __alignof__(T)
#else
/* Fallback to the portable C89/C99 trick */
#define ALIGNOF(T) offsetof(struct { char c; T member; }, member)
#define AlignOf(T) offsetof(struct { char c; T member; }, member)
#endif
#endif
@ -200,17 +200,10 @@ enum
ALLOC_SOFTFAIL = 0x2,
};
/* allocate objects from an arena.
* usage is one of:
* - a(a, t) - allocate one object of type t from arena a
* - alloc(a, t, n) - allocate n objects of type t from arena a
* - (a, t, n, f) - allocate n objects of type t from arena a using flags f
*/
#define alloc(...) allocx(__VA_ARGS__, alloc4, alloc3, alloc2)(__VA_ARGS__)
#define allocx(a, b, c, d, e, ...) e
#define alloc2(a, t) (t *)ArenaAlloc(a, isizeof(t), ALIGNOF(t), 1, 0)
#define alloc3(a, t, n) (t *)ArenaAlloc(a, isizeof(t), ALIGNOF(t), n, 0)
#define alloc4(a, t, n, f) (t *)ArenaAlloc(a, isizeof(t), ALIGNOF(t), n, f)
#define Alloc(_arena, _t) (_t *)ArenaAlloc(_arena, ISizeof(_t), AlignOf(_t), 1, 0)
#define AllocFlags(_arena, _t, _flags) (_t *)ArenaAlloc(_arena, ISizeof(_t), AlignOf(_t), 1, (_flags))
#define AllocArray(_arena, _t, _n) (_t *)ArenaAlloc(_arena, ISizeof(_t), AlignOf(_t), (_n), 0)
#define AllocArrayFlags(_arena, _t, _n, _flags) (_t *)ArenaAlloc(_arena, ISizeof(_t), AlignOf(_t), (_n), (_flags))
RTC_API void *ArenaAlloc(arena *a, isize size, isize align, isize n, int flags);
@ -224,7 +217,7 @@ typedef struct s8
isize length;
} s8;
#define S8(_s) \
(s8) { .data = (u8 *)_s, .length = lengthof(_s), }
(s8) { .data = (u8 *)_s, .length = LengthOf(_s), }
typedef struct
{
@ -515,7 +508,7 @@ S8Equals(s8 a, s8 b)
RTC_API isize
S8Compare(s8 a, s8 b)
{
isize n = min(a.length, b.length);
isize n = Min(a.length, b.length);
for (isize i = 0; i < n; ++i)
{
if (a.data[i] != b.data[i])
@ -603,7 +596,7 @@ RTC_API s8
S8Clone(s8 s, arena *a)
{
s8 c = {0};
c.data = alloc(a, u8, s.length);
c.data = AllocArray(a, u8, s.length);
c.length = s.length;
memcpy(c.data, s.data, s.length);
return s;
@ -708,7 +701,7 @@ RTC_API file_buffer
ReadEntireFile(s8 path, arena *a)
{
char _p[260];
if (path.length >= countof(_p))
if (path.length >= CountOf(_p))
return (file_buffer){0};
memcpy(_p, path.data, path.length);
_p[path.length] = '\0';
@ -743,7 +736,7 @@ RTC_API b32
WriteEntireFile(s8 path, byte *data, isize length)
{
char _p[260];
if (path.length >= countof(_p))
if (path.length >= CountOf(_p))
return 0;
memcpy(_p, path.data, path.length);
_p[path.length] = '\0';

View File

@ -20,13 +20,13 @@ internal int
AllocTest(void)
{
char space[260];
arena a = {.begin = space, .end = space + countof(space) };
arena a = {.begin = space, .end = space + CountOf(space) };
int *t = alloc(&a, int);
int *t = Alloc(&a, int);
if (!t)
return 0;
*t = 42;
int *t2 = alloc(&a, int);
int *t2 = Alloc(&a, int);
if (t == t2)
return 0;
*t2 = *t;
@ -38,7 +38,7 @@ internal int
ReadFileTest(void)
{
char space[260];
arena a = {.begin = space, .end = space + countof(space) };
arena a = {.begin = space, .end = space + CountOf(space) };
s8 data = ReadEntireFileS8(S8("somedata.txt"), &a);
return S8Equals(data, S8("1234567890\n"));
}

View File

@ -190,7 +190,7 @@ ParseString(s8 text, isize *_at, isize *current_line, s8 file, arena *a)
printf("%zu: unexpected end of file\n", *current_line);
return (s8){0};
}
u8 *mem = alloc(a, u8, total_length);
u8 *mem = AllocArray(a, u8, total_length);
if (at > first_char)
memcpy(mem, str.data, at - first_char);
str.data = mem;
@ -339,7 +339,7 @@ ParseValue(s8 text, isize *_at, isize *current_line, s8 file, arena *a)
}
else if (text.data[at] == '\"')
{
child = alloc(a, json);
child = Alloc(a, json);
child->value.s = ParseString(text, &at, current_line, file, a);
if (!child->value.s.data)
return NULL;
@ -353,7 +353,7 @@ ParseValue(s8 text, isize *_at, isize *current_line, s8 file, arena *a)
parse_number_result res = ParseNumber(text, &at, current_line, file, &i, &f);
if (res == NOT_A_NUMBER)
return NULL;
child = alloc(a, json);
child = Alloc(a, json);
if (res == INT)
{
child->value.i = i;
@ -379,7 +379,7 @@ ParseValue(s8 text, isize *_at, isize *current_line, s8 file, arena *a)
++at;
++value_str.length;
}
child = alloc(a, json);
child = Alloc(a, json);
if (S8Equals(value_str, true_str))
{
child->value.b = 1;
@ -412,7 +412,7 @@ ParseJSONImpl(s8 text, isize *_at, isize *current_line, s8 file, arena *a)
{
isize at = *_at;
json *j = alloc(a, json);
json *j = Alloc(a, json);
if (text.data[at] == '{')
{

View File

@ -89,7 +89,7 @@ NewMPMCQueue(u32 capacity, arena *a)
mpmc_queue q = {0};
q.capacity = capacity;
q.mod = capacity - 1;
q.slots = alloc(a, mpmc_slot, capacity + 1);
q.slots = AllocArray(a, mpmc_slot, capacity + 1);
return q;
}