目录
- 【超级大牛】kovidgoyal:calibre 和 kitty 的作者
- calibre
- kitty
- Go 发布 1.23.0 版本
- Go 1.23 版本更新说明
【超级大牛】kovidgoyal:calibre 和 kitty 的作者
calibre
calibre
是由 github.com/kovidgoyal 使用 C 和 Python 开发的跨平台电子书管理器,能够查看、转换、分类主流的电子书格式,支持连接多种电子书阅读器。
它的功能丰富且强大,如能从网上获取书籍的元数据、支持将电子书从一种格式转换为另一种格式、内置电子书阅读器并支持多种格式的阅读等。
- calibre 源代码 - calibre 项目的源代码托管在 GitHub,你可以在这里找到最新版本的 calibre 和参与社区贡献。
- calibre 用户手册 - calibre 官方提供的用户手册,支持多国语言。
kitty
kitty 是由 github.com/kovidgoyal 使用 C、Python 和 Go 混合编写的终端模拟器,能提供各种现代化功能和高级特性,比如 OpenGL 渲染、Unicode 支持、True Color、标签页等。该项目分为 kitty
和 kitten
两个部分,其中 kitty
是终端模拟器应用程序(项目的核心),kitten
是用于扩展 kitty
功能的脚本和工具集。
kitty 的设计理念是为用户提供高性能、用户友好、易于扩展的终端模拟器。在实现方面,它采用 C 处理性能敏感部分,使用 Python 实现 UI 的扩展性和灵活性,利用 Go 开发适用命令行的 kittens。它不依赖于任何大型且复杂的 UI 工具包,仅使用 OpenGL 来渲染所有内容。
- kitty 源代码 - kitty 项目的源代码托管在 GitHub,你可以在这里找到最新版本的 kitty 和参与社区贡献。
来源:
https://kovidgoyal.net/
Go 发布 1.23.0 版本
Go 1.23 版本更新说明
主要变化:
- 语言特性:
- “range-over-func” 实验正式成为语言特性,for-range 循环支持迭代器函数。
- 预览支持泛型类型别名,需要设置 GOEXPERIMENT=aliastypeparams 才能使用。
- 工具链:
- 引入 Go telemetry 系统,默认收集本地统计数据,用户可以选择上传匿名数据帮助改进 Go 工具链。
- go 命令更新:
- GOROOT_FINAL 环境变量失效。
- go env 命令新增 -changed 参数,仅显示与默认值不同的设置。
- go mod tidy 命令新增 -diff 参数,以 diff 格式显示更新内容。
- go list -m -json 命令新增 Sum 和 GoModSum 字段。
- go.mod 和 go.work 文件支持 godebug 指令,用于设置 GODEBUG。
- go vet 子命令新增 stdversion 分析器,用于标记不兼容 Go 版本的符号引用。
- cmd/cgo 支持 -ldflags 参数,用于传递参数给 C 链接器。
- trace 工具增强对错误 trace 文件的处理能力。
- 运行时:
- 优化 panic 和错误信息的输出格式,方便区分错误信息和堆栈跟踪。
- 编译器:
- 显著降低使用 Profile Guided Optimization (PGO) 时的编译时间开销。
- 编译器优化局部变量的堆栈分配,减少 Go 应用的堆栈使用。
- 386 和 amd64 平台上,编译器利用 PGO 信息优化循环中热块的对齐,提升性能。
- 链接器:
- 禁止使用 //go:linkname 指令引用标准库中未标记 //go:linkname 的内部符号。
- 新增 -checklinkname=0 参数,用于调试和实验目的,禁用上述检查。
- 新增 -bindnow 参数,用于在构建动态链接 ELF 文件时启用立即函数绑定。
标准库:
- 重要更新:
- time.Timer 和 time.Ticker 的实现发生两项重要变化:
- 未被程序引用的 Timer 和 Ticker 立即被垃圾回收,即使 Stop 方法未被调用。
- Timer 和 Ticker 关联的计时器通道现在为无缓冲,容量为 0,保证 Reset 或 Stop 方法调用后的行为一致性。
- time.Timer 和 time.Ticker 的实现发生两项重要变化:
- 新增包:
- unique 包提供值规范化功能(类似于“字符串驻留”或“哈希一致性”)。
- iter 包提供处理用户定义迭代器的基本定义。
- structs 包提供用于修改结构体类型属性的结构体字段类型,例如内存布局。
- 其他更新:
- archive/tar、crypto/tls、crypto/x509、database/sql、debug/elf、encoding/binary、go/ast、go/types、math/rand/v2、net、net/http、net/http/httptest、net/netip、os、path/filepath、reflect、runtime/debug、runtime/pprof、runtime/trace、slices、sync、sync/atomic、syscall、testing/fstest、text/template、time、unicode/utf16 等包都有更新和改进。
平台支持:
- Darwin: 要求 macOS 11 Big Sur 或更高版本。
- Linux: Go 1.23 是最后一个支持 Linux 内核 2.6.32 或更高版本的发行版。
- OpenBSD: 新增对 64 位 RISC-V 的实验性支持。
- ARM64: 引入 GOARM64 环境变量,用于指定编译时的最低目标 ARM64 架构版本。
- RISC-V: 引入 GORISCV64 环境变量,用于选择 RISC-V 用户模式应用程序配置文件。
- Wasm: go_wasip1_wasm_exec 脚本不再支持 wasmtime 14.0.0 之前的版本。
来源:
https://go.dev/doc/go1.23
更多内容请查阅 : blog-240816
关注微信官方公众号 : oh my x
获取开源软件和 x-cmd 最新用法