Amber
一种编译为Bash的编程语言。它是一种高级编程语言,可以轻松创建shell脚本。它特别适合云服务。 如果机器上存在shfmt,它将在编译后用于美化生成的Bash代码。
[!警告] 此软件尚未准备好进行广泛使用。
加入我们的Discord 或 在irc.oftc.net上的#amber-lang频道 (irc://irc.oftc.net/#amber-lang) 或 加入我们的Matrix聊天室
安装
Amber编译器目前支持:
- Linux x86和ARM
- macOS x86和ARM(Apple Silicon)
- Nix(NixOS)
macOS / Linux
确保操作系统满足以下先决条件
- Bourne-again shell(Bash)
- 用于下载安装脚本的Curl工具
- 基本计算器
bc
命令(在Debian上运行sudo apt install bc
)
系统范围安装
curl -s "https://raw.githubusercontent.com/Ph0enixKM/AmberNative/master/setup/install.sh" | /bin/bash
本地用户安装
curl -s "https://raw.githubusercontent.com/Ph0enixKM/AmberNative/master/setup/install.sh" | /bin/bash -s -- --user
通过包管理器
Amber已打包在以下发行版中:
Arch(AUR) - amber-bash-bin
Nix
参见NIX.md
Windows支持
由于Windows没有预装bash,所以不支持。请在Windows机器上安装WSL 2,并在其中安装Linux版本的Amber编译器。
为了使其正常工作,你可能需要运行以下代码来获取所有先决条件。
sudo apt install curl bc
sudo mkdir /opt /usr/local/bin
贡献
为了贡献,你需要添加几个构建目标:
rustup target add x86_64-unknown-linux-musl
rustup target add x86_64-apple-darwin
rustup target add x86_64-pc-windows-gnu
rustup target add aarch64-apple-darwin
以及链接器(macOS):
brew install messense/macos-cross-toolchains/aarch64-unknown-linux-musl
brew install messense/macos-cross-toolchains/x86_64-unknown-linux-gnu
编译:
git clone https://github.com/Ph0enixKM/Amber
cd Amber
cargo build
要构建安装程序脚本,运行:
amber build.ab
调试Amber:
// 显示AST
AMBER_DEBUG_PARSER=true cargo run <file.ab>
// 显示编译每个阶段所需的时间
AMBER_DEBUG_TIME=true cargo run <file.ab>
// Flamegraph是一个用于可视化每个函数执行时间的性能分析工具
sudo cargo flamegraph -- <file.ab> <file.sh>
Github Actions
我们使用cargo-dist
为所有平台构建二进制文件。一旦创建新的发布标签,这些二进制文件就会上传到发布页面。