Skip to content

beelang-v0.1.0

Choose a tag to compare

@github-actions github-actions released this 06 Aug 07:51
· 6 commits to main since this release

Changelog

All notable changes to BeeLang are documented here. The format is based on
Keep a Changelog, and this project
adheres to Semantic Versioning.

[v0.1.0] — 2026-08-06

The first public release of BeeLang — a small, friendly scripting language with
a built-in native (LLVM) JIT. 🐝

Language

  • Dynamically-typed values: nil, booleans, numbers (64-bit float), strings,
    lists, and dicts.
  • Variables with let, lexical scoping, and block/function/loop scopes.
  • Full operator set: arithmetic, comparison, logical (and/or/not with
    &&/||/! aliases), and compound assignment (+=, -=, *=, /=).
  • Control flow: if / else if / else, while, C-style for, and
    for … in over lists, strings, and dicts, plus break / continue.
  • First-class functions and closures.
  • Classes with single inheritance (extends), this, super, an init
    constructor, and a customizable str() for printing.
  • A module system: import, import … as, from … import, and
    from … import *, resolved relative to the file and a sibling lib/ folder.
  • Error handling with try / catch / finally and throw of any value.
  • Two comment styles (# and //) and an optional statement terminator (;).

Runtime & performance

  • Compact C++17 runtime with no required third-party dependencies.
  • Built-in LLVM ORCv2 JIT (enabled by default when LLVM 17/18 is present):
    functions within a numeric subset are compiled to native code operating on
    unboxed doubles, transparently falling back to the runtime for everything
    else. fib(32) drops from ~11 s to ~0.014 s.
  • bee --version / -v and bee --help / -h.

Standard library (no imports required)

  • I/O: print, write, input.
  • Conversion & inspection: len, type, str, repr, num, int,
    bool.
  • Math: abs, floor, ceil, round, sqrt, pow, min, max,
    range.
  • Files: read_file, read_lines, write_file, append_file,
    file_exists, remove_file, make_dir, list_dir.
  • Time & randomness: clock, time, now, format_time, sleep,
    random, random_int, random_range, random_choice, random_seed.
  • Environment & processes: env, set_env, args, exec.
  • Threads: spawn / join with a global interpreter lock (GIL) — safe
    shared state and real overlap for I/O-bound work.
  • Type methods for strings, lists, and dicts (upper, split, push, pop,
    keys, has, get, …).

Tooling & packaging

  • Makefile build with automatic LLVM JIT detection and an overridable
    VERSION.
  • Debian/Ubuntu .deb package (packaging/build-deb.sh)
    built with the JIT; dependencies are auto-detected.
  • Windows installer (packaging/windows/) via Inno
    Setup — adds bee to PATH, associates .be / .bee files, and registers
    an uninstaller.
  • GitHub Actions release workflow that builds both packages and publishes
    them on a version tag.

Editor support

  • VS Code extension (editors/vscode-bee/) with
    syntax highlighting, completions (keywords, built-ins, type methods, and file
    symbols), hovers, snippets, and a bee icon for .be / .bee files.

Documentation & examples

Known limitations

  • The Windows installer ships an interpreter-only build (no JIT yet).
  • The .deb requires libllvm18, available on Ubuntu 24.04 and newer.
  • No anonymous/lambda functions — pass named functions (e.g. to spawn).

🐝 BeeLang VS Code Extension v0.1.0

The first official release of the BeeLang Visual Studio Code extension.

Features

  • BeeLang syntax highlighting
  • Basic language support
  • Improved editing experience for .bee files
  • Easy installation via the provided .vsix package

Installation

  1. Download beelang-0.1.0.vsix from the release assets.
  2. Open Visual Studio Code.
  3. Go to Extensions (Ctrl+Shift+X).
  4. Click the ... menu → Install from VSIX...
  5. Select beelang-0.1.0.vsix.

Or install from the command line:

code --install-extension beelang-0.1.0.vsix