bump: tsover v6.0.2#2635
Conversation
|
pkg.pr.new packages benchmark commit |
Bundle size comparison (
|
| 🟢 Decreased | ➖ Unchanged | 🔴 Increased | ❔ Unknown |
|---|---|---|---|
| 0 | 37 | 283 | 0 |
import { ... } in PR vs import * as ... in PR (is the library tree-Shakeable?):
Click to reveal the results table (297 entries).
| Test | tsdown |
|---|---|
| d_Void.ts | 87.40 kB ( |
| d_sampler.ts | 87.41 kB ( |
| d_isPtr.ts | 87.41 kB ( |
| d_comparisonSampler.ts | 87.42 kB ( |
| d_isSizeAttrib.ts | 87.41 kB ( |
| d_isWgslArray.ts | 87.41 kB ( |
| d_isAlignAttrib.ts | 87.41 kB ( |
| d_isWgslStruct.ts | 87.41 kB ( |
| d_isAtomic.ts | 87.41 kB ( |
| d_isBuiltinAttrib.ts | 87.42 kB ( |
| d_isLocationAttrib.ts | 87.42 kB ( |
| d_isDecorated.ts | 87.41 kB ( |
| d_isInterpolateAttrib.ts | 87.42 kB ( |
| d_atomic.ts | 87.41 kB ( |
| d_ptrHandle.ts | 87.41 kB ( |
| d_ptrUniform.ts | 87.41 kB ( |
| d_ptrStorage.ts | 87.41 kB ( |
| d_ptrPrivate.ts | 87.41 kB ( |
| d_ptrFn.ts | 87.41 kB ( |
| d_ptrWorkgroup.ts | 87.41 kB ( |
| d_textureExternal.ts | 87.42 kB ( |
| d_textureStorage1d.ts | 87.42 kB ( |
| d_textureStorage2d.ts | 87.42 kB ( |
| d_textureStorage3d.ts | 87.42 kB ( |
| d_textureStorage2dArray.ts | 87.42 kB ( |
| d_isDisarray.ts | 87.41 kB ( |
| d_isUnstruct.ts | 87.41 kB ( |
| d_isLooseDecorated.ts | 87.42 kB ( |
| d_isLooseData.ts | 87.41 kB ( |
| d_isWgslData.ts | 87.41 kB ( |
| d_unstruct.ts | 87.41 kB ( |
| d_isData.ts | 87.41 kB ( |
| d_deepEqual.ts | 87.41 kB ( |
| d_struct.ts | 87.41 kB ( |
| d_ref.ts | 87.40 kB ( |
| std_discard.ts | 103.14 kB ( |
| std_copy.ts | 103.13 kB ( |
| std_arrayLength.ts | 103.14 kB ( |
| std_isBeingTranspiled.ts | 103.15 kB ( |
| std_getTargetShaderLanguage.ts | 103.15 kB ( |
| std_extensionEnabled.ts | 103.15 kB ( |
| std_range.ts | 103.13 kB ( |
| std_dpdx.ts | 103.13 kB ( |
| std_fwidthCoarse.ts | 103.14 kB ( |
| std_dpdxCoarse.ts | 103.14 kB ( |
| std_dpdyCoarse.ts | 103.14 kB ( |
| std_fwidthFine.ts | 103.14 kB ( |
| std_dpdxFine.ts | 103.14 kB ( |
| std_dpdyFine.ts | 103.14 kB ( |
| std_fwidth.ts | 103.14 kB ( |
| std_dpdy.ts | 103.13 kB ( |
| d_bool.ts | 87.40 kB ( |
| d_f16.ts | 87.40 kB ( |
| d_f32.ts | 87.40 kB ( |
| d_i32.ts | 87.40 kB ( |
| d_u32.ts | 87.40 kB ( |
| d_u16.ts | 87.40 kB ( |
| std_atomicLoad.ts | 103.14 kB ( |
| std_textureBarrier.ts | 103.14 kB ( |
| std_atomicStore.ts | 103.14 kB ( |
| std_workgroupBarrier.ts | 103.15 kB ( |
| std_storageBarrier.ts | 103.14 kB ( |
| std_atomicAdd.ts | 103.14 kB ( |
| std_atomicAnd.ts | 103.14 kB ( |
| std_atomicMax.ts | 103.14 kB ( |
| std_atomicMin.ts | 103.14 kB ( |
| std_atomicSub.ts | 103.14 kB ( |
| std_atomicXor.ts | 103.14 kB ( |
| std_atomicOr.ts | 103.14 kB ( |
| d_textureDepth2d.ts | 87.41 kB ( |
| d_textureDepthCube.ts | 87.42 kB ( |
| d_texture1d.ts | 87.41 kB ( |
| d_texture2d.ts | 87.41 kB ( |
| d_texture3d.ts | 87.41 kB ( |
| d_textureDepth2dArray.ts | 87.42 kB ( |
| d_textureCube.ts | 87.41 kB ( |
| d_textureDepthCubeArray.ts | 87.42 kB ( |
| d_textureDepthMultisampled2d.ts | 87.43 kB ( |
| d_texture2dArray.ts | 87.41 kB ( |
| d_textureCubeArray.ts | 87.42 kB ( |
| d_textureMultisampled2d.ts | 87.42 kB ( |
| d_disarrayOf.ts | 87.41 kB ( |
| d_vec2b.ts | 87.41 kB ( |
| d_vec2f.ts | 87.41 kB ( |
| d_vec2h.ts | 87.41 kB ( |
| d_vec2i.ts | 87.41 kB ( |
| d_vec2u.ts | 87.41 kB ( |
| d_vec3b.ts | 87.41 kB ( |
| d_vec3f.ts | 87.41 kB ( |
| d_vec3h.ts | 87.41 kB ( |
| d_vec3i.ts | 87.41 kB ( |
| d_vec3u.ts | 87.41 kB ( |
| d_vec4b.ts | 87.41 kB ( |
| d_vec4f.ts | 87.41 kB ( |
| d_vec4h.ts | 87.41 kB ( |
| d_vec4i.ts | 87.41 kB ( |
| d_vec4u.ts | 87.41 kB ( |
| std_subgroupAdd.ts | 103.14 kB ( |
| std_subgroupBroadcastFirst.ts | 103.15 kB ( |
| std_subgroupExclusiveAdd.ts | 103.15 kB ( |
| std_subgroupExclusiveMul.ts | 103.15 kB ( |
| std_subgroupInclusiveAdd.ts | 103.15 kB ( |
| std_subgroupInclusiveMul.ts | 103.15 kB ( |
| std_subgroupShuffleDown.ts | 103.15 kB ( |
| std_subgroupShuffleXor.ts | 103.15 kB ( |
| std_subgroupBroadcast.ts | 103.15 kB ( |
| std_subgroupShuffleUp.ts | 103.15 kB ( |
| std_subgroupShuffle.ts | 103.14 kB ( |
| std_subgroupBallot.ts | 103.14 kB ( |
| std_subgroupElect.ts | 103.14 kB ( |
| std_subgroupAll.ts | 103.14 kB ( |
| std_subgroupAnd.ts | 103.14 kB ( |
| std_subgroupAny.ts | 103.14 kB ( |
| std_subgroupMax.ts | 103.14 kB ( |
| std_subgroupMin.ts | 103.14 kB ( |
| std_subgroupMul.ts | 103.14 kB ( |
| std_subgroupXor.ts | 103.14 kB ( |
| std_subgroupOr.ts | 103.14 kB ( |
| d_formatToWGSLType.ts | 87.42 kB ( |
| d_uint8.ts | 87.41 kB ( |
| d_unorm10_10_10_2.ts | 87.42 kB ( |
| d_unorm8x4_bgra.ts | 87.41 kB ( |
| d_float16x2.ts | 87.41 kB ( |
| d_float16x4.ts | 87.41 kB ( |
| d_float32x2.ts | 87.41 kB ( |
| d_float32x3.ts | 87.41 kB ( |
| d_float32x4.ts | 87.41 kB ( |
| d_snorm16x2.ts | 87.41 kB ( |
| d_snorm16x4.ts | 87.41 kB ( |
| d_unorm16x2.ts | 87.41 kB ( |
| d_unorm16x4.ts | 87.41 kB ( |
| d_sint16x2.ts | 87.41 kB ( |
| d_sint16x4.ts | 87.41 kB ( |
| d_sint32x2.ts | 87.41 kB ( |
| d_sint32x3.ts | 87.41 kB ( |
| d_sint32x4.ts | 87.41 kB ( |
| d_snorm8x2.ts | 87.41 kB ( |
| d_snorm8x4.ts | 87.41 kB ( |
| d_uint16x2.ts | 87.41 kB ( |
| d_uint16x4.ts | 87.41 kB ( |
| d_uint32x2.ts | 87.41 kB ( |
| d_uint32x3.ts | 87.41 kB ( |
| d_uint32x4.ts | 87.41 kB ( |
| d_unorm8x2.ts | 87.41 kB ( |
| d_unorm8x4.ts | 87.41 kB ( |
| d_float16.ts | 87.41 kB ( |
| d_float32.ts | 87.41 kB ( |
| d_sint8x2.ts | 87.41 kB ( |
| d_sint8x4.ts | 87.41 kB ( |
| d_snorm16.ts | 87.41 kB ( |
| d_uint8x2.ts | 87.41 kB ( |
| d_uint8x4.ts | 87.41 kB ( |
| d_unorm16.ts | 87.41 kB ( |
| d_sint16.ts | 87.41 kB ( |
| d_sint32.ts | 87.41 kB ( |
| d_snorm8.ts | 87.41 kB ( |
| d_uint16.ts | 87.41 kB ( |
| d_uint32.ts | 87.41 kB ( |
| d_unorm8.ts | 87.41 kB ( |
| d_sint8.ts | 87.41 kB ( |
| d_packedFormats.ts | 87.41 kB ( |
| d_isPackedData.ts | 87.41 kB ( |
| std_textureDimensions.ts | 103.15 kB ( |
| std_textureGather.ts | 103.14 kB ( |
| std_textureSampleBaseClampToEdge.ts | 103.16 kB ( |
| std_textureSampleCompareLevel.ts | 103.15 kB ( |
| std_textureSampleCompare.ts | 103.15 kB ( |
| std_textureSampleLevel.ts | 103.15 kB ( |
| std_textureSampleBias.ts | 103.15 kB ( |
| std_textureSampleGrad.ts | 103.15 kB ( |
| std_textureSample.ts | 103.14 kB ( |
| std_textureStore.ts | 103.14 kB ( |
| std_textureLoad.ts | 103.14 kB ( |
| d_alignmentOf.ts | 87.41 kB ( |
| std_translation4.ts | 103.14 kB ( |
| std_rotationX4.ts | 103.14 kB ( |
| std_rotationY4.ts | 103.14 kB ( |
| std_rotationZ4.ts | 103.14 kB ( |
| std_identity2.ts | 103.14 kB ( |
| std_identity3.ts | 103.14 kB ( |
| std_identity4.ts | 103.14 kB ( |
| std_scaling4.ts | 103.14 kB ( |
| d_isBuiltin.ts | 87.41 kB ( |
| d_sizeOf.ts | 87.41 kB ( |
| d_isContiguous.ts | 87.41 kB ( |
| d_getLongestContiguousPrefix.ts | 87.43 kB ( |
| d_arrayOf.ts | 87.41 kB ( |
| d_size.ts | 87.40 kB ( |
| d_align.ts | 87.41 kB ( |
| d_location.ts | 87.41 kB ( |
| d_interpolate.ts | 87.41 kB ( |
| d_invariant.ts | 87.41 kB ( |
| d_mat4x4f.ts | 87.41 kB ( |
| d_mat2x2f.ts | 87.41 kB ( |
| d_mat3x3f.ts | 87.41 kB ( |
| d_matToArray.ts | 87.41 kB ( |
| d_builtin.ts | 87.41 kB ( |
| std_unpack2x16float.ts | 103.14 kB ( |
| std_unpack4x8unorm.ts | 103.14 kB ( |
| std_pack2x16float.ts | 103.14 kB ( |
| std_pack4x8unorm.ts | 103.14 kB ( |
| std_bitcastU32toF32.ts | 103.14 kB ( |
| std_bitcastU32toI32.ts | 103.14 kB ( |
| std_neg.ts | 103.13 kB ( |
| std_bitShiftRight.ts | 103.14 kB ( |
| std_bitShiftLeft.ts | 103.14 kB ( |
| std_add.ts | 103.13 kB ( |
| std_div.ts | 103.13 kB ( |
| std_mod.ts | 103.13 kB ( |
| std_mul.ts | 103.13 kB ( |
| std_sub.ts | 103.13 kB ( |
| std_translate4.ts | 103.14 kB ( |
| std_rotateX4.ts | 103.14 kB ( |
| std_scale4.ts | 103.14 kB ( |
| std_rotateY4.ts | 103.14 kB ( |
| std_rotateZ4.ts | 103.14 kB ( |
| d_memoryLayoutOf.ts | 87.41 kB ( |
| std_and.ts | 103.13 kB ( |
| std_or.ts | 103.13 kB ( |
| std_select.ts | 103.14 kB ( |
| std_allEq.ts | 103.13 kB ( |
| std_all.ts | 103.13 kB ( |
| std_not.ts | 103.13 kB ( |
| std_eq.ts | 103.13 kB ( |
| std_lt.ts | 103.13 kB ( |
| std_ne.ts | 103.13 kB ( |
| std_isCloseTo.ts | 103.14 kB ( |
| std_any.ts | 103.13 kB ( |
| std_ge.ts | 103.13 kB ( |
| std_gt.ts | 103.13 kB ( |
| std_le.ts | 103.13 kB ( |
| std_dot4U8Packed.ts | 103.14 kB ( |
| std_length.ts | 103.14 kB ( |
| std_countTrailingZeros.ts | 103.15 kB ( |
| std_distance.ts | 103.14 kB ( |
| std_dot.ts | 103.13 kB ( |
| std_countLeadingZeros.ts | 103.15 kB ( |
| std_firstTrailingBit.ts | 103.15 kB ( |
| std_firstLeadingBit.ts | 103.14 kB ( |
| std_fract.ts | 103.13 kB ( |
| std_frexp.ts | 103.13 kB ( |
| std_modf.ts | 103.13 kB ( |
| std_quantizeToF16.ts | 103.14 kB ( |
| std_mix.ts | 103.13 kB ( |
| std_countOneBits.ts | 103.14 kB ( |
| std_dot4I8Packed.ts | 103.14 kB ( |
| std_determinant.ts | 103.14 kB ( |
| std_extractBits.ts | 103.14 kB ( |
| std_faceForward.ts | 103.14 kB ( |
| std_inverseSqrt.ts | 103.14 kB ( |
| std_reverseBits.ts | 103.14 kB ( |
| std_insertBits.ts | 103.14 kB ( |
| std_smoothstep.ts | 103.14 kB ( |
| std_normalize.ts | 103.14 kB ( |
| std_transpose.ts | 103.14 kB ( |
| std_saturate.ts | 103.14 kB ( |
| std_degrees.ts | 103.14 kB ( |
| std_radians.ts | 103.14 kB ( |
| std_reflect.ts | 103.14 kB ( |
| std_refract.ts | 103.14 kB ( |
| std_acosh.ts | 103.13 kB ( |
| std_asinh.ts | 103.13 kB ( |
| std_atan2.ts | 103.13 kB ( |
| std_atanh.ts | 103.13 kB ( |
| std_clamp.ts | 103.13 kB ( |
| std_cross.ts | 103.13 kB ( |
| std_floor.ts | 103.13 kB ( |
| std_ldexp.ts | 103.13 kB ( |
| std_round.ts | 103.13 kB ( |
| std_trunc.ts | 103.13 kB ( |
| std_acos.ts | 103.13 kB ( |
| std_asin.ts | 103.13 kB ( |
| std_atan.ts | 103.13 kB ( |
| std_ceil.ts | 103.13 kB ( |
| std_cosh.ts | 103.13 kB ( |
| std_exp2.ts | 103.13 kB ( |
| std_log2.ts | 103.13 kB ( |
| std_sign.ts | 103.13 kB ( |
| std_sinh.ts | 103.13 kB ( |
| std_sqrt.ts | 103.13 kB ( |
| std_step.ts | 103.13 kB ( |
| std_tanh.ts | 103.13 kB ( |
| std_abs.ts | 103.13 kB ( |
| std_cos.ts | 103.13 kB ( |
| std_exp.ts | 103.13 kB ( |
| std_fma.ts | 103.13 kB ( |
| std_log.ts | 103.13 kB ( |
| std_max.ts | 103.13 kB ( |
| std_min.ts | 103.13 kB ( |
| std_pow.ts | 103.13 kB ( |
| std_sin.ts | 103.13 kB ( |
| std_tan.ts | 103.13 kB ( |
| common_fullScreenTriangle.ts | 56.70 kB ( |
| common_writeSoA.ts | 56.69 kB ( |
| STATIC_allImports.ts | 286.42 kB ( |
| STATIC_d.ts | 87.40 kB ( |
| STATIC_std.ts | 103.13 kB ( |
If you wish to run a comparison for other, slower bundlers, run the 'Tree-shake test' from the GitHub Actions menu.
Resolution Time Benchmark---
config:
themeVariables:
xyChart:
plotColorPalette: "#E63946, #3B82F6, #059669"
---
xychart
title "Random Branching (🔴 PR | 🔵 main | 🟢 release)"
x-axis "max depth" [1, 2, 3, 4, 5, 6, 7, 8]
y-axis "time (ms)"
line [0.86, 1.81, 3.54, 5.67, 6.66, 11.82, 19.54, 22.02]
line [0.90, 1.74, 3.74, 5.64, 6.98, 10.79, 20.65, 23.86]
line [0.78, 1.69, 3.51, 5.67, 6.26, 10.32, 18.41, 22.27]
---
config:
themeVariables:
xyChart:
plotColorPalette: "#E63946, #3B82F6, #059669"
---
xychart
title "Linear Recursion (🔴 PR | 🔵 main | 🟢 release)"
x-axis "max depth" [1, 2, 3, 4, 5, 6, 7, 8]
y-axis "time (ms)"
line [0.27, 0.52, 0.63, 0.74, 1.06, 1.06, 1.38, 1.42]
line [0.27, 0.52, 0.63, 0.78, 1.03, 1.12, 1.33, 1.49]
line [0.33, 0.53, 0.62, 0.74, 1.03, 1.04, 1.31, 1.38]
---
config:
themeVariables:
xyChart:
plotColorPalette: "#E63946, #3B82F6, #059669"
---
xychart
title "Full Tree (🔴 PR | 🔵 main | 🟢 release)"
x-axis "max depth" [1, 2, 3, 4, 5, 6, 7, 8]
y-axis "time (ms)"
line [0.85, 1.95, 3.70, 5.78, 11.37, 23.96, 50.39, 101.59]
line [0.76, 1.80, 3.51, 5.91, 10.88, 23.32, 51.11, 102.38]
line [0.72, 1.82, 3.49, 5.35, 10.66, 22.17, 49.08, 98.89]
|
263524d to
cda6ae7
Compare
3bd708e to
5ca31a9
Compare
There was a problem hiding this comment.
Pull request overview
This PR updates the repo’s TypeScript toolchain alias (typescript via tsover) to v6.0.2 and makes a few TypeGPU type-level adjustments to accommodate stricter typing around WebGPU descriptors.
Changes:
- Bump
tsoverfrom^5.9.11to^6.0.2in the workspace catalog and lockfile. - Update numeric constructor/cast codegen paths to avoid passing an “optional arg tuple” through to
typeInstantiation. - Introduce a custom render pass descriptor type to accept readonly tuple-like
clearValue, and add aGPUExtent3Dassertion for texture creation.
Reviewed changes
Copilot reviewed 4 out of 5 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| pnpm-workspace.yaml | Updates the catalog entry to use npm:tsover@^6.0.2 for typescript. |
| pnpm-lock.yaml | Lockfile refresh reflecting tsover@6.0.2 across dependents. |
| packages/typegpu/src/data/numeric.ts | Adjusts cast constructor codegen to handle optional arguments more explicitly. |
| packages/typegpu/src/core/texture/texture.ts | Adds a GPUExtent3D type assertion when passing props.size to createTexture. |
| packages/typegpu/src/core/root/rootTypes.ts | Adds TgpuRenderPassDescriptor to allow readonly tuple-like clearValue and uses it in beginRenderPass. |
Files not reviewed (1)
- pnpm-lock.yaml: Generated file
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
ℹ️ Minor suggestion only — one consistency note in the body and inline.
Reviewed changes — bump tsover to v6.0.2 and adapt TypeGPU sources to the stricter tsover/WebGPU types.
pnpm-workspace.yamlandpnpm-lock.yaml— bump workspace TypeScript resolution fromtsover@5.9.11totsover@6.0.2.packages/typegpu/src/core/root/rootTypes.ts— introduceTgpuRenderPassDescriptoracceptingreadonly number[]forclearValue, and use it inExperimentalTgpuRoot.beginRenderPass.packages/typegpu/src/core/texture/texture.ts— castprops.sizetoGPUExtent3Dwhen callingdevice.createTexture.packages/typegpu/src/data/numeric.ts— update scalar cast codegen to pass only the present argument totypeInstantiation.
ℹ️ Implementation signature for beginRenderPass still uses GPURenderPassDescriptor
The interface in rootTypes.ts now widens beginRenderPass to accept TgpuRenderPassDescriptor, but the concrete TgpuRootImpl.beginRenderPass in init.ts still narrows the parameter to GPURenderPassDescriptor. TypeScript method-parameter bivariance accepts this, but it leaves the concrete class contract tighter than the interface it implements.
Technical details
# Implementation signature for beginRenderPass still uses GPURenderPassDescriptor
## Affected sites
- `packages/typegpu/src/core/root/rootTypes.ts:674` — `TgpuRenderPassDescriptor` is defined but not exported.
- `packages/typegpu/src/core/root/init.ts:762` — `beginRenderPass` parameter is still `GPURenderPassDescriptor`.
## Required outcome
- The concrete implementation should accept the same descriptor type as the interface, or the interface change should be reverted.
- If `init.ts` adopts `TgpuRenderPassDescriptor`, the native `commandEncoder.beginRenderPass(descriptor)` call will need a cast to `GPURenderPassDescriptor`.
## Suggested approach
Export `TgpuRenderPassDescriptor` from `rootTypes.ts` and change `init.ts:762` to use it. Cast the descriptor to `GPURenderPassDescriptor` only at the call into the native WebGPU encoder.openrouter/moonshotai/kimi-k2.7-code (free via Pullfrog for OSS) | 𝕏
There was a problem hiding this comment.
ℹ️ No new issues in this push.
Reviewed changes — the latest commit keeps the TypeGPU source adaptations intact and only updates the docs-app dependency and lockfile to match the tsover@6 resolution.
- Bumped
expressive-code-twoslashfrom^0.5.3to^0.6.1inapps/typegpu-docs/package.json. - Regenerated
pnpm-lock.yamlto resolve the updatedexpressive-code-twoslashversion and refresh transitivetsoverentries.
openrouter/moonshotai/kimi-k2.7-code (free via Pullfrog for OSS) | 𝕏
There was a problem hiding this comment.
ℹ️ No new issues in this push.
Reviewed changes — the latest commit tightens the new descriptor type and adjusts the texture size cast to satisfy the stricter tsover@6 types.
packages/typegpu/src/core/root/rootTypes.ts— narrowedTgpuRenderPassDescriptor.clearValuefromreadonly number[]toreadonly [number, number, number, number].packages/typegpu/src/core/texture/texture.ts— switched thecreateTexturesize cast fromGPUExtent3Dtonumber[], matching the mutable array shape expected by the WebGPU types.
pnpm --filter typegpu test:types passes.
openrouter/moonshotai/kimi-k2.7-code (free via Pullfrog for OSS) | 𝕏
| format: props.format, | ||
| size: props.size, | ||
| // The WebGPU types accept only mutable arrays, which is too loosely typed | ||
| size: props.size as number[], |
There was a problem hiding this comment.
Just to be safe
| size: props.size as number[], | |
| size: [...props.size], |

No description provided.