ranger-compiler 3.5.0 → 3.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +97 -0
- package/README.md +1 -1
- package/dist/README.md +1 -1
- package/dist/api.js +1 -1
- package/dist/package.json +1 -1
- package/dist/rgrc.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,103 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [3.5.1] - 2026-09-17
|
|
11
|
+
|
|
12
|
+
- **The npm README still said 3.3.0.** The package was 3.5.0; the first line
|
|
13
|
+
of `README.md` was never bumped with it, so the npm page advertised the
|
|
14
|
+
old version. npm does not rewrite a published tarball, so this is 3.5.1.
|
|
15
|
+
- **This file now dates 3.4.0 and 3.5.0.** Both shipped on npm with the
|
|
16
|
+
notes below still under Unreleased, so a reader of the package changelog
|
|
17
|
+
could not tell what was in the tarball.
|
|
18
|
+
|
|
19
|
+
## [3.5.0] - 2026-09-17
|
|
20
|
+
|
|
21
|
+
### Added
|
|
22
|
+
|
|
23
|
+
- **`rgrc install` fetches what `ranger.json` names.** `Import "pkg:…"`
|
|
24
|
+
used to resolve only against files already on disk, so a clean checkout
|
|
25
|
+
of a project that depends on `gallery/evg` had nothing to compile
|
|
26
|
+
against. The compiler now walks the graph, sparse-fetches each git
|
|
27
|
+
dependency at its pinned revision, writes it into the cache
|
|
28
|
+
(`RANGER_PKG_CACHE`, else `~/.cache/ranger/packages/<sha256>`), recurses
|
|
29
|
+
into each fetched package's own manifest, and records `rev` + `sha256`
|
|
30
|
+
in `ranger.lock`. A branch or tag is pinned to the commit it resolved
|
|
31
|
+
to. `-vendor` also writes `vendor/ranger/<name>` so a vendored project
|
|
32
|
+
needs no cache; `-frozen` fails rather than fetching what the lock does
|
|
33
|
+
not cover; `-force` refetches; `-cache=<dir>` overrides the default.
|
|
34
|
+
|
|
35
|
+
- **The Git pack client is MIT, and it runs inside `rgrc`.** It sat under
|
|
36
|
+
`gallery/` and was therefore AGPL, so the MIT compiler could resolve
|
|
37
|
+
`pkg:` but not fetch it — that split cost a second npm package
|
|
38
|
+
(`ranger-pkg`) and a shell-out. The client is a clean-room read of
|
|
39
|
+
published formats (pack layout, pkt-line, smart HTTP, FIPS 180-1 SHA-1,
|
|
40
|
+
RFC 1950/1951), which is how you use the language, not an application
|
|
41
|
+
built with it. `gallery/pkg` moved to `pkg/`. `gallery/zip/Inflate.rgr`
|
|
42
|
+
and `ZipBuffer.rgr` moved to `lib/zip/` (MIT) because DEFLATE is a
|
|
43
|
+
published format and the pack needs it; the ZIP container, the writer
|
|
44
|
+
and CRC32 stay in `gallery/zip`. `compiler/PkgFetch.rgr` drives the
|
|
45
|
+
client: advertisement, want, side-band demux, pack v2 with deltas, the
|
|
46
|
+
tree walk and the content cache. `bin/git-http.mjs` is the only Node
|
|
47
|
+
left — GET and POST of bytes, because Node has no synchronous HTTPS and
|
|
48
|
+
this compiler is synchronous — and it ships in `dist/` beside `rgrc.js`.
|
|
49
|
+
`ranger-pkg` and `tools/install.mjs` are gone.
|
|
50
|
+
|
|
51
|
+
- **The site root is a page about the language.** It was the playground.
|
|
52
|
+
It now says what Ranger is, what it compiles to, which platforms it
|
|
53
|
+
reaches, how the portability claims are checked, and what is in the
|
|
54
|
+
gallery. The playground moved to `/playground/`. `landing/` is plain
|
|
55
|
+
HTML, one stylesheet and one module: the logo is the bitmap tracer
|
|
56
|
+
walking the project's mark into three paths, the backdrop is an EVG
|
|
57
|
+
display list drawn on the GPU by the same painter the editors use, and
|
|
58
|
+
`landing/examples/Cart.rgr` is recompiled for Swift, Kotlin, JavaScript,
|
|
59
|
+
TypeScript, C#, C++, PHP and Rust when the site is built, so the code
|
|
60
|
+
beside each tab is what that commit's compiler writes.
|
|
61
|
+
|
|
62
|
+
### Changed
|
|
63
|
+
|
|
64
|
+
- **A lock entry whose checkout is still in the cache is not fetched
|
|
65
|
+
again.** A sha256 names content and the content at a commit does not
|
|
66
|
+
move. treeni-week's install went from 10s to 0.12s and needs no
|
|
67
|
+
network. `--frozen` makes the cache the only answer; `--force` ignores
|
|
68
|
+
it; a `git` or `rev` repointed in `ranger.json` still outranks the lock.
|
|
69
|
+
|
|
70
|
+
- **PkgImport falls back to `ranger.lock` for a package the manifest does
|
|
71
|
+
not declare.** The lock is the whole graph; `ranger.json` is only its
|
|
72
|
+
first row. A path dependency inside a fetched package is resolved
|
|
73
|
+
against the origin that package came from (`gallery/statechart` plus
|
|
74
|
+
`../vela` is `gallery/vela` in the same repo at the same revision).
|
|
75
|
+
Imports dedup on the folded path as well as the string, so
|
|
76
|
+
`../../evg/X.rgr` and `pkg:evg/X.rgr` are one file.
|
|
77
|
+
|
|
78
|
+
- **Getting started leads, not the playground.** The front page's "three
|
|
79
|
+
ways in" is a numbered path: clone and build, point the agent at
|
|
80
|
+
`AGENTS.md`, start from a gallery project, compile for the target you
|
|
81
|
+
are shipping to. The playground keeps a link in the navigation.
|
|
82
|
+
|
|
83
|
+
### Fixed
|
|
84
|
+
|
|
85
|
+
- **`-d=/absolute/path` wrote the tree under cwd + that path**, because
|
|
86
|
+
the working directory was joined onto it unconditionally.
|
|
87
|
+
- **`compiler/bin/api.ts` is not in the tree.** It is the TypeScript
|
|
88
|
+
`build:dist:module` hands to tsc on the way to `dist/api.js`, 77k
|
|
89
|
+
generated lines that had never been tracked and went in with the 3.5.0
|
|
90
|
+
build. `dist/api.js` and `dist/api.d.ts` are what ships.
|
|
91
|
+
|
|
92
|
+
## [3.4.0] - 2026-09-17
|
|
93
|
+
|
|
94
|
+
The last package on npm before this one was **3.2.0**. 3.2.1, 3.3.0 and
|
|
95
|
+
3.3.1 were already dated in this file and never published there, so this
|
|
96
|
+
tarball is the first that carries them.
|
|
97
|
+
|
|
98
|
+
On the compiler: generic classes (`class History @params(Op)`), expanded
|
|
99
|
+
into ordinary classes before any writer runs; a dotted call in return
|
|
100
|
+
position now parses (`return this.helper()`); Swift string operators
|
|
101
|
+
walk UTF-16 in amortised constant time; Kotlin emits `open class` for
|
|
102
|
+
the header form of inheritance; a Python empty constructor writes
|
|
103
|
+
`pass`; the C++ `Any` union only names classes the program actually
|
|
104
|
+
emits. The gallery grew in the same window — EVG, Office, the book
|
|
105
|
+
engine, Mermaid, Figma, CodeGraph, Rave — and is not in the npm tarball.
|
|
106
|
+
|
|
10
107
|
- **All thirty-eight of Mermaid's header keywords are drawn.** The matrix in
|
|
11
108
|
`docs/MERMAID_PARITY.md` is read off Mermaid's own detector registry — the
|
|
12
109
|
record its parser itself consults. It used to say thirty of thirty, and both
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Ranger cross language compiler
|
|
2
2
|
|
|
3
|
-
**Version 3.
|
|
3
|
+
**Version 3.5.1** | Status: `experimental`
|
|
4
4
|
|
|
5
5
|
**Licensing:** Ranger-authored compiler and language sources are MIT licensed,
|
|
6
6
|
unless a file says otherwise. Ranger-authored applications and technology
|
package/dist/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Ranger Compiler
|
|
2
2
|
|
|
3
|
-
**Version 3.
|
|
3
|
+
**Version 3.5.1** | Cross-language compiler - compile once, run anywhere
|
|
4
4
|
|
|
5
5
|
Ranger is a self-hosting cross-language compiler that lets you write code once and compile to multiple target languages including JavaScript, TypeScript, Python, Go, Rust, Swift, C++, Java, Kotlin, C#, PHP, and Scala.
|
|
6
6
|
|
package/dist/api.js
CHANGED
|
@@ -69858,7 +69858,7 @@ class CLIProgress {
|
|
|
69858
69858
|
this.inputFile = "";
|
|
69859
69859
|
this.outputFile = "";
|
|
69860
69860
|
this.targetLanguage = "";
|
|
69861
|
-
this.compilerVersion = "3.5.
|
|
69861
|
+
this.compilerVersion = "3.5.1";
|
|
69862
69862
|
this.useColors = ((typeof process !== "undefined" && process.stdout && process.stdout.isTTY) || false);
|
|
69863
69863
|
this.startTime = Date.now();
|
|
69864
69864
|
}
|
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ranger-compiler",
|
|
3
|
-
"version": "3.5.
|
|
3
|
+
"version": "3.5.1",
|
|
4
4
|
"description": "Ranger cross-language compiler - compile once, run anywhere. Write code in Ranger and compile to JavaScript, TypeScript, Python, Go, Rust, Swift, C++, Java, Kotlin, C#, PHP, and Scala.",
|
|
5
5
|
"main": "api.js",
|
|
6
6
|
"types": "api.d.ts",
|
package/dist/rgrc.js
CHANGED
|
@@ -69418,7 +69418,7 @@ RangerProcessProcSend.collectProcessClasses = function(ctx) {
|
|
|
69418
69418
|
this.inputFile = "";
|
|
69419
69419
|
this.outputFile = "";
|
|
69420
69420
|
this.targetLanguage = "";
|
|
69421
|
-
this.compilerVersion = "3.5.
|
|
69421
|
+
this.compilerVersion = "3.5.1";
|
|
69422
69422
|
this.useColors = ((typeof process !== "undefined" && process.stdout && process.stdout.isTTY) || false);
|
|
69423
69423
|
this.startTime = Date.now();
|
|
69424
69424
|
}
|