@thi.ng/wasm-api 1.4.9 → 1.4.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Change Log
2
2
 
3
- - **Last updated**: 2023-06-14T07:58:51Z
3
+ - **Last updated**: 2023-06-29T07:13:03Z
4
4
  - **Generator**: [thi.ng/monopub](https://thi.ng/monopub)
5
5
 
6
6
  All notable changes to this project will be documented in this file.
@@ -9,6 +9,16 @@ See [Conventional Commits](https://conventionalcommits.org/) for commit guidelin
9
9
  **Note:** Unlisted _patch_ versions only involve non-code or otherwise excluded changes
10
10
  and/or version bumps of transitive dependencies.
11
11
 
12
+ ### [1.4.10](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@1.4.10) (2023-06-29)
13
+
14
+ #### 🩹 Bug fixes
15
+
16
+ - temporarily disable `WasmLibOpts.out` due to Zig build updates ([cf63c04](https://github.com/thi-ng/umbrella/commit/cf63c04))
17
+
18
+ #### ♻️ Refactoring
19
+
20
+ - Zig v0.11-dev syntax updates ([83a1c7b](https://github.com/thi-ng/umbrella/commit/83a1c7b))
21
+
12
22
  ## [1.4.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@1.4.0) (2023-02-17)
13
23
 
14
24
  #### 🚀 Features
package/README.md CHANGED
@@ -16,7 +16,6 @@ This project is part of the
16
16
  - [API module auto-initialization](#api-module-auto-initialization)
17
17
  - [Object indices & handles](#object-indices--handles)
18
18
  - [Using the Zig build system](#using-the-zig-build-system)
19
- - [Zig v0.10.1 or older](#zig-v0101-or-older)
20
19
  - [Zig v0.11.0-dev or newer](#zig-v0110-dev-or-newer)
21
20
  - [Example projects](#example-projects)
22
21
  - [Naming & structural conventions](#naming--structural-conventions)
@@ -312,44 +311,16 @@ This package provides utilities to simplify using hybrid TS/Zig WASM API modules
312
311
  which are distributed as NPM packages. Using these utils, a build file for Zig's
313
312
  built-in build system is as simple as:
314
313
 
315
- ### Zig v0.10.1 or older
316
-
317
- ```zig
318
- const std = @import("std");
319
-
320
- pub fn build(b: *std.build.Builder) void {
321
- // obtain a standard std.build.LibExeObjStep, pre-configured w/ given options
322
- // see source comments in imported build.zig for further details...
323
- var lib = @import("node_modules/@thi.ng/wasm-api/zig/build.zig").wasmLib(b, .{
324
- // Declare extra WASM API packages to use
325
- // Each package can also declare dependencies to other such packages
326
- // (wasm-api and wasm-api-bindgen are made available everywhere)
327
- .packages = &.{
328
- .{ .id = "wasm-api-dom", .path = "@thi.ng/wasm-api-dom/zig/lib.zig" },
329
- .{ .id = "wasm-api-schedule", .path = "@thi.ng/wasm-api-schedule/zig/lib.zig" },
330
- },
331
- // (optional) build mode override
332
- // if commented out, we can pass CLI args to choose build mode (default: .Debug)
333
- .mode = .ReleaseSmall,
334
- });
335
- // optionally, add further custom configuration
336
- // ...
337
-
338
- // finally trigger build
339
- lib.install();
340
- }
341
- ```
342
-
343
314
  ### Zig v0.11.0-dev or newer
344
315
 
345
- (Note: Several new build options have been added, e.g. initial/max memory
346
- config, autodoc generation)
316
+ **IMPORTANT:** Due to recent syntax changes in Zig v0.11-dev, support for Zig
317
+ v0.10.1 or older had to be removed...
347
318
 
348
319
  ```zig
349
320
  const std = @import("std");
350
321
 
351
322
  pub fn build(b: *std.Build) void {
352
- // obtain a standard std.Build.CompileStep, pre-configured w/ given options
323
+ // obtain a standard std.Build.Step.Compile, pre-configured w/ given options
353
324
  // see source comments in imported build-v0.11.zig for further details...
354
325
  var lib = @import("node_modules/@thi.ng/wasm-api/zig/build-v0.11.zig").wasmLib(b, .{
355
326
  // Declare extra WASM API modules to use
@@ -366,8 +337,8 @@ pub fn build(b: *std.Build) void {
366
337
  // optionally, add further custom configuration
367
338
  // ...
368
339
 
369
- // finally trigger build
370
- lib.install();
340
+ // finally trigger build & install
341
+ b.installArtifact(lib);
371
342
  }
372
343
  ```
373
344
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thi.ng/wasm-api",
3
- "version": "1.4.9",
3
+ "version": "1.4.10",
4
4
  "description": "Generic, modular, extensible API bridge and infrastructure for hybrid JS & WebAssembly projects",
5
5
  "type": "module",
6
6
  "module": "./index.js",
@@ -115,5 +115,5 @@
115
115
  "status": "alpha",
116
116
  "year": 2022
117
117
  },
118
- "gitHead": "54e825a976c72067a244cff8725ca98f5416d26d\n"
118
+ "gitHead": "3d1983910b6b04ac1d371820625767377f65074d\n"
119
119
  }
@@ -16,7 +16,7 @@ pub const WasmLibOpts = struct {
16
16
  base: []const u8 = "node_modules",
17
17
  /// Relative path to root source file
18
18
  root: []const u8 = "zig/main.zig",
19
- /// Relative path to output directory
19
+ /// CURRENTLY UNUSED - Relative path to output directory
20
20
  out: []const u8 = "src",
21
21
  /// Additional WASM API support modules.
22
22
  /// Only need to specify custom/extra modules
@@ -63,7 +63,10 @@ pub fn wasmLib(b: *Build, opts: WasmLibOpts) *Build.CompileStep {
63
63
  .optimize = if (opts.optimize) |m| m else b.standardOptimizeOption(.{}),
64
64
  });
65
65
  if (lib.optimize == .ReleaseSmall or lib.optimize == .ReleaseFast) lib.strip = true;
66
- lib.setOutputDir(opts.out);
66
+
67
+ // FIXME re-enable once workaround has been identified
68
+ // lib.setOutputDir(opts.out);
69
+
67
70
  // build flags
68
71
  lib.rdynamic = true;
69
72
  lib.import_symbols = true;
package/zig/lib.zig CHANGED
@@ -13,7 +13,7 @@ pub fn ptrCast(comptime T: type, ptr: ?*anyopaque) ?T {
13
13
  if (ptr == null) return null;
14
14
  const info = @typeInfo(T);
15
15
  if (info != .Pointer) @compileError("require pointer type");
16
- return @ptrCast(T, @alignCast(@alignOf(info.Pointer.child), ptr));
16
+ return @ptrCast(@alignCast(ptr));
17
17
  }
18
18
 
19
19
  /// JS external part of the custom panic handler
@@ -52,7 +52,7 @@ pub inline fn allocator() ?std.mem.Allocator {
52
52
  pub export fn _wasm_allocate(numBytes: usize) usize {
53
53
  if (allocator()) |alloc| {
54
54
  var mem = alloc.alignedAlloc(u8, 16, numBytes) catch return 0;
55
- return @ptrToInt(mem.ptr);
55
+ return @intFromPtr(mem.ptr);
56
56
  }
57
57
  return 0;
58
58
  }
@@ -62,8 +62,8 @@ pub export fn _wasm_allocate(numBytes: usize) usize {
62
62
  /// Note: This is a no-op if no allocator is configured (see `allocator()`)
63
63
  pub export fn _wasm_free(addr: [*]u8, numBytes: usize) void {
64
64
  if (allocator()) |alloc| {
65
- var mem = [2]usize{ @ptrToInt(addr), numBytes };
66
- alloc.free(@ptrCast(*[]u8, &mem).*);
65
+ var mem = [2]usize{ @intFromPtr(addr), numBytes };
66
+ alloc.free(@as(*[]u8, @ptrCast(&mem)).*);
67
67
  }
68
68
  }
69
69
 
@@ -102,7 +102,7 @@ pub extern "wasmapi" fn printF64(x: f64) void;
102
102
 
103
103
  /// Prints pointer as hex number using configured JS logger
104
104
  pub fn printPtr(ptr: *const anyopaque) void {
105
- printU32Hex(@ptrToInt(ptr));
105
+ printU32Hex(@intFromPtr(ptr));
106
106
  }
107
107
 
108
108
  /// Prints number array using configured JS logger
@@ -68,12 +68,12 @@ pub fn ManagedIndex(comptime T: type, comptime I: type) type {
68
68
  self.freeID = self.list.items[id].id;
69
69
  self.list.items[id] = .{ .value = item };
70
70
  self.used += 1;
71
- return @intCast(I, id);
71
+ return @intCast(id);
72
72
  } else {
73
73
  const id = self.list.items.len;
74
74
  try self.list.append(.{ .value = item });
75
75
  self.used += 1;
76
- return @intCast(I, id);
76
+ return @intCast(id);
77
77
  }
78
78
  }
79
79
 
@@ -0,0 +1,115 @@
1
+ const std = @import("std");
2
+ /// Zig version. When writing code that supports multiple versions of Zig, prefer
3
+ /// feature detection (i.e. with `@hasDecl` or `@hasField`) over version checks.
4
+ pub const zig_version = std.SemanticVersion.parse(zig_version_string) catch unreachable;
5
+ pub const zig_version_string = "0.11.0-dev.3857+7322aa118";
6
+ pub const zig_backend = std.builtin.CompilerBackend.stage2_llvm;
7
+
8
+ pub const output_mode = std.builtin.OutputMode.Exe;
9
+ pub const link_mode = std.builtin.LinkMode.Dynamic;
10
+ pub const is_test = false;
11
+ pub const single_threaded = false;
12
+ pub const abi = std.Target.Abi.none;
13
+ pub const cpu: std.Target.Cpu = .{
14
+ .arch = .aarch64,
15
+ .model = &std.Target.aarch64.cpu.apple_a14,
16
+ .features = std.Target.aarch64.featureSet(&[_]std.Target.aarch64.Feature{
17
+ .aes,
18
+ .aggressive_fma,
19
+ .alternate_sextload_cvt_f32_pattern,
20
+ .altnzcv,
21
+ .am,
22
+ .arith_bcc_fusion,
23
+ .arith_cbz_fusion,
24
+ .ccdp,
25
+ .ccidx,
26
+ .ccpp,
27
+ .complxnum,
28
+ .contextidr_el2,
29
+ .crc,
30
+ .crypto,
31
+ .disable_latency_sched_heuristic,
32
+ .dit,
33
+ .dotprod,
34
+ .el2vmsa,
35
+ .el3,
36
+ .flagm,
37
+ .fp16fml,
38
+ .fp_armv8,
39
+ .fptoint,
40
+ .fullfp16,
41
+ .fuse_address,
42
+ .fuse_adrp_add,
43
+ .fuse_aes,
44
+ .fuse_arith_logic,
45
+ .fuse_crypto_eor,
46
+ .fuse_csel,
47
+ .fuse_literals,
48
+ .jsconv,
49
+ .lor,
50
+ .lse,
51
+ .lse2,
52
+ .mpam,
53
+ .neon,
54
+ .nv,
55
+ .pan,
56
+ .pan_rwv,
57
+ .pauth,
58
+ .perfmon,
59
+ .predres,
60
+ .ras,
61
+ .rcpc,
62
+ .rcpc_immo,
63
+ .rdm,
64
+ .sb,
65
+ .sel2,
66
+ .sha2,
67
+ .sha3,
68
+ .specrestrict,
69
+ .ssbs,
70
+ .tlb_rmi,
71
+ .tracev8_4,
72
+ .uaops,
73
+ .v8_1a,
74
+ .v8_2a,
75
+ .v8_3a,
76
+ .v8_4a,
77
+ .v8a,
78
+ .vh,
79
+ .zcm,
80
+ .zcz,
81
+ .zcz_gp,
82
+ }),
83
+ };
84
+ pub const os = std.Target.Os{
85
+ .tag = .macos,
86
+ .version_range = .{ .semver = .{
87
+ .min = .{
88
+ .major = 13,
89
+ .minor = 3,
90
+ .patch = 1,
91
+ },
92
+ .max = .{
93
+ .major = 13,
94
+ .minor = 3,
95
+ .patch = 1,
96
+ },
97
+ }},
98
+ };
99
+ pub const target = std.Target{
100
+ .cpu = cpu,
101
+ .os = os,
102
+ .abi = abi,
103
+ .ofmt = object_format,
104
+ };
105
+ pub const object_format = std.Target.ObjectFormat.macho;
106
+ pub const mode = std.builtin.Mode.Debug;
107
+ pub const link_libc = true;
108
+ pub const link_libcpp = false;
109
+ pub const have_error_return_tracing = true;
110
+ pub const valgrind_support = false;
111
+ pub const sanitize_thread = false;
112
+ pub const position_independent_code = true;
113
+ pub const position_independent_executable = true;
114
+ pub const strip_debug_info = false;
115
+ pub const code_model = std.builtin.CodeModel.default;
@@ -0,0 +1,4 @@
1
+ pub const imports = struct {
2
+ };
3
+ pub const build_root = struct {
4
+ };