Skip to content
AsHyAmS
Network state observed every site read A snapshot, not live telemetry.

Updateschanged

l3i stable 1.2.0 → 1.3.0

Published by l3i. release artifacts

Channel stable

  • changed: stable head 1.2.0 → 1.3.0

stable: Artifacts

  • changed: Artifact crate size 1803998 bytes → 1867226 bytes

Releases

  • added: Release 1.3.0stable, available, dated 2026-10-01 by its publisher

Publisher's notes for 1.3.0 stable

Luau's own parser for scripts with `@dream/luau`: the syntax tree with exact spans, comments, errors and the token stream, built as tables in native code and typed for strict walkers; and named Luau types for extensions whose values are plain tables.

Added

  • @dream/luau (feature syntax): luau.parse(source, options?) runs Luau::Parser under the runtime's fast flags and returns the tree as tables, every node with its kind and a 1-based span, one table per local shared by its declaration and every use, string quote styles, every comment and hot comment, parse errors as data with the recovered tree, and, with { tokens = true }, Luau's token stream as a buffer of 12-byte records; { declarations = true } parses definition-file syntax.
  • The tree costs 17205 instructions per source line built and collected, against 27861 for the parser and Luau's own JSON encoding of it, which a script would still have to decode.
  • ExtensionDescriptor::type_alias: a named Luau type an extension's signatures refer to, for values that are plain tables, rendered as export type ahead of every module.
  • @dream/bytes's toBase64 and fromBase64: standard padded base64 of a range of a buffer or string in one call, and back, refusing anything that isn't base64 by naming the byte.
  • @dream/bytes's frame: one native walk over a run of tag-length-payload chunks (RIFF, IFF, PNG, GLB, Bethesda records), the layout given as data, returning every chunk's start and end as u32 pairs and, when it stops early, why and where; an inner layout checks that each payload's chunks tile it. A megabyte of records and fields in 0.98 ms against 9.8 ms for the Luau walk.
  • @dream/bytes's regex (feature bytes-regex): a pattern compiled once over bytes, whose matchSpans tests every (start, end) range of a buffer in one call and answers with a byte per range, so a thousand small fields cost one call and no strings; isMatch and find over one range.
  • @dream/fs (feature fs): the host filesystem over byte paths, with whole and positional reads, readers over a memory map, writers with positions and truncation, stat and lstat, a walk that returns parallel columns, recursive removal, renames, copies, hard and symbolic links, canonical paths and file identity, behind the filesystem.read and filesystem.write capabilities. What the OS refuses returns nil, the message and the error's kind, the way io.open does.
  • @dream/process (feature process): run starts a program with no shell, waits for it, and returns its exit code with its output passed through, captured or discarded, behind process.spawn; env behind process.environment; write and isTerminal for the standard streams.
  • @dream/bytes's translate(text, from, to, { collapse?, trimStart?, trimEnd? }?): bytes mapped like tr, runs of one byte collapsed, one byte trimmed from each end, and the text itself returned when nothing changes; folding a path's case and separators costs 141 ns a call against 470 ns for string.lower plus string.gsub.
  • @dream/intern's rules policy, intern.new({ nocase?, replace?, collapse?, trimStart?, trimEnd? }): keys normalized inside the hash and the compare, so Meshes\\X//Rock.NIF and meshes/x/rock.nif are one token with no normalized string made; the byte map lowers to native code eight bytes at a time, 522 instructions for a duplicate 31-byte path against 5008 for string.lower plus string.gsub and a table read, and resolve returns the normal form.

Written by the publisher and shown verbatim, rendered through a sanitizer.