mirror of
https://github.com/Ed94/WATL_Exercise.git
synced 2025-10-08 17:50:55 -07:00
Compare commits
4 Commits
3223c0a0e1
...
master
Author | SHA1 | Date | |
---|---|---|---|
e2aba6db5f | |||
af38cda276 | |||
8df492399f | |||
2c0539e235 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -5,3 +5,4 @@ C/watl.v0.msvc.c.listing.txt
|
|||||||
watl_exercise.user
|
watl_exercise.user
|
||||||
watl_exercise.proj
|
watl_exercise.proj
|
||||||
Odin/watl.v0.win32.odin.listing.txt
|
Odin/watl.v0.win32.odin.listing.txt
|
||||||
|
C/watl.v0.lottes.c.listing.txt
|
||||||
|
1146
C/watl.v0.lottes.c
1146
C/watl.v0.lottes.c
File diff suppressed because it is too large
Load Diff
@@ -1366,7 +1366,6 @@ void arena_allocator_proc(AllocatorProc_In in, AllocatorProc_Out* out)
|
|||||||
}
|
}
|
||||||
#pragma endregion Arena
|
#pragma endregion Arena
|
||||||
|
|
||||||
// Modern C+
|
|
||||||
#pragma region Key Table 1-Layer Linear (KT1L)
|
#pragma region Key Table 1-Layer Linear (KT1L)
|
||||||
void kt1l__populate_slice_a2(KT1L_Byte*restrict kt, AllocatorInfo backing, KT1L_Meta m, Slice_Byte values, SSIZE num_values ) {
|
void kt1l__populate_slice_a2(KT1L_Byte*restrict kt, AllocatorInfo backing, KT1L_Meta m, Slice_Byte values, SSIZE num_values ) {
|
||||||
assert(kt != nullptr);
|
assert(kt != nullptr);
|
||||||
@@ -1791,14 +1790,14 @@ void str8gen_append_str8(Str8Gen* gen, Str8 str){
|
|||||||
}
|
}
|
||||||
void str8gen__append_fmt(Str8Gen* gen, Str8 fmt_template, Slice_A2_Str8* entries){
|
void str8gen__append_fmt(Str8Gen* gen, Str8 fmt_template, Slice_A2_Str8* entries){
|
||||||
local_persist Byte tbl_mem[kilo(32)]; FArena tbl_arena = farena_make(slice_fmem(tbl_mem));
|
local_persist Byte tbl_mem[kilo(32)]; FArena tbl_arena = farena_make(slice_fmem(tbl_mem));
|
||||||
KT1L_Str8 kt = {0}; kt1l_populate_slice_a2(Str8, & kt, ainfo_farena(tbl_arena), *entries );
|
KT1L_Str8 kt = {0}; kt1l_populate_slice_a2(Str8, & kt, ainfo_farena(tbl_arena), *entries );
|
||||||
Slice_Byte buffer = { gen->ptr + gen->len, gen->cap - gen->len };
|
Slice_Byte buffer = { gen->ptr + gen->len, gen->cap - gen->len };
|
||||||
if (buffer.len < kilo(16)) {
|
if (buffer.len < kilo(16)) {
|
||||||
Slice_Byte result = mem_grow(gen->backing, str8gen_slice_byte(* gen), kilo(16) + gen->cap );
|
Slice_Byte result = mem_grow(gen->backing, str8gen_slice_byte(* gen), kilo(16) + gen->cap );
|
||||||
slice_assert(result);
|
slice_assert(result);
|
||||||
gen->ptr = result.ptr;
|
gen->ptr = result.ptr;
|
||||||
gen->cap += kilo(16);
|
gen->cap += kilo(16);
|
||||||
buffer = (Slice_Byte){ cast(Byte*, gen->ptr + gen->len), gen->cap - gen->len };
|
buffer = (Slice_Byte){ cast(Byte*, gen->ptr + gen->len), gen->cap - gen->len };
|
||||||
}
|
}
|
||||||
Str8 result = str8__fmt_kt1l(gen->backing, & buffer, kt, fmt_template);
|
Str8 result = str8__fmt_kt1l(gen->backing, & buffer, kt, fmt_template);
|
||||||
gen->len += result.len;
|
gen->len += result.len;
|
||||||
|
@@ -115,10 +115,10 @@ $compiler_args += $flag_full_src_path
|
|||||||
# $compiler_args += $flag_asm_listing_file
|
# $compiler_args += $flag_asm_listing_file
|
||||||
|
|
||||||
# $compiler_args += $flag_optimize_speed_max
|
# $compiler_args += $flag_optimize_speed_max
|
||||||
$compiler_args += $flag_optimize_fast
|
# $compiler_args += $flag_optimize_fast
|
||||||
# $compiler_args += $flag_optimize_size
|
# $compiler_args += $flag_optimize_size
|
||||||
# $compiler_args += $flag_optimize_intrinsics
|
# $compiler_args += $flag_optimize_intrinsics
|
||||||
# $compiler_args += $flag_no_optimization
|
$compiler_args += $flag_no_optimization
|
||||||
|
|
||||||
# Debug setup
|
# Debug setup
|
||||||
$compiler_args += ($flag_define + 'BUILD_DEBUG')
|
$compiler_args += ($flag_define + 'BUILD_DEBUG')
|
||||||
|
@@ -93,7 +93,7 @@ $compiler_args += $flag_c11
|
|||||||
# Constraints on C program code-gen
|
# Constraints on C program code-gen
|
||||||
$compiler_args += $flag_exceptions_disabled
|
$compiler_args += $flag_exceptions_disabled
|
||||||
$compiler_args += $flag_RTTI_disabled
|
$compiler_args += $flag_RTTI_disabled
|
||||||
$compiler_args += $flag_preprocess_conform
|
# $compiler_args += $flag_preprocess_conform
|
||||||
# $compiler_args += $flag_sanitize_address
|
# $compiler_args += $flag_sanitize_address
|
||||||
|
|
||||||
$compiler_args += $flag_wall
|
$compiler_args += $flag_wall
|
||||||
@@ -103,7 +103,7 @@ $compiler_args += $flag_charset_utf8
|
|||||||
|
|
||||||
# Specifing output pathing
|
# Specifing output pathing
|
||||||
$compiler_args += ( $flag_path_interm + $path_build + '\' )
|
$compiler_args += ( $flag_path_interm + $path_build + '\' )
|
||||||
$compiler_args += ( $flag_path_output + $path_build + '\' )
|
# $compiler_args += ( $flag_path_output + $path_build + '\' )
|
||||||
|
|
||||||
# Dump preprocess file
|
# Dump preprocess file
|
||||||
if ($false) {
|
if ($false) {
|
||||||
@@ -141,7 +141,10 @@ $compiler_args += $flag_compile, $unit
|
|||||||
$compiler_args | ForEach-Object { Write-Host $_ }
|
$compiler_args | ForEach-Object { Write-Host $_ }
|
||||||
|
|
||||||
# Compile the unit
|
# Compile the unit
|
||||||
& $compiler $compiler_args
|
$compilation_time = Measure-Command {
|
||||||
|
& $compiler $compiler_args
|
||||||
|
}
|
||||||
|
write-host "Compilation took $($compilation_time.TotalMilliseconds)ms"
|
||||||
write-host
|
write-host
|
||||||
|
|
||||||
$binary = join-path $path_build "$unit_name.exe"
|
$binary = join-path $path_build "$unit_name.exe"
|
||||||
@@ -174,8 +177,9 @@ if ($true) {
|
|||||||
# Diagnoistc print for the args
|
# Diagnoistc print for the args
|
||||||
$linker_args | ForEach-Object { Write-Host $_ }
|
$linker_args | ForEach-Object { Write-Host $_ }
|
||||||
|
|
||||||
& $linker $linker_args
|
$linking_time = Measure-Command { & $linker $linker_args }
|
||||||
# & $radlink $linker_args
|
# & $radlink $linker_args
|
||||||
|
write-host "Linking took $($linking_time.TotalMilliseconds)ms"
|
||||||
write-host
|
write-host
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user