#include "../libsuicmez/libsuicmez.h" #include #include #include #include void* gc_alloc(const TypeInfo* type, size_t size); void gc_init(void); void gc_shutdown(void); // Helper for allocating arrays static void* suic_alloc_array(const TypeInfo* type, size_t elem_size, size_t len, void* init_data) { void* ptr = gc_alloc(type, elem_size * len); if (init_data) memcpy(ptr, init_data, elem_size * len); return ptr; } // Helper for allocating structs static void* suic_alloc_struct(const TypeInfo* type, size_t size, void* init_data) { void* ptr = gc_alloc(type, size); if (init_data) memcpy(ptr, init_data, size); return ptr; } int suic_main(void); int suic_main(void) { int x = 5; float y = 10.500000; bool z = true; char* s = suic_alloc_array(NULL, sizeof(char), 6, "hello"); return x; } int main(int argc, char* argv[]) { // Initialize GC gc_init(); // init globals // init event loop int result = suic_main(); // Shutdown GC gc_shutdown(); return result; }