Package evaluation to load WGPUTranspiler on Julia 1.14.0-DEV.2309 (6e1a27e459*) started at 2026-06-06T08:57:54.048 ################################################################################ # Set-up # Set-up completed after 0.14s ################################################################################ # Installation # Installing WGPUTranspiler... Resolving package versions... Installed CEnum ────────────── v0.5.0 Installed WGSLTypes ────────── v0.1.2 Installed OrderedCollections ─ v1.8.2 Installed AbstractTrees ────── v0.4.5 Installed MacroTools ───────── v0.5.16 Installed Compat ───────────── v4.18.1 Installed StaticArraysCore ─── v1.4.4 Installed DataStructures ───── v0.18.22 Installed CodeTracking ─────── v1.3.9 Installed StaticArrays ─────── v1.9.18 Installed WGPUTranspiler ───── v0.1.0 Installed PrecompileTools ──── v1.3.4 Installed Infiltrator ──────── v1.9.11 Installed Reexport ─────────── v1.2.2 Installed Lazy ─────────────── v0.15.1 Installed Preferences ──────── v1.5.2 Updating `~/.julia/environments/v1.14/Project.toml` [e2278aa8] + WGPUTranspiler v0.1.0 Updating `~/.julia/environments/v1.14/Manifest.toml` [1520ce14] + AbstractTrees v0.4.5 [fa961155] + CEnum v0.5.0 ⌅ [da1fd8a2] + CodeTracking v1.3.9 [34da2185] + Compat v4.18.1 ⌅ [864edb3b] + DataStructures v0.18.22 [5903a43b] + Infiltrator v1.9.11 [50d2b5c4] + Lazy v0.15.1 [1914dd2f] + MacroTools v0.5.16 ⌅ [bac558e1] + OrderedCollections v1.8.2 [aea7be01] + PrecompileTools v1.3.4 [21216c6a] + Preferences v1.5.2 [189a3867] + Reexport v1.2.2 [90137ffa] + StaticArrays v1.9.18 [1e83bf80] + StaticArraysCore v1.4.4 [e2278aa8] + WGPUTranspiler v0.1.0 [8cf5275a] + WGSLTypes v0.1.2 [56f22d72] + Artifacts v1.11.0 [2a0f44e3] + Base64 v1.11.0 [ade2ca70] + Dates v1.11.0 [7b1f6079] + FileWatching v1.11.0 [b77e0a4c] + InteractiveUtils v1.11.0 [ac6e5ff7] + JuliaSyntaxHighlighting v1.13.0 [8f399da3] + Libdl v1.11.0 [37e2e46d] + LinearAlgebra v1.14.0 [56ddb016] + Logging v1.11.0 [d6f4376e] + Markdown v1.11.0 [de0858da] + Printf v1.11.0 [3fa0cd96] + REPL v1.11.0 [9a3f8284] + Random v1.11.0 [ea8e919c] + SHA v1.13.0 [9e88b42a] + Serialization v1.11.0 [6462fe0b] + Sockets v1.11.0 [f489334b] + StyledStrings v1.13.0 [fa267f1f] + TOML v1.0.3 [8dfed614] + Test v1.11.0 [cf7118a7] + UUIDs v1.11.0 [4ec0a83e] + Unicode v1.11.0 [e66e0078] + CompilerSupportLibraries_jll v1.5.2+0 [4536629a] + OpenBLAS_jll v0.3.33+0 [8e850b90] + libblastrampoline_jll v5.15.0+0 Info Packages marked with ⌅ have new versions available but compatibility constraints restrict them from upgrading. To see why use `status --outdated -m` Installation completed after 10.1s ################################################################################ # Precompilation # Precompiling PkgEval dependencies... Project No packages added to or removed from `~/.julia/environments/pkgeval/Project.toml` Manifest No packages added to or removed from `~/.julia/environments/pkgeval/Manifest.toml` Precompiling package dependencies... Precompiling project... 4.7 s ✓ MacroTools 0.9 s ✓ StaticArraysCore 0.6 s ✓ Reexport 75.1 s ✓ AbstractTrees 153.6 s ✓ OrderedCollections 149.4 s ✓ CEnum 5.3 s ✓ CodeTracking 7.8 s ✓ Infiltrator 2.7 s ✓ Preferences 1.5 s ✓ Compat 42.7 s ✓ Lazy 3.2 s ✓ PrecompileTools 0.7 s ✓ Compat → CompatLinearAlgebraExt 318.9 s ✓ StaticArrays 250.3 s ✓ DataStructures ┌ Info: JuliaLowering threw given input: │ code = │ :(function makePaddedStruct(name::Symbol, abstractType::Union{Nothing, DataType}, fields...) │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:102 =# │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:103 =# │ offsets = [0] │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:104 =# │ prevfieldSize = 0 │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:105 =# │ fieldVector = [key => val for (key, val) = fields...] │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:106 =# │ padCount = 0 │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:107 =# │ maxAlign = 0 │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:108 =# │ for (idx, (var, field)) = enumerate(fields...) │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:109 =# │ if idx == 1 │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:110 =# │ maxAlign = Base.max(maxAlign, alignof(field)) │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:111 =# │ prevfieldSize = byteSize(field) │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:112 =# │ continue │ end │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:114 =# │ fieldSize = byteSize(field) │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:115 =# │ maxAlign = Base.max(maxAlign, alignof(field)) │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:116 =# │ potentialOffset = prevfieldSize + offsets[var"end"] │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:117 =# │ newOffset = div(potentialOffset, alignof(field), RoundUp) * alignof(field) │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:118 =# │ padSize = newOffset - potentialOffset |> UInt8 │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:119 =# │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:119 =# @assert padSize >= 0 "pad size should be ≥ 0" │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:120 =# │ if padSize != 0 │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:121 =# │ sz = 0x80 │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:122 =# │ for i = 1:sizeof(padSize) * 8 │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:123 =# │ sz = bitrotate(sz, 1) │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:124 =# │ if sz & padSize == sz │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:125 =# │ padCount += 1 │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:126 =# │ insert!(fieldVector, (idx + padCount) - 1, Symbol(:pad, padCount) => juliaPadType[sz]) │ end │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:129 =# │ end │ end │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:131 =# │ push!(offsets, newOffset) │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:132 =# │ prevfieldSize = fieldSize │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:133 =# │ end │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:134 =# │ potentialOffset = prevfieldSize + offsets[var"end"] │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:135 =# │ newOffset = div(potentialOffset, maxAlign, RoundUp) * maxAlign │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:136 =# │ padSize = newOffset - potentialOffset |> UInt8 │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:137 =# │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:137 =# @assert padSize >= 0 "pad size should be ≥ 0" │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:138 =# │ if padSize != 0 │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:139 =# │ sz = 0x80 │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:140 =# │ for i = 1:sizeof(padSize) * 8 │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:141 =# │ sz = bitrotate(sz, 1) │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:142 =# │ if sz & padSize == sz │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:143 =# │ padCount += 1 │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:144 =# │ push!(fieldVector, Symbol(:pad, padCount) => juliaPadType[sz]) │ end │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:147 =# │ end │ end │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:149 =# │ push!(offsets, newOffset) │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:150 =# │ unfields = [$(Expr(:quote, :($(Expr(:$, :key))::$(Expr(:$, :val))))) for (key, val) = fieldVector] │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:151 =# │ absType = if abstractType !== nothing │ $(Expr(:$, :abstractType)) │ else │ :Any │ end │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:152 =# │ Expr(:struct, false, $(Expr(:quote, :($(Expr(:$, :name)) <: $(Expr(:$, :absType))))), $(Expr(:quote, quote │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:152 =# │ $(Expr(:$, :(unfields...))) │ end))) |> eval │ end) │ st0 = │ SyntaxTree with attributes mod,kind,var_id,toplevel_pure,scope_type,macro_source,name_val,syntax_flags,meta,scope_layer,value,jl_source,is_toplevel_thunk,source,__macro_ctx__ │ [function] │ │ [call] │ │ makePaddedStruct :: Identifier │ │ [::] │ │ name :: Identifier │ │ Symbol :: Identifier │ │ [::] │ │ abstractType :: Identifier │ │ [curly] │ │ Union :: Identifier │ │ Nothing :: Identifier │ │ DataType :: Identifier │ │ [...] │ │ fields :: Identifier │ │ [block] │ │ [=] │ │ offsets :: Identifier │ │ [vect] │ │ 0 :: Value │ │ [=] │ │ prevfieldSize :: Identifier │ │ 0 :: Value │ │ [=] │ │ fieldVector :: Identifier │ │ [comprehension] │ │ [generator] │ │ [call] │ │ => :: Identifier │ │ key :: Identifier │ │ val :: Identifier │ │ [=] │ │ [tuple] │ │ key :: Identifier │ │ val :: Identifier │ │ [...] │ │ fields :: Identifier │ │ [=] │ │ padCount :: Identifier │ │ 0 :: Value │ │ [=] │ │ maxAlign :: Identifier │ │ 0 :: Value │ │ [for] │ │ [=] │ │ [tuple] │ │ idx :: Identifier │ │ [tuple] │ │ var :: Identifier │ │ field :: Identifier │ │ [call] │ │ enumerate :: Identifier │ │ [...] │ │ fields :: Identifier │ │ [block] │ │ [if] │ │ [call] │ │ == :: Identifier │ │ idx :: Identifier │ │ 1 :: Value │ │ [block] │ │ [=] │ │ maxAlign :: Identifier │ │ [call] │ │ [.] │ │ Base :: Identifier │ │ [inert] │ │ max :: Identifier │ │ maxAlign :: Identifier │ │ [call] │ │ alignof :: Identifier │ │ field :: Identifier │ │ [=] │ │ prevfieldSize :: Identifier │ │ [call] │ │ byteSize :: Identifier │ │ field :: Identifier │ │ [continue] │ │ [=] │ │ fieldSize :: Identifier │ │ [call] │ │ byteSize :: Identifier │ │ field :: Identifier │ │ [=] │ │ maxAlign :: Identifier │ │ [call] │ │ [.] │ │ Base :: Identifier │ │ [inert] │ │ max :: Identifier │ │ maxAlign :: Identifier │ │ [call] │ │ alignof :: Identifier │ │ field :: Identifier │ │ [=] │ │ potentialOffset :: Identifier │ │ [call] │ │ + :: Identifier │ │ prevfieldSize :: Identifier │ │ [ref] │ │ offsets :: Identifier │ │ end :: Identifier │ │ [=] │ │ newOffset :: Identifier │ │ [call] │ │ * :: Identifier │ │ [call] │ │ div :: Identifier │ │ potentialOffset :: Identifier │ │ [call] │ │ alignof :: Identifier │ │ field :: Identifier │ │ RoundUp :: Identifier │ │ [call] │ │ alignof :: Identifier │ │ field :: Identifier │ │ [=] │ │ padSize :: Identifier │ │ [call] │ │ |> :: Identifier │ │ [call] │ │ - :: Identifier │ │ newOffset :: Identifier │ │ potentialOffset :: Identifier │ │ UInt8 :: Identifier │ │ [macrocall] │ │ @assert :: Identifier │ │ :(#= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:119 =#) :: Value │ │ [call] │ │ >= :: Identifier │ │ padSize :: Identifier │ │ 0 :: Value │ │ "pad size should be ≥ 0" :: Value │ │ [if] │ │ [call] │ │ != :: Identifier │ │ padSize :: Identifier │ │ 0 :: Value │ │ [block] │ │ [=] │ │ sz :: Identifier │ │ 0x80 :: Value │ │ [for] │ │ [=] │ │ i :: Identifier │ │ [call] │ │ : :: Identifier │ │ 1 :: Value │ │ [call] │ │ * :: Identifier │ │ [call] │ │ sizeof :: Identifier │ │ padSize :: Identifier │ │ 8 :: Value │ │ [block] │ │ [=] │ │ sz :: Identifier │ │ [call] │ │ bitrotate :: Identifier │ │ sz :: Identifier │ │ 1 :: Value │ │ [if] │ │ [call] │ │ == :: Identifier │ │ [call] │ │ & :: Identifier │ │ sz :: Identifier │ │ padSize :: Identifier │ │ sz :: Identifier │ │ [block] │ │ [unknown_head] │ │ padCount :: Identifier │ │ 1 :: Value │ │ [call] │ │ insert! :: Identifier │ │ fieldVector :: Identifier │ │ [call] │ │ - :: Identifier │ │ [call] │ │ + :: Identifier │ │ idx :: Identifier │ │ padCount :: Identifier │ │ 1 :: Value │ │ [call] │ │ => :: Identifier │ │ [call] │ │ Symbol :: Identifier │ │ [inert] │ │ pad :: Identifier │ │ padCount :: Identifier │ │ [ref] │ │ juliaPadType :: Identifier │ │ sz :: Identifier │ │ [call] │ │ push! :: Identifier │ │ offsets :: Identifier │ │ newOffset :: Identifier │ │ [=] │ │ prevfieldSize :: Identifier │ │ fieldSize :: Identifier │ │ [=] │ │ potentialOffset :: Identifier │ │ [call] │ │ + :: Identifier │ │ prevfieldSize :: Identifier │ │ [ref] │ │ offsets :: Identifier │ │ end :: Identifier │ │ [=] │ │ newOffset :: Identifier │ │ [call] │ │ * :: Identifier │ │ [call] │ │ div :: Identifier │ │ potentialOffset :: Identifier │ │ maxAlign :: Identifier │ │ RoundUp :: Identifier │ │ maxAlign :: Identifier │ │ [=] │ │ padSize :: Identifier │ │ [call] │ │ |> :: Identifier │ │ [call] │ │ - :: Identifier │ │ newOffset :: Identifier │ │ potentialOffset :: Identifier │ │ UInt8 :: Identifier │ │ [macrocall] │ │ @assert :: Identifier │ │ :(#= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:137 =#) :: Value │ │ [call] │ │ >= :: Identifier │ │ padSize :: Identifier │ │ 0 :: Value │ │ "pad size should be ≥ 0" :: Value │ │ [if] │ │ [call] │ │ != :: Identifier │ │ padSize :: Identifier │ │ 0 :: Value │ │ [block] │ │ [=] │ │ sz :: Identifier │ │ 0x80 :: Value │ │ [for] │ │ [=] │ │ i :: Identifier │ │ [call] │ │ : :: Identifier │ │ 1 :: Value │ │ [call] │ │ * :: Identifier │ │ [call] │ │ sizeof :: Identifier │ │ padSize :: Identifier │ │ 8 :: Value │ │ [block] │ │ [=] │ │ sz :: Identifier │ │ [call] │ │ bitrotate :: Identifier │ │ sz :: Identifier │ │ 1 :: Value │ │ [if] │ │ [call] │ │ == :: Identifier │ │ [call] │ │ & :: Identifier │ │ sz :: Identifier │ │ padSize :: Identifier │ │ sz :: Identifier │ │ [block] │ │ [unknown_head] │ │ padCount :: Identifier │ │ 1 :: Value │ │ [call] │ │ push! :: Identifier │ │ fieldVector :: Identifier │ │ [call] │ │ => :: Identifier │ │ [call] │ │ Symbol :: Identifier │ │ [inert] │ │ pad :: Identifier │ │ padCount :: Identifier │ │ [ref] │ │ juliaPadType :: Identifier │ │ sz :: Identifier │ │ [call] │ │ push! :: Identifier │ │ offsets :: Identifier │ │ newOffset :: Identifier │ │ [=] │ │ unfields :: Identifier │ │ [comprehension] │ │ [generator] │ │ [quote] │ │ [::] │ │ [$] │ │ key :: Identifier │ │ [$] │ │ val :: Identifier │ │ [=] │ │ [tuple] │ │ key :: Identifier │ │ val :: Identifier │ │ fieldVector :: Identifier │ │ [=] │ │ absType :: Identifier │ │ [if] │ │ [call] │ │ !== :: Identifier │ │ abstractType :: Identifier │ │ nothing :: Identifier │ │ [quote] │ │ [$] │ │ abstractType :: Identifier │ │ [inert] │ │ Any :: Identifier │ │ [call] │ │ |> :: Identifier │ │ [call] │ │ Expr :: Identifier │ │ [inert] │ │ struct :: Identifier │ │ false :: Value │ │ [quote] │ │ [<:] │ │ [$] │ │ name :: Identifier │ │ [$] │ │ absType :: Identifier │ │ [quote] │ │ [block] │ │ [$] │ │ [...] │ │ unfields :: Identifier │ │ eval :: Identifier │ │ │ st1 = │ SyntaxTree with attributes mod,kind,var_id,toplevel_pure,scope_type,macro_source,name_val,syntax_flags,meta,scope_layer,value,jl_source,is_toplevel_thunk,source │ [function] │ │ [call] │ │ makePaddedStruct :: Identifier │ scope_layer=1 │ [::] │ │ name :: Identifier │ scope_layer=1 │ Symbol :: Identifier │ scope_layer=1 │ [::] │ │ abstractType :: Identifier │ scope_layer=1 │ [curly] │ │ Union :: Identifier │ scope_layer=1 │ Nothing :: Identifier │ scope_layer=1 │ DataType :: Identifier │ scope_layer=1 │ [...] │ │ fields :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ offsets :: Identifier │ scope_layer=1 │ [vect] │ │ 0 :: Value │ │ [=] │ │ prevfieldSize :: Identifier │ scope_layer=1 │ 0 :: Value │ │ [=] │ │ fieldVector :: Identifier │ scope_layer=1 │ [comprehension] │ │ [generator] │ │ [call] │ │ => :: Identifier │ scope_layer=1 │ key :: Identifier │ scope_layer=1 │ val :: Identifier │ scope_layer=1 │ [=] │ │ [tuple] │ │ key :: Identifier │ scope_layer=1 │ val :: Identifier │ scope_layer=1 │ [...] │ │ fields :: Identifier │ scope_layer=1 │ [=] │ │ padCount :: Identifier │ scope_layer=1 │ 0 :: Value │ │ [=] │ │ maxAlign :: Identifier │ scope_layer=1 │ 0 :: Value │ │ [for] │ │ [=] │ │ [tuple] │ │ idx :: Identifier │ scope_layer=1 │ [tuple] │ │ var :: Identifier │ scope_layer=1 │ field :: Identifier │ scope_layer=1 │ [call] │ │ enumerate :: Identifier │ scope_layer=1 │ [...] │ │ fields :: Identifier │ scope_layer=1 │ [block] │ │ [if] │ │ [call] │ │ == :: Identifier │ scope_layer=1 │ idx :: Identifier │ scope_layer=1 │ 1 :: Value │ │ [block] │ │ [=] │ │ maxAlign :: Identifier │ scope_layer=1 │ [call] │ │ [.] │ │ Base :: Identifier │ scope_layer=1 │ [inert] │ │ max :: Identifier │ │ maxAlign :: Identifier │ scope_layer=1 │ [call] │ │ alignof :: Identifier │ scope_layer=1 │ field :: Identifier │ scope_layer=1 │ [=] │ │ prevfieldSize :: Identifier │ scope_layer=1 │ [call] │ │ byteSize :: Identifier │ scope_layer=1 │ field :: Identifier │ scope_layer=1 │ [continue] │ │ [=] │ │ fieldSize :: Identifier │ scope_layer=1 │ [call] │ │ byteSize :: Identifier │ scope_layer=1 │ field :: Identifier │ scope_layer=1 │ [=] │ │ maxAlign :: Identifier │ scope_layer=1 │ [call] │ │ [.] │ │ Base :: Identifier │ scope_layer=1 │ [inert] │ │ max :: Identifier │ │ maxAlign :: Identifier │ scope_layer=1 │ [call] │ │ alignof :: Identifier │ scope_layer=1 │ field :: Identifier │ scope_layer=1 │ [=] │ │ potentialOffset :: Identifier │ scope_layer=1 │ [call] │ │ + :: Identifier │ scope_layer=1 │ prevfieldSize :: Identifier │ scope_layer=1 │ [ref] │ │ offsets :: Identifier │ scope_layer=1 │ end :: Identifier │ scope_layer=1 │ [=] │ │ newOffset :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ [call] │ │ div :: Identifier │ scope_layer=1 │ potentialOffset :: Identifier │ scope_layer=1 │ [call] │ │ alignof :: Identifier │ scope_layer=1 │ field :: Identifier │ scope_layer=1 │ RoundUp :: Identifier │ scope_layer=1 │ [call] │ │ alignof :: Identifier │ scope_layer=1 │ field :: Identifier │ scope_layer=1 │ [=] │ │ padSize :: Identifier │ scope_layer=1 │ [call] │ │ |> :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ newOffset :: Identifier │ scope_layer=1 │ potentialOffset :: Identifier │ scope_layer=1 │ UInt8 :: Identifier │ scope_layer=1 │ [if] │ │ [call] │ │ >= :: Identifier │ scope_layer=1 │ padSize :: Identifier │ scope_layer=1 │ 0 :: Value │ macro_source=128 │ nothing :: Value │ macro_source=128 │ [call] │ │ throw :: Identifier │ scope_layer=2 │ [call] │ │ AssertionError :: Identifier │ scope_layer=2 │ "pad size should be ≥ 0" :: Value │ macro_source=128 │ [if] │ │ [call] │ │ != :: Identifier │ scope_layer=1 │ padSize :: Identifier │ scope_layer=1 │ 0 :: Value │ │ [block] │ │ [=] │ │ sz :: Identifier │ scope_layer=1 │ 0x80 :: Value │ │ [for] │ │ [=] │ │ i :: Identifier │ scope_layer=1 │ [call] │ │ : :: Identifier │ scope_layer=1 │ 1 :: Value │ │ [call] │ │ * :: Identifier │ scope_layer=1 │ [call] │ │ sizeof :: Identifier │ scope_layer=1 │ padSize :: Identifier │ scope_layer=1 │ 8 :: Value │ │ [block] │ │ [=] │ │ sz :: Identifier │ scope_layer=1 │ [call] │ │ bitrotate :: Identifier │ scope_layer=1 │ sz :: Identifier │ scope_layer=1 │ 1 :: Value │ │ [if] │ │ [call] │ │ == :: Identifier │ scope_layer=1 │ [call] │ │ & :: Identifier │ scope_layer=1 │ sz :: Identifier │ scope_layer=1 │ padSize :: Identifier │ scope_layer=1 │ sz :: Identifier │ scope_layer=1 │ [block] │ │ [unknown_head] │ scope_layer=1 │ padCount :: Identifier │ scope_layer=1 │ 1 :: Value │ │ [call] │ │ insert! :: Identifier │ scope_layer=1 │ fieldVector :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ [call] │ │ + :: Identifier │ scope_layer=1 │ idx :: Identifier │ scope_layer=1 │ padCount :: Identifier │ scope_layer=1 │ 1 :: Value │ │ [call] │ │ => :: Identifier │ scope_layer=1 │ [call] │ │ Symbol :: Identifier │ scope_layer=1 │ [inert] │ │ pad :: Identifier │ │ padCount :: Identifier │ scope_layer=1 │ [ref] │ │ juliaPadType :: Identifier │ scope_layer=1 │ sz :: Identifier │ scope_layer=1 │ [call] │ │ push! :: Identifier │ scope_layer=1 │ offsets :: Identifier │ scope_layer=1 │ newOffset :: Identifier │ scope_layer=1 │ [=] │ │ prevfieldSize :: Identifier │ scope_layer=1 │ fieldSize :: Identifier │ scope_layer=1 │ [=] │ │ potentialOffset :: Identifier │ scope_layer=1 │ [call] │ │ + :: Identifier │ scope_layer=1 │ prevfieldSize :: Identifier │ scope_layer=1 │ [ref] │ │ offsets :: Identifier │ scope_layer=1 │ end :: Identifier │ scope_layer=1 │ [=] │ │ newOffset :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ [call] │ │ div :: Identifier │ scope_layer=1 │ potentialOffset :: Identifier │ scope_layer=1 │ maxAlign :: Identifier │ scope_layer=1 │ RoundUp :: Identifier │ scope_layer=1 │ maxAlign :: Identifier │ scope_layer=1 │ [=] │ │ padSize :: Identifier │ scope_layer=1 │ [call] │ │ |> :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ newOffset :: Identifier │ scope_layer=1 │ potentialOffset :: Identifier │ scope_layer=1 │ UInt8 :: Identifier │ scope_layer=1 │ [if] │ │ [call] │ │ >= :: Identifier │ scope_layer=1 │ padSize :: Identifier │ scope_layer=1 │ 0 :: Value │ macro_source=232 │ nothing :: Value │ macro_source=232 │ [call] │ │ throw :: Identifier │ scope_layer=3 │ [call] │ │ AssertionError :: Identifier │ scope_layer=3 │ "pad size should be ≥ 0" :: Value │ macro_source=232 │ [if] │ │ [call] │ │ != :: Identifier │ scope_layer=1 │ padSize :: Identifier │ scope_layer=1 │ 0 :: Value │ │ [block] │ │ [=] │ │ sz :: Identifier │ scope_layer=1 │ 0x80 :: Value │ │ [for] │ │ [=] │ │ i :: Identifier │ scope_layer=1 │ [call] │ │ : :: Identifier │ scope_layer=1 │ 1 :: Value │ │ [call] │ │ * :: Identifier │ scope_layer=1 │ [call] │ │ sizeof :: Identifier │ scope_layer=1 │ padSize :: Identifier │ scope_layer=1 │ 8 :: Value │ │ [block] │ │ [=] │ │ sz :: Identifier │ scope_layer=1 │ [call] │ │ bitrotate :: Identifier │ scope_layer=1 │ sz :: Identifier │ scope_layer=1 │ 1 :: Value │ │ [if] │ │ [call] │ │ == :: Identifier │ scope_layer=1 │ [call] │ │ & :: Identifier │ scope_layer=1 │ sz :: Identifier │ scope_layer=1 │ padSize :: Identifier │ scope_layer=1 │ sz :: Identifier │ scope_layer=1 │ [block] │ │ [unknown_head] │ scope_layer=1 │ padCount :: Identifier │ scope_layer=1 │ 1 :: Value │ │ [call] │ │ push! :: Identifier │ scope_layer=1 │ fieldVector :: Identifier │ scope_layer=1 │ [call] │ │ => :: Identifier │ scope_layer=1 │ [call] │ │ Symbol :: Identifier │ scope_layer=1 │ [inert] │ │ pad :: Identifier │ │ padCount :: Identifier │ scope_layer=1 │ [ref] │ │ juliaPadType :: Identifier │ scope_layer=1 │ sz :: Identifier │ scope_layer=1 │ [call] │ │ push! :: Identifier │ scope_layer=1 │ offsets :: Identifier │ scope_layer=1 │ newOffset :: Identifier │ scope_layer=1 │ [=] │ │ unfields :: Identifier │ scope_layer=1 │ [comprehension] │ │ [generator] │ │ [call] │ jl_source=L67 │ Base.JuliaLowering.interpolate_ast :: Value │ jl_source=L67 │ Expr :: Value │ jl_source=L67 │ [inert] │ jl_source=L67 │ [::] │ │ [$] │ │ key :: Identifier │ │ [$] │ │ val :: Identifier │ │ [tuple] │ jl_source=L31 │ key :: Identifier │ scope_layer=1 │ [tuple] │ jl_source=L31 │ val :: Identifier │ scope_layer=1 │ [=] │ │ [tuple] │ │ key :: Identifier │ scope_layer=1 │ val :: Identifier │ scope_layer=1 │ fieldVector :: Identifier │ scope_layer=1 │ [=] │ │ absType :: Identifier │ scope_layer=1 │ [if] │ │ [call] │ │ !== :: Identifier │ scope_layer=1 │ abstractType :: Identifier │ scope_layer=1 │ nothing :: Identifier │ scope_layer=1 │ [call] │ jl_source=L67 │ Base.JuliaLowering.interpolate_ast :: Value │ jl_source=L67 │ Expr :: Value │ jl_source=L67 │ [inert] │ jl_source=L67 │ [$] │ │ abstractType :: Identifier │ │ [tuple] │ jl_source=L31 │ abstractType :: Identifier │ scope_layer=1 │ [inert] │ │ Any :: Identifier │ │ [call] │ │ |> :: Identifier │ scope_layer=1 │ [call] │ │ Expr :: Identifier │ scope_layer=1 │ [inert] │ │ struct :: Identifier │ │ false :: Value │ │ [call] │ jl_source=L67 │ Base.JuliaLowering.interpolate_ast :: Value │ jl_source=L67 │ Expr :: Value │ jl_source=L67 │ [inert] │ jl_source=L67 │ [<:] │ │ [$] │ │ name :: Identifier │ │ [$] │ │ absType :: Identifier │ │ [tuple] │ jl_source=L31 │ name :: Identifier │ scope_layer=1 │ [tuple] │ jl_source=L31 │ absType :: Identifier │ scope_layer=1 │ [call] │ jl_source=L67 │ Base.JuliaLowering.interpolate_ast :: Value │ jl_source=L67 │ Expr :: Value │ jl_source=L67 │ [inert] │ jl_source=L67 │ [block] │ │ [$] │ │ [...] │ │ unfields :: Identifier │ │ [tuple] │ jl_source=L31 │ [...] │ │ unfields :: Identifier │ scope_layer=1 │ eval :: Identifier │ scope_layer=1 │ │ file = "/home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl" │ line = 102 └ mod = WGSLTypes ERROR: LoadError: LoweringError: #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:105 =# - unexpected `...` splatting can only be done into a `call`, `tuple`, `curly`, or array-like expression Expression:  (... fields) Containing expressions:  (comprehension (generator (call => key val) (= (tuple key val) (... fields))))  Detailed provenance:  (... fields)  └─ (... fields)  └─ @ /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:105  Stacktrace:  [1] expand_forms_2(ctx::Base.JuliaLowering.MacroExpansionContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/desugaring.jl:4448  [2] core_lowering_hook(code::Any, mod::Module, file::String, line::UInt64, world::UInt64, _warn::Bool)  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/hooks.jl:30  [3] include(mapexpr::Function, mod::Module, _path::String)  @ Base Base.jl:327  [4] top-level scope  @ ~/.julia/packages/WGSLTypes/defJ0/src/WGSLTypes.jl:22  [5] include(mod::Module, _path::String)  @ Base Base.jl:326  [6] include_package_for_output(pkg::Base.PkgId, input::String, syntax_version::VersionNumber, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing)  @ Base loading.jl:3296  [7] top-level scope  @ stdin:5  [8] eval(m::Module, e::Any)  @ Core boot.jl:521  [9] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)  @ Base loading.jl:3132  [10] include_string(m::Module, txt::String, fname::String)  @ Base loading.jl:3142 [inlined]  [11] exec_options(opts::Base.JLOptions)  @ Base client.jl:353  [12] _start()  @ Base client.jl:596 in expression starting at /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:102 in expression starting at /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/WGSLTypes.jl:1 in expression starting at stdin:5 ✗ WGSLTypes ERROR: LoadError: Precompiled image Base.PkgId(Base.UUID("8cf5275a-6167-4820-ac24-74d7d0e6cf05"), "WGSLTypes") not available with flags CacheFlags(; use_pkgimages=false, debug_level=1, check_bounds=1, inline=true, opt_level=0) Stacktrace:  [1] error(s::String)  @ Base error.jl:56  [2] __require_prelocked(pkg::Base.PkgId, env::String)  @ Base loading.jl:2837  [3] _require_prelocked(uuidkey::Base.PkgId, env::String)  @ Base loading.jl:2685  [4] macro expansion  @ loading.jl:2599 [inlined]  [5] macro expansion  @ lock.jl:376 [inlined]  [6] __require(into::Module, mod::Symbol)  @ Base loading.jl:2563  [7] require(into::Module, mod::Symbol)  @ Base loading.jl:2539 [inlined]  [8] eval_import_path(at::Module, from::Nothing, path::Expr, keyword::String)  @ Base module.jl:36 [inlined]  [9] eval_import_path_all(at::Module, path::Expr, keyword::String)  @ Base module.jl:60  [10] _eval_using(to::Module, path::Expr, flags::UInt8)  @ Base module.jl:137 [inlined]  [11] eval_using(to::Module, path::Expr)  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/runtime.jl:207  [12] top-level scope  @ ~/.julia/packages/WGPUTranspiler/vCgmL/src/codegen/computeBlock.jl:2  [13] include(mapexpr::Function, mod::Module, _path::String)  @ Base Base.jl:327  [14] top-level scope  @ ~/.julia/packages/WGPUTranspiler/vCgmL/src/WGPUTranspiler.jl:16  [15] include(mod::Module, _path::String)  @ Base Base.jl:326  [16] include_package_for_output(pkg::Base.PkgId, input::String, syntax_version::VersionNumber, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing)  @ Base loading.jl:3296  [17] top-level scope  @ stdin:5  [18] eval(m::Module, e::Any)  @ Core boot.jl:521  [19] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)  @ Base loading.jl:3132  [20] include_string(m::Module, txt::String, fname::String)  @ Base loading.jl:3142 [inlined]  [21] exec_options(opts::Base.JLOptions)  @ Base client.jl:353  [22] _start()  @ Base client.jl:596 in expression starting at /home/pkgeval/.julia/packages/WGPUTranspiler/vCgmL/src/codegen/computeBlock.jl:2 in expression starting at /home/pkgeval/.julia/packages/WGPUTranspiler/vCgmL/src/WGPUTranspiler.jl:1 in expression starting at stdin:5 ✗ WGPUTranspiler 15 dependencies successfully precompiled in 1192 seconds. 14 already precompiled. Precompilation completed after 1212.44s ################################################################################ # Loading # Loading WGPUTranspiler... ┌ Info: JuliaLowering threw given input: │ code = │ :(function makePaddedStruct(name::Symbol, abstractType::Union{Nothing, DataType}, fields...) │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:102 =# │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:103 =# │ offsets = [0] │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:104 =# │ prevfieldSize = 0 │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:105 =# │ fieldVector = [key => val for (key, val) = fields...] │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:106 =# │ padCount = 0 │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:107 =# │ maxAlign = 0 │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:108 =# │ for (idx, (var, field)) = enumerate(fields...) │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:109 =# │ if idx == 1 │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:110 =# │ maxAlign = Base.max(maxAlign, alignof(field)) │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:111 =# │ prevfieldSize = byteSize(field) │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:112 =# │ continue │ end │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:114 =# │ fieldSize = byteSize(field) │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:115 =# │ maxAlign = Base.max(maxAlign, alignof(field)) │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:116 =# │ potentialOffset = prevfieldSize + offsets[var"end"] │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:117 =# │ newOffset = div(potentialOffset, alignof(field), RoundUp) * alignof(field) │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:118 =# │ padSize = newOffset - potentialOffset |> UInt8 │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:119 =# │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:119 =# @assert padSize >= 0 "pad size should be ≥ 0" │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:120 =# │ if padSize != 0 │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:121 =# │ sz = 0x80 │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:122 =# │ for i = 1:sizeof(padSize) * 8 │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:123 =# │ sz = bitrotate(sz, 1) │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:124 =# │ if sz & padSize == sz │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:125 =# │ padCount += 1 │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:126 =# │ insert!(fieldVector, (idx + padCount) - 1, Symbol(:pad, padCount) => juliaPadType[sz]) │ end │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:129 =# │ end │ end │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:131 =# │ push!(offsets, newOffset) │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:132 =# │ prevfieldSize = fieldSize │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:133 =# │ end │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:134 =# │ potentialOffset = prevfieldSize + offsets[var"end"] │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:135 =# │ newOffset = div(potentialOffset, maxAlign, RoundUp) * maxAlign │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:136 =# │ padSize = newOffset - potentialOffset |> UInt8 │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:137 =# │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:137 =# @assert padSize >= 0 "pad size should be ≥ 0" │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:138 =# │ if padSize != 0 │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:139 =# │ sz = 0x80 │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:140 =# │ for i = 1:sizeof(padSize) * 8 │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:141 =# │ sz = bitrotate(sz, 1) │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:142 =# │ if sz & padSize == sz │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:143 =# │ padCount += 1 │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:144 =# │ push!(fieldVector, Symbol(:pad, padCount) => juliaPadType[sz]) │ end │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:147 =# │ end │ end │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:149 =# │ push!(offsets, newOffset) │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:150 =# │ unfields = [$(Expr(:quote, :($(Expr(:$, :key))::$(Expr(:$, :val))))) for (key, val) = fieldVector] │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:151 =# │ absType = if abstractType !== nothing │ $(Expr(:$, :abstractType)) │ else │ :Any │ end │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:152 =# │ Expr(:struct, false, $(Expr(:quote, :($(Expr(:$, :name)) <: $(Expr(:$, :absType))))), $(Expr(:quote, quote │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:152 =# │ $(Expr(:$, :(unfields...))) │ end))) |> eval │ end) │ st0 = │ SyntaxTree with attributes mod,kind,var_id,toplevel_pure,scope_type,macro_source,name_val,syntax_flags,meta,scope_layer,value,jl_source,is_toplevel_thunk,source,__macro_ctx__ │ [function] │ │ [call] │ │ makePaddedStruct :: Identifier │ │ [::] │ │ name :: Identifier │ │ Symbol :: Identifier │ │ [::] │ │ abstractType :: Identifier │ │ [curly] │ │ Union :: Identifier │ │ Nothing :: Identifier │ │ DataType :: Identifier │ │ [...] │ │ fields :: Identifier │ │ [block] │ │ [=] │ │ offsets :: Identifier │ │ [vect] │ │ 0 :: Value │ │ [=] │ │ prevfieldSize :: Identifier │ │ 0 :: Value │ │ [=] │ │ fieldVector :: Identifier │ │ [comprehension] │ │ [generator] │ │ [call] │ │ => :: Identifier │ │ key :: Identifier │ │ val :: Identifier │ │ [=] │ │ [tuple] │ │ key :: Identifier │ │ val :: Identifier │ │ [...] │ │ fields :: Identifier │ │ [=] │ │ padCount :: Identifier │ │ 0 :: Value │ │ [=] │ │ maxAlign :: Identifier │ │ 0 :: Value │ │ [for] │ │ [=] │ │ [tuple] │ │ idx :: Identifier │ │ [tuple] │ │ var :: Identifier │ │ field :: Identifier │ │ [call] │ │ enumerate :: Identifier │ │ [...] │ │ fields :: Identifier │ │ [block] │ │ [if] │ │ [call] │ │ == :: Identifier │ │ idx :: Identifier │ │ 1 :: Value │ │ [block] │ │ [=] │ │ maxAlign :: Identifier │ │ [call] │ │ [.] │ │ Base :: Identifier │ │ [inert] │ │ max :: Identifier │ │ maxAlign :: Identifier │ │ [call] │ │ alignof :: Identifier │ │ field :: Identifier │ │ [=] │ │ prevfieldSize :: Identifier │ │ [call] │ │ byteSize :: Identifier │ │ field :: Identifier │ │ [continue] │ │ [=] │ │ fieldSize :: Identifier │ │ [call] │ │ byteSize :: Identifier │ │ field :: Identifier │ │ [=] │ │ maxAlign :: Identifier │ │ [call] │ │ [.] │ │ Base :: Identifier │ │ [inert] │ │ max :: Identifier │ │ maxAlign :: Identifier │ │ [call] │ │ alignof :: Identifier │ │ field :: Identifier │ │ [=] │ │ potentialOffset :: Identifier │ │ [call] │ │ + :: Identifier │ │ prevfieldSize :: Identifier │ │ [ref] │ │ offsets :: Identifier │ │ end :: Identifier │ │ [=] │ │ newOffset :: Identifier │ │ [call] │ │ * :: Identifier │ │ [call] │ │ div :: Identifier │ │ potentialOffset :: Identifier │ │ [call] │ │ alignof :: Identifier │ │ field :: Identifier │ │ RoundUp :: Identifier │ │ [call] │ │ alignof :: Identifier │ │ field :: Identifier │ │ [=] │ │ padSize :: Identifier │ │ [call] │ │ |> :: Identifier │ │ [call] │ │ - :: Identifier │ │ newOffset :: Identifier │ │ potentialOffset :: Identifier │ │ UInt8 :: Identifier │ │ [macrocall] │ │ @assert :: Identifier │ │ :(#= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:119 =#) :: Value │ │ [call] │ │ >= :: Identifier │ │ padSize :: Identifier │ │ 0 :: Value │ │ "pad size should be ≥ 0" :: Value │ │ [if] │ │ [call] │ │ != :: Identifier │ │ padSize :: Identifier │ │ 0 :: Value │ │ [block] │ │ [=] │ │ sz :: Identifier │ │ 0x80 :: Value │ │ [for] │ │ [=] │ │ i :: Identifier │ │ [call] │ │ : :: Identifier │ │ 1 :: Value │ │ [call] │ │ * :: Identifier │ │ [call] │ │ sizeof :: Identifier │ │ padSize :: Identifier │ │ 8 :: Value │ │ [block] │ │ [=] │ │ sz :: Identifier │ │ [call] │ │ bitrotate :: Identifier │ │ sz :: Identifier │ │ 1 :: Value │ │ [if] │ │ [call] │ │ == :: Identifier │ │ [call] │ │ & :: Identifier │ │ sz :: Identifier │ │ padSize :: Identifier │ │ sz :: Identifier │ │ [block] │ │ [unknown_head] │ │ padCount :: Identifier │ │ 1 :: Value │ │ [call] │ │ insert! :: Identifier │ │ fieldVector :: Identifier │ │ [call] │ │ - :: Identifier │ │ [call] │ │ + :: Identifier │ │ idx :: Identifier │ │ padCount :: Identifier │ │ 1 :: Value │ │ [call] │ │ => :: Identifier │ │ [call] │ │ Symbol :: Identifier │ │ [inert] │ │ pad :: Identifier │ │ padCount :: Identifier │ │ [ref] │ │ juliaPadType :: Identifier │ │ sz :: Identifier │ │ [call] │ │ push! :: Identifier │ │ offsets :: Identifier │ │ newOffset :: Identifier │ │ [=] │ │ prevfieldSize :: Identifier │ │ fieldSize :: Identifier │ │ [=] │ │ potentialOffset :: Identifier │ │ [call] │ │ + :: Identifier │ │ prevfieldSize :: Identifier │ │ [ref] │ │ offsets :: Identifier │ │ end :: Identifier │ │ [=] │ │ newOffset :: Identifier │ │ [call] │ │ * :: Identifier │ │ [call] │ │ div :: Identifier │ │ potentialOffset :: Identifier │ │ maxAlign :: Identifier │ │ RoundUp :: Identifier │ │ maxAlign :: Identifier │ │ [=] │ │ padSize :: Identifier │ │ [call] │ │ |> :: Identifier │ │ [call] │ │ - :: Identifier │ │ newOffset :: Identifier │ │ potentialOffset :: Identifier │ │ UInt8 :: Identifier │ │ [macrocall] │ │ @assert :: Identifier │ │ :(#= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:137 =#) :: Value │ │ [call] │ │ >= :: Identifier │ │ padSize :: Identifier │ │ 0 :: Value │ │ "pad size should be ≥ 0" :: Value │ │ [if] │ │ [call] │ │ != :: Identifier │ │ padSize :: Identifier │ │ 0 :: Value │ │ [block] │ │ [=] │ │ sz :: Identifier │ │ 0x80 :: Value │ │ [for] │ │ [=] │ │ i :: Identifier │ │ [call] │ │ : :: Identifier │ │ 1 :: Value │ │ [call] │ │ * :: Identifier │ │ [call] │ │ sizeof :: Identifier │ │ padSize :: Identifier │ │ 8 :: Value │ │ [block] │ │ [=] │ │ sz :: Identifier │ │ [call] │ │ bitrotate :: Identifier │ │ sz :: Identifier │ │ 1 :: Value │ │ [if] │ │ [call] │ │ == :: Identifier │ │ [call] │ │ & :: Identifier │ │ sz :: Identifier │ │ padSize :: Identifier │ │ sz :: Identifier │ │ [block] │ │ [unknown_head] │ │ padCount :: Identifier │ │ 1 :: Value │ │ [call] │ │ push! :: Identifier │ │ fieldVector :: Identifier │ │ [call] │ │ => :: Identifier │ │ [call] │ │ Symbol :: Identifier │ │ [inert] │ │ pad :: Identifier │ │ padCount :: Identifier │ │ [ref] │ │ juliaPadType :: Identifier │ │ sz :: Identifier │ │ [call] │ │ push! :: Identifier │ │ offsets :: Identifier │ │ newOffset :: Identifier │ │ [=] │ │ unfields :: Identifier │ │ [comprehension] │ │ [generator] │ │ [quote] │ │ [::] │ │ [$] │ │ key :: Identifier │ │ [$] │ │ val :: Identifier │ │ [=] │ │ [tuple] │ │ key :: Identifier │ │ val :: Identifier │ │ fieldVector :: Identifier │ │ [=] │ │ absType :: Identifier │ │ [if] │ │ [call] │ │ !== :: Identifier │ │ abstractType :: Identifier │ │ nothing :: Identifier │ │ [quote] │ │ [$] │ │ abstractType :: Identifier │ │ [inert] │ │ Any :: Identifier │ │ [call] │ │ |> :: Identifier │ │ [call] │ │ Expr :: Identifier │ │ [inert] │ │ struct :: Identifier │ │ false :: Value │ │ [quote] │ │ [<:] │ │ [$] │ │ name :: Identifier │ │ [$] │ │ absType :: Identifier │ │ [quote] │ │ [block] │ │ [$] │ │ [...] │ │ unfields :: Identifier │ │ eval :: Identifier │ │ │ st1 = │ SyntaxTree with attributes mod,kind,var_id,toplevel_pure,scope_type,macro_source,name_val,syntax_flags,meta,scope_layer,value,jl_source,is_toplevel_thunk,source │ [function] │ │ [call] │ │ makePaddedStruct :: Identifier │ scope_layer=1 │ [::] │ │ name :: Identifier │ scope_layer=1 │ Symbol :: Identifier │ scope_layer=1 │ [::] │ │ abstractType :: Identifier │ scope_layer=1 │ [curly] │ │ Union :: Identifier │ scope_layer=1 │ Nothing :: Identifier │ scope_layer=1 │ DataType :: Identifier │ scope_layer=1 │ [...] │ │ fields :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ offsets :: Identifier │ scope_layer=1 │ [vect] │ │ 0 :: Value │ │ [=] │ │ prevfieldSize :: Identifier │ scope_layer=1 │ 0 :: Value │ │ [=] │ │ fieldVector :: Identifier │ scope_layer=1 │ [comprehension] │ │ [generator] │ │ [call] │ │ => :: Identifier │ scope_layer=1 │ key :: Identifier │ scope_layer=1 │ val :: Identifier │ scope_layer=1 │ [=] │ │ [tuple] │ │ key :: Identifier │ scope_layer=1 │ val :: Identifier │ scope_layer=1 │ [...] │ │ fields :: Identifier │ scope_layer=1 │ [=] │ │ padCount :: Identifier │ scope_layer=1 │ 0 :: Value │ │ [=] │ │ maxAlign :: Identifier │ scope_layer=1 │ 0 :: Value │ │ [for] │ │ [=] │ │ [tuple] │ │ idx :: Identifier │ scope_layer=1 │ [tuple] │ │ var :: Identifier │ scope_layer=1 │ field :: Identifier │ scope_layer=1 │ [call] │ │ enumerate :: Identifier │ scope_layer=1 │ [...] │ │ fields :: Identifier │ scope_layer=1 │ [block] │ │ [if] │ │ [call] │ │ == :: Identifier │ scope_layer=1 │ idx :: Identifier │ scope_layer=1 │ 1 :: Value │ │ [block] │ │ [=] │ │ maxAlign :: Identifier │ scope_layer=1 │ [call] │ │ [.] │ │ Base :: Identifier │ scope_layer=1 │ [inert] │ │ max :: Identifier │ │ maxAlign :: Identifier │ scope_layer=1 │ [call] │ │ alignof :: Identifier │ scope_layer=1 │ field :: Identifier │ scope_layer=1 │ [=] │ │ prevfieldSize :: Identifier │ scope_layer=1 │ [call] │ │ byteSize :: Identifier │ scope_layer=1 │ field :: Identifier │ scope_layer=1 │ [continue] │ │ [=] │ │ fieldSize :: Identifier │ scope_layer=1 │ [call] │ │ byteSize :: Identifier │ scope_layer=1 │ field :: Identifier │ scope_layer=1 │ [=] │ │ maxAlign :: Identifier │ scope_layer=1 │ [call] │ │ [.] │ │ Base :: Identifier │ scope_layer=1 │ [inert] │ │ max :: Identifier │ │ maxAlign :: Identifier │ scope_layer=1 │ [call] │ │ alignof :: Identifier │ scope_layer=1 │ field :: Identifier │ scope_layer=1 │ [=] │ │ potentialOffset :: Identifier │ scope_layer=1 │ [call] │ │ + :: Identifier │ scope_layer=1 │ prevfieldSize :: Identifier │ scope_layer=1 │ [ref] │ │ offsets :: Identifier │ scope_layer=1 │ end :: Identifier │ scope_layer=1 │ [=] │ │ newOffset :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ [call] │ │ div :: Identifier │ scope_layer=1 │ potentialOffset :: Identifier │ scope_layer=1 │ [call] │ │ alignof :: Identifier │ scope_layer=1 │ field :: Identifier │ scope_layer=1 │ RoundUp :: Identifier │ scope_layer=1 │ [call] │ │ alignof :: Identifier │ scope_layer=1 │ field :: Identifier │ scope_layer=1 │ [=] │ │ padSize :: Identifier │ scope_layer=1 │ [call] │ │ |> :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ newOffset :: Identifier │ scope_layer=1 │ potentialOffset :: Identifier │ scope_layer=1 │ UInt8 :: Identifier │ scope_layer=1 │ [if] │ │ [call] │ │ >= :: Identifier │ scope_layer=1 │ padSize :: Identifier │ scope_layer=1 │ 0 :: Value │ macro_source=128 │ nothing :: Value │ macro_source=128 │ [call] │ │ throw :: Identifier │ scope_layer=2 │ [call] │ │ AssertionError :: Identifier │ scope_layer=2 │ "pad size should be ≥ 0" :: Value │ macro_source=128 │ [if] │ │ [call] │ │ != :: Identifier │ scope_layer=1 │ padSize :: Identifier │ scope_layer=1 │ 0 :: Value │ │ [block] │ │ [=] │ │ sz :: Identifier │ scope_layer=1 │ 0x80 :: Value │ │ [for] │ │ [=] │ │ i :: Identifier │ scope_layer=1 │ [call] │ │ : :: Identifier │ scope_layer=1 │ 1 :: Value │ │ [call] │ │ * :: Identifier │ scope_layer=1 │ [call] │ │ sizeof :: Identifier │ scope_layer=1 │ padSize :: Identifier │ scope_layer=1 │ 8 :: Value │ │ [block] │ │ [=] │ │ sz :: Identifier │ scope_layer=1 │ [call] │ │ bitrotate :: Identifier │ scope_layer=1 │ sz :: Identifier │ scope_layer=1 │ 1 :: Value │ │ [if] │ │ [call] │ │ == :: Identifier │ scope_layer=1 │ [call] │ │ & :: Identifier │ scope_layer=1 │ sz :: Identifier │ scope_layer=1 │ padSize :: Identifier │ scope_layer=1 │ sz :: Identifier │ scope_layer=1 │ [block] │ │ [unknown_head] │ scope_layer=1 │ padCount :: Identifier │ scope_layer=1 │ 1 :: Value │ │ [call] │ │ insert! :: Identifier │ scope_layer=1 │ fieldVector :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ [call] │ │ + :: Identifier │ scope_layer=1 │ idx :: Identifier │ scope_layer=1 │ padCount :: Identifier │ scope_layer=1 │ 1 :: Value │ │ [call] │ │ => :: Identifier │ scope_layer=1 │ [call] │ │ Symbol :: Identifier │ scope_layer=1 │ [inert] │ │ pad :: Identifier │ │ padCount :: Identifier │ scope_layer=1 │ [ref] │ │ juliaPadType :: Identifier │ scope_layer=1 │ sz :: Identifier │ scope_layer=1 │ [call] │ │ push! :: Identifier │ scope_layer=1 │ offsets :: Identifier │ scope_layer=1 │ newOffset :: Identifier │ scope_layer=1 │ [=] │ │ prevfieldSize :: Identifier │ scope_layer=1 │ fieldSize :: Identifier │ scope_layer=1 │ [=] │ │ potentialOffset :: Identifier │ scope_layer=1 │ [call] │ │ + :: Identifier │ scope_layer=1 │ prevfieldSize :: Identifier │ scope_layer=1 │ [ref] │ │ offsets :: Identifier │ scope_layer=1 │ end :: Identifier │ scope_layer=1 │ [=] │ │ newOffset :: Identifier │ scope_layer=1 │ [call] │ │ * :: Identifier │ scope_layer=1 │ [call] │ │ div :: Identifier │ scope_layer=1 │ potentialOffset :: Identifier │ scope_layer=1 │ maxAlign :: Identifier │ scope_layer=1 │ RoundUp :: Identifier │ scope_layer=1 │ maxAlign :: Identifier │ scope_layer=1 │ [=] │ │ padSize :: Identifier │ scope_layer=1 │ [call] │ │ |> :: Identifier │ scope_layer=1 │ [call] │ │ - :: Identifier │ scope_layer=1 │ newOffset :: Identifier │ scope_layer=1 │ potentialOffset :: Identifier │ scope_layer=1 │ UInt8 :: Identifier │ scope_layer=1 │ [if] │ │ [call] │ │ >= :: Identifier │ scope_layer=1 │ padSize :: Identifier │ scope_layer=1 │ 0 :: Value │ macro_source=232 │ nothing :: Value │ macro_source=232 │ [call] │ │ throw :: Identifier │ scope_layer=3 │ [call] │ │ AssertionError :: Identifier │ scope_layer=3 │ "pad size should be ≥ 0" :: Value │ macro_source=232 │ [if] │ │ [call] │ │ != :: Identifier │ scope_layer=1 │ padSize :: Identifier │ scope_layer=1 │ 0 :: Value │ │ [block] │ │ [=] │ │ sz :: Identifier │ scope_layer=1 │ 0x80 :: Value │ │ [for] │ │ [=] │ │ i :: Identifier │ scope_layer=1 │ [call] │ │ : :: Identifier │ scope_layer=1 │ 1 :: Value │ │ [call] │ │ * :: Identifier │ scope_layer=1 │ [call] │ │ sizeof :: Identifier │ scope_layer=1 │ padSize :: Identifier │ scope_layer=1 │ 8 :: Value │ │ [block] │ │ [=] │ │ sz :: Identifier │ scope_layer=1 │ [call] │ │ bitrotate :: Identifier │ scope_layer=1 │ sz :: Identifier │ scope_layer=1 │ 1 :: Value │ │ [if] │ │ [call] │ │ == :: Identifier │ scope_layer=1 │ [call] │ │ & :: Identifier │ scope_layer=1 │ sz :: Identifier │ scope_layer=1 │ padSize :: Identifier │ scope_layer=1 │ sz :: Identifier │ scope_layer=1 │ [block] │ │ [unknown_head] │ scope_layer=1 │ padCount :: Identifier │ scope_layer=1 │ 1 :: Value │ │ [call] │ │ push! :: Identifier │ scope_layer=1 │ fieldVector :: Identifier │ scope_layer=1 │ [call] │ │ => :: Identifier │ scope_layer=1 │ [call] │ │ Symbol :: Identifier │ scope_layer=1 │ [inert] │ │ pad :: Identifier │ │ padCount :: Identifier │ scope_layer=1 │ [ref] │ │ juliaPadType :: Identifier │ scope_layer=1 │ sz :: Identifier │ scope_layer=1 │ [call] │ │ push! :: Identifier │ scope_layer=1 │ offsets :: Identifier │ scope_layer=1 │ newOffset :: Identifier │ scope_layer=1 │ [=] │ │ unfields :: Identifier │ scope_layer=1 │ [comprehension] │ │ [generator] │ │ [call] │ jl_source=L67 │ Base.JuliaLowering.interpolate_ast :: Value │ jl_source=L67 │ Expr :: Value │ jl_source=L67 │ [inert] │ jl_source=L67 │ [::] │ │ [$] │ │ key :: Identifier │ │ [$] │ │ val :: Identifier │ │ [tuple] │ jl_source=L31 │ key :: Identifier │ scope_layer=1 │ [tuple] │ jl_source=L31 │ val :: Identifier │ scope_layer=1 │ [=] │ │ [tuple] │ │ key :: Identifier │ scope_layer=1 │ val :: Identifier │ scope_layer=1 │ fieldVector :: Identifier │ scope_layer=1 │ [=] │ │ absType :: Identifier │ scope_layer=1 │ [if] │ │ [call] │ │ !== :: Identifier │ scope_layer=1 │ abstractType :: Identifier │ scope_layer=1 │ nothing :: Identifier │ scope_layer=1 │ [call] │ jl_source=L67 │ Base.JuliaLowering.interpolate_ast :: Value │ jl_source=L67 │ Expr :: Value │ jl_source=L67 │ [inert] │ jl_source=L67 │ [$] │ │ abstractType :: Identifier │ │ [tuple] │ jl_source=L31 │ abstractType :: Identifier │ scope_layer=1 │ [inert] │ │ Any :: Identifier │ │ [call] │ │ |> :: Identifier │ scope_layer=1 │ [call] │ │ Expr :: Identifier │ scope_layer=1 │ [inert] │ │ struct :: Identifier │ │ false :: Value │ │ [call] │ jl_source=L67 │ Base.JuliaLowering.interpolate_ast :: Value │ jl_source=L67 │ Expr :: Value │ jl_source=L67 │ [inert] │ jl_source=L67 │ [<:] │ │ [$] │ │ name :: Identifier │ │ [$] │ │ absType :: Identifier │ │ [tuple] │ jl_source=L31 │ name :: Identifier │ scope_layer=1 │ [tuple] │ jl_source=L31 │ absType :: Identifier │ scope_layer=1 │ [call] │ jl_source=L67 │ Base.JuliaLowering.interpolate_ast :: Value │ jl_source=L67 │ Expr :: Value │ jl_source=L67 │ [inert] │ jl_source=L67 │ [block] │ │ [$] │ │ [...] │ │ unfields :: Identifier │ │ [tuple] │ jl_source=L31 │ [...] │ │ unfields :: Identifier │ scope_layer=1 │ eval :: Identifier │ scope_layer=1 │ │ file = "/home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl" │ line = 102 └ mod = WGSLTypes ERROR: LoadError: LoweringError: #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:105 =# - unexpected `...` splatting can only be done into a `call`, `tuple`, `curly`, or array-like expression Expression:  (... fields) Containing expressions:  (comprehension (generator (call => key val) (= (tuple key val) (... fields))))  Detailed provenance:  (... fields)  └─ (... fields)  └─ @ /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:105  Stacktrace:  [1] expand_forms_2(ctx::Base.JuliaLowering.MacroExpansionContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/desugaring.jl:4448  [2] core_lowering_hook(code::Any, mod::Module, file::String, line::UInt64, world::UInt64, _warn::Bool)  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/hooks.jl:30  [3] include(mapexpr::Function, mod::Module, _path::String)  @ Base Base.jl:327  [4] top-level scope  @ ~/.julia/packages/WGSLTypes/defJ0/src/WGSLTypes.jl:22  [5] include(mod::Module, _path::String)  @ Base Base.jl:326  [6] include_package_for_output(pkg::Base.PkgId, input::String, syntax_version::VersionNumber, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing)  @ Base loading.jl:3296  [7] top-level scope  @ stdin:5  [8] eval(m::Module, e::Any)  @ Core boot.jl:521  [9] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)  @ Base loading.jl:3132  [10] include_string(m::Module, txt::String, fname::String)  @ Base loading.jl:3142 [inlined]  [11] exec_options(opts::Base.JLOptions)  @ Base client.jl:353  [12] _start()  @ Base client.jl:596 in expression starting at /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:102 in expression starting at /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/WGSLTypes.jl:1 in expression starting at stdin:5 ERROR: LoadError: Precompiled image Base.PkgId(Base.UUID("8cf5275a-6167-4820-ac24-74d7d0e6cf05"), "WGSLTypes") not available with flags CacheFlags(; use_pkgimages=false, debug_level=1, check_bounds=1, inline=true, opt_level=0) Stacktrace:  [1] error(s::String)  @ Base error.jl:56  [2] __require_prelocked(pkg::Base.PkgId, env::String)  @ Base loading.jl:2837  [3] _require_prelocked(uuidkey::Base.PkgId, env::String)  @ Base loading.jl:2685  [4] macro expansion  @ loading.jl:2599 [inlined]  [5] macro expansion  @ lock.jl:376 [inlined]  [6] __require(into::Module, mod::Symbol)  @ Base loading.jl:2563  [7] require(into::Module, mod::Symbol)  @ Base loading.jl:2539 [inlined]  [8] eval_import_path(at::Module, from::Nothing, path::Expr, keyword::String)  @ Base module.jl:36 [inlined]  [9] eval_import_path_all(at::Module, path::Expr, keyword::String)  @ Base module.jl:60  [10] _eval_using(to::Module, path::Expr, flags::UInt8)  @ Base module.jl:137 [inlined]  [11] eval_using(to::Module, path::Expr)  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/runtime.jl:207  [12] top-level scope  @ ~/.julia/packages/WGPUTranspiler/vCgmL/src/codegen/computeBlock.jl:2  [13] include(mapexpr::Function, mod::Module, _path::String)  @ Base Base.jl:327  [14] top-level scope  @ ~/.julia/packages/WGPUTranspiler/vCgmL/src/WGPUTranspiler.jl:16  [15] include(mod::Module, _path::String)  @ Base Base.jl:326  [16] include_package_for_output(pkg::Base.PkgId, input::String, syntax_version::VersionNumber, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing)  @ Base loading.jl:3296  [17] top-level scope  @ stdin:5  [18] eval(m::Module, e::Any)  @ Core boot.jl:521  [19] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)  @ Base loading.jl:3132  [20] include_string(m::Module, txt::String, fname::String)  @ Base loading.jl:3142 [inlined]  [21] exec_options(opts::Base.JLOptions)  @ Base client.jl:353  [22] _start()  @ Base client.jl:596 in expression starting at /home/pkgeval/.julia/packages/WGPUTranspiler/vCgmL/src/codegen/computeBlock.jl:2 in expression starting at /home/pkgeval/.julia/packages/WGPUTranspiler/vCgmL/src/WGPUTranspiler.jl:1 in expression starting at stdin:5 2 dependencies had output during precompilation: ┌ WGSLTypes │ ┌ Info: JuliaLowering threw given input: │ │ code = │ │ :(function makePaddedStruct(name::Symbol, abstractType::Union{Nothing, DataType}, fields...) │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:102 =# │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:103 =# │ │ offsets = [0] │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:104 =# │ │ prevfieldSize = 0 │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:105 =# │ │ fieldVector = [key => val for (key, val) = fields...] │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:106 =# │ │ padCount = 0 │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:107 =# │ │ maxAlign = 0 │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:108 =# │ │ for (idx, (var, field)) = enumerate(fields...) │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:109 =# │ │ if idx == 1 │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:110 =# │ │ maxAlign = Base.max(maxAlign, alignof(field)) │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:111 =# │ │ prevfieldSize = byteSize(field) │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:112 =# │ │ continue │ │ end │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:114 =# │ │ fieldSize = byteSize(field) │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:115 =# │ │ maxAlign = Base.max(maxAlign, alignof(field)) │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:116 =# │ │ potentialOffset = prevfieldSize + offsets[var"end"] │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:117 =# │ │ newOffset = div(potentialOffset, alignof(field), RoundUp) * alignof(field) │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:118 =# │ │ padSize = newOffset - potentialOffset |> UInt8 │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:119 =# │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:119 =# @assert padSize >= 0 "pad size should be ≥ 0" │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:120 =# │ │ if padSize != 0 │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:121 =# │ │ sz = 0x80 │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:122 =# │ │ for i = 1:sizeof(padSize) * 8 │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:123 =# │ │ sz = bitrotate(sz, 1) │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:124 =# │ │ if sz & padSize == sz │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:125 =# │ │ padCount += 1 │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:126 =# │ │ insert!(fieldVector, (idx + padCount) - 1, Symbol(:pad, padCount) => juliaPadType[sz]) │ │ end │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:129 =# │ │ end │ │ end │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:131 =# │ │ push!(offsets, newOffset) │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:132 =# │ │ prevfieldSize = fieldSize │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:133 =# │ │ end │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:134 =# │ │ potentialOffset = prevfieldSize + offsets[var"end"] │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:135 =# │ │ newOffset = div(potentialOffset, maxAlign, RoundUp) * maxAlign │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:136 =# │ │ padSize = newOffset - potentialOffset |> UInt8 │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:137 =# │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:137 =# @assert padSize >= 0 "pad size should be ≥ 0" │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:138 =# │ │ if padSize != 0 │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:139 =# │ │ sz = 0x80 │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:140 =# │ │ for i = 1:sizeof(padSize) * 8 │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:141 =# │ │ sz = bitrotate(sz, 1) │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:142 =# │ │ if sz & padSize == sz │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:143 =# │ │ padCount += 1 │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:144 =# │ │ push!(fieldVector, Symbol(:pad, padCount) => juliaPadType[sz]) │ │ end │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:147 =# │ │ end │ │ end │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:149 =# │ │ push!(offsets, newOffset) │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:150 =# │ │ unfields = [$(Expr(:quote, :($(Expr(:$, :key))::$(Expr(:$, :val))))) for (key, val) = fieldVector] │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:151 =# │ │ absType = if abstractType !== nothing │ │ $(Expr(:$, :abstractType)) │ │ else │ │ :Any │ │ end │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:152 =# │ │ Expr(:struct, false, $(Expr(:quote, :($(Expr(:$, :name)) <: $(Expr(:$, :absType))))), $(Expr(:quote, quote │ │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:152 =# │ │ $(Expr(:$, :(unfields...))) │ │ end))) |> eval │ │ end) │ │ st0 = │ │ SyntaxTree with attributes mod,kind,var_id,toplevel_pure,scope_type,macro_source,name_val,syntax_flags,meta,scope_layer,value,jl_source,is_toplevel_thunk,source,__macro_ctx__ │ │ [function] │ │ │ [call] │ │ │ makePaddedStruct :: Identifier │ │ │ [::] │ │ │ name :: Identifier │ │ │ Symbol :: Identifier │ │ │ [::] │ │ │ abstractType :: Identifier │ │ │ [curly] │ │ │ Union :: Identifier │ │ │ Nothing :: Identifier │ │ │ DataType :: Identifier │ │ │ [...] │ │ │ fields :: Identifier │ │ │ [block] │ │ │ [=] │ │ │ offsets :: Identifier │ │ │ [vect] │ │ │ 0 :: Value │ │ │ [=] │ │ │ prevfieldSize :: Identifier │ │ │ 0 :: Value │ │ │ [=] │ │ │ fieldVector :: Identifier │ │ │ [comprehension] │ │ │ [generator] │ │ │ [call] │ │ │ => :: Identifier │ │ │ key :: Identifier │ │ │ val :: Identifier │ │ │ [=] │ │ │ [tuple] │ │ │ key :: Identifier │ │ │ val :: Identifier │ │ │ [...] │ │ │ fields :: Identifier │ │ │ [=] │ │ │ padCount :: Identifier │ │ │ 0 :: Value │ │ │ [=] │ │ │ maxAlign :: Identifier │ │ │ 0 :: Value │ │ │ [for] │ │ │ [=] │ │ │ [tuple] │ │ │ idx :: Identifier │ │ │ [tuple] │ │ │ var :: Identifier │ │ │ field :: Identifier │ │ │ [call] │ │ │ enumerate :: Identifier │ │ │ [...] │ │ │ fields :: Identifier │ │ │ [block] │ │ │ [if] │ │ │ [call] │ │ │ == :: Identifier │ │ │ idx :: Identifier │ │ │ 1 :: Value │ │ │ [block] │ │ │ [=] │ │ │ maxAlign :: Identifier │ │ │ [call] │ │ │ [.] │ │ │ Base :: Identifier │ │ │ [inert] │ │ │ max :: Identifier │ │ │ maxAlign :: Identifier │ │ │ [call] │ │ │ alignof :: Identifier │ │ │ field :: Identifier │ │ │ [=] │ │ │ prevfieldSize :: Identifier │ │ │ [call] │ │ │ byteSize :: Identifier │ │ │ field :: Identifier │ │ │ [continue] │ │ │ [=] │ │ │ fieldSize :: Identifier │ │ │ [call] │ │ │ byteSize :: Identifier │ │ │ field :: Identifier │ │ │ [=] │ │ │ maxAlign :: Identifier │ │ │ [call] │ │ │ [.] │ │ │ Base :: Identifier │ │ │ [inert] │ │ │ max :: Identifier │ │ │ maxAlign :: Identifier │ │ │ [call] │ │ │ alignof :: Identifier │ │ │ field :: Identifier │ │ │ [=] │ │ │ potentialOffset :: Identifier │ │ │ [call] │ │ │ + :: Identifier │ │ │ prevfieldSize :: Identifier │ │ │ [ref] │ │ │ offsets :: Identifier │ │ │ end :: Identifier │ │ │ [=] │ │ │ newOffset :: Identifier │ │ │ [call] │ │ │ * :: Identifier │ │ │ [call] │ │ │ div :: Identifier │ │ │ potentialOffset :: Identifier │ │ │ [call] │ │ │ alignof :: Identifier │ │ │ field :: Identifier │ │ │ RoundUp :: Identifier │ │ │ [call] │ │ │ alignof :: Identifier │ │ │ field :: Identifier │ │ │ [=] │ │ │ padSize :: Identifier │ │ │ [call] │ │ │ |> :: Identifier │ │ │ [call] │ │ │ - :: Identifier │ │ │ newOffset :: Identifier │ │ │ potentialOffset :: Identifier │ │ │ UInt8 :: Identifier │ │ │ [macrocall] │ │ │ @assert :: Identifier │ │ │ :(#= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:119 =#) :: Value │ │ │ [call] │ │ │ >= :: Identifier │ │ │ padSize :: Identifier │ │ │ 0 :: Value │ │ │ "pad size should be ≥ 0" :: Value │ │ │ [if] │ │ │ [call] │ │ │ != :: Identifier │ │ │ padSize :: Identifier │ │ │ 0 :: Value │ │ │ [block] │ │ │ [=] │ │ │ sz :: Identifier │ │ │ 0x80 :: Value │ │ │ [for] │ │ │ [=] │ │ │ i :: Identifier │ │ │ [call] │ │ │ : :: Identifier │ │ │ 1 :: Value │ │ │ [call] │ │ │ * :: Identifier │ │ │ [call] │ │ │ sizeof :: Identifier │ │ │ padSize :: Identifier │ │ │ 8 :: Value │ │ │ [block] │ │ │ [=] │ │ │ sz :: Identifier │ │ │ [call] │ │ │ bitrotate :: Identifier │ │ │ sz :: Identifier │ │ │ 1 :: Value │ │ │ [if] │ │ │ [call] │ │ │ == :: Identifier │ │ │ [call] │ │ │ & :: Identifier │ │ │ sz :: Identifier │ │ │ padSize :: Identifier │ │ │ sz :: Identifier │ │ │ [block] │ │ │ [unknown_head] │ │ │ padCount :: Identifier │ │ │ 1 :: Value │ │ │ [call] │ │ │ insert! :: Identifier │ │ │ fieldVector :: Identifier │ │ │ [call] │ │ │ - :: Identifier │ │ │ [call] │ │ │ + :: Identifier │ │ │ idx :: Identifier │ │ │ padCount :: Identifier │ │ │ 1 :: Value │ │ │ [call] │ │ │ => :: Identifier │ │ │ [call] │ │ │ Symbol :: Identifier │ │ │ [inert] │ │ │ pad :: Identifier │ │ │ padCount :: Identifier │ │ │ [ref] │ │ │ juliaPadType :: Identifier │ │ │ sz :: Identifier │ │ │ [call] │ │ │ push! :: Identifier │ │ │ offsets :: Identifier │ │ │ newOffset :: Identifier │ │ │ [=] │ │ │ prevfieldSize :: Identifier │ │ │ fieldSize :: Identifier │ │ │ [=] │ │ │ potentialOffset :: Identifier │ │ │ [call] │ │ │ + :: Identifier │ │ │ prevfieldSize :: Identifier │ │ │ [ref] │ │ │ offsets :: Identifier │ │ │ end :: Identifier │ │ │ [=] │ │ │ newOffset :: Identifier │ │ │ [call] │ │ │ * :: Identifier │ │ │ [call] │ │ │ div :: Identifier │ │ │ potentialOffset :: Identifier │ │ │ maxAlign :: Identifier │ │ │ RoundUp :: Identifier │ │ │ maxAlign :: Identifier │ │ │ [=] │ │ │ padSize :: Identifier │ │ │ [call] │ │ │ |> :: Identifier │ │ │ [call] │ │ │ - :: Identifier │ │ │ newOffset :: Identifier │ │ │ potentialOffset :: Identifier │ │ │ UInt8 :: Identifier │ │ │ [macrocall] │ │ │ @assert :: Identifier │ │ │ :(#= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:137 =#) :: Value │ │ │ [call] │ │ │ >= :: Identifier │ │ │ padSize :: Identifier │ │ │ 0 :: Value │ │ │ "pad size should be ≥ 0" :: Value │ │ │ [if] │ │ │ [call] │ │ │ != :: Identifier │ │ │ padSize :: Identifier │ │ │ 0 :: Value │ │ │ [block] │ │ │ [=] │ │ │ sz :: Identifier │ │ │ 0x80 :: Value │ │ │ [for] │ │ │ [=] │ │ │ i :: Identifier │ │ │ [call] │ │ │ : :: Identifier │ │ │ 1 :: Value │ │ │ [call] │ │ │ * :: Identifier │ │ │ [call] │ │ │ sizeof :: Identifier │ │ │ padSize :: Identifier │ │ │ 8 :: Value │ │ │ [block] │ │ │ [=] │ │ │ sz :: Identifier │ │ │ [call] │ │ │ bitrotate :: Identifier │ │ │ sz :: Identifier │ │ │ 1 :: Value │ │ │ [if] │ │ │ [call] │ │ │ == :: Identifier │ │ │ [call] │ │ │ & :: Identifier │ │ │ sz :: Identifier │ │ │ padSize :: Identifier │ │ │ sz :: Identifier │ │ │ [block] │ │ │ [unknown_head] │ │ │ padCount :: Identifier │ │ │ 1 :: Value │ │ │ [call] │ │ │ push! :: Identifier │ │ │ fieldVector :: Identifier │ │ │ [call] │ │ │ => :: Identifier │ │ │ [call] │ │ │ Symbol :: Identifier │ │ │ [inert] │ │ │ pad :: Identifier │ │ │ padCount :: Identifier │ │ │ [ref] │ │ │ juliaPadType :: Identifier │ │ │ sz :: Identifier │ │ │ [call] │ │ │ push! :: Identifier │ │ │ offsets :: Identifier │ │ │ newOffset :: Identifier │ │ │ [=] │ │ │ unfields :: Identifier │ │ │ [comprehension] │ │ │ [generator] │ │ │ [quote] │ │ │ [::] │ │ │ [$] │ │ │ key :: Identifier │ │ │ [$] │ │ │ val :: Identifier │ │ │ [=] │ │ │ [tuple] │ │ │ key :: Identifier │ │ │ val :: Identifier │ │ │ fieldVector :: Identifier │ │ │ [=] │ │ │ absType :: Identifier │ │ │ [if] │ │ │ [call] │ │ │ !== :: Identifier │ │ │ abstractType :: Identifier │ │ │ nothing :: Identifier │ │ │ [quote] │ │ │ [$] │ │ │ abstractType :: Identifier │ │ │ [inert] │ │ │ Any :: Identifier │ │ │ [call] │ │ │ |> :: Identifier │ │ │ [call] │ │ │ Expr :: Identifier │ │ │ [inert] │ │ │ struct :: Identifier │ │ │ false :: Value │ │ │ [quote] │ │ │ [<:] │ │ │ [$] │ │ │ name :: Identifier │ │ │ [$] │ │ │ absType :: Identifier │ │ │ [quote] │ │ │ [block] │ │ │ [$] │ │ │ [...] │ │ │ unfields :: Identifier │ │ │ eval :: Identifier │ │ │ │ │ st1 = │ │ SyntaxTree with attributes mod,kind,var_id,toplevel_pure,scope_type,macro_source,name_val,syntax_flags,meta,scope_layer,value,jl_source,is_toplevel_thunk,source │ │ [function] │ │ │ [call] │ │ │ makePaddedStruct :: Identifier │ scope_layer=1 │ │ [::] │ │ │ name :: Identifier │ scope_layer=1 │ │ Symbol :: Identifier │ scope_layer=1 │ │ [::] │ │ │ abstractType :: Identifier │ scope_layer=1 │ │ [curly] │ │ │ Union :: Identifier │ scope_layer=1 │ │ Nothing :: Identifier │ scope_layer=1 │ │ DataType :: Identifier │ scope_layer=1 │ │ [...] │ │ │ fields :: Identifier │ scope_layer=1 │ │ [block] │ │ │ [=] │ │ │ offsets :: Identifier │ scope_layer=1 │ │ [vect] │ │ │ 0 :: Value │ │ │ [=] │ │ │ prevfieldSize :: Identifier │ scope_layer=1 │ │ 0 :: Value │ │ │ [=] │ │ │ fieldVector :: Identifier │ scope_layer=1 │ │ [comprehension] │ │ │ [generator] │ │ │ [call] │ │ │ => :: Identifier │ scope_layer=1 │ │ key :: Identifier │ scope_layer=1 │ │ val :: Identifier │ scope_layer=1 │ │ [=] │ │ │ [tuple] │ │ │ key :: Identifier │ scope_layer=1 │ │ val :: Identifier │ scope_layer=1 │ │ [...] │ │ │ fields :: Identifier │ scope_layer=1 │ │ [=] │ │ │ padCount :: Identifier │ scope_layer=1 │ │ 0 :: Value │ │ │ [=] │ │ │ maxAlign :: Identifier │ scope_layer=1 │ │ 0 :: Value │ │ │ [for] │ │ │ [=] │ │ │ [tuple] │ │ │ idx :: Identifier │ scope_layer=1 │ │ [tuple] │ │ │ var :: Identifier │ scope_layer=1 │ │ field :: Identifier │ scope_layer=1 │ │ [call] │ │ │ enumerate :: Identifier │ scope_layer=1 │ │ [...] │ │ │ fields :: Identifier │ scope_layer=1 │ │ [block] │ │ │ [if] │ │ │ [call] │ │ │ == :: Identifier │ scope_layer=1 │ │ idx :: Identifier │ scope_layer=1 │ │ 1 :: Value │ │ │ [block] │ │ │ [=] │ │ │ maxAlign :: Identifier │ scope_layer=1 │ │ [call] │ │ │ [.] │ │ │ Base :: Identifier │ scope_layer=1 │ │ [inert] │ │ │ max :: Identifier │ │ │ maxAlign :: Identifier │ scope_layer=1 │ │ [call] │ │ │ alignof :: Identifier │ scope_layer=1 │ │ field :: Identifier │ scope_layer=1 │ │ [=] │ │ │ prevfieldSize :: Identifier │ scope_layer=1 │ │ [call] │ │ │ byteSize :: Identifier │ scope_layer=1 │ │ field :: Identifier │ scope_layer=1 │ │ [continue] │ │ │ [=] │ │ │ fieldSize :: Identifier │ scope_layer=1 │ │ [call] │ │ │ byteSize :: Identifier │ scope_layer=1 │ │ field :: Identifier │ scope_layer=1 │ │ [=] │ │ │ maxAlign :: Identifier │ scope_layer=1 │ │ [call] │ │ │ [.] │ │ │ Base :: Identifier │ scope_layer=1 │ │ [inert] │ │ │ max :: Identifier │ │ │ maxAlign :: Identifier │ scope_layer=1 │ │ [call] │ │ │ alignof :: Identifier │ scope_layer=1 │ │ field :: Identifier │ scope_layer=1 │ │ [=] │ │ │ potentialOffset :: Identifier │ scope_layer=1 │ │ [call] │ │ │ + :: Identifier │ scope_layer=1 │ │ prevfieldSize :: Identifier │ scope_layer=1 │ │ [ref] │ │ │ offsets :: Identifier │ scope_layer=1 │ │ end :: Identifier │ scope_layer=1 │ │ [=] │ │ │ newOffset :: Identifier │ scope_layer=1 │ │ [call] │ │ │ * :: Identifier │ scope_layer=1 │ │ [call] │ │ │ div :: Identifier │ scope_layer=1 │ │ potentialOffset :: Identifier │ scope_layer=1 │ │ [call] │ │ │ alignof :: Identifier │ scope_layer=1 │ │ field :: Identifier │ scope_layer=1 │ │ RoundUp :: Identifier │ scope_layer=1 │ │ [call] │ │ │ alignof :: Identifier │ scope_layer=1 │ │ field :: Identifier │ scope_layer=1 │ │ [=] │ │ │ padSize :: Identifier │ scope_layer=1 │ │ [call] │ │ │ |> :: Identifier │ scope_layer=1 │ │ [call] │ │ │ - :: Identifier │ scope_layer=1 │ │ newOffset :: Identifier │ scope_layer=1 │ │ potentialOffset :: Identifier │ scope_layer=1 │ │ UInt8 :: Identifier │ scope_layer=1 │ │ [if] │ │ │ [call] │ │ │ >= :: Identifier │ scope_layer=1 │ │ padSize :: Identifier │ scope_layer=1 │ │ 0 :: Value │ macro_source=128 │ │ nothing :: Value │ macro_source=128 │ │ [call] │ │ │ throw :: Identifier │ scope_layer=2 │ │ [call] │ │ │ AssertionError :: Identifier │ scope_layer=2 │ │ "pad size should be ≥ 0" :: Value │ macro_source=128 │ │ [if] │ │ │ [call] │ │ │ != :: Identifier │ scope_layer=1 │ │ padSize :: Identifier │ scope_layer=1 │ │ 0 :: Value │ │ │ [block] │ │ │ [=] │ │ │ sz :: Identifier │ scope_layer=1 │ │ 0x80 :: Value │ │ │ [for] │ │ │ [=] │ │ │ i :: Identifier │ scope_layer=1 │ │ [call] │ │ │ : :: Identifier │ scope_layer=1 │ │ 1 :: Value │ │ │ [call] │ │ │ * :: Identifier │ scope_layer=1 │ │ [call] │ │ │ sizeof :: Identifier │ scope_layer=1 │ │ padSize :: Identifier │ scope_layer=1 │ │ 8 :: Value │ │ │ [block] │ │ │ [=] │ │ │ sz :: Identifier │ scope_layer=1 │ │ [call] │ │ │ bitrotate :: Identifier │ scope_layer=1 │ │ sz :: Identifier │ scope_layer=1 │ │ 1 :: Value │ │ │ [if] │ │ │ [call] │ │ │ == :: Identifier │ scope_layer=1 │ │ [call] │ │ │ & :: Identifier │ scope_layer=1 │ │ sz :: Identifier │ scope_layer=1 │ │ padSize :: Identifier │ scope_layer=1 │ │ sz :: Identifier │ scope_layer=1 │ │ [block] │ │ │ [unknown_head] │ scope_layer=1 │ │ padCount :: Identifier │ scope_layer=1 │ │ 1 :: Value │ │ │ [call] │ │ │ insert! :: Identifier │ scope_layer=1 │ │ fieldVector :: Identifier │ scope_layer=1 │ │ [call] │ │ │ - :: Identifier │ scope_layer=1 │ │ [call] │ │ │ + :: Identifier │ scope_layer=1 │ │ idx :: Identifier │ scope_layer=1 │ │ padCount :: Identifier │ scope_layer=1 │ │ 1 :: Value │ │ │ [call] │ │ │ => :: Identifier │ scope_layer=1 │ │ [call] │ │ │ Symbol :: Identifier │ scope_layer=1 │ │ [inert] │ │ │ pad :: Identifier │ │ │ padCount :: Identifier │ scope_layer=1 │ │ [ref] │ │ │ juliaPadType :: Identifier │ scope_layer=1 │ │ sz :: Identifier │ scope_layer=1 │ │ [call] │ │ │ push! :: Identifier │ scope_layer=1 │ │ offsets :: Identifier │ scope_layer=1 │ │ newOffset :: Identifier │ scope_layer=1 │ │ [=] │ │ │ prevfieldSize :: Identifier │ scope_layer=1 │ │ fieldSize :: Identifier │ scope_layer=1 │ │ [=] │ │ │ potentialOffset :: Identifier │ scope_layer=1 │ │ [call] │ │ │ + :: Identifier │ scope_layer=1 │ │ prevfieldSize :: Identifier │ scope_layer=1 │ │ [ref] │ │ │ offsets :: Identifier │ scope_layer=1 │ │ end :: Identifier │ scope_layer=1 │ │ [=] │ │ │ newOffset :: Identifier │ scope_layer=1 │ │ [call] │ │ │ * :: Identifier │ scope_layer=1 │ │ [call] │ │ │ div :: Identifier │ scope_layer=1 │ │ potentialOffset :: Identifier │ scope_layer=1 │ │ maxAlign :: Identifier │ scope_layer=1 │ │ RoundUp :: Identifier │ scope_layer=1 │ │ maxAlign :: Identifier │ scope_layer=1 │ │ [=] │ │ │ padSize :: Identifier │ scope_layer=1 │ │ [call] │ │ │ |> :: Identifier │ scope_layer=1 │ │ [call] │ │ │ - :: Identifier │ scope_layer=1 │ │ newOffset :: Identifier │ scope_layer=1 │ │ potentialOffset :: Identifier │ scope_layer=1 │ │ UInt8 :: Identifier │ scope_layer=1 │ │ [if] │ │ │ [call] │ │ │ >= :: Identifier │ scope_layer=1 │ │ padSize :: Identifier │ scope_layer=1 │ │ 0 :: Value │ macro_source=232 │ │ nothing :: Value │ macro_source=232 │ │ [call] │ │ │ throw :: Identifier │ scope_layer=3 │ │ [call] │ │ │ AssertionError :: Identifier │ scope_layer=3 │ │ "pad size should be ≥ 0" :: Value │ macro_source=232 │ │ [if] │ │ │ [call] │ │ │ != :: Identifier │ scope_layer=1 │ │ padSize :: Identifier │ scope_layer=1 │ │ 0 :: Value │ │ │ [block] │ │ │ [=] │ │ │ sz :: Identifier │ scope_layer=1 │ │ 0x80 :: Value │ │ │ [for] │ │ │ [=] │ │ │ i :: Identifier │ scope_layer=1 │ │ [call] │ │ │ : :: Identifier │ scope_layer=1 │ │ 1 :: Value │ │ │ [call] │ │ │ * :: Identifier │ scope_layer=1 │ │ [call] │ │ │ sizeof :: Identifier │ scope_layer=1 │ │ padSize :: Identifier │ scope_layer=1 │ │ 8 :: Value │ │ │ [block] │ │ │ [=] │ │ │ sz :: Identifier │ scope_layer=1 │ │ [call] │ │ │ bitrotate :: Identifier │ scope_layer=1 │ │ sz :: Identifier │ scope_layer=1 │ │ 1 :: Value │ │ │ [if] │ │ │ [call] │ │ │ == :: Identifier │ scope_layer=1 │ │ [call] │ │ │ & :: Identifier │ scope_layer=1 │ │ sz :: Identifier │ scope_layer=1 │ │ padSize :: Identifier │ scope_layer=1 │ │ sz :: Identifier │ scope_layer=1 │ │ [block] │ │ │ [unknown_head] │ scope_layer=1 │ │ padCount :: Identifier │ scope_layer=1 │ │ 1 :: Value │ │ │ [call] │ │ │ push! :: Identifier │ scope_layer=1 │ │ fieldVector :: Identifier │ scope_layer=1 │ │ [call] │ │ │ => :: Identifier │ scope_layer=1 │ │ [call] │ │ │ Symbol :: Identifier │ scope_layer=1 │ │ [inert] │ │ │ pad :: Identifier │ │ │ padCount :: Identifier │ scope_layer=1 │ │ [ref] │ │ │ juliaPadType :: Identifier │ scope_layer=1 │ │ sz :: Identifier │ scope_layer=1 │ │ [call] │ │ │ push! :: Identifier │ scope_layer=1 │ │ offsets :: Identifier │ scope_layer=1 │ │ newOffset :: Identifier │ scope_layer=1 │ │ [=] │ │ │ unfields :: Identifier │ scope_layer=1 │ │ [comprehension] │ │ │ [generator] │ │ │ [call] │ jl_source=L67 │ │ Base.JuliaLowering.interpolate_ast :: Value │ jl_source=L67 │ │ Expr :: Value │ jl_source=L67 │ │ [inert] │ jl_source=L67 │ │ [::] │ │ │ [$] │ │ │ key :: Identifier │ │ │ [$] │ │ │ val :: Identifier │ │ │ [tuple] │ jl_source=L31 │ │ key :: Identifier │ scope_layer=1 │ │ [tuple] │ jl_source=L31 │ │ val :: Identifier │ scope_layer=1 │ │ [=] │ │ │ [tuple] │ │ │ key :: Identifier │ scope_layer=1 │ │ val :: Identifier │ scope_layer=1 │ │ fieldVector :: Identifier │ scope_layer=1 │ │ [=] │ │ │ absType :: Identifier │ scope_layer=1 │ │ [if] │ │ │ [call] │ │ │ !== :: Identifier │ scope_layer=1 │ │ abstractType :: Identifier │ scope_layer=1 │ │ nothing :: Identifier │ scope_layer=1 │ │ [call] │ jl_source=L67 │ │ Base.JuliaLowering.interpolate_ast :: Value │ jl_source=L67 │ │ Expr :: Value │ jl_source=L67 │ │ [inert] │ jl_source=L67 │ │ [$] │ │ │ abstractType :: Identifier │ │ │ [tuple] │ jl_source=L31 │ │ abstractType :: Identifier │ scope_layer=1 │ │ [inert] │ │ │ Any :: Identifier │ │ │ [call] │ │ │ |> :: Identifier │ scope_layer=1 │ │ [call] │ │ │ Expr :: Identifier │ scope_layer=1 │ │ [inert] │ │ │ struct :: Identifier │ │ │ false :: Value │ │ │ [call] │ jl_source=L67 │ │ Base.JuliaLowering.interpolate_ast :: Value │ jl_source=L67 │ │ Expr :: Value │ jl_source=L67 │ │ [inert] │ jl_source=L67 │ │ [<:] │ │ │ [$] │ │ │ name :: Identifier │ │ │ [$] │ │ │ absType :: Identifier │ │ │ [tuple] │ jl_source=L31 │ │ name :: Identifier │ scope_layer=1 │ │ [tuple] │ jl_source=L31 │ │ absType :: Identifier │ scope_layer=1 │ │ [call] │ jl_source=L67 │ │ Base.JuliaLowering.interpolate_ast :: Value │ jl_source=L67 │ │ Expr :: Value │ jl_source=L67 │ │ [inert] │ jl_source=L67 │ │ [block] │ │ │ [$] │ │ │ [...] │ │ │ unfields :: Identifier │ │ │ [tuple] │ jl_source=L31 │ │ [...] │ │ │ unfields :: Identifier │ scope_layer=1 │ │ eval :: Identifier │ scope_layer=1 │ │ │ │ file = "/home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl" │ │ line = 102 │ └ mod = WGSLTypes │ ERROR: LoadError: LoweringError: │ #= /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:105 =# - unexpected `...` │ splatting can only be done into a `call`, `tuple`, `curly`, or array-like expression │ Expression: │ (... fields) │ Containing expressions: │ (comprehension (generator (call => key val) (= (tuple key val) (... fields)))) │ │ Detailed provenance: │ (... fields) │ └─ (... fields) │ └─ @ /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:105 │ │ Stacktrace: │ [1] expand_forms_2(ctx::Base.JuliaLowering.MacroExpansionContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}}) │ @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/desugaring.jl:4448 │ [2] core_lowering_hook(code::Any, mod::Module, file::String, line::UInt64, world::UInt64, _warn::Bool) │ @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/hooks.jl:30 │ [3] include(mapexpr::Function, mod::Module, _path::String) │ @ Base Base.jl:327 │ [4] top-level scope │ @ ~/.julia/packages/WGSLTypes/defJ0/src/WGSLTypes.jl:22 │ [5] include(mod::Module, _path::String) │ @ Base Base.jl:326 │ [6] include_package_for_output(pkg::Base.PkgId, input::String, syntax_version::VersionNumber, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing) │ @ Base loading.jl:3296 │ [7] top-level scope │ @ stdin:5 │ [8] eval(m::Module, e::Any) │ @ Core boot.jl:521 │ [9] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String) │ @ Base loading.jl:3132 │ [10] include_string(m::Module, txt::String, fname::String) │ @ Base loading.jl:3142 [inlined] │ [11] exec_options(opts::Base.JLOptions) │ @ Base client.jl:353 │ [12] _start() │ @ Base client.jl:596 │ in expression starting at /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/structUtils.jl:102 │ in expression starting at /home/pkgeval/.julia/packages/WGSLTypes/defJ0/src/WGSLTypes.jl:1 │ in expression starting at stdin:5 └ ┌ WGPUTranspiler │ [Output was shown above] └ ERROR: The following 2 packages failed to precompile: WGSLTypes Failed to precompile WGSLTypes [8cf5275a-6167-4820-ac24-74d7d0e6cf05] to "/home/pkgeval/.julia/compiled/v1.14/WGSLTypes/jl_ytqfPa" (ProcessExited(1)). WGPUTranspiler Failed to precompile WGPUTranspiler [e2278aa8-582f-4560-9362-4c5cc370c803] to "/home/pkgeval/.julia/compiled/v1.14/WGPUTranspiler/jl_hR5IJb" (ProcessExited(1)). Loading failed after 185.78s ERROR: LoadError: failed process: Process(`/opt/julia/bin/julia -C native -J/opt/julia/lib/julia/sys.so -g1 --check-bounds=yes --inline=yes --check-bounds=yes --pkgimages=existing -e 'using WGPUTranspiler'`, ProcessExited(1)) [1] Stacktrace: [1] pipeline_error(proc::Base.Process) @ Base process.jl:612 [inlined] [2] run(::Cmd; wait::Bool) @ Base process.jl:525 [3] run(::Cmd) @ Base process.jl:522 [4] top-level scope @ /PkgEval.jl/scripts/evaluate.jl:197 [5] include(mod::Module, _path::String) @ Base Base.jl:326 [6] exec_options(opts::Base.JLOptions) @ Base client.jl:355 [7] _start() @ Base client.jl:596 in expression starting at /PkgEval.jl/scripts/evaluate.jl:188 PkgEval failed after 1430.45s: package fails to precompile