Open
Description
Wasm file
Building above Wasm file yourself
- Get Golang (
go version go1.24.3 windows/amd64
) - Get TypeScript-Go source code: https://github.com/microsoft/typescript-go
- Run this from
cmd/tsgo
(ie. https://github.com/microsoft/typescript-go/tree/acba54037b336071b79cd11348318d16f15f87e7/cmd/tsgo)
GOOS=wasip1 GOARCH=wasm go build -o tsgo.wasm
Error
Unhandled exception at 0x00007FF8116E08EE (msvcp140d.dll) in wasm2c.exe: 0xC00000FD: Stack overflow (parameters: 0x0000000000000001, 0x00000073D36D3FD8).
Stack
msvcp140d.dll!00007ff8116e08ee() Unknown
msvcp140d.dll!00007ff8116deb86() Unknown
> wasm2c.exe!std::vector<unsigned char,std::allocator<unsigned char>>::_Orphan_range_locked(unsigned char * _First, unsigned char * _Last) Line 2192 C++
wasm2c.exe!std::vector<unsigned char,std::allocator<unsigned char>>::_Orphan_range(unsigned char * _First, unsigned char * _Last) Line 2204 C++
wasm2c.exe!std::vector<unsigned char,std::allocator<unsigned char>>::_Resize<std::_Value_init_tag>(const unsigned __int64 _Newsize, const std::_Value_init_tag & _Val) Line 1606 C++
wasm2c.exe!std::vector<unsigned char,std::allocator<unsigned char>>::resize(const unsigned __int64 _Newsize) Line 1615 C++
wasm2c.exe!wabt::MemoryStream::WriteDataImpl(unsigned __int64 dst_offset, const void * src, unsigned __int64 size) Line 198 C++
wasm2c.exe!wabt::Stream::WriteDataAt(unsigned __int64 at, const void * src, unsigned __int64 size, const char * desc, wabt::PrintChars print_chars) Line 50 C++
wasm2c.exe!wabt::Stream::WriteData(const void * src, unsigned __int64 size, const char * desc, wabt::PrintChars print_chars) Line 58 C++
wasm2c.exe!wabt::`anonymous namespace'::CWriter::WriteIndent() Line 1075 C++
wasm2c.exe!wabt::`anonymous namespace'::CWriter::WriteData(const char * src, unsigned __int64 size) Line 1082 C++
wasm2c.exe!wabt::`anonymous namespace'::CWriter::Write(std::basic_string_view<char,std::char_traits<char>> s) Line 1120 C++
wasm2c.exe!wabt::`anonymous namespace'::CWriter::Write(const wabt::`anonymous-namespace'::StackVar & sv) Line 1225 C++
wasm2c.exe!wabt::`anonymous namespace'::CWriter::Write<wabt::`anonymous namespace'::StackVar,char const (&)[4],wabt::Var const &,char const (&)[2],wabt::A0x53a8590c::Newline>(wabt::`anonymous-namespace'::StackVar && t, const char[4] & u, const wabt::Var & <args_0>, const char[2] & <args_1>, wabt::`anonymous-namespace'::Newline && <args_2>) Line 324 C++
wasm2c.exe!wabt::`anonymous namespace'::CWriter::Write(const wabt::intrusive_list<wabt::Expr> & exprs) Line 3766 C++
wasm2c.exe!wabt::`anonymous namespace'::CWriter::Write<wabt::intrusive_list<wabt::Expr> const &,wabt::`anonymous namespace'::LabelDecl>(const wabt::intrusive_list<wabt::Expr> & t, wabt::`anonymous-namespace'::LabelDecl && u) Line 325 C++
wasm2c.exe!wabt::`anonymous namespace'::CWriter::Write(const wabt::Block & block) Line 3330 C++
wasm2c.exe!wabt::`anonymous namespace'::CWriter::Write(const wabt::intrusive_list<wabt::Expr> & exprs) Line 3599 C++
wasm2c.exe!wabt::`anonymous namespace'::CWriter::Write<wabt::intrusive_list<wabt::Expr> const &,wabt::`anonymous namespace'::LabelDecl>(const wabt::intrusive_list<wabt::Expr> & t, wabt::`anonymous-namespace'::LabelDecl && u) Line 325 C++
wasm2c.exe!wabt::`anonymous namespace'::CWriter::Write(const wabt::Block & block) Line 3330 C++
wasm2c.exe!wabt::`anonymous namespace'::CWriter::Write(const wabt::intrusive_list<wabt::Expr> & exprs) Line 3599 C++
wasm2c.exe!wabt::`anonymous namespace'::CWriter::Write<wabt::intrusive_list<wabt::Expr> const &,wabt::`anonymous namespace'::LabelDecl>(const wabt::intrusive_list<wabt::Expr> & t, wabt::`anonymous-namespace'::LabelDecl && u) Line 325 C++
wasm2c.exe!wabt::`anonymous namespace'::CWriter::Write(const wabt::Block & block) Line 3330 C++
wasm2c.exe!wabt::`anonymous namespace'::CWriter::Write(const wabt::intrusive_list<wabt::Expr> & exprs) Line 3599 C++
wasm2c.exe!wabt::`anonymous namespace'::CWriter::Write<wabt::intrusive_list<wabt::Expr> const &,wabt::`anonymous namespace'::LabelDecl>(const wabt::intrusive_list<wabt::Expr> & t, wabt::`anonymous-namespace'::LabelDecl && u) Line 325 C++
wasm2c.exe!wabt::`anonymous namespace'::CWriter::Write(const wabt::Block & block) Line 3330 C++
wasm2c.exe!wabt::`anonymous namespace'::CWriter::Write(const wabt::intrusive_list<wabt::Expr> & exprs) Line 3599 C++
wasm2c.exe!wabt::`anonymous namespace'::CWriter::Write<wabt::intrusive_list<wabt::Expr> const &,wabt::`anonymous namespace'::LabelDecl>(const wabt::intrusive_list<wabt::Expr> & t, wabt::`anonymous-namespace'::LabelDecl && u) Line 325 C++
wasm2c.exe!wabt::`anonymous namespace'::CWriter::Write(const wabt::Block & block) Line 3330 C++
wasm2c.exe!wabt::`anonymous namespace'::CWriter::Write(const wabt::intrusive_list<wabt::Expr> & exprs) Line 3599 C++
wasm2c.exe!wabt::`anonymous namespace'::CWriter::Write<wabt::intrusive_list<wabt::Expr> const &,wabt::`anonymous namespace'::LabelDecl>(const wabt::intrusive_list<wabt::Expr> & t, wabt::`anonymous-namespace'::LabelDecl && u) Line 325 C++
wasm2c.exe!wabt::`anonymous namespace'::CWriter::Write(const wabt::Block & block) Line 3330 C++
wasm2c.exe!wabt::`anonymous namespace'::CWriter::Write(const wabt::intrusive_list<wabt::Expr> & exprs) Line 3599 C++
wasm2c.exe!wabt::`anonymous namespace'::CWriter::Write<wabt::intrusive_list<wabt::Expr> const &,wabt::`anonymous namespace'::LabelDecl>(const wabt::intrusive_list<wabt::Expr> & t, wabt::`anonymous-namespace'::LabelDecl && u) Line 325 C++
wasm2c.exe!wabt::`anonymous namespace'::CWriter::Write(const wabt::Block & block) Line 3330 C++
wasm2c.exe!wabt::`anonymous namespace'::CWriter::Write(const wabt::intrusive_list<wabt::Expr> & exprs) Line 3599 C++
wasm2c.exe!wabt::`anonymous namespace'::CWriter::Write<wabt::intrusive_list<wabt::Expr> const &,wabt::`anonymous namespace'::LabelDecl>(const wabt::intrusive_list<wabt::Expr> & t, wabt::`anonymous-namespace'::LabelDecl && u) Line 325 C++
wasm2c.exe!wabt::`anonymous namespace'::CWriter::Write(const wabt::Block & block) Line 3330 C++
wasm2c.exe!wabt::`anonymous namespace'::CWriter::Write(const wabt::intrusive_list<wabt::Expr> & exprs) Line 3599 C++
wasm2c.exe!wabt::`anonymous namespace'::CWriter::Write<wabt::intrusive_list<wabt::Expr> const &,wabt::`anonymous namespace'::LabelDecl>(const wabt::intrusive_list<wabt::Expr> & t, wabt::`anonymous-namespace'::LabelDecl && u) Line 325 C++
wasm2c.exe!wabt::`anonymous namespace'::CWriter::Write(const wabt::Block & block) Line 3330 C++
<keeps going>
Workaround I used:
Bumped the default stack size on Windows from 1mb to 8mb initially but that still crashed. So I bumped it to 58mb and then it worked without crashing.
Metadata
Metadata
Assignees
Labels
No labels