Skip to content

Releases: locutusjs/locutus

v3.0.34

30 Mar 18:47

Choose a tag to compare

Released: 2026-03-30. Diff.
Version rationale: patch for additive Python runtime expansion without import-model or runtime floor changes.

Expansion

  • Added a first python/functools harvest covering reduce.

v3.0.33

30 Mar 15:22

Choose a tag to compare

Released: 2026-03-30. Diff.
Version rationale: patch for additive Python runtime expansion plus nightly refresh reliability hardening, without import-model or runtime floor changes.

Expansion

  • Added a first python/bisect harvest covering bisect, bisect_left, and bisect_right.

Fixes

  • Restored PHP-style scalar coercion for strtotime() numeric input and aligned bcscale() with modern PHP getter/setter semantics, including shared default bcmath scale across bc* helpers.
  • Hardened nightly Perl upstream-surface refresh by feeding the discovered namespace catalog through Docker stdin instead of a giant perl -e argv payload, and improved runInDocker() diagnostics when a container exits non-zero without stderr.
  • Marked Perl upstream-surface discovery as Docker-backed so refresh/enumeration pre-pulls perl:5.40 instead of letting the first docker run fail on implicit pull output in nightly CI.
  • Enabled arm64 emulation in Nightly Parity so Swift upstream-surface refresh can execute the swift:6.0 arm64 symbolgraph extraction path on GitHub’s x64 runners.
  • Made upstream-surface Docker prewarming platform-aware, so Swift refresh now pre-pulls swift:6.0 for linux/arm64 instead of warming the host-arch image and forcing a failing implicit repull at docker run time.

v3.0.32

27 Mar 15:44

Choose a tag to compare

Released: 2026-03-27. Diff.
Version rationale: patch for additive Python runtime expansion without import-model or runtime floor changes.

