dfinity / motoko

Simple high-level language for writing Internet Computer canisters
Apache License 2.0
508 stars 98 forks source link

Fatal error: exception Codegen.Compile.CodegenError("internal error: const \"$loop/0\": captures \"$nxt/24\", not found in static environment\n") #2901

Closed flyq closed 1 year ago

flyq commented 2 years ago
make test
make -C test
[INFO] Installing 2 packages
[INFO] Installation complete.
.vessel/.bin/0.6.5/moc --package base .vessel/base/927119e172964f4038ebc7018f9cc1b688544bfa/src --package matchers .vessel/matchers/v1.2.0/src -wasi-system-api -o Test.wasm Test.mo && wasmtime Test.wasm
OOPS! You've triggered a compiler bug.
Please report this at https://github.com/dfinity/motoko/issues/new with the following details:

Motoko 0.6.5 (source ac3psafn-rp9bj68x-67s21qfv-z7fygv81)

Fatal error: exception Codegen.Compile.CodegenError("internal error: const \"$loop/0\": captures \"$nxt/24\", not found in static environment\n")
Raised at Codegen__Compile.fatal.(fun) in file "codegen/compile.ml", line 47, characters 42-64
Called from Stdlib__list.iter in file "list.ml", line 110, characters 12-15
Called from Codegen__Compile.compile_const_exp.mk_body in file "codegen/compile.ml", line 7885, characters 8-238
Called from Codegen__Compile.FuncDec.compile_local_function.(fun) in file "codegen/compile.ml", line 5583, characters 20-37
Called from Codegen__Compile.Func.of_body in file "codegen/compile.ml", line 685, characters 6-18
Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml", line 31, characters 17-27
Re-raised at CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml", line 36, characters 4-11
Called from Lib.AllocOnUse.def in file "lib/lib.ml", line 499, characters 13-28
Called from Codegen__Compile.compile_dec.(fun) in file "codegen/compile.ml", line 7833, characters 39-50
Called from Codegen__Compile.compile_dec.(fun) in file "codegen/compile.ml", line 7818, characters 30-42
Called from Codegen__Compile.compile_decs_public.(fun) in file "codegen/compile.ml", line 7869, characters 39-61
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7461, characters 9-21
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7460, characters 22-45
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp in file "codegen/compile.ml", line 7500, characters 19-40
Called from Codegen__Compile.compile_exp_as_opt in file "codegen/compile.ml", line 7574, characters 20-40
Called from Codegen__Compile.compile_dec.(fun) in file "codegen/compile.ml", line 7838, characters 17-54
Called from Codegen__Compile.compile_dec.(fun) in file "codegen/compile.ml", line 7818, characters 30-42
Called from Codegen__Compile.compile_decs_public.go.(fun) in file "codegen/compile.ml", line 7866, characters 44-62
Called from Codegen__Compile.compile_decs_public.(fun) in file "codegen/compile.ml", line 7869, characters 39-61
Called from Codegen__Compile.Func.of_body in file "codegen/compile.ml", line 685, characters 6-18
Called from CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml", line 31, characters 17-27
Re-raised at CamlinternalLazy.force_lazy_block in file "camlinternalLazy.ml", line 36, characters 4-11
Called from Lib.AllocOnUse.use in file "lib/lib.ml", line 514, characters 13-28
Called from Codegen__Compile.E.built_in in file "codegen/compile.ml" (inlined), line 401, characters 4-49
Called from Codegen__Compile.IC.export_wasi_start.(fun) in file "codegen/compile.ml", line 3468, characters 20-43
Called from Codegen__Compile.Func.of_body in file "codegen/compile.ml", line 685, characters 6-18
Called from Codegen__Compile.IC.export_wasi_start in file "codegen/compile.ml", line 3466, characters 36-215
Called from Codegen__Compile.compile in file "codegen/compile.ml", line 8170, characters 6-30
Called from Pipeline.compile_files in file "pipeline/pipeline.ml", line 647, characters 14-53
Called from Diag.bind in file "lang_utils/diag.ml", line 32, characters 27-30
Called from Diag.bind in file "lang_utils/diag.ml", line 32, characters 27-30
Called from Moc.process_files in file "exes/moc.ml", line 148, characters 37-82
Called from Moc in file "exes/moc.ml", line 210, characters 4-23
make[1]: *** [default] Error 2
make: *** [test] Error 2
flyq commented 2 years ago

