TinyGo 0.27.0 发布,Go 编译器


TinyGo 0.27.0 已发布。

TinyGo 是一个 Go 编译器,旨在用于微控制器,WebAssembly(WASM)和命令行工具等小型场景。它重用了 Go 语言工具和 LLVM 一起使用的库,以提供编译用 Go 编程语言编写的程序的另一种方法。

下面是一个示例程序,当直接在带有板载 LED 的任何支持板上运行时,内置 LED 闪烁:

package main

import (
"machine"
"time"
)

func main() {
led := machine.LED
led.Configure(machine.PinConfig{Mode: machine.PinOutput})
for {
led.Low()
time.Sleep(time.Millisecond * 1000)

led.High()
time.Sleep(time.Millisecond * 1000)
}
}

此版本增加了对 Go 1.20 和 LLVM 15 的支持。此外,它放弃了对 AVR 和 Xtensa 工具链的依赖,因此您无需安装avr-gccxtensa-esp32-elf-ld使 TinyGo 更易于安装。相反,它使用内置的 LLVM 链接器。

新支持的平台是 windows/arm64(或“Windows on ARM64”)、Waveshare RP2040 Zero、Arduino Leonardo、Adafruit KB2040、Adafruit Feather M0 Express、Makerfabs ESP32C3SPI35 和 Espressif ESP32-C3-DevKit-RUST-1。与往常一样,还有大量较小的修复和改进。

详情查看 Release Notes。


相關推薦

2023-05-24

time 才能执行,这意味着它不能直接在硬件上运行。尽管 TinyGo 可以将 Go 编译为在裸机上运行,​​但与 C 相比,它只支持少量的架构,而 C 几乎可以在任何架构上运行。 总的来说,使用 Go 开发一个不是“玩具性质”的操作系

2022-09-08

布,此版本包含对net/http 和 net/url 包的安全修复,以及对编译器、go命令、pprof命令、链接器、运行时和 crypto/tls / crypto/x509包的错误修复。 下面是该版本修复的部分 Bug: cmd/go:使用 unix 构建约束导入依赖项时出现 cannot find pac

2023-04-28

? kclvm 是一个 KCL 语言的运行时库,它提供了一个与 KCL 编译器交互的编程接口。它是一个客户端库,可用于对 KCL源代码执行各种操作,例如 执行、格式化等。KCL Go SDK是 kclvm 的 Go 语言包装,提供了 Go 语言的 SDK,方便了在云

2022-10-24

但目前支持的现实状态是介于两者之间。像C++、Go(包括TinyGo)和Rust这样的语言已经接受了Wasm,但一些最常见的语言,如Python、Java和PHP还在努力实现一等公民的地位。 为了真正实现主流采用,Wasm的支持必须继续扩展到一些

2023-10-09

:cgo_" 指令的限制,允许在兼容期间传递阻塞的链接器和编译器标志。这可能导致在运行"go build"时意外执行任意代码。 line 指令需要指令所在文件的绝对路径,这使得解决此问题变得更加复杂。 Go1.21.2 更新涉及到的 issue

2022-07-15

持 64 位龙芯 CPU 架构 (GOOS=linux, GOARCH=loong64) Go 1.19 的 Go 编译器使用 jump table 重新实现了针对大整型数和 String 类型的 switch 语句,平均性能提升 20% 左右 Go 1.19 Release Notes | Go 1.19 Beta1

2023-07-04

序的开发能力。现在好了,Go语言通用代码生成器仙童已发布Beta7版,光速开发Go Web应用程序可以助力您找到Go语言的职位。 如何使用?您可以使用仙童自带的模板或者自己写一个SGS2的Excel模板,并使用仙童生成一个完整的Go Web

2022-03-27

在这种情况下int称为实例化。实例化分两步进行。首先,编译器在泛型函数或泛型类型中用所有类型形参替换它们各自的类型实参。然后,编译器验证每个类型形参是否满足各自的约束。如果第二步失败,实例化就会失败并且程

2024-04-13

builder/blob/main/docs/README_CN.md 项目特点: 支持一键同时编译到go build支持的任何一或多个平台; 使用UPX对binary进行压缩(可选); 自动对binary进行zip打包(可选); 在go项目下的任何文件夹中,都可以一键编译该项目; 记住

2022-03-03

 和 GC Shape Stenciling 在 Go 1.18 中实现泛型。 泛型的编译器实现(在类型检查之后)主要侧重于创建泛型函数和方法的实例,这些实例将与具有具体类型的参数一起执行。为了避免针对泛型函数/方法的每一次调用创建不同

2023-01-06

HTML 标记相结合 解析上述标记语法并生成纯 Go 代码的编译器 (compiler),在 Go stdlibnet/http 包之上构建独立的 Web 应用程序 示例代码 ^import "time" ^{ title := "Hello, from Pushup!" } <h1>^title</h1> <p>The time is now ^tim

2023-04-06

/multipart, net/http 和 net/textproto 软件包的安全修复,以及对编译器、链接器、运行时和时间软件包的错误修复。 详情查看 Release Notes。 下载地址

2022-08-09

gArch 成为 Golang 社区原生支持的全新指令架构。 除 Golang 编译器外,Golang 社区的重要的子项目 net、sys、tool 也加入了 LoongArch 架构的支持(下图),为 Go 开发的项目从其他架构平滑迁移到 LoongArch 架构打好了基础。

2023-01-30

GO语言通用代码生成器:仙童已发布第一个Beta版,修复重要错误 GO语言通用代码生成器:仙童已发布第一个Beta版。修复了Excelize v2组件API变化引起的编译错误。此错误会引起Beta版以前所有版本代码生成物的编译错误。请用户迁