Maintenance

  • Stopped publishing website pages for internal src/*/_helpers/* implementation details.

Expansion

  • Added a first python/itertools harvest focused on parity-friendly iterable combinatorics:
    accumulate, batched, chain, combinations, combinations_with_replacement, compress, islice, pairwise, permutations, product, and zip_longest.

v3.0.31

27 Mar 12:56

Choose a tag to compare

Released: 2026-03-27. Diff.
Version rationale: patch for PHP runtime parity fixes without import-model or runtime floor changes.

Fixes

  • Aligned php/bc/bcscale with PHP 8 getter/setter semantics and persisted shared default bcmath scale across bc* helpers.
  • Fixed php/datetime/strtotime so numeric input follows the same string-coercion parse path as PHP.

v3.0.30

26 Mar 15:10

Choose a tag to compare

Released: 2026-03-26. Diff.
Version rationale: patch for additive Python runtime expansion plus workflow reliability hardening, without import-model or runtime floor changes.

Maintenance

  • Fixed the CI/nightly Yarn cache-directory lookup to use corepack yarn config get cacheFolder, so GitHub Actions no longer trips over the global Yarn 1 binary before Corepack activates Yarn 4.

Expansion

  • Added a second python/calendar harvest focused on formatting helpers:
    calendar, formatstring, month, and week.

v3.0.28

26 Mar 08:47

Choose a tag to compare

Released: 2026-03-26. Diff.
Version rationale: patch for additive Python runtime expansion without import-model or runtime floor changes.

Expansion

  • Added a first python/operator harvest focused on plain-value operator helpers:
    abs, add, and_, concat, contains, countOf, eq, floordiv, ge, getitem, gt, indexOf, inv, invert, is_, is_not, le, lshift, lt, mod, mul, ne, neg, not_, or_, pos, pow, rshift, sub, truediv, truth, and xor.

v3.0.27

25 Mar 22:25

Choose a tag to compare

Released: 2026-03-25. Diff.
Version rationale: patch for additive Python runtime expansion without import-model or runtime floor changes.

Expansion

  • Completed the tracked python/statistics module with a second harvest focused on advanced statistical helpers:
    correlation, covariance, geometric_mean, harmonic_mean, linear_regression, median_grouped, and quantiles.

v3.0.26

25 Mar 19:41

Choose a tag to compare

Released: 2026-03-25. Diff.
Version rationale: patch for additive Python runtime expansion plus a scoped C runtime-correctness fix, without import-model or runtime floor changes.

Fixes

  • Restored the long-standing JS numeric coercion in c/math/frexp while keeping the cleaner labeled tuple return type, so plain JS callers like frexp("1") and frexp(true) keep working instead of regressing to non-numeric fraction output.

Expansion

  • Added a first python/statistics harvest focused on plain-value aggregation helpers:
    fmean, mean, median, median_high, median_low, mode, multimode, pstdev, pvariance, stdev, and variance.

Inventory

  • Removed the remaining hidden defaultNamespace fallback from every supported upstream-surface language by expanding the last implicit namespaces into explicit policy rules, so accepted core/stdlib target definition is now inspectable end-to-end instead of partially inherited from a language-wide default.

v3.0.25

25 Mar 12:44

Choose a tag to compare

Released: 2026-03-25. Diff.
Version rationale: patch for runtime security fixes plus maintainer/workflow hardening without import-model or runtime floor changes.

Security

  • Hardened php/var/unserialize against __proto__ / constructor / prototype key injection by defining those keys as plain own properties instead of letting them mutate the returned object's prototype.
  • Hardened php/strings/parse_str against dangerous key-path prototype pollution without relying on RegExp.prototype.test, so __proto__ and constructor[prototype] payloads are skipped even if regex guards are tampered with earlier in the process.

Inventory

  • Added a separate canonical upstream-surface scope manifest and made enumeration/checking fail on missing expected namespaces, unexpected namespaces, and source-ref drift before triage policy is applied.
  • Upgraded canonical namespace discovery from a bare name list into a self-describing namespace-catalog contract, so scope audit now validates namespace names, target version, source kind, and source ref together.
  • Added an explicit enumerate:upstream-surface maintainer flow that materializes the full tracked catalog across runtime, docs/source, and manual snapshots, while keeping refresh:upstream-surface as the live-discovery-only alias.
  • Broadened canonical namespace-audit coverage across the runtime-backed languages by adding catalog discovery for Go, Julia, R, Elixir, Ruby, PHP, and Tcl, and made the maintainer flow treat docs/upstream-surface-scope.yml as the planning source of truth before new expansion work begins.
  • Made runtime catalog discovery safer and more reliable by excluding Python's side-effectful antigravity module from canonical scope and by batching Go package discovery inside one container run with a larger Docker output buffer.
  • Broadened the upstream-surface inventory beyond the first curated slice, adding new tracked namespaces for Python, Ruby, Elixir, Lua, Tcl, and Perl while keeping the catalog at untriaged: 0.
  • Added language-level scope notes and tracked-namespace counts to the website inventory panel so language pages no longer imply they cover an entire upstream language when they still track a deliberate subset.
  • Added Python builtins, Tcl dict and standalone value commands, PowerShell System.Math, Rust std::cmp, Julia Statistics, R stats, the remaining Lua core libraries, and Perl List::Util / Scalar::Util to the tracked upstream catalog so the language pages now reflect a much broader and more honest core-runtime roadmap.
  • Continued broadening the same inventory in-flight with Python heapq / textwrap, Ruby Integer / Float, Go slices, Elixir Tuple, PowerShell System.Char, and Rust primitive char, plus a Go generic-symbol normalization fix so those inventories stay clean and comparable.
  • Closed the last structural gaps in the current project surface by adding upstream tracking for Haskell list, Kotlin collections / text, and Swift String, so every language/category currently shipped under src/ is now represented in the upstream inventory.
  • Continued the same breadth wave toward official core/stdlib scope with Python cmath / collections / decimal / random / unicodedata, Ruby Comparable / Range / Regexp / Symbol / Time, Elixir Base / Date / Keyword / NaiveDateTime / URI, PowerShell System.Convert / System.Array, Rust primitive f32 / f64, Kotlin comparisons / math / ranges, and Swift Array / Character.
  • Continued broadening toward official core/stdlib scope with Python base64 / calendar / html / json / urllib.parse, Go bytes / cmp / maps / unicode / utf8, Tcl's broader core command and ensemble surface, R recommended packages (utils, graphics, grDevices, methods, stats4, tools), Julia Random / Printf / Unicode, Elixir DateTime / MapSet / Regex / Time / Version, and additional docs-backed Haskell, Perl, PowerShell, Rust, and Swift core namespaces.
  • Continued the same breadth push with Python csv / hashlib / hmac, Ruby Dir / File / MatchData / Numeric, Go encoding/base64 / encoding/hex / math / math/bits, R compiler / grid / parallel / splines, Julia DelimitedFiles / LinearAlgebra, Clojure walk / zip, and more docs-backed core namespaces for PowerShell, Rust, Swift, Kotlin, Haskell, and Perl while dropping empty runtime-only catalogs like R datasets.
  • Extended the same R breadth wave across the official recommended packages with class, cluster, foreign, KernSmooth, lattice, MASS, Matrix, mgcv, nlme, nnet, rpart, spatial, and survival, keeping the policy sparse through namespace defaults rather than per-function bookkeeping.
  • Tightened the discovery contract again so every supported language now exposes both a canonical namespace catalog and a deterministic discover() path, with enumerate:upstream-surface running one unified codepath across runtime-backed and snapshot-backed languages instead of silently bypassing the latter.
  • Replaced the last snapshot-reuse discovery paths with real canonical extraction for AWK, C, Perl, PowerShell, Rust, Haskell, Kotlin, and Swift, so checked-in upstream snapshots are now discovery artifacts rather than hidden inputs.
  • Patched the website build dependency tree against open fast-xml-parser advisories by overriding Hexo feed generation's transitive fast-xml-parser dependency to 5.5.9, keeping the fix scoped to the website-only build surface.
  • Hardened the GitHub Actions workflow so PR validation runs with read-only repository permissions, while npm release and website deploy now happen in separate write-scoped jobs only on tags or main.

v3.0.24

16 Mar 18:57

Choose a tag to compare

Released: 2026-03-16. Diff.
Version rationale: patch for a large additive Python math expansion plus the upstream-inventory groundwork that now drives broader namespace harvests.

Inventory

  • Reworked the upstream-surface inventory into a compact triage model with namespace defaults and wildcard rules, so we can classify large upstream catalogs without per-function noise.
  • Drove the checked-in upstream inventory to untriaged: 0 across all current languages and namespaces, and surfaced the resulting keep/skip/wanted state more clearly on the website.

Expansion

  • Added a first python/math harvest focused on trigonometric and angle-conversion helpers:
    acos, acosh, asin, asinh, atan, atan2, atanh, copysign, cos, cosh, degrees, expm1, hypot, radians, sin, sinh, tan, and tanh.