Skip to content

Releases: locutusjs/locutus

v2.0.38

19 Jan 16:40
@kvz kvz
57ea89d

Choose a tag to compare

Infrastructure

  • Restore published Node engine range to >= 10 for 2.x releases (engine bumps now treated as major changes)
  • Add CI guardrail to block raising engines.node without a major version bump

Full changelog: https://github.com/locutusjs/locutus/blob/main/CHANGELOG.md

v2.0.37

08 Jan 21:37
@kvz kvz
7e5db40

Choose a tag to compare

New Functions (32 across 7 languages)

  • R: toupper, tolower, nchar, sqrt, round, max, min (7)
  • Lua: string.len, string.rep, string.reverse, math.sqrt, math.sin, math.cos, math.max, math.min (8)
  • AWK: cos, exp, log, sin, sqrt (5)
  • Elixir: String.downcase, String.upcase, String.length, String.reverse (4)
  • Clojure: string/lower-case, string/upper-case, string/reverse, string/trim, string/blank? (5)
  • Julia: lowercase, uppercase (2)
  • Perl: reverse (1)

Infrastructure

  • Moved rosetta.yml from src/_data/ to src/ for cleaner structure
  • Fixed parity test handlers for Julia, Elixir, Clojure, R (string quoting, float precision)
  • Updated cross-language mappings in rosetta.yml

Full changelog: https://github.com/locutusjs/locutus/blob/main/CHANGELOG.md

v2.0.36

08 Jan 20:43
@kvz kvz
e4ceb11

Choose a tag to compare

New Functions

  • Perl string functions: uc (uppercase), lc (lowercase), substr (with negative offset support)

Fixes

  • Fixed parity test string normalization for Perl (native print doesn't quote strings)

Full Changelog

v2.0.35

08 Jan 16:28
@kvz kvz
9aaad43

Choose a tag to compare

New Functions

  • Lua string module: upper, lower, sub (with 1-based indexing and negative index support)
  • AWK builtin functions: tolower, toupper

Fixes

  • Fixed parity test string normalization for Lua and AWK (native print doesn't quote strings)

Full Changelog

v2.0.34

08 Jan 15:59
@kvz kvz
419a747

Choose a tag to compare

New Languages (7)

  • Perl 5.40: POSIX::ceil, POSIX::floor, core::length
  • Lua 5.4: math.ceil, math.floor, math.abs
  • R 4.4: ceiling, floor, abs
  • Julia 1.11: Base.ceil, Base.floor, Base.abs
  • Elixir 1.18: Float.ceil, Float.floor, Kernel.abs
  • Clojure 1.12: Math/ceil, Math/floor, Math/abs
  • GNU AWK 5.3: length, int, substr

New Functions

  • Go: 11 strings functions (Contains, ContainsAny, Count, EqualFold, HasPrefix, HasSuffix, Index, LastIndex, Repeat, ReplaceAll, Split)
  • Ruby: 14 Math functions (sqrt, sin, cos, exp, log, tan, asin, atan, cbrt, cosh, log10, log2, sinh, tanh)
  • Python: 8 math functions (ceil, floor, exp, fabs, log, log10, log2, trunc)

Parity Verification

  • New cross-language verification system with Docker
  • PHP: 164 functions verified against PHP 8.3
  • Python: 23/25 functions verified against Python 3.12
  • Go: 20 functions verified against Go 1.23
  • Ruby: 30/32 functions verified against Ruby 3.3
  • C: 11/18 functions verified against GCC
  • parity verified: header in function files for CI integration
  • Parallel execution with caching for fast test runs

Website

  • Rosetta Stone: Cross-language function links on each function page
  • Hover tooltips on verified badges showing exact version
  • Internal dependencies shown with clickable links
  • Authors rendered server-side instead of client-side JS
  • Hexo upgrade 7.1.1 → 8.1.1

Infrastructure

  • Converted src/_util/ to TypeScript, removed Babel 6
  • Migrated from Mocha/Chai to Vitest
  • Updated Node engine requirement from >= 10 to >= 22
  • Added stricter Biome rules: noAccumulatingSpread, useAwait, noFloatingPromises
  • CI runs full lint checks (lint:ts, lint:headers, lint:no-stray-js)
  • Standardized array checking to Array.isArray() across 43 files
  • Added composer.json for PHP project integration

Dependencies

  • mocha 10 → 11, chai 4 → 6, rimraf 5 → 6, cross-env 7 → 10

Bug Fixes

  • Node 25 compatibility: async queue drain, indentString
  • Docker image pull optimization (once at init, not per-function)

Full changelog: https://github.com/locutusjs/locutus/blob/main/CHANGELOG.md

v2.0.33

08 Jan 15:59
@kvz kvz
3c17a42

Choose a tag to compare

Released: 2026-01-07

Bug Fixes

  • quoted_printable_encode: Fixed soft line break stripping logic
  • get_defined_functions: Updated unrealistic test expectation
  • array_diff_uassoc: Corrected expected return value to match PHP
  • array_merge_recursive: Reimplemented to properly merge arrays recursively
  • array_splice: Fixed test to use arrays instead of objects

Tooling Updates

  • Updated Yarn from 4.0.1 to 4.12.0
  • Added Knip for unused code detection
  • Added TypeScript and @types/node as devDependencies
  • Created initial TypeScript type definitions (index.d.ts)
  • Added cross-language verification script (scripts/verify.ts)
  • Migrated from ESLint/Prettier to Biome

New Functions

  • 55+ new functions across PHP, Go, Python, Ruby, and C

Full changelog: https://github.com/locutusjs/locutus/blob/main/CHANGELOG.md

v2.0.32

08 Jan 16:00
@kvz kvz
10c5d32

Choose a tag to compare

Released: 2024-04-05

  • Update intro and add to the NPM module as a README.md

Full changelog: https://github.com/locutusjs/locutus/blob/main/CHANGELOG.md

v2.0.31

08 Jan 16:00
@kvz kvz
019f809

Choose a tag to compare

Released: 2024-04-05

New Functions

  • file_exists: Introduced (thx @erikn69)

Bug Fixes

  • strtotime: Add support for oracle dates (fixes #340)
  • bin2hex: Add support for multi-byte characters (fixes #427)
  • var_dump: Detect circular references (fixes #305)
  • escapeshellarg: Add Windows support (fixes #395)
  • fmod: Fix Uncaught RangeError: toFixed() digits argument must be between 0 and 100 (thx @dekairi, fixes #417)

DX

  • Add use strict to generated tests
  • Add Stale Action

Full changelog: https://github.com/locutusjs/locutus/blob/main/CHANGELOG.md

v2.0.30

08 Jan 16:00
@kvz kvz
0b258e2

Choose a tag to compare

Released: 2024-04-05

  • Relax yarn engine requirement (fixes #467)
  • Allow for custom mocha tests for functions (that aren't generated based on header comments)

Full changelog: https://github.com/locutusjs/locutus/blob/main/CHANGELOG.md

v2.0.29

08 Jan 16:00
@kvz kvz
720731a

Choose a tag to compare

Released: 2024-04-04

Bug Fixes

  • Fix issue #458: unserialize fails when serialized array contains (@kukawski)

DX

  • Switch from master -> main branch
  • Upgrade to Yarn 4 managed by Corepack
  • Add testing for Node 20
  • Add prettier & upgrade ESLint & StandardJS
  • Upgrade Hexo to latest
  • Clarify contributing docs
  • Allow all core contributors to cut NPM releases by pushing Git tags
  • Upgrade all remaining dependencies

Full changelog: https://github.com/locutusjs/locutus/blob/main/CHANGELOG.md