config

package
v0.4.1 Latest Latest
Warning

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

Go to latest
Published: Jan 8, 2023 License: AGPL-3.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	WaOS_Walang = "walang" // 默认

	WaOS_Arduino = "arduino" // Arduino 平台
	WaOS_Chrome  = "chrome"  // Chrome 浏览器
	WaOS_Wasi    = "wasi"    // WASI 接口
)

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

View Source
const (
	WaArch_Wasm = "wasm" // wasm 平台
)

体系结构类型

View Source
const WaModFile = "wa.mod.json"

模块文件

Variables

View Source
var (
	DebugMode = false

	EnableTrace_api      bool
	EnableTrace_app      bool
	EnableTrace_compiler bool
	EnableTrace_loader   bool
)

Functions

func EnableTraceAll

func EnableTraceAll()

打开全部 trace 调试开关

func SetDebugMode

func SetDebugMode()

func SetEnableTrace

func SetEnableTrace(parten string)

打开 trace 调试开关

Types

type Config

type Config struct {
	WaRoot   string   // 凹 程序根目录, src 目录下是包代码, 为空时用内置标准库实现
	WaArch   string   // 目标 CPU
	WaOS     string   // 目标 OS
	WaSizes  StdSizes // 指针大小
	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"` // 主包路径

	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

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