Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
wa-lang
wa
提交
6cc219bd
wa
项目概览
wa-lang
/
wa
11 个月 前同步成功
通知
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,发现更多精彩内容 >>
提交
6cc219bd
编写于
8月 21, 2022
作者:
chai2010
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
3rdparty/wabt: 支持纯 Go 模式
上级
baa0b0c5
变更
6
显示空白变更内容
内联
并排
Showing
6 changed file
with
28 addition
and
43 deletion
+28
-43
Makefile
Makefile
+5
-5
README.md
README.md
+3
-1
internal/3rdparty/float/binary128/gen.go
internal/3rdparty/float/binary128/gen.go
+1
-1
internal/3rdparty/wabt/wabt_nocgo.go
internal/3rdparty/wabt/wabt_nocgo.go
+11
-10
internal/wabt/wabt_cgo.go
internal/wabt/wabt_cgo.go
+0
-22
main.go
main.go
+8
-4
未找到文件。
Makefile
浏览文件 @
6cc219bd
# 版权 @2019 凹语言 作者。保留所有权利。
# 版权 @2019 凹语言 作者。保留所有权利。
hello
:
hello
:
go run main.go run _examples/hello
CGO_ENABLED
=
0
go run main.go run _examples/hello
hi
:
hi
:
go run main.go run _examples/hi
CGO_ENABLED
=
0
go run main.go run _examples/hi
prime
:
prime
:
go run main.go run _examples/prime
CGO_ENABLED
=
0
go run main.go run _examples/prime
wasm
:
wasm
:
go run main.go ssa _examples/hi
CGO_ENABLED
=
0
go run main.go ssa _examples/hi
go run main.go wasm _examples/hi
CGO_ENABLED
=
0
go run main.go wasm _examples/hi
wasm2wat
a.out.wasm
-o
a.out.wast
wasm2wat
a.out.wasm
-o
a.out.wast
cd
./tools/wa-wasmer-run
&&
go
run
main.go
-file
=
../../a.out.wasm
cd
./tools/wa-wasmer-run
&&
go
run
main.go
-file
=
../../a.out.wasm
...
...
README.md
浏览文件 @
6cc219bd
...
@@ -28,13 +28,15 @@
...
@@ -28,13 +28,15 @@
+------------+
+------------+
```
```
安装和测试:
安装和测试
(默认使用了 CGO,可选择关闭)
:
1.
安装
[
Clang
](
https://clang.llvm.org
)
, 确保本地
`clang`
命令有效
1.
安装
[
Clang
](
https://clang.llvm.org
)
, 确保本地
`clang`
命令有效
2.
`go install github.com/wa-lang/wa@latest`
2.
`go install github.com/wa-lang/wa@latest`
3.
`wa init -name=_examples/hi`
3.
`wa init -name=_examples/hi`
4.
`wa run _examples/hi`
4.
`wa run _examples/hi`
> 如果本地安装了 `wabt` 工具,可以通过设置 `CGO_ENABLED` 环境变量为 `0` 关闭 CGO 特性,提升 `go build` 编译性能。
> 项目尚处于原型开源阶段,如果有共建和PR需求请 [入群交流](https://wa-lang.org/community/index.html)。
> 项目尚处于原型开源阶段,如果有共建和PR需求请 [入群交流](https://wa-lang.org/community/index.html)。
> [VS Code 插件支持](https://marketplace.visualstudio.com/items?itemName=xxxDeveloper.vscode-wa)
> [VS Code 插件支持](https://marketplace.visualstudio.com/items?itemName=xxxDeveloper.vscode-wa)
...
...
internal/3rdparty/float/binary128/gen.go
浏览文件 @
6cc219bd
...
@@ -4,6 +4,7 @@
...
@@ -4,6 +4,7 @@
package
main
package
main
import
(
import
(
"errors"
"flag"
"flag"
"fmt"
"fmt"
"log"
"log"
...
@@ -13,7 +14,6 @@ import (
...
@@ -13,7 +14,6 @@ import (
"os"
"os"
"sort"
"sort"
"text/template"
"text/template"
"errors"
)
)
func
main
()
{
func
main
()
{
...
...
internal/wabt/wabt_nocgo.go
→
internal/
3rdparty/
wabt/wabt_nocgo.go
浏览文件 @
6cc219bd
// 版权 @2022 凹语言 作者。保留所有权利。
// 版权 @2022 凹语言 作者。保留所有权利。
//go:build !
wabt_
cgo
//go:build !cgo
// +build !
wabt_
cgo
// +build !cgo
package
wabt
package
wabt
import
(
import
(
"fmt"
"fmt"
"os"
"os/exec"
"os/exec"
"runtime"
"runtime"
)
)
func
Wat2WasmCmd
(
args
...
string
)
{
const
Version
=
"1.0.29"
func
Wat2WasmCmd
(
args
...
string
)
error
{
exe
:=
"wat2wasm"
exe
:=
"wat2wasm"
if
runtime
.
GOOS
==
"windows"
{
if
runtime
.
GOOS
==
"windows"
{
exe
+=
".exe"
exe
+=
".exe"
}
}
cmd
:=
exec
.
Command
(
exe
,
args
...
)
cmd
:=
exec
.
Command
(
exe
,
args
...
)
stdoutStderr
,
err
:=
cmd
.
CombinedOutput
()
stdoutStderr
,
err
:=
cmd
.
CombinedOutput
()
if
err
!=
nil
{
if
len
(
stdoutStderr
)
!=
0
{
if
len
(
stdoutStderr
)
!=
0
{
fmt
.
Printf
(
"%s
\n
"
,
stdoutStderr
)
fmt
.
Printf
(
"%s
\n
"
,
stdoutStderr
)
}
}
fmt
.
Printf
(
"ERROR: %v
\n
"
,
err
)
if
err
!=
nil
{
os
.
Exit
(
1
)
return
err
}
}
fmt
.
Printf
(
"%s
\n
"
,
stdoutStderr
)
return
nil
}
}
internal/wabt/wabt_cgo.go
已删除
100644 → 0
浏览文件 @
baa0b0c5
// 版权 @2022 凹语言 作者。保留所有权利。
// go build -tags="wabt_cgo"
//go:build wabt_cgo
// +build wabt_cgo
package
wabt
import
(
"fmt"
"os"
"github.com/wa-lang/wa/internal/3rdparty/wabt"
)
func
Wat2WasmCmd
(
args
...
string
)
{
if
err
:=
wabt
.
Wat2WasmCmd
(
args
...
);
err
!=
nil
{
fmt
.
Printf
(
"ERROR: %v
\n
"
,
err
)
os
.
Exit
(
1
)
}
}
main.go
浏览文件 @
6cc219bd
...
@@ -11,9 +11,9 @@ import (
...
@@ -11,9 +11,9 @@ import (
"runtime/debug"
"runtime/debug"
"github.com/wa-lang/wa/internal/3rdparty/cli"
"github.com/wa-lang/wa/internal/3rdparty/cli"
"github.com/wa-lang/wa/internal/3rdparty/wabt"
"github.com/wa-lang/wa/internal/app"
"github.com/wa-lang/wa/internal/app"
"github.com/wa-lang/wa/internal/config"
"github.com/wa-lang/wa/internal/config"
"github.com/wa-lang/wa/internal/wabt"
)
)
func
main
()
{
func
main
()
{
...
@@ -274,7 +274,11 @@ func main() {
...
@@ -274,7 +274,11 @@ func main() {
Usage
:
"convert wat to the wasm"
,
Usage
:
"convert wat to the wasm"
,
Hidden
:
true
,
Hidden
:
true
,
Action
:
func
(
c
*
cli
.
Context
)
error
{
Action
:
func
(
c
*
cli
.
Context
)
error
{
wabt
.
Wat2WasmCmd
(
c
.
Args
()
.
Slice
()
...
)
err
:=
wabt
.
Wat2WasmCmd
(
c
.
Args
()
.
Slice
()
...
)
if
err
!=
nil
{
fmt
.
Println
(
err
)
os
.
Exit
(
1
)
}
return
nil
return
nil
},
},
},
},
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录