From: Brendan Hansen Date: Sat, 12 Dec 2020 20:48:04 +0000 (-0600) Subject: cleaning up old test code X-Git-Url: https://git.brendanfh.com/?a=commitdiff_plain;h=fb47862f78a8e12712be3c431de9ce9fe097bddd;p=onyx.git cleaning up old test code --- diff --git a/progs/particle_sym.onyx b/progs/particle_sym.onyx index 87ca48f1..83531743 100644 --- a/progs/particle_sym.onyx +++ b/progs/particle_sym.onyx @@ -6,7 +6,7 @@ package main use package core use package simd -main :: proc (args: [] cstring) { +main :: proc (args: [] cstr) { init_positions(); init_velocities(); @@ -26,10 +26,10 @@ velocities : [OBJECT_COUNT] f32x4 init_positions :: proc () { for ^p: positions { - *p = f32x4_replace_lane(*p, 0, random_float(-127.0f, 127.0f)); - *p = f32x4_replace_lane(*p, 1, random_float(-127.0f, 127.0f)); - *p = f32x4_replace_lane(*p, 2, random_float(-127.0f, 127.0f)); - *p = f32x4_replace_lane(*p, 3, random_float(-127.0f, 127.0f)); + *p = f32x4_replace_lane(*p, 0, random.float(-127.0f, 127.0f)); + *p = f32x4_replace_lane(*p, 1, random.float(-127.0f, 127.0f)); + *p = f32x4_replace_lane(*p, 2, random.float(-127.0f, 127.0f)); + *p = f32x4_replace_lane(*p, 3, random.float(-127.0f, 127.0f)); } } diff --git a/progs/poly_struct.onyx b/progs/poly_struct.onyx deleted file mode 100644 index 2c80fe29..00000000 --- a/progs/poly_struct.onyx +++ /dev/null @@ -1,29 +0,0 @@ -package main - -#include_file "core/std/wasi" - -use package core - -main :: proc (args: [] cstring) { - - x := 2.4f; - y := 1.2f; - y += ~~x; - println(y); - - - imap : I32Map(string); - i32map_init(^imap); - defer i32map_free(^imap); - - i32map_put(^imap, 50, "Hello "); - i32map_put(^imap, 1234, "World!"); - - println(i32map_has(^imap, 50)); - println(i32map_has(^imap, 51)); - - // i32map_delete(^imap, 50); - - print( i32map_get(^imap, 50, "")); - println(i32map_get(^imap, 1234, "")); -} diff --git a/progs/poly_test.onyx b/progs/poly_test.onyx deleted file mode 100644 index a6d7c8aa..00000000 --- a/progs/poly_test.onyx +++ /dev/null @@ -1,387 +0,0 @@ -package main - -#include_file "core/std/wasi" - -use package core - -print_arr_details :: proc (arr: ^[..] $T) { - print("\nArray details:\n\tSize: "); - print(arr.count); - print("\n\tCapacity: "); - print(arr.capacity); - print("\n\tData ptr: "); - print(cast(^void) arr.data); - print("\n\tSize of elements: "); - print(sizeof T); - print("\n\tAlignment of elements: "); - print(alignof T); - print("\n\n"); -} - -print_vec :: proc (v: Vec3) #add_overload print { - print("Vec3("); - print(v.x); - print(", "); - print(v.y); - print(", "); - print(v.z); - print(")"); -} - -// This demonstrates that we have something similar to static 'duck' typing. -get_count :: proc (x: $T) -> u32 do return x.count; - - -// Because of the static duck typing, this will pass as an -// array/slice in most places. -Dummy :: struct { - count : u32 = 5; - data : [5] u32; -} - - -/* This demos some of the power you have with the polymorphic types */ -compose :: proc (a: A, f: proc ($A) -> $B, g: proc (B) -> $C) -> C { - return a |> f() |> g(); -} - - -SOA :: struct { - a : [..] i32; - b : [..] i64; - c : [..] V2; -} - -soa_init :: proc (s: ^SOA) { - array_init(^s.a); - array_init(^s.b); - array_init(^s.c); -} - -soa_deinit :: proc (s: ^SOA) { - array_free(^s.a); - array_free(^s.b); - array_free(^s.c); -} - -get_range :: proc (arr: ^[..] $T) -> range { - return 0 .. arr.count; -} - -// NOTE: This function will be very useful for for loops. i.e. -// for i: 0 .. 100 |> by(2) { -// ... -// } -by :: proc (r: range, s: u32) -> range { - return range.{ low = r.low, high = r.high, step = s }; -} - -V2 :: struct { x: i32; y: i32; } -print_v2 :: proc (v: V2) #add_overload print { - print("V2("); - print(v.x); - print(", "); - print(v.y); - print(")"); -} - -switch_demo :: proc () { - switch a := 4; a { - case 4, 5, 6 { - print("a was 4, 5, or 6\n"); - fallthrough fallthrough; - } - - case 10 do print("a was 10\n"); - - case #default { - print("a was something else.\n"); - } - } -} - -vararg_test :: proc (prefix: string, nums: ..i32) { - print(prefix); - for num: nums { - print(num); - print(" "); - } -} - -NumInfo :: struct { - min : i32; - max : i32; - sum : i32; -} - -get_num_info :: proc (nums: ..i32) -> NumInfo { - ni : NumInfo; - - ni.min = nums[0]; - for num: nums do if num < ni.min do ni.min = num; - - ni.max = nums[0]; - for num: nums do if num > ni.max do ni.max = num; - - ni.sum = 0; - for num: nums do ni.sum += num; - - return ni; -} - -print_strings :: proc (ss: ..string) { - for s: ss do print_string(s); -} - -multi_max :: proc (nums: ..$T) -> T { - print("Got this many args: "); - print(nums.count); - print("\n"); - - max := nums[0]; - for num: nums do if num > max do max = num; - return max; -} - -weird_sum :: proc (n1: $T, others: ..T) -> T { - s := n1; - for n: others do s += n; - return s; -} - -// At some point, it would be nice to have the ability to say something like: -// complex_varargs :: proc (nums: ..i32, names: ..string) { -// } - -main :: proc (args: [] cstring) { - switch_demo(); - - print_strings("This ", "is ", "a ", "test.\n"); - - vararg_test("Here are some numbers:\n", 1, 2, 3, 4, 5); - print("\n\n"); - - multi_max(4, 2, 76, 3, 1203, 2, 4) |> print(); - print("\n"); - - multi_max(cast(u64) 4, cast(u64) 2, cast(u64) 76, cast(u64) 3, cast(u64) 1203, cast(u64) 2, cast(u64) 4) |> print(); - print("\n"); - - weird_sum(4, 1) |> print(); - print("\n"); - - ni := get_num_info(1, 2, 3, 4, 5); - print("Some information about those numbers:\n"); - print("Min: "); - print(ni.min); - print("\nMax: "); - print(ni.max); - print("\nSum: "); - print(ni.sum); - print("\n\n"); - - res := compose(5, proc (x: i32) -> i32 do return x * 3;, - proc (x: i32) -> i32 do return x + 5;); - print(res); - print("\n"); - - s : SOA; - soa_init(^s); - defer { - print("Clearing SOA...\n"); - soa_deinit(^s); - } - - print("Evens from 6 to 34:\n"); - for i: 6 .. 34 |> by(2) { - print(i); - print(" "); - } - print("\n"); - - print_arr_details(^s.a); - print_arr_details(^s.b); - - for i: 0 .. 100 { - array_push(^s.a, (5 * i) % 21); - array_push(^s.b, 3 * cast(i64) i); - array_push(^s.c, V2.{ i, i * i }); - } - - r := ^s.a |> get_range() |> by(3); - print(r); - print_array(^s.a); - print("A has 22? "); - print(array_contains(^s.a, 22)); - print("\n"); - - // NOTE: Iterating by value - for vec: s.c { - print(vec); - print(" "); - } - print("\n"); - - // NOTE: Iterating by pointer - for ^vec: s.c { - print(cast(^void) vec); - print(" "); - } - print("\n"); - - small : [12] i32; - for ^it: small do *it = 1234 + cast(u32) it; - - for it: small { - print(it); - print(" "); - } - print("\n"); - - - array_sort(^s.a, cmp_dec); - array_sort(^s.b, cmp_dec); - - print_array(^s.a); - print_array(^s.b); - - print("After adding...\n"); - print_arr_details(^s.a); - print_arr_details(^s.b); - - print("Array A sum: "); - print(array_fold(^s.a, 0, proc (x: i32, acc: i32) -> i32 do return x + acc;)); - print("\n\n"); - - map : PtrMap; - ptrmap_init(^map, 50); - defer ptrmap_free(^map); - - for i: 0 .. 100 do ptrmap_put(^map, ^s.a[i], ^s.b[i]); - - print("Has ^a[20]? "); - print(ptrmap_has(^map, ^s.a[20])); - print("\n"); - - print("Has null? "); - print(ptrmap_has(^map, null)); - print("\n"); - - print("Value at ^a[50]: "); - print(cast(^void) ptrmap_get(^map, ^s.a[50])); - print(" == "); - print(cast(^void) (^s.b[50])); - print("\n"); - - print("Deleteing ^a[20]\n"); - ptrmap_delete(^map, ^s.a[20]); - - print("Has ^a[20]? "); - print(ptrmap_has(^map, ^s.a[20])); - print("\n"); -} - -main2 :: proc (args: [] cstring) { - print(cast(u32) __heap_start, 16); - - iarr_backing : [32] i32; - iarr : [..] i32; - iarr.data = cast(^i32) iarr_backing; - iarr.count = 0; - iarr.capacity = 32; - - print_arr_details(^iarr); - - array_push(^iarr, 1234); - - for i: 0 .. 12 do array_push(^iarr, i % 5); - - print_arr_details(^iarr); - print_array(^iarr); - - array_delete(^iarr, 4); - - print_arr_details(^iarr); - print_array(^iarr); - - array_remove(^iarr, 1); - array_remove(^iarr, 4); - - print_arr_details(^iarr); - print_array(^iarr); - - array_insert(^iarr, 2, 5678); - - print_arr_details(^iarr); - print_array(^iarr); - print(array_average(^iarr)); - print("\n"); - - - - barr : [..] i64; - array_init(^barr, 10); - defer array_free(^barr); - - for i: 0 .. 500 { - array_push(^barr, cast(u64) (3 * i * i + 4 * i - 2)); - } - - print_arr_details(^barr); - print_array(^barr); - array_average(^barr) |> print(); - print("\n"); - - print("Does the array contain 2637? "); - print(array_contains(^barr, 2637)); - print("\n"); - - - - varr : [..] Vec3; - array_init(^varr); - defer array_free(^varr); - - for i: 0 .. 20 { - array_push(^varr, Vec3.{ - x = i, - y = i * i, - z = i * i * i, - }); - } - - array_push(^varr, Vec3.{ 4, 2, 3 }); - array_sort(^varr, cmp_vec3); - - print_arr_details(^varr); - print_array(varr, "\n"); - - - dummy := cast(^Dummy) calloc(sizeof Dummy); - defer cfree(dummy); - dummy.count = 5; - for i: 0 .. dummy.count do dummy.data[i] = i * 5; - - print_array(dummy); - - print(get_count(iarr)); - print("\n"); - print(get_count(barr)); - print("\n"); - print(get_count(varr)); - print("\n"); - print(get_count(dummy)); - print("\n"); -} - -Vec3 :: struct { - x: i32; - y: i32; - z: i32; -} - -cmp_vec3 :: proc (v1: Vec3, v2: Vec3) -> i32 { - if v1.x != v2.x do return v1.x - v2.x; - if v1.y != v2.y do return v1.y - v2.y; - return v1.z - v2.z; -} diff --git a/progs/simd_test.onyx b/progs/simd_test.onyx index ceca1832..02f59567 100644 --- a/progs/simd_test.onyx +++ b/progs/simd_test.onyx @@ -6,7 +6,7 @@ package main use package core use package simd -main :: proc (args: [] cstring) { +main :: proc (args: [] cstr) { x := f32x4_const(10.0f, 20.0f, 30.0f, 40.0f); y := f32x4_splat(100.0f); diff --git a/progs/vararg_test.onyx b/progs/vararg_test.onyx index eeb515e9..1c425ec6 100644 --- a/progs/vararg_test.onyx +++ b/progs/vararg_test.onyx @@ -10,7 +10,7 @@ old_va_test :: proc (fix: Fixes, va: ..i32) { println(fix.suffix); } -Fixes :: struct { prefix: string; suffix: string; } +Fixes :: struct { prefix: str; suffix: str; } new_va_test :: proc (fix: Fixes, va: ...) { println(fix.prefix); @@ -24,7 +24,7 @@ new_va_test :: proc (fix: Fixes, va: ...) { println(fix.suffix); } -main :: proc (args: [] cstring) { +main :: proc (args: [] cstr) { new_va_test(Fixes.{ "foo", "foozle" }, 1, 2, 3.0f, 5.0f); old_va_test(Fixes.{ "bar", "barzle" }, 1);