Skip to content

Releases: xipkit/vibescript

v0.70.0

Choose a tag to compare

@github-actions github-actions released this 11 Sep 02:12
5cba216

Vibescript 0.70 improves string processing, JSON, static checking, and repeated script calls while reducing temporary allocations and retained memory. Optimized paths keep their work, memory, and cancellation checks, and this release also closes accounting and module-policy gaps found during the performance audit.

Ordinary release binaries continue to target Go 1.26. Source builds can opt into Go 1.27.1 SIMD on ARM64 and AVX2-capable x86-64, with portable fallbacks for unsupported CPUs and short inputs. See building instructions.

Go module users already on a v1.0.0-rc release must select this version explicitly because v0.70.0 has lower semantic-version precedence: go get github.com/mgomes/vibescript@v0.70.0.

Performance and memory highlights

  • Speed up ASCII length, index, reverse index, slicing, case conversion, and case comparison through shared word scans and optional SIMD kernels.
  • Scan literal spans in regular-expression quoting, JSON, formatting, and string compilation, and batch long whitespace runs in split and trim operations.
  • Avoid redundant Unicode rune scans in rindex, including calls that omit an offset, while preserving bounded and negative offsets and malformed UTF-8.
  • Stream block String#scan matches so early returns avoid collecting the remaining matches.
  • Reuse stable memory estimates during uniq and keep unrelated writes from invalidating cached estimates of unchanged values.
  • Avoid cloning unused declarations on each script call and keep static checking of independent declarations linear. Reuse union-type classifications.
  • Release discarded JSON documents, regex subjects and cached pattern storage, deleted hash keys, and values in returned function, receiver, and rescue scopes.
  • Reduce short-call execution state, reuse bounded scratch space for JSON and outbound host cloning, and skip unused compiler directive maps.

Representative before/after measurements for individual changes on Apple M4, Go 1.26.3 (these are not a cumulative comparison against v0.60.0):

Workload Before After
200 Unicode rindex calls 1,198.2 µs 640.1 µs
Short Script.Call, allocated bytes 3,472 B/op 3,216 B/op
80 JSON stringify calls, allocated bytes 53,562 B/op 38,201 B/op
Compile 251 functions, allocated bytes 248,888 B/op 222,032 B/op

See the rune-scan investigation, execution measurements, allocation measurements, and retention measurements for workloads, platform results, and tradeoffs. Detached JSON tokens and partial regex matches pay a copying cost to release source buffers; calls deeper than four frames need an extra allocation. Some unchanged string controls still vary with executable layout, so the measurements do not imply that every workload becomes faster.

The release also bounds parser and rendering depth, regex and JSON work, collection projections, and capability copying; meters accounting walks; and enforces module policy before filesystem access.

Full changelog · All changes since v0.60.0

v0.60.0

Choose a tag to compare

@github-actions github-actions released this 28 Aug 04:29
94e8cc6

