Skip to content

Home zh

Enoch-199811 edited this page Aug 9, 2026 · 2 revisions

BioLang

English | 中文 | Русский

一门用 C 语言实现的面向流(stream-oriented)编程语言——包含一个解释器和一个源码嵌入编译器。每一个操作都是一个请求(request),可能被拒绝(res / cause / ref);程序由可组合的流构建而成。

  • 流(Streams):Unistream、Comstream、Remstream、Objstream、Threadstream、Timestream、IOStream 等——签名流、派生实现、类即流。
  • 类型化智能引用(Typed smart references):28 种引用类型(权限 r/w/m/rw/rm/wm/rwm × 跟随层 u/f/a/t)。用 get p 读取,用 p = v 写入,用 p++ 移动指针。
  • need 假设:按需从 src/utils/ 及依赖中自动打包提供者(providers);项目清单(package.toml)支持 git/HTTP/本地依赖。
  • 注解(Annotations)@unfork(流不可再被派生)、@onlyread(不得调用任何写方法)、@read / @write(声明方法的读写性质)。
  • 打包(Packaging).img(自定义原始镜像,保存权限)与 .zip(原生 STORE 写入器——无需外部工具)。
  • 跨平台:通过 zig 用 make bin 构建 Linux、macOS 与 Windows(实验性)二进制;协作式线程(ucontext / Win32 fibers)。

快速开始

make                        # build → bin/bio
make PROFILE=release        # optimized build

bin/bio examples/01-hello.bio   # run an example
bin/bio shell build examples/01-hello.bio   # compile to a standalone binary

项目构建与打包

bio init <name>             # create a project skeleton
bio build [dir] -s          # build → standalone executable
bio build [dir] -m          # build → .img package (app + platform CLI + libs)
bio build [dir] -m out.zip  # build → .zip package
bio run [dir]               # run a project

打包

bio pack <out.img|.zip> [--entry NAME] <files...>
bio unpack <pkg> [dir]
bio run pkg.img | pkg.zip   # run a packaged entry
  • .img——自定义 BIOIMG1 原始镜像:无压缩、完全可寻址(seekable)、保存文件权限(可执行文件保留其可执行位)。
  • .zip——标准 zip,原生读写(STORE 方法);对于旧的 deflate 压缩档案,回退到系统 unzip

平台支持

平台 状态
Linux(x86-64、aarch64) ✅ 完全支持
macOS(Intel) ⚠️ 可用(ucontext 弃用警告)
macOS(Apple Silicon) ⚠️ 预编译二进制可用;源码构建会遇到 Apple ucontext 的 bug
Windows(x86-32/64、arm64) ⚠️ 实验性(fiber 后端 + LoadLibrary shim)

教程

逐步学习 BioLang——提供 English中文Русский 版本:

  • 入门——第一步:概念、类型、请求、控制流。
  • 进阶——实际使用:流、类、need、文件、线程、项目。
  • 高手——进阶课程:智能引用、原生库、内存、跨平台、完整项目。

链接

Clone this wiki locally