Releases: locutusjs/locutus
Releases · locutusjs/locutus
v2.0.38
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.nodewithout a major version bump
Full changelog: https://github.com/locutusjs/locutus/blob/main/CHANGELOG.md
v2.0.37
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.ymlfromsrc/_data/tosrc/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
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)
v2.0.35
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)
v2.0.34
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.jsonfor 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
Released: 2026-01-07
Bug Fixes
quoted_printable_encode: Fixed soft line break stripping logicget_defined_functions: Updated unrealistic test expectationarray_diff_uassoc: Corrected expected return value to match PHParray_merge_recursive: Reimplemented to properly merge arrays recursivelyarray_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
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
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 strictto generated tests - Add Stale Action
Full changelog: https://github.com/locutusjs/locutus/blob/main/CHANGELOG.md
v2.0.30
v2.0.29
Released: 2024-04-04
Bug Fixes
DX
- Switch from
master->mainbranch - 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