Changelog

  • 7570d8c Widen the summary on a re-entrant lambda instead of skipping it
  • 79d584d Weigh the slice the conversions are held in
  • f55e356 Weigh the conversions against the arguments they came from
  • 8a165ab Weigh the block's keys when admitting the memo
  • 09b5e05 Warn when a statement-position mutator provably updates nothing (#1226)
  • bf90838 Walk a hash lookup's retained results as a memory-quota root (#1183)
  • 02b048f Validate sort scratch, charge merge preflight keys
  • fa6e1e3 Validate set-op buffers together with their operands
  • 21ceb12 Validate scratch in difference's membership equality
  • bee99aa Validate equality scratch with the compared operands
  • 61e1ee7 Validate before charging where the check is cheap
  • 24adeca Validate absorbed breaks from preserved bound methods
  • 5489785 Use the repository's spelling for traveling and behavior
  • 3be0eba Use slices.Contains and maps.Copy for linear scans and map merges
  • 7bbfd53 Use errors.New for a constant-shaped message
  • d41a418 Use a fresh comparison state for the _by extrema
  • f0b3a6c Use a class's to_s for format's %s
  • 3ba6018 Use American spelling in the enum rendering comments
  • 8d57424 Use American spelling in the JSON key test comments
  • 5f696a4 Update the changelog for the clone and module-root fixes
  • 8aacd0b Treat a lone rest block parameter as arity one
  • 074b1f6 Traverse metered maps deterministically, skip empty lookups
  • a6ba8ed Tie a task slot to the job rather than to a worker
  • 1a6292b Tidy the bound-equality charge comment
  • 1ac36da Thread a byte charge through value equality
  • 6b8a0f8 Test zone abbreviations alongside the zoneless default
  • a74867c Test unknown-member reporting and its soundness boundaries
  • d39cab8 Test to_s dispatch, fallbacks, and sandbox accounting
  • f881c78 Test to_s and inspect coverage, agreement, and quotas
  • b44c008 Test the teaching diagnostics and their boundaries
  • e2e6c97 Test the spaced-paren diagnostic and its boundaries
  • fcb4659 Test the removed sentinel and the rebuilt positional view
  • 8b0dc28 Test the keyword-default diagnostic and its boundaries
  • 85a643d Test the directive scanner and literal percent handling
  • 7213695 Test the conversion digit cap
  • 63348e2 Test the checker's view of symbol comparisons
  • 7ed1091 Test the checker's view of string repetition
  • 4a39ecf Test the break diagnostic across blocks, procs, and loops
  • 0630f09 Test that zoneless time results are host-zone independent
  • 46ae05c Test that ordinary host objects keep their rendering
  • 739cf6f Test that character-set scans bill their entry comparisons
  • ab0a518 Test task root-cause reporting in both read orders
  • 8c8e5e5 Test string repetition, its rejections, and its quota
  • 8859aea Test scalar comparison coverage per kind
  • b3b2848 Test rescued error rendering and the unchanged bags
  • 7bcd265 Test recursive eql? strictness and unchanged ==
  • 4454a60 Test named captures, shadowing, and the offset match path
  • 631e668 Test integer-string parsing, syntax limits, and quotas
  • 26d4311 Test hash stored entries and regex receiver checking
  • 32e7f51 Test format's to_s conversion, padding, and quota
  • 7760f9c Test flat_map semantics and per-element accounting
  • a74e66b Test every capped method instead of trusting the set
  • 701e42e Test enum value to_s and inspect
  • 401d1e3 Test enum type members
  • c3577be Test enum rendering projection and the alias suggestion
  • 393c52c Test duplicate named capture resolution
  • 471da59 Test diagnostic deduplication across call sites
  • 79215ba Test crossed formats, both dispatch paths, and literal text
  • 0edebb3 Test control-flow signals escaping an implicit to_s
  • 34039f2 Test completion narrowing and its fallbacks
  • 522a85b Test comparison metering, memoization, and equal prefixes
  • 4e4ff89 Test comparison error rescue, position, and limit classification
  • 46ac99a Test break in blocks, its boundaries, and sandbox accounting
  • ceafa50 Test assert call forms across both spacings
  • d06d57a Test array ordering, cycles, and the unchanged operand kinds
  • b8ca8d9 Test absorbed break return-type validation
  • abbf838 Test Hash#map block shapes and quota accounting
  • eba1cbb Test Hash#map arity and retained-output accounting
  • 292040f Teach the checker that symbols compare
  • 19a538c Teach the checker that a string repeats
  • faf18e8 Tag deliberate string-form bags instead of inferring them from shape
  • d7e129c Suspend yield recording while block bodies run
  • 899029c Surface named captures on match data
  • b524d60 Surface latched exhaustion past swallowing adapters
  • 2507d97 Surface a nesting refusal from the percent-literal probe
  • f15beb5 Suppress the hint when the field already admits nil
  • 2b69fc7 Suppress local-callee modulo before probing for a percent literal
  • b0f8b0d Support break inside blocks
  • 3480a41 Stop the summary walk from re-entering a stored lambda
  • 1c942cc Stop the key charge where canonicalization stops
  • 177b9e4 Stop the composite scan after a sticky equality error
  • 2bf246b Stop the ambient walk when its budget is spent
  • 1fc2ebd Stop retry at the implicit to_s boundary
  • a359135 Stop reporting a hash's stored entries as unknown members
  • 586129c Stop repeated-region ivar effects from re-entering a lambda
  • 1b0bfcb Stop propagating failed key encodings in equality charges
  • f28ad7d Stop object provenance at the host boundary
  • ffecc31 Stop four static-check paths doing quadratic work (#1182)
  • 5457821 Stop converting template values twice, and size interpolated regexes
  • 6703f2e Stop bounded collection inside captured environments
  • 1a946ea Stop ambient traversal when the budget is spent
  • 7430939 Stop ambient binding iteration at the budget
  • 1399055 Stand a tiny token in for the execution in credentials
  • a29b554 Staff task workers per job rather than per max
  • a1249ba Spread the set-op precharge sources as well
  • f7e1e52 Spread set-op sources instead of materializing them
  • 5394758 Snapshot fallback diagnostics for outer dispatches
  • 54b66ff Snapshot ambient builtins before contracted capability calls
  • 6b2caae Skip untouched bigint canonicalization, hold the scan reservation
  • 1a5e0b2 Skip the regex flag charge when sources already differ
  • 098c34c Skip the build accumulator for one-element array literals
  • 28f1483 Skip detaching a slice that already owns its bytes
  • 5650160 Size the squish builder to its output
  • c78f777 Size regexes without rendering in the value package
  • 5647fc3 Size regexes without rendering in the recursive walkers too
  • c8db928 Size big-integer inspections with the decimal bound
  • d17a99e Size a rendering from its payload, not by rendering it
  • 18f0027 Share the source replay with the splat lookahead
  • bf4cf4b Share the property contract a host clone copies
  • 775a789 Share the pool with a scope opened inside a scope
  • 82451be Share the lexer stacks a snapshot captures
  • 70f952d Share the argument classification, not just the arithmetic
  • efae5e3 Share one type copy across a whole clone, not one per class
  • ae4270e Share one task concurrency budget across a call tree
  • 32e158e Share one comparison state across a sort or extrema pass
  • 53771f3 Settle container delimiters, and search invalid UTF-8 linearly
  • c08c5b0 Settle a block's bind charge construction walk before its callbacks (#1198)
  • 12517a4 Settle JSON output per value, not once at the end
  • 9f33275 Set up the comparison memo lazily and charge its real footprint
  • df1765a Separate the return-type target from the options-hash target
  • 0e5a51d See through exact-one repeats when sizing
  • 73634f6 See through counted repeat aliases when sizing
  • 1144bbc Scope the unrescuable guarantee to the latched caps
  • c9a9afa Scope the changelog to what the charge covers
  • 7aa2c7c Scan typed hash entries at data-only boundaries
  • a792187 Scan raw statics without materializing them
  • c2c656b Scan for published capabilities before returning a validation error
  • 96f9864 Scan absorbed break results for newly published builtins
  • 8053c11 Scale the needle rejection by the widest encoding
  • 89cba6d Scale durations by float operands instead of truncating them
  • dbc3c57 Say what the deep-transform retained-payload figure does not bound (#1188)
  • 7968fc2 Run the zip build as an accumulator-metered section
  • 71751d4 Run the estimator-counter test serially
  • 353126f Run the awaited job, and only on a goroutine that holds a slot
  • 98b0600 Route unknown-member errors through the script error path
  • 9701f51 Route an absorbed break through the normal return path
  • 2a3f60e Root a module's environment while it initializes
  • 4f4edab Roll back dropped memo reservations and charge the map's footprint
  • 71f100c Rewrap shared clones with each wrapper's own tag
  • 8a58d61 Reuse the comparison state across _by extrema, clearing results
  • 6ba09d5 Retract the dormant memory total when a block can rebind it (#1184)
  • f19dce8 Retain worker exhaustion independently of the first error
  • 2fcbe23 Resume the structural replay instead of restarting it
  • 32c11fe Restore the ivar dirty marker after lambda body walks
  • f362a07 Resolve token positions through a line index
  • ee5e64e Reserve the template scratch as the projection allocates it
  • a3c2ec9 Reserve the slice copy beside slice's ignored arguments
  • 30a518f Reserve the set-op root wrapper slice
  • cb00c4f Reserve the set helpers' buffers in loop scratch
  • 6df2417 Reserve the result backing before the first block call
  • d9771f8 Reserve the hinted scalar map before allocating it
  • 335f8dc Reserve the equality index maps before building them
  • 429f880 Reserve the entry sort's full live footprint
  • 9fc40ba Reserve the detaching copy before allocating it
  • ad83cf4 Reserve the backing before the runner snapshots its baseline
  • ed8c492 Reserve the HashEntries copies a metered comparison materializes
  • 8b7f347 Reserve task slots for the work a ...
Read more

v1.0.0-rc9

v1.0.0-rc9 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 27 Jul 03:40
462ae66

Changelog

  • 7762ead Prepare v1.0.0-rc9 release
  • a9be6c4 Fold the deferred key buffer into the accumulator baseline
  • 907cecd Cover the block-driver shapes that went quadratic
  • b22b32e Capture legacy transform_keys values when the block runs
  • 5d8a0c5 Build the typed transform_keys result after the block loop
  • b7c9de2 Build the legacy transform_keys result after the block loop

v1.0.0-rc8

v1.0.0-rc8 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 26 Jul 15:16
e983fb8

Changelog

  • faecd9d Widen exact ivar facts after effects
  • a3c87bf Widen disjoint keyword splat failures
  • 744240e Weaken typed hash facts for open shapes
  • b4101ea Weaken outer bounds when written child containers mutate
  • 5efe966 Weaken facts when pure reads may alias interiors
  • 728bd6f Warn on unresolved host signature types
  • d896ec7 Walk property RHS with its expectation
  • 9c72aa9 Walk parameter defaults before summarizing the body
  • 9d3f846 Walk defaults for empty return summaries
  • aae76df Validate whole-hash replacements
  • 479e1a7 Validate respond_to? visibility argument type
  • a2a054a Validate reachable getter returns
  • d09ac6e Validate optional shape fields at runtime
  • 574998a Validate merge arguments before entry diagnostics
  • 661bd8a Validate class-predicate arguments
  • 2a991e2 Use string-key spelling for nil? member contract test
  • 9c201d6 Use reflect.Pointer in the assignment walker
  • d767cfa Use evaluated index selector facts
  • d3c0cb1 Use compound assignment results in implicit summaries
  • ff84516 Update implicit self predicate inference
  • a0d098d Type-check marked Markdown examples
  • ade41b2 Treat predeclared locals as class-argument shadows
  • 6902d8a Treat open shapes gradually in the checker
  • 26ada00 Treat method self as non-nil
  • 71fb427 Treat member-assigned constants as self shadows
  • 3898848 Treat invalid splatted merge elements as aborting
  • 8946eaa Treat exact nil blocks as absent
  • 2c486e1 Treat collapsed keywords as consumed
  • 31c438b Treat class references as pure predicate arguments
  • 31c9e10 Treat callable predicate arguments as impure
  • 938f418 Treat callable interiors as receiver escapes
  • 0c2a93e Treat adopted module constants as self shadows
  • 84b1801 Traverse resolved method callees for namespace writes
  • b558ef3 Track yields in invoked lambdas
  • 0562e21 Track witnessed key kinds on mixed-key shape markers
  • eec0329 Track value correlation by source
  • 2a121e0 Track typed property failures through calls
  • c836310 Track transitive namespace writes from callees
  • 7ba26c0 Track shape correlation by source
  • cf67b29 Track self method namespace mutations
  • 546d5c4 Track self class mutation effects
  • 732b52b Track self class constant writes
  • e467d9d Track scalar destructure rest bindings
  • 90b4e4c Track required collapsed options hashes
  • 5ae93f0 Track precise self dispatch effects
  • 38a9fd2 Track nonnil nullable block choices
  • ab7ef1b Track nested typed block bindings
  • 6580761 Track namespace writes hidden in block bodies
  • 3149bd9 Track immediate lambda namespace effects
  • 949555a Track dispatch default prefix effects
  • 9c779cb Track containment through literal assignments
  • 3b99e41 Track constructor state for getter returns
  • 2a0e47a Track collapsed options in reachable calls
  • cb0a7bf Track bare method namespace mutations
  • ab50ba4 Track aliases retained by container literals
  • 3cb10a4 Tighten literal, annotated, and default ivar contract checks
  • 10a6d2d Thread auto-call state through shadowed type literals
  • 8b57c33 Test typed property write checking
  • cb235f3 Test typed ivar failure stops destructure replay
  • 8ba8f70 Test typed hash and shape write checking
  • ee23edc Test typed array write checking
  • 69b9f24 Test rest window ivar destructure checking
  • 10d34d3 Test parse_as root diagnostics and shadowing
  • 0222de2 Test padded destructure ivar writes
  • 3ff0686 Test or-assign ivar write checking
  • e6980a1 Test nullable hash mutator writes
  • 8b21aaf Test non-object parse_as roots
  • 0ca9c3c Test logical ivar write truthiness handling
  • 9910186 Test literal, annotated, and default ivar contract checks
  • 7c3523a Test ivar parameter contract checking
  • fa33490 Test ivar expectation, ordering, and ownership checks
  • 88c53e3 Test effect-driven fact preservation both directions
  • af27c15 Test direct typed property write enforcement
  • 2af6480 Test destructured ivar writes and and-assign facts
  • 76f1fb4 Test class method ivar params skip contracts
  • 6c2e014 Test checker facts for parse_as roots
  • 2d82246 Test argument type literal parsing
  • e0afc70 Teach the checker optional shape fields
  • ba7d0c7 Surface capability bind failures from the gate
  • d95010f Stop preserving uninvoked lambda namespace writes
  • 00fed32 Stop gate binding at the first adapter failure
  • fc903d0 Stop checking mutator writes after aborting splats
  • 74a1d69 Stop auto-invoking assignment target identifiers
  • 0ce0d3b Stop aliasing merge receivers to scalar-bounded sources
  • 66e14c4 Stop after noncallable shape mutator shadows
  • ec30f77 Skip unreachable repeated try rescues
  • 93eedfe Skip unreachable condition outcomes
  • 447978e Skip the mutation-epoch bump for scalar rebinds
  • 740a357 Skip supplied parameters' default namespace writes
  • b2c7189 Skip short-circuited ivar RHS walks
  • 3a78042 Skip optional fields in shape merge checks
  • ffde396 Skip ivar property contracts for class methods
  • 31e288d Skip insert element checks for invalid indexes
  • d4b6f35 Skip generic escape poison for modeled mutator arguments
  • 9035d3b Skip entry diagnostics for provably unstorable hash keys
  • ae9a2ad Skip empty rescue arms when summarizing returns
  • aac38c6 Skip effects from uninvoked fill block arguments
  • 183bcd1 Skip deferred returns behind inferred exiting ensures
  • 05c98a1 Share universal member dispatch proof
  • 7619a9c Shadow type literals only by the fallback's verbatim spelling
  • c79f214 Shadow type literals by predicate-name fallback spellings
  • 2a67730 Separate array write and overlap checks
  • 8afb81e Seed initializer ivars as unset
  • 8fbe73b Seal capability return validation behind an internal proof
  • 292785e Scope returned-path namespace writes to the try
  • 229ac77 Scope reachable checks to call-time state
  • 5e3a3db Schedule array lambda effects on body entry
  • 155e249 Scan repeated loop condition effects
  • 44877dd Scan parameter defaults for namespace mutations
  • 8baa5fa Scan method class-var writes for constant shadows
  • 2ae5bec Scan lambda callback blocks for namespace writes
  • 8259391 Satisfy staticcheck in the public type test
  • b81b32e Route parenless callbacks through call analysis
  • 2522183 Route captured self index effects
  • ddd5c48 Reuse summaries for resolved .call invocations
  • 12b035a Reuse evaluated parameter default facts
  • 75684be Reuse checkRootBinding for the raw type-root read
  • 5081480 Reuse caller alias identities for parameters
  • b3e15ce Retain exact splat element provenance
  • 1975585 Restore word boolean names as identifiers
  • 90fc05e Restore shape hash key rejection
  • 64d264f Respect universal member assignment dispatch
  • 4a18bcd Respect runtime evaluation order in static checking
  • cc8bd3f Respect retained block argument expectations
  • b34b531 Respect module binding precedence and clone metadata
  • 8ba1eda Respect implicit self binding precedence
  • c3567bb Respect ensure completion in fill block results
  • 220e161 Respect data-field shadowing of shape mutators
  • d4b67b9 Resolve universal predicates on literal hashes
  • 1058e9d Resolve qualified module atoms in is_type?
  • 9f9dc43 Resolve is_type atoms in module scope
  • ea9aaa2 Resolve implicit self new dispatch
  • fa1ba1a Resolve default-binding signatures in the callee source
  • 50e33db Require valid atoms before nullable nil matching
  • c60af35 Require universal nil predicate dispatch
  • 37eef44 Require full union assignability at boundaries
  • dbca6b7 Require every public member registered or exempted
  • 6fe8fe5 Require all exact boundary alternatives
  • 583f938 Report unresolved qualified atoms statically
  • 8455582 Replay retained values in ivar destructuring
  • 75968a0 Remove superseded checker helpers
  • fca2950 Remove superseded assignment checker
  • 7cd8932 Remove obsolete assignment target scan
  • c6d5539 Remove dead block fact code
  • 29c0e5b Reject provably non-nil forwarded blocks
  • 895a49e Reject overflowing fill spans statically
  • 013197f Reject module constructor instance facts
  • 04eba12 Refine typed hash default getters
  • fa93893 Refine Array fill selector writes
  • 2a7126a Recognize empty-body function clones in summaries
  • bb87c1d Quote literal question-mark shape keys in formatting
  • e212e5d Prune unreachable rescue alternatives
  • ae82244 Prove symbol hashes reject object backing
  • 8150a5c Propagate retained proc returns
  • 7ee9e98 Propagate instance origins across boundaries
  • 95212ae Propagate constructor origins through return summaries
  • 925c4e1 Propagate callable expectations through expressions
  • 98a26bb Project typed destructure value facts
  • 09690fe Probe is_type? in contract parity
  • 0e9a7d1 Preserve unset ivars across pure regions
  • 5ce53ff Preserve unset facts across conditional methods
  • c3d3b67 Preserve unrelated exact ivar facts
  • bb73b74 Preserve typed facts for compatible chained shovels
  • 2f850a8 Preserve symbol-only hash member writes
  • 8490f4c Preserve shape sources across calls
  • 060140a Preserve retained block and Hash default provenance
  • 8fd0a01 Preserve rescued instance writes
  • 99d23d5 Preserve repeated splat source choices
  • 3e241d1 Preserve repeated evaluation order
  • 59d70de Preserve refined loop entry facts
  • c0bfa9f Preserve receiver facts across pure member calls
  • e28a5a4 Preserve possible namespace writes across joins
  • 17e5eb6 Preserve partial array alternatives
  • a97f4f3 Preserve origins through self returns
  • eadb94c Preserve optional shape bounds on array writes
  • b04848a Preserve one-shot callback ivar facts
  • 2276c4b Preserve nullable facts across nil predicates
  • b3b53f5 Preserve nominal facts across dispatch forms
  • d3860e0 Preserve nil for untraced getter receivers
  • 941e5d2 Preserve nested rescue nonlocal markers
  • 906b2bf Preserve nested callback ivar effect precision
  • 01d5592 Preserve namespace setter evaluation state
  • 9631447 Preserve namespace getter evaluation state
  • 6b97d0d Preserve method resolution in...
Read more

v1.0.0-rc7

v1.0.0-rc7 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 17 Jul 02:20
048563c

Seventh release candidate: builtin discovery now follows the runtime registry
across the REPL and language server, and the urfave CLI migration is complete.

  • Complete REPL discovery. :functions now lists every runtime callable
    instead of a 19-name manual subset. Completion includes registered
    namespaces, members, constants, and every parser keyword, including
    Duration, JSON.parse_as, Math.PI, and unless.
    (#957)
  • Qualified builtin signature help. Namespace calls such as
    JSON.parse_as(...) now show their documented signatures. Runtime
    registration is the source of truth for completion, hover, signatures,
    checker contracts, and builtin documentation, with coverage checks
    preventing drift.
    (#957)
  • Consistent CLI I/O and cancellation. Commands use urfave's configured
    streams, surface write failures, and propagate Ctrl-C cancellation. lsp
    and repl help also stop advertising unsupported positional arguments.
    (#956)

v1.0.0-rc6

v1.0.0-rc6 Pre-release
Pre-release

Choose a tag to compare

@mgomes mgomes released this 15 Jul 23:51
437c388

Sixth release candidate: the hash-rocket syntax that #867 accidentally reinstated is removed again, the CLI moves to urfave/cli, and the language server becomes a real documentation surface.

Removed: hash rocket (=>) syntax, again. Rockets in hash literals and shape annotations are parse errors with a single targeted diagnostic. The arbitrary-key runtime model stays: colon keys, index assignment for runtime-computed keys, and colon shape fields (label, string, symbol, and quoted-symbol names) are the supported spellings. Rescue bindings (rescue RuntimeError => err) are unaffected.

Added: language server documentation. Hover and completions now serve real docs parsed from the embedded references — kernel builtins, namespaces and their members through both accessors (Math.PI, Math::PI), keywords, and the stdlib member surface (386 entries, with merged multi-receiver sections and composed bang variants). User-defined functions, classes, modules, and enums hover with reconstructed typed signatures plus leading doc comments, resolved by scope and receiver kind. Drift gates keep the docs honest: every engine-registered builtin, parser keyword, and universal-member claim is enforced against the runtime.

Changed: the vibes CLI is rebuilt on urfave/cli with a stable command contract.

Editor note: the tree-sitter grammar v0.3.1 and editor extensions (zed 0.0.4, sublime 1.0.0) pair with this release — update your vibes binary to get documented hovers.

v1.0.0-rc5

v1.0.0-rc5 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 13 Jul 02:09
dd094bd

Changelog

  • e77801d Skip dev-mode revalidation for modules the call already required
  • 964ca12 Serve pinned modules before cache revalidation and disk
  • 05569af Prepare v1.0.0-rc5 release
  • 73a413a Pin search-path requires by name instead of scanning root keys
  • 3fdd85b Document entrypoint execution order for vibes check
  • 8218636 Document dev-mode module reloading and record ADR-005
  • bd085be Add changelog fragment for Config.DevMode
  • fea0706 Add Config.DevMode for development-time module reloading

v1.0.0-rc4

v1.0.0-rc4 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 11 Jul 00:06
0708171

Changelog

  • c019c87 Retry fuzz targets once on the engine shutdown flake (#945)
  • 04d36c0 Prepare v1.0.0-rc4 release
  • faf97f0 Implement static checking for typed boundaries (ADR-004) (#944)

v1.0.0-rc3

v1.0.0-rc3 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 09 Jul 03:19
f6ff12b

Changelog

  • 243b95e Stop the estimator reallocating large hash entries per check (#935)
  • 0aee9cd Skip immutable dormant frames in the memory estimator (#932)
  • 00254df Settle array-append buffers in the identifier read walk (#933)
  • 4443476 Run the estimator oracle in CI (#937)
  • 4d3f3af Remove accidental wt-master gitlink (#931)
  • a2f2c5b Recycle reuse-eligible call frames (#930)
  • 1800dc4 Record arbitrary-precision integers ADR (#942)
  • 7d3efb7 Record CLI quota profiles ADR (#940)
  • f6ff12b Prepare v1.0.0-rc3 release (#943)
  • af46b34 Make block-iteration memory checks incremental under a quota (#936)
  • e4958ed Inline the memory-quota guard on per-value checks (#934)
  • 6e3b04a Ignore local editor and Claude Code tool state (#939)
  • a390eab Document the quota profiles (#938)
  • 453faf4 Default the zero-value quota budget to the low profile (#941)
  • 15537ce Add quota profiles and call-path performance wins for 1.0-rc2 (#929)

v1.0.0-rc2

v1.0.0-rc2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 07 Jul 14:23
20872b7

Changelog

  • 83c0c57 Support arbitrary-precision integers with transparent promotion (#920)
  • 20872b7 Prepare v1.0.0-rc2 release (#921)
  • ec66c41 Parse spaced brackets after command callees as array arguments (#918)
  • 582e1dc Allow bounded first(n) on endless ranges (#917)