From 7f43f54b47bc45bd8cf4240ff36c71c7012fa102 Mon Sep 17 00:00:00 2001 From: pkova Date: Thu, 17 Oct 2024 19:02:32 +0300 Subject: [PATCH] build: merge develop to next/kelvin/410, convert lagoon to zig build --- build.zig | 9 +++++++++ build.zig.zon | 3 +++ pkg/noun/jets/e/crc32.c | 2 +- pkg/noun/jets/i/lagoon.c | 5 ++--- 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/build.zig b/build.zig index e6f1b25970..815aedeb69 100644 --- a/build.zig +++ b/build.zig @@ -283,6 +283,11 @@ fn build_single( .optimize = optimize, }); + const softblas = b.dependency("softblas", .{ + .target = target, + .optimize = optimize, + }); + const softfloat = b.dependency("softfloat", .{ .target = target, .optimize = optimize, @@ -485,10 +490,12 @@ fn build_single( pkg_noun.linkLibrary(pdjson.artifact("pdjson")); pkg_noun.linkLibrary(sigsegv.artifact("sigsegv")); pkg_noun.linkLibrary(softfloat.artifact("softfloat")); + pkg_noun.linkLibrary(softblas.artifact("softblas")); if (t.os.tag == .linux) pkg_noun.linkLibrary(unwind.artifact("unwind")); pkg_noun.linkLibrary(urcrypt.artifact("urcrypt")); pkg_noun.linkLibrary(whereami.artifact("whereami")); + pkg_noun.linkLibrary(zlib.artifact("z")); pkg_noun.linkLibC(); pkg_noun.addIncludePath(b.path("pkg/noun")); @@ -615,6 +622,7 @@ fn build_single( "jets/e/argon2.c", "jets/e/base.c", "jets/e/blake.c", + "jets/e/crc32.c", "jets/e/cue.c", "jets/e/ed_add_double_scalarmult.c", "jets/e/ed_add_scalarmult_scalarmult_base.c", @@ -678,6 +686,7 @@ fn build_single( "jets/f/ut_mull.c", "jets/f/ut_nest.c", "jets/f/ut_rest.c", + "jets/i/lagoon.c", "jets/tree.c", "log.c", "manage.c", diff --git a/build.zig.zon b/build.zig.zon index f39c710e39..3f6a8c07b7 100644 --- a/build.zig.zon +++ b/build.zig.zon @@ -49,6 +49,9 @@ .softfloat = .{ .path = "./ext/softfloat", }, + .softblas = .{ + .path = "./ext/softblas", + }, .unwind = .{ .path = "./ext/unwind", }, diff --git a/pkg/noun/jets/e/crc32.c b/pkg/noun/jets/e/crc32.c index 1afc473a30..0daa032c7f 100644 --- a/pkg/noun/jets/e/crc32.c +++ b/pkg/noun/jets/e/crc32.c @@ -21,7 +21,7 @@ u3qe_crc32(u3_noun input_octs) c3_y* input; if (c3y == u3a_is_cat(tail)) { - input = &tail; + input = (c3_y*)&tail; } else { u3a_atom* vat_u = u3a_to_ptr(tail); diff --git a/pkg/noun/jets/i/lagoon.c b/pkg/noun/jets/i/lagoon.c index 13c0f2a138..cf7c1c78d5 100644 --- a/pkg/noun/jets/i/lagoon.c +++ b/pkg/noun/jets/i/lagoon.c @@ -1628,7 +1628,7 @@ for (c3_d i = 0; i < len_x; i++) { float32_t x_val32 = ((float32_t*)x_bytes)[i]; // Perform division x/n - float32_t div_result32 = f32_mul((float32_t)in32, (float32_t)x_val32); + float32_t div_result32 = f32_mul(in32, x_val32); // Compute floor of the division result c3_ds floor_result32 = f32_to_i64(div_result32, softfloat_round_minMag, false); float32_t floor_float32 = i64_to_f32(floor_result32); @@ -3284,13 +3284,12 @@ { return u3m_bail(c3__exit); } else { - u3_noun x_shape, x_bloq, x_kind, x_tail, + u3_noun x_shape, x_bloq, x_kind, y_shape, rnd; x_shape = u3h(x_meta); // 2 x_bloq = u3h(u3t(x_meta)); // 6 x_kind = u3h(u3t(u3t(x_meta))); // 14 - x_tail = u3t(u3t(u3t(x_meta))); // 15 y_shape = u3h(y_meta); // 2 rnd = u3h(u3t(u3t(u3t(cor)))); // 30 if ( c3n == _check(u3nc(x_meta, x_data)) ||