config

package
v0.9.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 4, 2024 License: AGPL-3.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	WaBackend_Default = WaBackend_wat // 默认

	WaBackend_wat = "wat" // 输出 wat
)

编译器后端类型

View Source
const (
	WaOS_Default = WaOS_js // 默认

	WaOS_js      = "js"      // 浏览器 JS
	WaOS_wasi    = "wasi"    // WASI 接口
	WaOS_unknown = "unknown" // Unknown
)

目标平台类型, 可管理后缀名

View Source
const (
	WaArch_Default = WaArch_wasm // 默认
	WaArch_wasm    = "wasm"      // wasm 平台
)

体系结构类型

View Source
const WaModFile = "wa.mod"

模块文件

Variables

View Source
var (
	DebugMode = false

	EnableTrace_api      bool
	EnableTrace_app      bool
	EnableTrace_compiler bool
	EnableTrace_loader   bool
)
View Source
var WaArch_List = []string{
	WaArch_wasm,
}

CPU 列表

View Source
var WaBackend_List = []string{
	WaBackend_wat,
}

后端列表

View Source
var WaOS_List = []string{
	WaOS_js,
	WaOS_wasi,
	WaOS_unknown,
}

OS 列表

Functions

func CheckWaOS added in v0.8.0

func CheckWaOS(os string) bool

检查 OS 值是否 OK

func EnableTraceAll

func EnableTraceAll()

打开全部 trace 调试开关

func SetDebugMode

func SetDebugMode()

func SetEnableTrace

func SetEnableTrace(parten string)

打开 trace 调试开关

Types

type Config

type Config struct {
	WatOutput string   // 输出的 wat 文件路径
	WaBackend string   // 编译器后端
	WaRoot    string   // 凹 程序根目录, src 目录下是包代码, 为空时用内置标准库实现
	WaArch    string   // 目标 CPU
	WaOS      string   // 目标 OS
	WaSizes   StdSizes // 指针大小
	BuilgTags []string // 条件编译的标志
	UnitTest  bool     // 单元测试模式
	Optimize  bool     // 是否优化
	Debug     bool     // 调试模式
	LDFlags            // 链接参数
}

通用配置信息

func DefaultConfig

func DefaultConfig() *Config

func (*Config) Clone

func (p *Config) Clone() *Config

type LDFlags

type LDFlags struct {
	StackSize int // 栈大小
	MaxMemory int // 最大内存
}

链接参数

type Manifest

type Manifest struct {
	Root    string `json:"root"` // WaModFile 所在目录
	MainPkg string `json:"main"` // 主包路径
	IsStd   bool   `json:"-"`    // 是标准库

	Pkg Manifest_package `json:"package"`
}

WaModFile 文件结构

func LoadManifest

func LoadManifest(vfs fs.FS, appPath string) (p *Manifest, err error)

加载 WaModFile 文件 如果 vfs 为空则从本地文件系统读取

func SimpleManifest

func SimpleManifest(mainPkg, appName string) *Manifest

简版 Manifest

func (*Manifest) Clone

func (p *Manifest) Clone() *Manifest

func (*Manifest) JSONString

func (p *Manifest) JSONString() string

func (*Manifest) Valid added in v0.8.0

func (p *Manifest) Valid() error

type Manifest_package

type Manifest_package struct {
	Name          string   `json:"name"`                    // 名字
	Pkgpath       string   `json:"pkgpath"`                 // 模块的导入路径
	Version       string   `json:"version"`                 // 版本
	Authors       []string `json:"authors,omitempty"`       // 作者
	Description   string   `json:"description,omitempty"`   // 一句话简介
	Documentation string   `json:"documentation,omitempty"` // 包文档链接
	Readme        string   `json:"readme,omitempty"`        // README 文件 (Markdown 格式)
	Homepage      string   `json:"homepage,omitempty"`      // 主页
	Repository    string   `json:"repository,omitempty"`    // 代码仓库
	License       string   `json:"license,omitempty"`       // 版权
	LicenseFile   string   `json:"license_file,omitempty"`  // 版权文件
	Keywords      []string `json:"keywords,omitempty"`      // 关键字
	Categories    []string `json:"categories,omitempty"`    // 领域分类
}

包基础信息

type PkgVFS

type PkgVFS struct {
	App    fs.FS // 当前工程的 src 目录, 导入路径去掉前缀对应目录
	Std    fs.FS // 标准库, 导入路径对应目录
	Vendor fs.FS // 第三方库, 导入路径目录
}

包虚拟文件系统

type StdSizes

type StdSizes struct {
	WordSize int64 // word size in bytes - must be >= 4 (32bits)
	MaxAlign int64 // maximum alignment in bytes - must be >= 1
}

字长和指针大小

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL