Skip to content

Releases: funlearnstudio/SE

SE 0.7.1

Choose a tag to compare

@github-actions github-actions released this 28 Sep 08:25

SE 0.7.1

SE 0.7.1 refreshes the prebuilt CLI packages from the current source so installations receive the expanded standard-library modules and runtime fixes. It also verifies release downloads before installing them.

Quick install

macOS / Linux:

curl -fsSL https://raw.githubusercontent.com/funlearnstudio/SE/main/install.sh | sh

Windows PowerShell:

irm https://raw.githubusercontent.com/funlearnstudio/SE/main/install.ps1 | iex

Both installers resolve the latest GitHub Release automatically when SE_VERSION is not explicitly set. The Unix installer validates the requested version, verifies the package checksum, checks archive paths, and reports optional Python module dependencies.

Standard library additions

The refreshed CLI packages include the current expansion APIs, including:

  • data and math: url, encoding, series, matrix, linear, dataset, table, probability, fraction, complex, calculus, units
  • content and security: toml, yaml, xml, markdown, crypto, jwt, session, auth, cookie, cors, template
  • service and network: http_server, router, dns, ftp, smtp, imap, ssh, websocket, ai, embedding
  • machine learning and media: ml, tensor, image, audio, video, camera, gui, canvas, sprite, physics, sound, animation, scene, collision, tilemap
  • existing standard-library modules including statistics, iter, itertools, regex, decimal, csv, datetime, hashlib, sqlite3, and functools

The new APIs are registered with the type checker and runtime, included in VS Code completion, and exercised by a dedicated standard-library smoke test.

Installation improvements

The Unix installer checks optional host tools required by specific modules:

  • sqlite3 for sqlite / sqlite3
  • zip and unzip for archive helpers
  • sha256sum or shasum for SHA-256 hashing

To let the Unix installer attempt installation of those optional tools:

curl -fsSL https://raw.githubusercontent.com/funlearnstudio/SE/main/install.sh | SE_INSTALL_STDLIB_DEPS=1 sh

Supported package managers include Homebrew, apt, dnf, yum, pacman, apk and zypper.

Compatibility notes

  • pickle intentionally uses safe JSON serialization rather than Python's executable pickle format.
  • threading uses SE's managed Task model.
  • decimal currently uses long-double-backed textual decimal operations and is not arbitrary-precision Python Decimal parity.
  • ZIP and SQLite helpers rely on host command-line tools.
  • se build still requires a C++20 compiler; interpreted workflows do not.

Distribution

The release workflow builds and verifies packages for:

  • Linux x64
  • macOS Intel
  • macOS Apple Silicon
  • Windows x64
  • VS Code extension

Release assets include SHA-256 checksums.

Version

SE 0.7.1

SE 0.7.0

Choose a tag to compare

@github-actions github-actions released this 27 Sep 09:40
bd7c353

SE 0.7.0

SE 0.7.0 expands the standard library substantially and improves installation so the prebuilt packages can be used immediately across supported platforms.

Quick install

macOS / Linux:

curl -fsSL https://raw.githubusercontent.com/funlearnstudio/SE/main/install.sh | sh

Windows PowerShell:

irm https://raw.githubusercontent.com/funlearnstudio/SE/main/install.ps1 | iex

Both installers now resolve the latest GitHub Release automatically when SE_VERSION is not explicitly set.

Standard library additions

SE 0.7.0 adds Python-inspired modules and aliases while keeping SE syntax and runtime behavior:

  • statistics
  • iter / itertools
  • regex / re
  • decimal
  • csv
  • datetime plus additional time helpers
  • hash / hashlib
  • base64
  • uuid
  • safe pickle-style JSON serialization
  • args / argparse
  • log / logging
  • shutil plus additional file operations
  • glob
  • zip / zipfile
  • subprocess
  • socket
  • threading
  • queue
  • sqlite / sqlite3
  • functools plus additional function helpers
  • operator
  • copy
  • enum
  • typing

The new APIs are registered with the type checker and runtime, included in VS Code completion, and exercised by a dedicated standard-library smoke test.

Installation improvements

The Unix installer checks optional host tools required by specific modules:

  • sqlite3 for sqlite / sqlite3
  • zip and unzip for archive helpers
  • sha256sum or shasum for SHA-256 hashing

To let the Unix installer attempt installation of those optional tools:

curl -fsSL https://raw.githubusercontent.com/funlearnstudio/SE/main/install.sh | SE_INSTALL_STDLIB_DEPS=1 sh