I fix this by modifing my motoko code.

the code able to compile successfully but fail to pass the test:

import lib "./lib";
import Blob "mo:base/Blob";
import Iter "mo:base/Iter";
import Text "mo:base/Text";
import Result "mo:base/Result";

module {
    public type ParseAlphabetError = {
        #InvalidLength;
        #DuplicatedByte: Nat8;
        #UnprintableByte: Nat8;
        #ReservedByte: Nat8;
    };

    public class Alphabet() {
        public var symbols: [var Nat8] = [var];
        let ALPHABET_SIZE: Nat = 64;

        func from_str_unchecked(alphabet: Text) : Alphabet {
            let a = Alphabet();
            let source_bytes = Blob.toArray(Text.encodeUtf8(alphabet));

            for (i in Iter.range(0, ALPHABET_SIZE-1)) {
                a.symbols[i] := source_bytes[i];
            };
            a
        };

        public func from_str(alphabet: Text) : Result.Result<Alphabet, ParseAlphabetError> {
            let bytes = Blob.toArray(Text.encodeUtf8(alphabet));
            if (bytes.size() != ALPHABET_SIZE) {
                return #err(#InvalidLength);
            };

            var index = 0;
            while (index < ALPHABET_SIZE) {
                let byte = bytes[index];

                if (not (byte >= 32 and byte <= 126)) {
                    return #err(#UnprintableByte(byte));
                };
                if (byte == lib.PAD_BYTE) {
                    return #err(#ReservedByte(byte));
                };

                // Check for duplicates while staying within what const allows.
                // It's n^2, but only over 64 hot bytes, and only once, so it's likely in the single digit
                // microsecond range.

                var probe_index = 0;
                label w while (probe_index < ALPHABET_SIZE) {
                    if (probe_index == index) {
                        probe_index += 1;
                        continue w;
                    };

                    let probe_byte = bytes[probe_index];

                    if (byte == probe_byte) {
                        return #err(#DuplicatedByte(byte));
                    };

                    probe_index += 1;
                };
                index += 1;
            };
            #ok(from_str_unchecked(alphabet))
        };

        /// The standard alphabet (uses `+` and `/`).
        /// See [RFC 3548](https://tools.ietf.org/html/rfc3548#section-3).
        public let STANDARD: Alphabet = from_str_unchecked("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/");

        /// The URL safe alphabet (uses `-` and `_`).
        /// See [RFC 3548](https://tools.ietf.org/html/rfc3548#section-4).
        public let URL_SAFE: Alphabet = from_str_unchecked("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_");

        /// The `crypt(3)` alphabet (uses `.` and `/` as the first two values).
        /// Not standardized, but folk wisdom on the net asserts that this alphabet is what crypt uses.
        public let CRYPT: Alphabet = from_str_unchecked("./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");

        /// The bcrypt alphabet.
        public let BCRYPT: Alphabet = from_str_unchecked("./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789");

        /// The alphabet used in IMAP-modified UTF-7 (uses `+` and `,`).
        /// See [RFC 3501](https://tools.ietf.org/html/rfc3501#section-5.1.3)
        public let IMAP_MUTF7: Alphabet = from_str_unchecked("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+,");

        /// The alphabet used in BinHex 4.0 files.
        /// See [BinHex 4.0 Definition](http://files.stairways.com/other/binhex-40-specs-info.txt)
        public let BIN_HEX: Alphabet = from_str_unchecked("!\"#$%&'()*+,-0123456789@ABCDEFGHIJKLMNPQRSTUVXYZ[`abcdehijklmpqr");
    };
};

