From 2b42449ce4ffa8195cf26ae6a80e3f617661ffc7 Mon Sep 17 00:00:00 2001 From: Abdelrahman Date: Sun, 7 Dec 2025 17:36:14 +0000 Subject: [PATCH] Remove array codegen code --- codegen/__main__.py | 15 +- codegen/array/make_array.py | 448 ------------------ codegen/array/snippets/alloc_capacity | 15 - codegen/array/snippets/alloc_capacity_macro | 1 - codegen/array/snippets/append_alloc | 18 - codegen/array/snippets/append_capped | 5 - codegen/array/snippets/array_get | 5 - codegen/array/snippets/array_pop | 4 - codegen/array/snippets/array_pop_macro | 4 - codegen/array/snippets/array_pop_macro_cpp | 4 - codegen/array/snippets/array_set | 3 - codegen/array/snippets/clear | 2 - codegen/array/snippets/copy_alloc | 18 - codegen/array/snippets/copy_capped | 22 - codegen/array/snippets/extend_alloc | 19 - codegen/array/snippets/extend_capped | 23 - .../array/snippets/ptr_array_pop_macro_cpp | 4 - codegen/array/snippets/stack_array | 6 - codegen/array/snippets/stack_array_cpp | 9 - codegen/array/snippets/stack_capacity_array | 1 - .../array/snippets/stack_capacity_array_cpp | 4 - codegen/constants.py | 1 - codegen_custom_data_example.json | 15 +- 23 files changed, 2 insertions(+), 644 deletions(-) delete mode 100644 codegen/array/make_array.py delete mode 100644 codegen/array/snippets/alloc_capacity delete mode 100644 codegen/array/snippets/alloc_capacity_macro delete mode 100644 codegen/array/snippets/append_alloc delete mode 100644 codegen/array/snippets/append_capped delete mode 100644 codegen/array/snippets/array_get delete mode 100644 codegen/array/snippets/array_pop delete mode 100644 codegen/array/snippets/array_pop_macro delete mode 100644 codegen/array/snippets/array_pop_macro_cpp delete mode 100644 codegen/array/snippets/array_set delete mode 100644 codegen/array/snippets/clear delete mode 100644 codegen/array/snippets/copy_alloc delete mode 100644 codegen/array/snippets/copy_capped delete mode 100644 codegen/array/snippets/extend_alloc delete mode 100644 codegen/array/snippets/extend_capped delete mode 100644 codegen/array/snippets/ptr_array_pop_macro_cpp delete mode 100644 codegen/array/snippets/stack_array delete mode 100644 codegen/array/snippets/stack_array_cpp delete mode 100644 codegen/array/snippets/stack_capacity_array delete mode 100644 codegen/array/snippets/stack_capacity_array_cpp diff --git a/codegen/__main__.py b/codegen/__main__.py index 8a45e62..abf015d 100644 --- a/codegen/__main__.py +++ b/codegen/__main__.py @@ -2,29 +2,22 @@ import json from typing import Dict from pathlib import Path from codegen.datatypes import CDataType, CStruct -from codegen.constants import WAPP_REPO_ROOT, DBL_LIST_DATA, ARRAY_DATA +from codegen.constants import WAPP_REPO_ROOT, DBL_LIST_DATA from codegen.dbl_list.make_dbl_list import DblListData, make_dbl_list -from codegen.array.make_array import ArrayData, make_array def main(types_file: Path | None): dbl_list_datatypes: Dict[CDataType, DblListData] = {} - array_datatypes: Dict[CDataType, ArrayData] = {} if types_file is not None and types_file.is_file() and "json" in types_file.suffix.lower(): with types_file.open("r") as infile: datatypes = json.load(infile) dbl_list_data = datatypes.get(DBL_LIST_DATA) - array_data = datatypes.get(ARRAY_DATA) if dbl_list_data is not None and isinstance(dbl_list_data, dict): dbl_list_datatypes = {k: DblListData.from_dict(v) for k, v in dbl_list_data.items()} - if array_data is not None and isinstance(array_data, dict): - array_datatypes = {k: ArrayData.from_dict(v) for k, v in array_data.items()} - make_dbl_list(dbl_list_datatypes) - make_array(array_datatypes) # Save example types file custom_struct = CStruct(name="custom_type", cargs=[], typedef_name="CustomType") @@ -36,12 +29,6 @@ def main(types_file: Path | None): hdr_decl_types=[custom_struct], ).to_dict() }, - ARRAY_DATA: { - "CustomType": ArrayData( - array_typename="CustomTypeArray", - hdr_decl_types=[custom_struct], - ).to_dict() - }, } example_file = WAPP_REPO_ROOT / "codegen_custom_data_example.json" diff --git a/codegen/array/make_array.py b/codegen/array/make_array.py deleted file mode 100644 index d239ce3..0000000 --- a/codegen/array/make_array.py +++ /dev/null @@ -1,448 +0,0 @@ -from pathlib import Path -from dataclasses import dataclass, field -from typing import List, Dict, Any, Type -from codegen.constants import WAPP_SRC_ROOT -from codegen.utils import load_func_body_from_file, convert_to_relative -from codegen.datatypes import ( - CDataType, - CMacro, - CStruct, - CFunc, - CHeader, - CSource, - CArg, - CType, - CPointer, - CPointerType, - CQualifier, - CInclude, - SerialisableDataclass, - get_datatype_string, -) - - -@dataclass -class ArrayData(SerialisableDataclass): - array_typename: str - hdr_decl_types: List[CStruct] = field(default_factory=list) - src_decl_types: List[CStruct] = field(default_factory=list) - - @classmethod - def from_dict(cls: Type["ArrayData"], d: Dict[str, Any]) -> "ArrayData": - data = ArrayData(**d) - data.hdr_decl_types = [CStruct.from_dict(v) for v in data.hdr_decl_types if isinstance(v, dict)] - data.src_decl_types = [CStruct.from_dict(v) for v in data.src_decl_types if isinstance(v, dict)] - return data - - -def make_array(user_datatypes: Dict[CDataType, ArrayData] = {}): - def __format_func_body( - filename: Path, - type_string: str, - type_string_upper: str, - type_string_lower: str, - array_typename: str - ): - return load_func_body_from_file(filename).format( - T=type_string, - ArrayType=array_typename, - Tupper=type_string_upper, - Tlower=type_string_lower, - ) - - out_dir = WAPP_SRC_ROOT / "primitives" / "array" - out_dir.mkdir(parents=True, exist_ok=True) - - common_includes: List[CInclude] = [ - CInclude( - header=str(convert_to_relative(WAPP_SRC_ROOT / "primitives" / "mem_allocator" / "mem_allocator.h", out_dir)).replace("\\", "/"), - local=True, - ), - CInclude( - header=str(convert_to_relative(WAPP_SRC_ROOT / "common" / "misc" / "misc_utils.h", out_dir)).replace("\\", "/"), - local=True, - ), - ] - - common_decl_types: List[CStruct] = [] - - datatypes: dict[CDataType, ArrayData] = { - CType.VOID: ArrayData(array_typename="GenericArray"), - "void *": ArrayData(array_typename="VoidPArray"), - "Str8": ArrayData( - array_typename="Str8Array", - hdr_decl_types=[ - CStruct(name="str8", cargs=[], typedef_name="Str8"), - ], - ), - } - - for _type in CType: - if _type == CType.VOID: - continue - - type_title = _type.value.title() - datatypes[_type] = ArrayData( - array_typename=f"{type_title}Array", - ) - - datatypes.update(user_datatypes) - - snippets_dir = Path(__file__).parent / "snippets" - - header = CHeader( - name="array", - decl_types=[*common_decl_types], - includes=[], - types=[], - funcs=[] - ) - - source = CSource( - name=header.name, - decl_types=[*common_decl_types], - includes=[ - CInclude(header, local=True, same_dir=True), - CInclude( - header=str(convert_to_relative(WAPP_SRC_ROOT / "common" / "assert" / "assert.h", out_dir)).replace("\\", "/"), - local=True - ), - CInclude(header="stddef.h"), - ], - internal_funcs=[], - funcs=header.funcs - ) - - if len(common_includes) > 0: - header.includes.extend(common_includes) - source.includes.extend(common_includes) - - - generic_funcs = [] - - for _type, array_data in datatypes.items(): - type_string = get_datatype_string(_type) - clean_type_string = type_string.replace(" ", "").replace("*", "_ptr") - type_string_upper = clean_type_string.upper() - type_string_lower = clean_type_string.lower() - - array = CStruct( - name=array_data.array_typename, - cargs=[ - CArg(name="items", _type=type_string, pointer=CPointer(_type=CPointerType.SINGLE)), - CArg(name="count", _type=CType.U64), - CArg(name="capacity", _type=CType.U64), - CArg(name="item_size", _type=CType.U64), - ], - ) - - if isinstance(_type, CType) and _type == CType.VOID: - alloc_capacity_func = CFunc( - name=f"_array_alloc_capacity", - ret_type=array, - args=[ - CArg(name="allocator", _type="Allocator", pointer=CPointer(CPointerType.SINGLE), qualifier=CQualifier.CONST), - CArg(name="capacity", _type=CType.U64), - CArg(name="item_size", _type=CType.U64), - ], - body=__format_func_body( - filename=snippets_dir / "alloc_capacity", - type_string=type_string, - type_string_upper=type_string_upper, - type_string_lower=type_string_lower, - array_typename=array_data.array_typename, - ), - pointer=CPointer(CPointerType.SINGLE), - ) - generic_funcs.append(alloc_capacity_func) - else: - stack_array_cmacro = CMacro( - name=f"wapp_{type_string_lower}_array(...)", - value=__format_func_body( - filename=snippets_dir / "stack_array", - type_string=type_string, - type_string_upper=type_string_upper, - type_string_lower=type_string_lower, - array_typename=array_data.array_typename, - ), - ) - stack_array_cppmacro = CMacro( - name=f"wapp_{type_string_lower}_array(...)", - value=__format_func_body( - filename=snippets_dir / "stack_array_cpp", - type_string=type_string, - type_string_upper=type_string_upper, - type_string_lower=type_string_lower, - array_typename=array_data.array_typename, - ), - ) - - stack_capacity_array_cmacro = CMacro( - name=f"wapp_{type_string_lower}_array_with_capacity(CAPACITY)", - value=__format_func_body( - filename=snippets_dir / "stack_capacity_array", - type_string=type_string, - type_string_upper=type_string_upper, - type_string_lower=type_string_lower, - array_typename=array_data.array_typename, - ), - ) - stack_capacity_array_cppmacro = CMacro( - name=f"wapp_{type_string_lower}_array_with_capacity(CAPACITY)", - value=__format_func_body( - filename=snippets_dir / "stack_capacity_array_cpp", - type_string=type_string, - type_string_upper=type_string_upper, - type_string_lower=type_string_lower, - array_typename=array_data.array_typename, - ), - ) - - alloc_capacity_array_macro = CMacro( - name=f"wapp_{type_string_lower}_array_alloc_capacity(ALLOCATOR_PTR, CAPACITY)", - value=__format_func_body( - filename=snippets_dir / "alloc_capacity_macro", - type_string=type_string, - type_string_upper=type_string_upper, - type_string_lower=type_string_lower, - array_typename=array_data.array_typename, - ), - ) - - array_pop_cmacro = CMacro( - name=f"wapp_{type_string_lower}_array_pop(ARRAY_PTR)", - value=__format_func_body( - filename=snippets_dir / "array_pop_macro", - type_string=type_string, - type_string_upper=type_string_upper, - type_string_lower=type_string_lower, - array_typename=array_data.array_typename, - ), - ) - - if "*" in type_string: - array_pop_cppmacro = CMacro( - name=f"wapp_{type_string_lower}_array_pop(ARRAY_PTR)", - value=__format_func_body( - filename=snippets_dir / "ptr_array_pop_macro_cpp", - type_string=type_string, - type_string_upper=type_string_upper, - type_string_lower=type_string_lower, - array_typename=array_data.array_typename, - ), - ) - else: - array_pop_cppmacro = CMacro( - name=f"wapp_{type_string_lower}_array_pop(ARRAY_PTR)", - value=__format_func_body( - filename=snippets_dir / "array_pop_macro_cpp", - type_string=type_string, - type_string_upper=type_string_upper, - type_string_lower=type_string_lower, - array_typename=array_data.array_typename, - ), - ) - - get_func = CFunc( - name=f"wapp_{type_string_lower}_array_get", - ret_type=type_string, - args=[ - CArg(name="array", _type=array, pointer=CPointer(CPointerType.SINGLE), qualifier=CQualifier.CONST), - CArg(name="index", _type=CType.U64), - ], - body=__format_func_body( - filename=snippets_dir / "array_get", - type_string=type_string, - type_string_upper=type_string_upper, - type_string_lower=type_string_lower, - array_typename=array_data.array_typename, - ), - pointer=CPointer(CPointerType.SINGLE), - ) - - set_func = CFunc( - name=f"wapp_{type_string_lower}_array_set", - ret_type=CType.VOID, - args=[ - CArg(name="array", _type=array, pointer=CPointer(CPointerType.SINGLE)), - CArg(name="index", _type=CType.U64), - CArg(name="item", _type=type_string, pointer=CPointer(CPointerType.SINGLE)), - ], - body=__format_func_body( - filename=snippets_dir / "array_set", - type_string=type_string, - type_string_upper=type_string_upper, - type_string_lower=type_string_lower, - array_typename=array_data.array_typename, - ), - ) - - append_capped_func = CFunc( - name=f"wapp_{type_string_lower}_array_append_capped", - ret_type=CType.VOID, - args=[ - CArg(name="array", _type=array, pointer=CPointer(CPointerType.SINGLE)), - CArg(name="item", _type=type_string, pointer=CPointer(CPointerType.SINGLE)), - ], - body=__format_func_body( - filename=snippets_dir / "append_capped", - type_string=type_string, - type_string_upper=type_string_upper, - type_string_lower=type_string_lower, - array_typename=array_data.array_typename, - ), - ) - - extend_capped_func = CFunc( - name=f"wapp_{type_string_lower}_array_extend_capped", - ret_type=CType.VOID, - args=[ - CArg(name="array", _type=array, pointer=CPointer(CPointerType.SINGLE)), - CArg(name="other", _type=array, pointer=CPointer(CPointerType.SINGLE), qualifier=CQualifier.CONST), - ], - body=__format_func_body( - filename=snippets_dir / "extend_capped", - type_string=type_string, - type_string_upper=type_string_upper, - type_string_lower=type_string_lower, - array_typename=array_data.array_typename, - ), - ) - - clear_func = CFunc( - name=f"wapp_{type_string_lower}_array_clear", - ret_type=CType.VOID, - args=[ - CArg(name="array", _type=array, pointer=CPointer(CPointerType.SINGLE)), - ], - body=__format_func_body( - filename=snippets_dir / "clear", - type_string=type_string, - type_string_upper=type_string_upper, - type_string_lower=type_string_lower, - array_typename=array_data.array_typename, - ), - ) - - copy_capped_func = CFunc( - name=f"wapp_{type_string_lower}_array_copy_capped", - ret_type=CType.VOID, - args=[ - CArg(name="src", _type=array, pointer=CPointer(CPointerType.SINGLE), qualifier=CQualifier.CONST), - CArg(name="dst", _type=array, pointer=CPointer(CPointerType.SINGLE)), - ], - body=__format_func_body( - filename=snippets_dir / "copy_capped", - type_string=type_string, - type_string_upper=type_string_upper, - type_string_lower=type_string_lower, - array_typename=array_data.array_typename, - ), - ) - - append_alloc_func = CFunc( - name=f"wapp_{type_string_lower}_array_append_alloc", - ret_type=array, - args=[ - CArg(name="allocator", _type="Allocator", pointer=CPointer(CPointerType.SINGLE), qualifier=CQualifier.CONST), - CArg(name="array", _type=array, pointer=CPointer(CPointerType.SINGLE)), - CArg(name="item", _type=type_string, pointer=CPointer(CPointerType.SINGLE)), - ], - body=__format_func_body( - filename=snippets_dir / "append_alloc", - type_string=type_string, - type_string_upper=type_string_upper, - type_string_lower=type_string_lower, - array_typename=array_data.array_typename, - ), - pointer=CPointer(CPointerType.SINGLE), - ) - - extend_alloc_func = CFunc( - name=f"wapp_{type_string_lower}_array_extend_alloc", - ret_type=array, - args=[ - CArg(name="allocator", _type="Allocator", pointer=CPointer(CPointerType.SINGLE), qualifier=CQualifier.CONST), - CArg(name="array", _type=array, pointer=CPointer(CPointerType.SINGLE)), - CArg(name="other", _type=array, pointer=CPointer(CPointerType.SINGLE), qualifier=CQualifier.CONST), - ], - body=__format_func_body( - filename=snippets_dir / "extend_alloc", - type_string=type_string, - type_string_upper=type_string_upper, - type_string_lower=type_string_lower, - array_typename=array_data.array_typename, - ), - pointer=CPointer(CPointerType.SINGLE), - ) - - copy_alloc_func = CFunc( - name=f"wapp_{type_string_lower}_array_copy_alloc", - ret_type=array, - args=[ - CArg(name="allocator", _type="Allocator", pointer=CPointer(CPointerType.SINGLE), qualifier=CQualifier.CONST), - CArg(name="src", _type=array, pointer=CPointer(CPointerType.SINGLE), qualifier=CQualifier.CONST), - CArg(name="dst", _type=array, pointer=CPointer(CPointerType.SINGLE)), - ], - body=__format_func_body( - filename=snippets_dir / "copy_alloc", - type_string=type_string, - type_string_upper=type_string_upper, - type_string_lower=type_string_lower, - array_typename=array_data.array_typename, - ), - pointer=CPointer(CPointerType.SINGLE), - ) - - pop_func = CFunc( - name=f"_{type_string_lower}_array_pop", - ret_type=type_string, - args=[ - CArg(name="array", _type=array, pointer=CPointer(CPointerType.SINGLE)), - ], - body=__format_func_body( - filename=snippets_dir / "array_pop", - type_string=type_string, - type_string_upper=type_string_upper, - type_string_lower=type_string_lower, - array_typename=array_data.array_typename, - ), - pointer=CPointer(CPointerType.SINGLE), - ) - - header.macros.extend([ - alloc_capacity_array_macro, - ]) - header.c_macros.extend([ - stack_array_cmacro, - stack_capacity_array_cmacro, - array_pop_cmacro, - ]) - header.cpp_macros.extend([ - stack_array_cppmacro, - stack_capacity_array_cppmacro, - array_pop_cppmacro, - ]) - header.funcs.extend([ - get_func, - set_func, - append_capped_func, - extend_capped_func, - clear_func, - copy_capped_func, - append_alloc_func, - extend_alloc_func, - copy_alloc_func, - pop_func, - ]) - - header.decl_types.extend(array_data.hdr_decl_types) - header.types.extend([array]) - - source.decl_types.extend(array_data.src_decl_types) - source.funcs = header.funcs - - - header.funcs.extend(generic_funcs) - header.save(out_dir) - source.save(out_dir) diff --git a/codegen/array/snippets/alloc_capacity b/codegen/array/snippets/alloc_capacity deleted file mode 100644 index 1fe9e13..0000000 --- a/codegen/array/snippets/alloc_capacity +++ /dev/null @@ -1,15 +0,0 @@ - wapp_debug_assert(allocator != NULL, "`allocator` should not be NULL"); - - u64 allocation_size = sizeof({ArrayType}) + item_size * capacity; - {ArrayType} *array = wapp_mem_allocator_alloc(allocator, allocation_size); - if (!array) {{ - goto RETURN_GENERIC_ARRAY_ALLOC; - }} - - array->items = ({T} *)((u8 *)array + sizeof({ArrayType})); - array->count = 0; - array->capacity = capacity; - array->item_size = item_size; - -RETURN_GENERIC_ARRAY_ALLOC: - return array; diff --git a/codegen/array/snippets/alloc_capacity_macro b/codegen/array/snippets/alloc_capacity_macro deleted file mode 100644 index b3094c1..0000000 --- a/codegen/array/snippets/alloc_capacity_macro +++ /dev/null @@ -1 +0,0 @@ -(({ArrayType} *)_array_alloc_capacity(ALLOCATOR_PTR, CAPACITY, sizeof({T}))) diff --git a/codegen/array/snippets/append_alloc b/codegen/array/snippets/append_alloc deleted file mode 100644 index ff87081..0000000 --- a/codegen/array/snippets/append_alloc +++ /dev/null @@ -1,18 +0,0 @@ - wapp_debug_assert(allocator != NULL && array != NULL, "`allocator` and `array` should not be NULL"); - - {ArrayType} *output = array; - - if (array->count >= array->capacity) {{ - u64 new_capacity = wapp_misc_utils_u64_round_up_pow2(array->capacity * 2); - output = ({ArrayType} *)_array_alloc_capacity(allocator, new_capacity, array->item_size); - if (!output) {{ - output = array; - goto RETURN_{Tupper}_ARRAY_APPEND_ALLOC; - }} - wapp_{Tlower}_array_copy_capped(array, output); - }} - - wapp_{Tlower}_array_append_capped(output, item); - -RETURN_{Tupper}_ARRAY_APPEND_ALLOC: - return output; diff --git a/codegen/array/snippets/append_capped b/codegen/array/snippets/append_capped deleted file mode 100644 index 17de7ad..0000000 --- a/codegen/array/snippets/append_capped +++ /dev/null @@ -1,5 +0,0 @@ - wapp_debug_assert(array != NULL, "`array` should not be NULL"); - wapp_runtime_assert(array->count < array->capacity, "`array` is full"); - - u64 index = (array->count)++; - wapp_{Tlower}_array_set(array, index, item); diff --git a/codegen/array/snippets/array_get b/codegen/array/snippets/array_get deleted file mode 100644 index f23963a..0000000 --- a/codegen/array/snippets/array_get +++ /dev/null @@ -1,5 +0,0 @@ - wapp_debug_assert(array != NULL, "`array` should not be NULL"); - wapp_runtime_assert(index < array->count, "`index` is out of bounds"); - - u8 *ptr = (u8 *)(array->items) + (array->item_size * index); - return ({T} *)ptr; diff --git a/codegen/array/snippets/array_pop b/codegen/array/snippets/array_pop deleted file mode 100644 index f30681e..0000000 --- a/codegen/array/snippets/array_pop +++ /dev/null @@ -1,4 +0,0 @@ - u64 index = array->count - 1; - {T} *out = wapp_{Tlower}_array_get(array, index); - --(array->count); - return out; diff --git a/codegen/array/snippets/array_pop_macro b/codegen/array/snippets/array_pop_macro deleted file mode 100644 index 5fb1c49..0000000 --- a/codegen/array/snippets/array_pop_macro +++ /dev/null @@ -1,4 +0,0 @@ -(ARRAY_PTR != NULL && (ARRAY_PTR)->count > 0 ? \ - *_{Tlower}_array_pop(ARRAY_PTR) : \ - ({T}){{0}} \ -) diff --git a/codegen/array/snippets/array_pop_macro_cpp b/codegen/array/snippets/array_pop_macro_cpp deleted file mode 100644 index 41784b6..0000000 --- a/codegen/array/snippets/array_pop_macro_cpp +++ /dev/null @@ -1,4 +0,0 @@ -(ARRAY_PTR != NULL && (ARRAY_PTR)->count > 0 ? \ - *_{Tlower}_array_pop(ARRAY_PTR) : \ - {T}{{}} \ -) diff --git a/codegen/array/snippets/array_set b/codegen/array/snippets/array_set deleted file mode 100644 index f570d92..0000000 --- a/codegen/array/snippets/array_set +++ /dev/null @@ -1,3 +0,0 @@ - {T} *ptr = wapp_{Tlower}_array_get(array, index); - - memcpy((void *)ptr, (void *)item, array->item_size); diff --git a/codegen/array/snippets/clear b/codegen/array/snippets/clear deleted file mode 100644 index 0914817..0000000 --- a/codegen/array/snippets/clear +++ /dev/null @@ -1,2 +0,0 @@ - wapp_debug_assert(array != NULL, "`array` should not be NULL"); - array->count = 0; diff --git a/codegen/array/snippets/copy_alloc b/codegen/array/snippets/copy_alloc deleted file mode 100644 index f90b6e5..0000000 --- a/codegen/array/snippets/copy_alloc +++ /dev/null @@ -1,18 +0,0 @@ - wapp_debug_assert(allocator != NULL && src != NULL && dst != NULL, "`allocator`, `src` and `dst` should not be NULL"); - - {ArrayType} *output = dst; - - if (src->count >= dst->capacity) {{ - u64 new_capacity = wapp_misc_utils_u64_round_up_pow2(dst->capacity * 2); - output = ({ArrayType} *)_array_alloc_capacity(allocator, new_capacity, src->item_size); - if (!output) {{ - output = dst; - goto RETURN_{Tupper}_ARRAY_COPY_ALLOC; - }} - }} - - wapp_{Tlower}_array_clear(output); - wapp_{Tlower}_array_copy_capped(src, output); - -RETURN_{Tupper}_ARRAY_COPY_ALLOC: - return output; diff --git a/codegen/array/snippets/copy_capped b/codegen/array/snippets/copy_capped deleted file mode 100644 index d4f6266..0000000 --- a/codegen/array/snippets/copy_capped +++ /dev/null @@ -1,22 +0,0 @@ - wapp_debug_assert(src != NULL && dst != NULL, "`src` and `dst` should not be NULL"); - - wapp_{Tlower}_array_clear(dst); - - {T} *item; - - // NOTE (Abdelrahman): Uses a while loop instead of a for loop to get rid of - // MSVC Spectre mitigation warnings - u64 to_copy = src->count < dst->capacity ? src->count : dst->capacity; - u64 item_index = 0; - b8 running = true; - while (running) {{ - item = wapp_{Tlower}_array_get(src, item_index); - ++item_index; - running = item_index < to_copy; - - if (!item) {{ - continue; - }} - - wapp_{Tlower}_array_append_capped(dst, item); - }} diff --git a/codegen/array/snippets/extend_alloc b/codegen/array/snippets/extend_alloc deleted file mode 100644 index 2bce4ad..0000000 --- a/codegen/array/snippets/extend_alloc +++ /dev/null @@ -1,19 +0,0 @@ - wapp_debug_assert(allocator != NULL && array != NULL && other != NULL, "`allocator`, `array` and `other` should not be NULL"); - - {ArrayType} *output = array; - - u64 remaining_capacity = array->capacity - array->count; - if (other->count >= remaining_capacity) {{ - u64 new_capacity = wapp_misc_utils_u64_round_up_pow2(array->capacity * 2); - output = ({ArrayType} *)_array_alloc_capacity(allocator, new_capacity, array->item_size); - if (!output) {{ - output = array; - goto RETURN_{Tupper}_ARRAY_EXTEND_ALLOC; - }} - wapp_{Tlower}_array_copy_capped(array, output); - }} - - wapp_{Tlower}_array_extend_capped(output, other); - -RETURN_{Tupper}_ARRAY_EXTEND_ALLOC: - return output; diff --git a/codegen/array/snippets/extend_capped b/codegen/array/snippets/extend_capped deleted file mode 100644 index 06ae168..0000000 --- a/codegen/array/snippets/extend_capped +++ /dev/null @@ -1,23 +0,0 @@ - wapp_debug_assert(array != NULL && other != NULL, "`array` and `other` should not be NULL"); - - u64 remaining_capacity = array->capacity - array->count; - wapp_runtime_assert(other->count < remaining_capacity, "`array` does not have enough capacity"); - - {T} *item; - - // NOTE (Abdelrahman): Uses a while loop instead of a for loop to get rid of - // MSVC Spectre mitigation warnings - u64 items_to_add = other->count; - u64 item_index = 0; - b8 running = true; - while (running) {{ - item = wapp_{Tlower}_array_get(other, item_index); - ++item_index; - running = item_index < items_to_add; - - if (!item) {{ - continue; - }} - - wapp_{Tlower}_array_append_capped(array, item); - }} diff --git a/codegen/array/snippets/ptr_array_pop_macro_cpp b/codegen/array/snippets/ptr_array_pop_macro_cpp deleted file mode 100644 index 1f53416..0000000 --- a/codegen/array/snippets/ptr_array_pop_macro_cpp +++ /dev/null @@ -1,4 +0,0 @@ -(ARRAY_PTR != NULL && (ARRAY_PTR)->count > 0 ? \ - *_{Tlower}_array_pop(ARRAY_PTR) : \ - ({T})(0) \ -) diff --git a/codegen/array/snippets/stack_array b/codegen/array/snippets/stack_array deleted file mode 100644 index 1f986c9..0000000 --- a/codegen/array/snippets/stack_array +++ /dev/null @@ -1,6 +0,0 @@ -(({ArrayType}){{ \ - .items = ({T}[wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count({T}, __VA_ARGS__) * 2)]){{__VA_ARGS__}}, \ - .count = wapp_misc_utils_va_args_count({T}, __VA_ARGS__), \ - .capacity = wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count({T}, __VA_ARGS__) * 2), \ - .item_size = sizeof({T}) \ -}}) diff --git a/codegen/array/snippets/stack_array_cpp b/codegen/array/snippets/stack_array_cpp deleted file mode 100644 index 262c034..0000000 --- a/codegen/array/snippets/stack_array_cpp +++ /dev/null @@ -1,9 +0,0 @@ -([&]() {{ \ - wapp_persist {T} buf[wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count({T}, __VA_ARGS__) * 2)] = {{__VA_ARGS__}}; \ - return {ArrayType}{{ \ - buf, \ - wapp_misc_utils_va_args_count({T}, __VA_ARGS__), \ - wapp_misc_utils_u64_round_up_pow2(wapp_misc_utils_va_args_count({T}, __VA_ARGS__) * 2), \ - sizeof({T}) \ - }}; \ -}}()) diff --git a/codegen/array/snippets/stack_capacity_array b/codegen/array/snippets/stack_capacity_array deleted file mode 100644 index 9d78e4b..0000000 --- a/codegen/array/snippets/stack_capacity_array +++ /dev/null @@ -1 +0,0 @@ -(({ArrayType}){{.items = ({T}[CAPACITY]){{0}}, .count = 0, .capacity = CAPACITY, .item_size = sizeof({T})}}) diff --git a/codegen/array/snippets/stack_capacity_array_cpp b/codegen/array/snippets/stack_capacity_array_cpp deleted file mode 100644 index 2b69acd..0000000 --- a/codegen/array/snippets/stack_capacity_array_cpp +++ /dev/null @@ -1,4 +0,0 @@ -([&]() {{ \ - wapp_persist {T} buf[CAPACITY] = {{}}; \ - return {ArrayType}{{buf, 0, CAPACITY, sizeof({T})}}; \ -}}()) diff --git a/codegen/constants.py b/codegen/constants.py index 29dc1c5..3647b1a 100644 --- a/codegen/constants.py +++ b/codegen/constants.py @@ -7,4 +7,3 @@ WAPP_SRC_ROOT = WAPP_REPO_ROOT / "src" # Dictionary Keys DBL_LIST_DATA = "dbl_list_data" -ARRAY_DATA = "array_data" diff --git a/codegen_custom_data_example.json b/codegen_custom_data_example.json index 536bfad..9e2f520 100644 --- a/codegen_custom_data_example.json +++ b/codegen_custom_data_example.json @@ -12,18 +12,5 @@ ], "src_decl_types": [] } - }, - "array_data": { - "CustomType": { - "array_typename": "CustomTypeArray", - "hdr_decl_types": [ - { - "name": "custom_type", - "cargs": [], - "typedef_name": "CustomType" - } - ], - "src_decl_types": [] - } } -} \ No newline at end of file +}