From c8ae4ab0174c0632c289aec40052231c63474255 Mon Sep 17 00:00:00 2001 From: Andreew Gregory Date: Wed, 24 Sep 2025 16:37:53 +0300 Subject: [PATCH] NOW. We can actually do something real --- CMakeLists.txt | 10 +++++----- src/l1/anne/codegen.c | 2 +- src/l1/anne/margaret/png_pixel_masses.h | 10 +++++----- src/l1/codegen/util_template_inst.h | 6 +++++- 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index dda56d4..b9bd997 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,16 +27,16 @@ add_compile_definitions(_POSIX_C_SOURCE=200112L) add_compile_definitions(_GNU_SOURCE) add_compile_options(-fno-trapping-math) -#add_executable(codegen_l1 src/l1/anne/codegen.c) -#target_compile_definitions(codegen_l1 -# PRIVATE PROTOTYPE1_L1_CODEGEN_BOOTSTRAP_USE_CHICKEN_VECU8) +add_executable(codegen_l1 src/l1/anne/codegen.c) +target_compile_definitions(codegen_l1 + PRIVATE PROTOTYPE1_L1_CODEGEN_BOOTSTRAP_USE_CHICKEN_VECU8) #add_executable(0_test src/l1_4/tests/t0.c) #add_executable(1_test src/l1_4/tests/t1.c) # -add_executable(l1_4_t2 src/l1_4/tests/t2.c) +#add_executable(l1_4_t2 src/l1_4/tests/t2.c) -add_executable(codegen_l1_5 src/l1_5/anne/codegen.c) +#add_executable(codegen_l1_5 src/l1_5/anne/codegen.c) # #add_executable(0_render_test src/l2/tests/r0/r0.c gen/l_wl_protocols/xdg-shell-private.c # src/l1/core/rb_tree_node.h) diff --git a/src/l1/anne/codegen.c b/src/l1/anne/codegen.c index 88e241c..d4a4c06 100644 --- a/src/l1/anne/codegen.c +++ b/src/l1/anne/codegen.c @@ -26,7 +26,7 @@ int main() { generate_liza_l1_headers(); generate_l1_headers_for_l1_5(); mkdir_nofail("l1/margaret"); - generate_margaret_eve_for_vulkan_utils(); + generate_margaret_eve_for_vulkan_utils(); /* margaret misc */ generate_margaret_png_pixel_masses_header(); finish_layer(cstr("l1")); return 0; diff --git a/src/l1/anne/margaret/png_pixel_masses.h b/src/l1/anne/margaret/png_pixel_masses.h index 1e779d5..adc0a9e 100644 --- a/src/l1/anne/margaret/png_pixel_masses.h +++ b/src/l1/anne/margaret/png_pixel_masses.h @@ -54,17 +54,17 @@ void generate_margaret_png_pixel_masses_header() { GeneratedHeader header = begin_header(cstr("l1/margaret/png_pixel_masses.h")); VecU8_append_span(&header.result, cstr( - "#include \"../pixel_masses.h\"" - "#include \"../ResultVoidOrVecU8\"" + "#include \"../pixel_masses.h\"\n" + "#include \"../ResultVoidOrVecU8.h\"\n" "#include \n\n")); VecU8_append_span(&header.result, cstr( "void margaret_libpng_h_error_cb(png_structp pngshka, png_const_charp err) {\n" - "printf(\"[!] %s\\n\", err);\n" + SPACE "printf(\"[!] %s\\n\", err);\n" "}\n\n" "void margaret_libpng_h_warning_cb(png_structp pngshka, png_const_charp warning) {\n" - "printf(\"[.] %s\\n\", warning);\n" - "}")); + SPACE "printf(\"[.] %s\\n\", warning);\n" + "}\n\n")); VecU8_append_vec(&header.result, generate_margaret_png_texture_data_methods(cstr("TextureDataR8G8B8A8"), 8, 4)); diff --git a/src/l1/codegen/util_template_inst.h b/src/l1/codegen/util_template_inst.h index 5923d72..4be35be 100644 --- a/src/l1/codegen/util_template_inst.h +++ b/src/l1/codegen/util_template_inst.h @@ -629,8 +629,12 @@ void generate_guarded_header_of_result_type_instantiation( ){ assert(layer.len > 1); VecU8 filename = get_ResultType_inst_name(OkT, ErrT); - VecU8 path = VecU8_fmt("%s/%s%s%s", layer, bonus_ns, bonus_ns.len ? cstr("/") : cstr(""), VecU8_to_span(&filename)); + VecU8 path = VecU8_fmt("%s/%s%s%s.h", layer, bonus_ns, bonus_ns.len ? cstr("/") : cstr(""), VecU8_to_span(&filename)); GeneratedHeader head = begin_header(VecU8_to_span(&path)); + VecU8_append_span(&head.result, dependencies); + VecU8_append_span(&head.result, cstr("\n\n")); + VecU8_append_vec(&head.result, generate_result_template_inst(OkT, ErrT, ok_t_primitive, err_t_primitive)); + finish_header(head); VecU8_drop(path); VecU8_drop(filename); }