Able to compile successfully and pass the test:

import Lib "./lib";
import Blob "mo:base/Blob";
import Text "mo:base/Text";
import Result "mo:base/Result";

module {
    public type ParseAlphabetError = {
        #InvalidLength;
        #DuplicatedByte: Nat8;
        #UnprintableByte: Nat8;
        #ReservedByte: Nat8;
    };
    public let PAD_BYTE: Nat8 = 61; // b'='

    public class Alphabet() {
        public var symbols: [var Nat8] = [var];
        let ALPHABET_SIZE: Nat = 64;

        public func from_str_unchecked(alphabet: Text) {
            let source_bytes = Blob.toArray(Text.encodeUtf8(alphabet));
            var index = 0;
            while (index < ALPHABET_SIZE) {
                symbols[index] := source_bytes[index];
                index += 1;
            };
        };

        public func from_str(alphabet: Text) : Result.Result<Alphabet, ParseAlphabetError> {
            let bytes = Blob.toArray(Text.encodeUtf8(alphabet));
            if (bytes.size() != ALPHABET_SIZE) {
                return #err(#InvalidLength);
            };
            var index = 0;
            while (index < ALPHABET_SIZE) {
                let byte = bytes[index];
                if (not (byte >= 32 and byte <= 126)) {
                    return #err(#UnprintableByte(byte));
                };
                if (byte == Lib.PAD_BYTE) {
                    return #err(#ReservedByte(byte));
                };
                // Check for duplicates while staying within what const allows.
                // It's n^2, but only over 64 hot bytes, and only once, so it's likely in the single digit
                // microsecond range.
                var probe_index = index+1;
                while (probe_index < ALPHABET_SIZE) {
                    if (byte == bytes[probe_index]) {
                        return #err(#DuplicatedByte(byte));
                    };
                    probe_index += 1;
                };
                index += 1;
            };
            let a = Alphabet();
            a.from_str_unchecked(alphabet);
            #ok(a)
        };
    };

    /// The standard alphabet (uses `+` and `/`).
    /// See [RFC 3548](https://tools.ietf.org/html/rfc3548#section-3).
    public func STANDARD() : Alphabet {
        let a = Alphabet();
        a.from_str_unchecked("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/");
        a
    };

    /// The URL safe alphabet (uses `-` and `_`).
    /// See [RFC 3548](https://tools.ietf.org/html/rfc3548#section-4).
    public func URL_SAFE() : Alphabet {
        let a = Alphabet();
        a.from_str_unchecked("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_");
        a
    };

    /// The `crypt(3)` alphabet (uses `.` and `/` as the first two values).
    /// Not standardized, but folk wisdom on the net asserts that this alphabet is what crypt uses.
    public func CRYPT() : Alphabet {
        let a = Alphabet();
        a.from_str_unchecked("./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");
        a
    };

    /// The bcrypt alphabet.
    public func BCRYPT() : Alphabet {
        let a = Alphabet();
        a.from_str_unchecked("./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789");
        a
    };

    /// The alphabet used in IMAP-modified UTF-7 (uses `+` and `,`).
    /// See [RFC 3501](https://tools.ietf.org/html/rfc3501#section-5.1.3)
    public func IMAP_MUTF7() : Alphabet {
        let a = Alphabet();
        a.from_str_unchecked("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+,");
        a
    };

    /// The alphabet used in BinHex 4.0 files.
    /// See [BinHex 4.0 Definition](http://files.stairways.com/other/binhex-40-specs-info.txt)
    public func BIN_HEX() : Alphabet {
        let a = Alphabet();
        a.from_str_unchecked("!\"#$%&'()*+,-0123456789@ABCDEFGHIJKLMNPQRSTUVXYZ[`abcdehijklmpqr");
        a
    };
};
nomeata commented 2 years ago

Didn't we have a similar issue a few months ago? Maybe someone can try to reproduce with current master, maybe it's already fixed.