Skip to content

Release v0.4 + v0.5 to main (spec, conformance, docs) - #2

Merged
shahadulhaider merged 9 commits into
mainfrom
v0.4
May 26, 2026
Merged

Release v0.4 + v0.5 to main (spec, conformance, docs)#2
shahadulhaider merged 9 commits into
mainfrom
v0.4

Conversation

@shahadulhaider

Copy link
Copy Markdown
Contributor

Summary

Merges all v0.4 + v0.5 spec, conformance test, and documentation work from the v0.4 development branch into main. The release work shipped to npm/PyPI/Go on 2026-03-15, but the spec repo's main branch was never updated — this PR fixes that drift.

What's Included

v0.4 features:

  • Destructuring (object + array) in let bindings and arrow params
  • Regex literals (/pattern/flags) with .test(), .match(), .replace()

v0.5 features:

  • Math functions (sqrt, log, pow, random, sign, trunc) + constants (PI, E)
  • Type predicates (isNumber, isString, isArray, isNull, isObject, isRegex)
  • 13 new array methods (sortBy, take, drop, count, sum, avg, compact, partition, keyBy, min, max, first, last)
  • fromEntries(), str.split(/regex/) overload, rest parameters in arrows

Spec fixes:

  • Node-count and conformance-count contradictions in Architecture section
  • Stale "Future" entries for already-shipped features
  • v0.4.0 → v0.5.0 in Deliverables table
  • Broken #future-v02 anchor

Test suites added (8 files, +1475 lines):

  • conformance/collections_v5.yaml (~45 tests)
  • conformance/math_v5.yaml (~30 tests)
  • conformance/type_predicates.yaml (~22 tests)
  • conformance/features_v5.yaml (~20 tests)
  • conformance/destructuring.yaml
  • conformance/regex_literals.yaml
  • Plus README.md and XPR-SPEC.md updates

Conformance Status

All 3 runtimes pass these conformance suites at v0.5.0:

  • xpr-js 0.5.0 (npm: @xpr-lang/xpr)
  • xpr-python 0.5.0 (PyPI: xpr-lang)
  • xpr-go v0.5.0 (Go module proxy)

Merge Strategy

main is a strict ancestor of v0.4 — fast-forward merge is safe.

Commits (9)

496f8e9 docs: link to live docs site
b68e09c docs: update conformance test list to 22 files for v0.5
9b72075 docs: fix spec contradictions for v0.5
2ea42e5 test: fix error substring matches in v0.5 conformance tests
1d43896 spec: add v0.5 features (math, type predicates, collections, rest params)
87ea0b3 test: add v0.5 conformance tests (~110 cases)
4c3f605 test: fix regex ternary test to use string() for comparison
3d0f77c test: add conformance tests for destructuring and regex literals
8880668 spec: add destructuring and regex literal grammar and semantics for v0.4

@shahadulhaider shahadulhaider self-assigned this May 26, 2026
@shahadulhaider
shahadulhaider merged commit 3347bbf into main May 26, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant