Skip to content

Commit 120c6d6

Browse files
committed
fix(release): moxwebgpu 1.0.1 修复 Node 下 import 即崩溃
- src/core/buffer.ts 顶层 GPUBufferUsage 常量改用标准 WebGPU 位值兜底, 包在 Node 下可正常 import(真实 GPU 执行仍需浏览器 / WebGPU 运行时) - 版本 1.0.0 -> 1.0.1,MOXWEBGPU_VERSION 同步 - CHANGELOG 补 [1.0.0] 与 [1.0.1] 段落
1 parent 28a908b commit 120c6d6

4 files changed

Lines changed: 39 additions & 5 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,18 @@
99

1010
计划中(见 README 路线图):f16/bf16、tensor-core matmul、多 GPU pass 融合、生态集成。
1111

12+
## [1.0.1] - 2026-10-08
13+
14+
### 修复
15+
16+
- **发布阻断级 bug:Node 下 `require`/`import` 即崩溃**。根因:`src/core/buffer.ts` 顶层常量直接引用浏览器 WebGPU 全局 `GPUBufferUsage`,在 Node 环境(无该全局)`import` 时即抛 `ReferenceError`,整包不可用。改为用标准 WebGPU 位值兜底(全局存在时仍走全局),包现在可在 Node 下正常 import;实际 GPU 执行仍需浏览器 / WebGPU 运行时。
17+
18+
## [1.0.0] - 2026-10-07
19+
20+
### 里程碑
21+
22+
- MoX 全家桶首个大版本:moxwebgpu 随 agent-core / moxsh 系列一同升 1.0.0 发布。
23+
1224
## [0.2.0] - 2026-10-02
1325

1426
### 新增

‎package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "moxwebgpu",
3-
"version": "1.0.0",
3+
"version": "1.0.1",
44
"description": "⚡ A WebGPU compute (GPGPU) framework — typed tensors, raw kernels and a lazy compute graph, with reverse-mode autodiff, in one tiny package.",
55
"type": "module",
66
"main": "./dist/index.cjs",

‎src/core/buffer.ts‎

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,35 @@
66
import type { DType } from './dtype.js';
77
import { dtypeInfo } from './dtype.js';
88

9+
/**
10+
* `GPUBufferUsage` 是浏览器 / WebGPU 全局,Node 环境下不存在。
11+
* 下面的常量是顶层定义,会在 `import` 时立即求值;若直接写 `GPUBufferUsage.STORAGE`
12+
* 会让整个包在 Node 下一 `require` 就 `ReferenceError` 崩溃(npm 包不可用)。
13+
* 这里用标准规范位值兜底:真机 WebGPU 运行时全局存在时走全局,否则用等价常量,
14+
* 保证包在 Node 下也能被 import(实际执行 GPU 命令仍需浏览器 / WebGPU 环境)。
15+
*/
16+
const GPUBufferUsageFlags = (typeof GPUBufferUsage !== 'undefined')
17+
? GPUBufferUsage
18+
: {
19+
MAP_READ: 0x0001,
20+
MAP_WRITE: 0x0002,
21+
COPY_SRC: 0x0004,
22+
COPY_DST: 0x0008,
23+
INDEX: 0x0010,
24+
VERTEX: 0x0020,
25+
UNIFORM: 0x0040,
26+
STORAGE: 0x0080,
27+
INDIRECT: 0x0100,
28+
QUERY_RESOLVE: 0x0200,
29+
};
30+
931
/** Usage flags shared by every storage buffer the framework creates. */
1032
export const STORAGE_USAGE =
11-
GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_SRC | GPUBufferUsage.COPY_DST;
33+
GPUBufferUsageFlags.STORAGE | GPUBufferUsageFlags.COPY_SRC | GPUBufferUsageFlags.COPY_DST;
1234

13-
export const UNIFORM_USAGE = GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST;
35+
export const UNIFORM_USAGE = GPUBufferUsageFlags.UNIFORM | GPUBufferUsageFlags.COPY_DST;
1436

15-
export const STAGING_USAGE = GPUBufferUsage.MAP_READ | GPUBufferUsage.COPY_DST;
37+
export const STAGING_USAGE = GPUBufferUsageFlags.MAP_READ | GPUBufferUsageFlags.COPY_DST;
1638

1739
/** Round a byte size up to the WebGPU-required 4-byte alignment. */
1840
export function align4(n: number): number {

‎src/index.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ export { backward, sumTo } from './graph/autograd.js';
3434
export * from './tensor/codegen.js';
3535

3636
// ---- version ----
37-
export const MOXWEBGPU_VERSION = '1.0.0';
37+
export const MOXWEBGPU_VERSION = '1.0.1';
3838

3939
import { Tensor } from './tensor/tensor.js';
4040
import { installTensorOps } from './tensor/ops/index.js';

0 commit comments

Comments
 (0)