Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
wa-lang
wa
提交
7f2f0983
wa
项目概览
wa-lang
/
wa
10 个月 前同步成功
通知
68
Star
655
Fork
45
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
wa
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
7f2f0983
编写于
3月 12, 2023
作者:
chai2010
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
增加 os.Exit 函数
上级
e916cb0a
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
24 addition
and
1 deletion
+24
-1
internal/app/apputil/wabt_wat2wasm.go
internal/app/apputil/wabt_wat2wasm.go
+6
-0
internal/waroot/_waroot/src/os/os.wa
internal/waroot/_waroot/src/os/os.wa
+3
-0
internal/waroot/_waroot/src/runtime/runtime_arduino.wa
internal/waroot/_waroot/src/runtime/runtime_arduino.wa
+3
-0
internal/waroot/_waroot/src/runtime/runtime_chrome.wa
internal/waroot/_waroot/src/runtime/runtime_chrome.wa
+3
-0
internal/waroot/_waroot/src/runtime/runtime_wasi.wa
internal/waroot/_waroot/src/runtime/runtime_wasi.wa
+4
-0
main.go
main.go
+5
-1
未找到文件。
internal/app/apputil/wabt_wat2wasm.go
浏览文件 @
7f2f0983
...
...
@@ -15,6 +15,7 @@ import (
"sync"
"github.com/tetratelabs/wazero"
"github.com/tetratelabs/wazero/sys"
"wa-lang.org/wa/internal/app/waruntime"
"wa-lang.org/wa/internal/config"
...
...
@@ -78,6 +79,11 @@ func RunWasm(cfg *config.Config, filename string, wasmArgs ...string) (stdoutStd
_
,
err
=
r
.
InstantiateModule
(
ctx
,
code
,
conf
)
if
err
!=
nil
{
if
exitErr
,
ok
:=
err
.
(
*
sys
.
ExitError
);
ok
{
if
exitErr
.
ExitCode
()
==
0
{
return
outputBuffer
.
Bytes
(),
nil
}
}
return
outputBuffer
.
Bytes
(),
err
}
...
...
internal/waroot/_waroot/src/os/os.wa
浏览文件 @
7f2f0983
...
...
@@ -5,6 +5,9 @@ var Args []string
#wa:linkname runtime.os_get_args
func os_get_args() => []string
#wa:linkname $runtime.procExit
func Exit(code: i32)
func init {
Args = os_get_args()
}
internal/waroot/_waroot/src/runtime/runtime_arduino.wa
浏览文件 @
7f2f0983
...
...
@@ -19,6 +19,9 @@ func fdWrite(fd: i32, io: i32, iovs_len: i32, nwritten: i32) => (written: i32) {
return
}
#wa:linkname $runtime.procExit
func procExit(code: i32) {}
#wa:linkname $runtime.waPrintI32
func waPrintI32(i: i32) {}
...
...
internal/waroot/_waroot/src/runtime/runtime_chrome.wa
浏览文件 @
7f2f0983
...
...
@@ -17,6 +17,9 @@ func fdWrite(fd: i32, io: i32, iovs_len: i32, nwritten: i32) => (written: i32) {
return
}
#wa:linkname $runtime.procExit
func procExit(code: i32) {}
#wa:linkname $runtime.waPrintI32
func waPrintI32(i: i32) {}
...
...
internal/waroot/_waroot/src/runtime/runtime_wasi.wa
浏览文件 @
7f2f0983
...
...
@@ -14,6 +14,10 @@ func argsGet(result_argv: i32, result_argv_buf: i32) => (errno: i32)
#wa:linkname $runtime.fdWrite
func fdWrite(fd: i32, io: i32, iovs_len: i32, nwritten: i32) => (errno: i32)
#wa:import wasi_snapshot_preview1 proc_exit
#wa:linkname $runtime.procExit
func procExit(code: i32)
#wa:linkname puts
func puts(ptr: i32, len: i32)
...
...
main.go
浏览文件 @
7f2f0983
...
...
@@ -13,6 +13,8 @@ import (
"strings"
"time"
"github.com/tetratelabs/wazero/sys"
"wa-lang.org/wa/api"
"wa-lang.org/wa/internal/3rdparty/cli"
"wa-lang.org/wa/internal/app"
...
...
@@ -550,8 +552,10 @@ func cliRun(c *cli.Context) {
if
len
(
stdoutStderr
)
>
0
{
fmt
.
Println
(
string
(
stdoutStderr
))
}
if
exitErr
,
ok
:=
err
.
(
*
sys
.
ExitError
);
ok
{
os
.
Exit
(
int
(
exitErr
.
ExitCode
()))
}
fmt
.
Println
(
err
)
os
.
Exit
(
1
)
}
if
len
(
stdoutStderr
)
>
0
{
fmt
.
Println
(
string
(
stdoutStderr
))
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录