Supported package managers include Homebrew, apt, dnf, yum, pacman, apk and zypper.

Compatibility notes

  • pickle intentionally uses safe JSON serialization rather than Python's executable pickle format.
  • threading uses SE's managed Task model.
  • decimal currently uses long-double-backed textual decimal operations and is not arbitrary-precision Python Decimal parity.
  • ZIP and SQLite helpers rely on host command-line tools.
  • se build still requires a C++20 compiler; interpreted workflows do not.

Distribution

The release workflow builds and verifies packages for:

  • Linux x64
  • macOS Intel
  • macOS Apple Silicon
  • Windows x64
  • VS Code extension

Release assets include SHA-256 checksums.

Version

SE 0.7.0

SE 0.6.0

Choose a tag to compare

@github-actions github-actions released this 30 Aug 07:53
1bb40a7

SE 0.6.0

SE 0.6.0 is the first SE release designed for quick public installation with prebuilt packages. Normal users can download SE and immediately use se run, se check, se test, the REPL, modules and the interpreter without installing CMake, Git or a C++ compiler.

Quick install

macOS / Linux:

curl -fsSL https://raw.githubusercontent.com/funlearnstudio/SE/main/install.sh | sh

Windows PowerShell:

irm https://raw.githubusercontent.com/funlearnstudio/SE/main/install.ps1 | iex

GitHub Releases also provides downloadable archives for macOS Apple Silicon, macOS Intel, Linux x64 and Windows x64.

Language and runtime

  • Low-punctuation SE syntax with indentation-based blocks.
  • Static checking and type inference.
  • Functions, lexical closures and simplified function helpers.
  • User-defined types, fields and methods.
  • Generic functions.
  • Value-based match / case.
  • List, Map and Set collections.
  • filter, map, reduce, slicing and sorting helpers.
  • Option and Result helpers.
  • Managed Task-style async / await.
  • File, path, time, math, random and OS support.
  • JSON, HTTP, web routing, process execution and lightweight persistent DB APIs.
  • HTTPS client support through system curl.
  • C ABI native interoperability and binding generation.

Core conversions

SE 0.6.0 includes beginner-friendly conversion names:

int "123"
integer "123"
num "3.14"
double "3.14"
float "3.14"
text 123
string 123
bool "true"
boolean "false"
char "A"
char 65

The canonical SE runtime types remain Int, Num, Text and Bool; familiar names such as string, double and float are conversion aliases rather than duplicate runtime types. char currently produces one-character Unicode Text.

Distribution

The release pipeline builds and verifies precompiled SE packages on supported GitHub-hosted platforms and publishes SHA-256 checksums with the release assets.

A prebuilt SE installation does not require CMake or a C++ compiler for normal interpreted workflows such as:

se run file.se
se check file.se
se check-all .
se test .

se build is different: it currently emits C++20 and invokes a system C++ compiler to produce a native executable, so native compilation still requires a C++20 compiler. This limitation is intentionally documented rather than hidden.

Version

SE 0.6.0

S 0.2.0

Choose a tag to compare

@github-actions github-actions released this 29 Aug 15:43

S 0.2.0

S 0.2.0 expands the existing S 0.1 language and compiler without breaking S 0.1 syntax compatibility.

Core language

  • User-defined type declarations with fields and methods.
  • Modules and use imports.
  • List, Map, and Set collection support.
  • Recoverable errors with try, fail, and structured Error values.
  • File, path, time, and Duration runtime support.

Native interoperability

  • C ABI support for Int, Num, Bool, Text, and Bytes.
  • Binary-safe byte buffers through SBytesView with S-owned lifetime semantics.
  • Native errors mapped to S NativeError.
  • Opaque native handles with automatic deleters and resource cleanup.
  • s bind baseline binding generator producing .snative metadata, C declarations, and C++ wrappers.

Validation

The release candidate was validated on Ubuntu GCC and macOS AppleClang with warnings treated as errors (-Wall -Wextra -Wpedantic -Werror).

The final validation suite includes:

  • S 0.1 regression coverage.
  • S 0.2 core tests.
  • 11/11 CTest passing on Ubuntu and macOS.
  • s check, s run, and s build smoke tests.
  • Interpreter/native output parity.
  • C ABI scalar, Text, and Bytes tests.
  • Binary Bytes regression using non-text bytes including 0x00 and 0xFF.
  • Opaque-handle automatic cleanup tests.
  • Binding-generator end-to-end generation, compilation, S execution, native build, and parity validation.

Version

S 0.2.0