Release 1.0.0-beta.7 serialization foundation
This commit is contained in:
parent
2726ec4915
commit
be6cdfb87c
61
.llm/BETA_7_SERIALIZATION_DATA_INTERCHANGE.md
Normal file
61
.llm/BETA_7_SERIALIZATION_DATA_INTERCHANGE.md
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
# 1.0.0-beta.7 Serialization And Data Interchange Target
|
||||||
|
|
||||||
|
Status: released as `1.0.0-beta.7` on 2026-05-22.
|
||||||
|
|
||||||
|
`1.0.0-beta.7` targets a deliberately narrow serialization/data-interchange
|
||||||
|
foundation after the beta.6 networking slice. The goal is compact JSON text
|
||||||
|
construction for CLI, file, and loopback-network programs without pretending
|
||||||
|
that Slovo already has the collections and string APIs needed for a complete
|
||||||
|
JSON library.
|
||||||
|
|
||||||
|
## Slovo Source Surface
|
||||||
|
|
||||||
|
The staged source facade is `lib/std/json.slo`, importable explicitly as
|
||||||
|
`std.json`.
|
||||||
|
|
||||||
|
Exported helpers:
|
||||||
|
|
||||||
|
- `quote_string : (string) -> string`
|
||||||
|
- `null_value : () -> string`
|
||||||
|
- `bool_value : (bool) -> string`
|
||||||
|
- `i32_value : (i32) -> string`
|
||||||
|
- `u32_value : (u32) -> string`
|
||||||
|
- `i64_value : (i64) -> string`
|
||||||
|
- `u64_value : (u64) -> string`
|
||||||
|
- `f64_value : (f64) -> string`
|
||||||
|
- `field_string`, `field_bool`, `field_i32`, `field_u32`, `field_i64`,
|
||||||
|
`field_u64`, `field_f64`, and `field_null`
|
||||||
|
- `array0`, `array1`, `array2`, `array3`
|
||||||
|
- `object0`, `object1`, `object2`, `object3`
|
||||||
|
|
||||||
|
The array and object helpers accept already-encoded JSON text fragments. They
|
||||||
|
are compact construction helpers, not recursive data structures.
|
||||||
|
|
||||||
|
## Runtime Call
|
||||||
|
|
||||||
|
The facade wraps one compiler-known runtime call:
|
||||||
|
|
||||||
|
- `std.json.quote_string(value string) -> string`
|
||||||
|
|
||||||
|
The hosted runtime symbol is `__glagol_json_quote_string`. It returns a
|
||||||
|
complete compact JSON string literal including surrounding quotes. It escapes
|
||||||
|
quote, backslash, newline, tab, carriage return, backspace, form feed, and
|
||||||
|
other control bytes. Allocation failure uses the existing string allocation
|
||||||
|
trap.
|
||||||
|
|
||||||
|
## Fixtures And Benchmarks
|
||||||
|
|
||||||
|
- `examples/projects/std-import-json/` exercises explicit `std.json` source
|
||||||
|
import.
|
||||||
|
- `examples/projects/std-layout-local-json/` mirrors the facade as a local
|
||||||
|
module fixture and keeps the source-search contract explicit.
|
||||||
|
- `benchmarks/json-quote-loop/` adds a local-machine timing scaffold for JSON
|
||||||
|
string quoting across Slovo, C, Rust, Python, Clojure, and Common Lisp/SBCL.
|
||||||
|
|
||||||
|
## Deferrals
|
||||||
|
|
||||||
|
This scope does not add JSON parsing, recursive JSON values, maps/sets, generic
|
||||||
|
collections, source-level byte/character scanners, slicing, streaming encoders,
|
||||||
|
schema validation, Unicode normalization, embedded NUL support in the current
|
||||||
|
null-terminated runtime string ABI, stable runtime helper symbols, stable
|
||||||
|
ABI/layout/ownership guarantees, or a stable standard-library API freeze.
|
||||||
@ -28,7 +28,9 @@ implementation scope.
|
|||||||
concrete numeric completeness.
|
concrete numeric completeness.
|
||||||
5. Expand package/workspace discipline before remote registry work.
|
5. Expand package/workspace discipline before remote registry work.
|
||||||
6. Add networking only after resource/error policy is coherent.
|
6. Add networking only after resource/error policy is coherent.
|
||||||
7. Add serialization/data-interchange helpers before richer network libraries.
|
7. Add serialization/data-interchange helpers before richer network libraries
|
||||||
|
(released in `1.0.0-beta.7` with compact JSON text construction and JSON
|
||||||
|
string quoting).
|
||||||
8. Design generics and collection unification from real stdlib duplication
|
8. Design generics and collection unification from real stdlib duplication
|
||||||
pressure.
|
pressure.
|
||||||
9. Add editor-facing diagnostics, watch mode, and generated documentation
|
9. Add editor-facing diagnostics, watch mode, and generated documentation
|
||||||
|
|||||||
37
.llm/reviews/BETA_7_RELEASE_REVIEW.md
Normal file
37
.llm/reviews/BETA_7_RELEASE_REVIEW.md
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
# 1.0.0-beta.7 Release Review
|
||||||
|
|
||||||
|
Date: 2026-05-22
|
||||||
|
|
||||||
|
Scope: serialization and data-interchange foundation.
|
||||||
|
|
||||||
|
## Verdict
|
||||||
|
|
||||||
|
`1.0.0-beta.7` is a coherent beta follow-up slice. The release adds a narrow
|
||||||
|
runtime-backed JSON string quoting primitive, a source-authored `std/json.slo`
|
||||||
|
facade, explicit std/local example projects, and a `json-quote-loop` benchmark
|
||||||
|
scaffold without claiming full JSON parsing, recursive JSON values, maps,
|
||||||
|
schema validation, or streaming encoders.
|
||||||
|
|
||||||
|
## Review Notes
|
||||||
|
|
||||||
|
- The new compiler-known call is intentionally small:
|
||||||
|
`std.json.quote_string(value string) -> string` lowers to
|
||||||
|
`__glagol_json_quote_string` and is listed in unsupported-call diagnostics.
|
||||||
|
- The source facade composes existing string and numeric helpers and keeps
|
||||||
|
object/array helpers limited to small fixed arities over already-encoded JSON
|
||||||
|
fragments.
|
||||||
|
- The local and std import fixtures preserve the current explicit-import
|
||||||
|
standard-library discipline.
|
||||||
|
- The benchmark scaffold is suitable as a local regression/comparison harness,
|
||||||
|
but the whitepapers still treat the exp-123 nine-row table as the current
|
||||||
|
published numeric baseline until fresh full-suite timing is rerun.
|
||||||
|
- The hosted runtime escaping path covers quotes, backslashes, standard JSON
|
||||||
|
control escapes, and `\u00XX` for remaining control bytes.
|
||||||
|
|
||||||
|
## Remaining Deferred Work
|
||||||
|
|
||||||
|
- JSON parsing and recursive JSON value modeling.
|
||||||
|
- Maps/sets or generic collection-backed object construction.
|
||||||
|
- Streaming encoders and schema-oriented validation.
|
||||||
|
- Unicode normalization or code point policy beyond byte-preserving string
|
||||||
|
literal emission.
|
||||||
25
README.md
25
README.md
@ -6,7 +6,7 @@ This repository is the canonical public monorepo for the language design,
|
|||||||
standard library source, compiler, runtime, examples, benchmarks, and technical
|
standard library source, compiler, runtime, examples, benchmarks, and technical
|
||||||
documents.
|
documents.
|
||||||
|
|
||||||
Current release: `1.0.0-beta.6`.
|
Current release: `1.0.0-beta.7`.
|
||||||
|
|
||||||
## Repository Layout
|
## Repository Layout
|
||||||
|
|
||||||
@ -24,13 +24,14 @@ scripts/ local release and document tooling
|
|||||||
|
|
||||||
## Beta Scope
|
## Beta Scope
|
||||||
|
|
||||||
`1.0.0-beta.6` keeps the `1.0.0-beta` language baseline, includes the
|
`1.0.0-beta.7` keeps the `1.0.0-beta` language baseline, includes the
|
||||||
`1.0.0-beta.1` tooling/install hardening slice, the `1.0.0-beta.2`
|
`1.0.0-beta.1` tooling/install hardening slice, the `1.0.0-beta.2`
|
||||||
runtime/resource foundation bundle, the `1.0.0-beta.3` standard-library
|
runtime/resource foundation bundle, the `1.0.0-beta.3` standard-library
|
||||||
stabilization bundle, the `1.0.0-beta.4` language-usability diagnostics
|
stabilization bundle, the `1.0.0-beta.4` language-usability diagnostics
|
||||||
bundle, the `1.0.0-beta.5` local package/workspace discipline bundle, and the
|
bundle, the `1.0.0-beta.5` local package/workspace discipline bundle, and the
|
||||||
`1.0.0-beta.6` loopback networking foundation. The language baseline supports
|
`1.0.0-beta.6` loopback networking foundation, plus the `1.0.0-beta.7`
|
||||||
practical local command-line programs and libraries with:
|
serialization/data-interchange foundation. The language baseline supports
|
||||||
|
practical local command-line, file, and loopback-network programs with:
|
||||||
|
|
||||||
- modules, explicit imports, packages, and local workspaces
|
- modules, explicit imports, packages, and local workspaces
|
||||||
- `new`, `check`, `fmt`, `test`, `doc`, and `build`
|
- `new`, `check`, `fmt`, `test`, `doc`, and `build`
|
||||||
@ -40,6 +41,7 @@ practical local command-line programs and libraries with:
|
|||||||
- explicit `std/*.slo` imports from `lib/std`, installed `share/slovo/std`, or
|
- explicit `std/*.slo` imports from `lib/std`, installed `share/slovo/std`, or
|
||||||
`SLOVO_STD_PATH`
|
`SLOVO_STD_PATH`
|
||||||
- beta-scoped loopback TCP handles through `std.net`
|
- beta-scoped loopback TCP handles through `std.net`
|
||||||
|
- JSON string quoting and compact JSON text construction through `std.json`
|
||||||
- hosted native builds through LLVM IR, Clang, and `runtime/runtime.c`
|
- hosted native builds through LLVM IR, Clang, and `runtime/runtime.c`
|
||||||
|
|
||||||
Still deferred before stable: generics, maps/sets, broad package registry
|
Still deferred before stable: generics, maps/sets, broad package registry
|
||||||
@ -177,6 +179,21 @@ This is not a general networking stack. DNS, TLS, UDP, non-loopback binding,
|
|||||||
async IO, HTTP frameworks, rich host-error ADTs, stable socket ABI/layout, and
|
async IO, HTTP frameworks, rich host-error ADTs, stable socket ABI/layout, and
|
||||||
automatic resource ownership remain deferred.
|
automatic resource ownership remain deferred.
|
||||||
|
|
||||||
|
## 1.0.0-beta.7 Serialization And Data Interchange
|
||||||
|
|
||||||
|
The `1.0.0-beta.7` release adds a narrow JSON text-construction foundation:
|
||||||
|
|
||||||
|
- compiler-known `std.json.quote_string` for deterministic compact JSON string
|
||||||
|
quoting
|
||||||
|
- `lib/std/json.slo` source helpers for scalar values, fields, small arrays,
|
||||||
|
and small objects
|
||||||
|
- explicit std/local JSON example projects and a `json-quote-loop` benchmark
|
||||||
|
scaffold
|
||||||
|
|
||||||
|
This is not a complete JSON library. Full parsing, recursive JSON values,
|
||||||
|
maps/sets, streaming encoders, schema validation, Unicode normalization, and a
|
||||||
|
stable data-interchange API freeze remain deferred.
|
||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
- [Language Manifest](docs/language/MANIFEST.md)
|
- [Language Manifest](docs/language/MANIFEST.md)
|
||||||
|
|||||||
1
benchmarks/json-quote-loop/.gitignore
vendored
Normal file
1
benchmarks/json-quote-loop/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
build/
|
||||||
71
benchmarks/json-quote-loop/README.md
Normal file
71
benchmarks/json-quote-loop/README.md
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
# JSON Quote Loop Benchmark Scaffold
|
||||||
|
|
||||||
|
Release: `1.0.0-beta.7`.
|
||||||
|
|
||||||
|
This benchmark compares compact JSON string quoting plus checksum accumulation
|
||||||
|
across Slovo, C, Rust, Python, Clojure, and Common Lisp/SBCL on the same
|
||||||
|
machine. It is same machine local evidence only.
|
||||||
|
|
||||||
|
It is not a published benchmark result, performance threshold, optimizer
|
||||||
|
claim, or cross-machine comparison.
|
||||||
|
|
||||||
|
## Files
|
||||||
|
|
||||||
|
- `src/main.slo`: Slovo project benchmark fixture
|
||||||
|
- `c/json_quote_loop.c`: C comparison implementation
|
||||||
|
- `rust/json_quote_loop.rs`: Rust comparison implementation
|
||||||
|
- `python/json_quote_loop.py`: Python comparison implementation
|
||||||
|
- `clojure/json_quote_loop.clj`: Clojure comparison implementation
|
||||||
|
- `common-lisp/json_quote_loop.lisp`: Common Lisp/SBCL comparison implementation
|
||||||
|
- `run.py`: build/run/timing harness
|
||||||
|
|
||||||
|
All implementations print checksum `15000001` for loop count `1000000` and
|
||||||
|
target string `slo"vo\path`. Hot-loop mode uses loop count `10000000` and
|
||||||
|
checksum `150000001`.
|
||||||
|
|
||||||
|
## Commands
|
||||||
|
|
||||||
|
Run from the repository root:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python3 benchmarks/json-quote-loop/run.py --list
|
||||||
|
python3 benchmarks/json-quote-loop/run.py --dry-run
|
||||||
|
python3 benchmarks/json-quote-loop/run.py --only python --repeats 3 --warmups 1
|
||||||
|
python3 benchmarks/json-quote-loop/run.py --mode hot-loop --only slovo --only c --only rust
|
||||||
|
```
|
||||||
|
|
||||||
|
To include Slovo, build or point at a Glagol binary and make sure host Clang is
|
||||||
|
available:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cargo build --manifest-path compiler/Cargo.toml --bin glagol
|
||||||
|
python3 benchmarks/json-quote-loop/run.py --glagol compiler/target/debug/glagol
|
||||||
|
```
|
||||||
|
|
||||||
|
The runner skips missing C/Rust/Slovo/Clojure/SBCL toolchains where possible.
|
||||||
|
Use `--only` multiple times to select implementations:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python3 benchmarks/json-quote-loop/run.py --only slovo --only c --only rust --only clojure --only common_lisp
|
||||||
|
```
|
||||||
|
|
||||||
|
Clojure is detected with `clojure` on PATH, `CLOJURE`, or `CLOJURE_JAR`.
|
||||||
|
Common Lisp is detected with `sbcl` on PATH, `SBCL`, or `--sbcl`.
|
||||||
|
|
||||||
|
## Comparison Method
|
||||||
|
|
||||||
|
- The runner builds each implementation once before timing. The reported
|
||||||
|
numbers measure execution only, not compile time.
|
||||||
|
- Slovo timings use `glagol build`, which currently lowers to LLVM and then
|
||||||
|
invokes host `clang -O2` with `runtime/runtime.c`.
|
||||||
|
- C timings use `clang -O2 -std=c11`.
|
||||||
|
- Rust timings use `rustc -C opt-level=3 -C debuginfo=0`.
|
||||||
|
- The measured loop quotes one runtime-supplied ASCII string containing a
|
||||||
|
quote and a backslash, then accumulates the quoted byte length.
|
||||||
|
|
||||||
|
Timing is cold-process local-machine evidence only. Clojure timings include
|
||||||
|
JVM and Clojure startup, while Common Lisp timings include SBCL script
|
||||||
|
startup.
|
||||||
|
|
||||||
|
Hot-loop mode is startup-amortized local evidence. It runs a larger loop count
|
||||||
|
and reports total time plus normalized time for the base `1000000` loop count.
|
||||||
11
benchmarks/json-quote-loop/benchmark.json
Normal file
11
benchmarks/json-quote-loop/benchmark.json
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"benchmark": "json-quote-loop",
|
||||||
|
"source_stem": "json_quote_loop",
|
||||||
|
"loop_count": 1000000,
|
||||||
|
"expected_checksum": "15000001",
|
||||||
|
"stdin": "1000000\n",
|
||||||
|
"hot_loop_count": 10000000,
|
||||||
|
"hot_expected_checksum": "150000001",
|
||||||
|
"hot_stdin": "10000000\n",
|
||||||
|
"run_args": ["slo\"vo\\path"]
|
||||||
|
}
|
||||||
118
benchmarks/json-quote-loop/c/json_quote_loop.c
Normal file
118
benchmarks/json-quote-loop/c/json_quote_loop.c
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
#include <stdint.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#define LOOP_COUNT 1000000
|
||||||
|
#define EXPECTED_CHECKSUM 15000001
|
||||||
|
|
||||||
|
static int32_t configured_loop_count(void) {
|
||||||
|
int32_t value = LOOP_COUNT;
|
||||||
|
if (scanf("%d", &value) != 1 || value <= 0) {
|
||||||
|
return LOOP_COUNT;
|
||||||
|
}
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
static const char *configured_target(int argc, char **argv) {
|
||||||
|
return argc > 1 ? argv[1] : "slo\"vo\\path";
|
||||||
|
}
|
||||||
|
|
||||||
|
static char json_hex_digit(unsigned char value) {
|
||||||
|
return value < 10 ? (char)('0' + value) : (char)('A' + (value - 10));
|
||||||
|
}
|
||||||
|
|
||||||
|
static char *quote_json_string(const char *text) {
|
||||||
|
size_t len = 2;
|
||||||
|
for (const unsigned char *cursor = (const unsigned char *)text; *cursor != '\0'; cursor++) {
|
||||||
|
switch (*cursor) {
|
||||||
|
case '"':
|
||||||
|
case '\\':
|
||||||
|
case '\n':
|
||||||
|
case '\t':
|
||||||
|
case '\r':
|
||||||
|
case '\b':
|
||||||
|
case '\f':
|
||||||
|
len += 2;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
len += *cursor < 0x20 ? 6 : 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
char *out = malloc(len + 1);
|
||||||
|
if (out == NULL) {
|
||||||
|
exit(2);
|
||||||
|
}
|
||||||
|
|
||||||
|
char *write = out;
|
||||||
|
*write++ = '"';
|
||||||
|
for (const unsigned char *cursor = (const unsigned char *)text; *cursor != '\0'; cursor++) {
|
||||||
|
switch (*cursor) {
|
||||||
|
case '"':
|
||||||
|
*write++ = '\\';
|
||||||
|
*write++ = '"';
|
||||||
|
break;
|
||||||
|
case '\\':
|
||||||
|
*write++ = '\\';
|
||||||
|
*write++ = '\\';
|
||||||
|
break;
|
||||||
|
case '\n':
|
||||||
|
*write++ = '\\';
|
||||||
|
*write++ = 'n';
|
||||||
|
break;
|
||||||
|
case '\t':
|
||||||
|
*write++ = '\\';
|
||||||
|
*write++ = 't';
|
||||||
|
break;
|
||||||
|
case '\r':
|
||||||
|
*write++ = '\\';
|
||||||
|
*write++ = 'r';
|
||||||
|
break;
|
||||||
|
case '\b':
|
||||||
|
*write++ = '\\';
|
||||||
|
*write++ = 'b';
|
||||||
|
break;
|
||||||
|
case '\f':
|
||||||
|
*write++ = '\\';
|
||||||
|
*write++ = 'f';
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
if (*cursor < 0x20) {
|
||||||
|
*write++ = '\\';
|
||||||
|
*write++ = 'u';
|
||||||
|
*write++ = '0';
|
||||||
|
*write++ = '0';
|
||||||
|
*write++ = json_hex_digit((unsigned char)(*cursor >> 4));
|
||||||
|
*write++ = json_hex_digit((unsigned char)(*cursor & 0x0F));
|
||||||
|
} else {
|
||||||
|
*write++ = (char)*cursor;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*write++ = '"';
|
||||||
|
*write = '\0';
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int32_t json_quote_loop(int32_t limit, const char *target) {
|
||||||
|
int32_t i = 0;
|
||||||
|
int32_t acc = 1;
|
||||||
|
|
||||||
|
while (i < limit) {
|
||||||
|
char *quoted = quote_json_string(target);
|
||||||
|
acc += (int32_t)strlen(quoted);
|
||||||
|
free(quoted);
|
||||||
|
i += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return acc;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char **argv) {
|
||||||
|
int32_t result = json_quote_loop(configured_loop_count(), configured_target(argc, argv));
|
||||||
|
printf("%d\n", result);
|
||||||
|
return result == EXPECTED_CHECKSUM ? 0 : 1;
|
||||||
|
}
|
||||||
42
benchmarks/json-quote-loop/clojure/json_quote_loop.clj
Normal file
42
benchmarks/json-quote-loop/clojure/json_quote_loop.clj
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
(set! *warn-on-reflection* true)
|
||||||
|
(set! *unchecked-math* :warn-on-boxed)
|
||||||
|
|
||||||
|
(def loop-count 1000000)
|
||||||
|
(def expected-checksum 15000001)
|
||||||
|
|
||||||
|
(defn configured-loop-count []
|
||||||
|
(try
|
||||||
|
(let [line (read-line)
|
||||||
|
value (Integer/parseInt (.trim ^String line))]
|
||||||
|
(if (pos? value) value loop-count))
|
||||||
|
(catch Exception _
|
||||||
|
loop-count)))
|
||||||
|
|
||||||
|
(defn configured-target []
|
||||||
|
(or (first *command-line-args*) "slo\"vo\\path"))
|
||||||
|
|
||||||
|
(defn quote-json-string [^String value]
|
||||||
|
(let [builder (StringBuilder.)]
|
||||||
|
(.append builder \")
|
||||||
|
(dotimes [index (.length value)]
|
||||||
|
(let [ch (.charAt value index)]
|
||||||
|
(case ch
|
||||||
|
\" (.append builder "\\\"")
|
||||||
|
\\ (.append builder "\\\\")
|
||||||
|
\newline (.append builder "\\n")
|
||||||
|
\tab (.append builder "\\t")
|
||||||
|
\return (.append builder "\\r")
|
||||||
|
(.append builder ch))))
|
||||||
|
(.append builder \")
|
||||||
|
(.toString builder)))
|
||||||
|
|
||||||
|
(defn json-quote-loop [limit target]
|
||||||
|
(loop [i 0
|
||||||
|
acc 1]
|
||||||
|
(if (< i limit)
|
||||||
|
(recur (inc i) (+ acc (.length ^String (quote-json-string target))))
|
||||||
|
acc)))
|
||||||
|
|
||||||
|
(let [result (json-quote-loop (configured-loop-count) (configured-target))]
|
||||||
|
(println result)
|
||||||
|
(System/exit (if (= result expected-checksum) 0 1)))
|
||||||
47
benchmarks/json-quote-loop/common-lisp/json_quote_loop.lisp
Normal file
47
benchmarks/json-quote-loop/common-lisp/json_quote_loop.lisp
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
(declaim (optimize (speed 3) (safety 0) (debug 0)))
|
||||||
|
|
||||||
|
(defconstant +loop-count+ 1000000)
|
||||||
|
(defconstant +expected-checksum+ 15000001)
|
||||||
|
|
||||||
|
(declaim (ftype (function () fixnum) configured-loop-count))
|
||||||
|
(defun configured-loop-count ()
|
||||||
|
(handler-case
|
||||||
|
(let ((line (read-line *standard-input* nil nil)))
|
||||||
|
(if line
|
||||||
|
(let ((value (parse-integer line :junk-allowed t)))
|
||||||
|
(if (> value 0) value +loop-count+))
|
||||||
|
+loop-count+))
|
||||||
|
(error () +loop-count+)))
|
||||||
|
|
||||||
|
(declaim (ftype (function () string) configured-target))
|
||||||
|
(defun configured-target ()
|
||||||
|
(or (second sb-ext:*posix-argv*) "slo\"vo\\path"))
|
||||||
|
|
||||||
|
(declaim (ftype (function (string) string) quote-json-string))
|
||||||
|
(defun quote-json-string (value)
|
||||||
|
(with-output-to-string (out)
|
||||||
|
(write-char #\" out)
|
||||||
|
(loop for ch across value
|
||||||
|
do (case ch
|
||||||
|
(#\" (write-string "\\\"" out))
|
||||||
|
(#\\ (write-string "\\\\" out))
|
||||||
|
(#\Newline (write-string "\\n" out))
|
||||||
|
(#\Tab (write-string "\\t" out))
|
||||||
|
(#\Return (write-string "\\r" out))
|
||||||
|
(otherwise (write-char ch out))))
|
||||||
|
(write-char #\" out)))
|
||||||
|
|
||||||
|
(declaim (ftype (function (fixnum string) fixnum) json-quote-loop))
|
||||||
|
(defun json-quote-loop (limit target)
|
||||||
|
(declare (type fixnum limit)
|
||||||
|
(type string target))
|
||||||
|
(loop with i of-type fixnum = 0
|
||||||
|
with acc of-type fixnum = 1
|
||||||
|
while (< i limit)
|
||||||
|
do (setf acc (+ acc (length (quote-json-string target)))
|
||||||
|
i (+ i 1))
|
||||||
|
finally (return acc)))
|
||||||
|
|
||||||
|
(let ((result (json-quote-loop (configured-loop-count) (configured-target))))
|
||||||
|
(format t "~D~%" result)
|
||||||
|
(sb-ext:exit :code (if (= result +expected-checksum+) 0 1)))
|
||||||
53
benchmarks/json-quote-loop/python/json_quote_loop.py
Normal file
53
benchmarks/json-quote-loop/python/json_quote_loop.py
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
LOOP_COUNT = 1_000_000
|
||||||
|
EXPECTED_CHECKSUM = 15_000_001
|
||||||
|
|
||||||
|
|
||||||
|
def configured_loop_count() -> int:
|
||||||
|
try:
|
||||||
|
value = int(input().strip())
|
||||||
|
except (EOFError, ValueError):
|
||||||
|
return LOOP_COUNT
|
||||||
|
|
||||||
|
return value if value > 0 else LOOP_COUNT
|
||||||
|
|
||||||
|
|
||||||
|
def configured_target() -> str:
|
||||||
|
return sys.argv[1] if len(sys.argv) > 1 else 'slo"vo\\path'
|
||||||
|
|
||||||
|
|
||||||
|
def quote_json_string(value: str) -> str:
|
||||||
|
return (
|
||||||
|
'"'
|
||||||
|
+ value.replace("\\", "\\\\")
|
||||||
|
.replace('"', '\\"')
|
||||||
|
.replace("\n", "\\n")
|
||||||
|
.replace("\t", "\\t")
|
||||||
|
.replace("\r", "\\r")
|
||||||
|
.replace("\b", "\\b")
|
||||||
|
.replace("\f", "\\f")
|
||||||
|
+ '"'
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def json_quote_loop(limit: int, target: str) -> int:
|
||||||
|
i = 0
|
||||||
|
acc = 1
|
||||||
|
|
||||||
|
while i < limit:
|
||||||
|
acc += len(quote_json_string(target))
|
||||||
|
i += 1
|
||||||
|
|
||||||
|
return acc
|
||||||
|
|
||||||
|
|
||||||
|
def main() -> int:
|
||||||
|
result = json_quote_loop(configured_loop_count(), configured_target())
|
||||||
|
print(result)
|
||||||
|
return 0 if result == EXPECTED_CHECKSUM else 1
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
raise SystemExit(main())
|
||||||
13
benchmarks/json-quote-loop/run.py
Normal file
13
benchmarks/json-quote-loop/run.py
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""Run the local json-quote-loop benchmark scaffold."""
|
||||||
|
|
||||||
|
from pathlib import Path
|
||||||
|
import sys
|
||||||
|
|
||||||
|
sys.path.insert(0, str(Path(__file__).resolve().parents[1]))
|
||||||
|
|
||||||
|
from runner import main
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
raise SystemExit(main(Path(__file__).resolve().parent, sys.argv[1:]))
|
||||||
62
benchmarks/json-quote-loop/rust/json_quote_loop.rs
Normal file
62
benchmarks/json-quote-loop/rust/json_quote_loop.rs
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
use std::io::Read;
|
||||||
|
|
||||||
|
const LOOP_COUNT: i32 = 1_000_000;
|
||||||
|
const EXPECTED_CHECKSUM: i32 = 15_000_001;
|
||||||
|
|
||||||
|
fn configured_loop_count() -> i32 {
|
||||||
|
let mut input = String::new();
|
||||||
|
if std::io::stdin().read_to_string(&mut input).is_err() {
|
||||||
|
return LOOP_COUNT;
|
||||||
|
}
|
||||||
|
|
||||||
|
input
|
||||||
|
.trim()
|
||||||
|
.parse::<i32>()
|
||||||
|
.ok()
|
||||||
|
.filter(|value| *value > 0)
|
||||||
|
.unwrap_or(LOOP_COUNT)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn configured_target() -> String {
|
||||||
|
std::env::args()
|
||||||
|
.nth(1)
|
||||||
|
.unwrap_or_else(|| "slo\"vo\\path".to_string())
|
||||||
|
}
|
||||||
|
|
||||||
|
fn quote_json_string(value: &str) -> String {
|
||||||
|
let mut out = String::with_capacity(value.len() + 2);
|
||||||
|
out.push('"');
|
||||||
|
for ch in value.chars() {
|
||||||
|
match ch {
|
||||||
|
'"' => out.push_str("\\\""),
|
||||||
|
'\\' => out.push_str("\\\\"),
|
||||||
|
'\n' => out.push_str("\\n"),
|
||||||
|
'\t' => out.push_str("\\t"),
|
||||||
|
'\r' => out.push_str("\\r"),
|
||||||
|
'\u{08}' => out.push_str("\\b"),
|
||||||
|
'\u{0c}' => out.push_str("\\f"),
|
||||||
|
_ => out.push(ch),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
out.push('"');
|
||||||
|
out
|
||||||
|
}
|
||||||
|
|
||||||
|
fn json_quote_loop(limit: i32, target: &str) -> i32 {
|
||||||
|
let mut i = 0;
|
||||||
|
let mut acc = 1;
|
||||||
|
|
||||||
|
while i < limit {
|
||||||
|
acc += quote_json_string(target).len() as i32;
|
||||||
|
i += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
acc
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let target = configured_target();
|
||||||
|
let result = json_quote_loop(configured_loop_count(), &target);
|
||||||
|
println!("{}", result);
|
||||||
|
std::process::exit(if result == EXPECTED_CHECKSUM { 0 } else { 1 });
|
||||||
|
}
|
||||||
4
benchmarks/json-quote-loop/slovo.toml
Normal file
4
benchmarks/json-quote-loop/slovo.toml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
[project]
|
||||||
|
name = "json-quote-loop"
|
||||||
|
source_root = "src"
|
||||||
|
entry = "main"
|
||||||
56
benchmarks/json-quote-loop/src/main.slo
Normal file
56
benchmarks/json-quote-loop/src/main.slo
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
; Benchmark scaffold fixture for local-machine JSON string quoting comparisons only.
|
||||||
|
; Keep LOOP_COUNT and EXPECTED_CHECKSUM aligned with the C/Rust/Python fixtures.
|
||||||
|
; The runner supplies the target through argv and the loop count through stdin
|
||||||
|
; or argv so the quoting path stays runtime-configured.
|
||||||
|
|
||||||
|
(module main)
|
||||||
|
|
||||||
|
(fn loop_count () -> i32
|
||||||
|
1000000)
|
||||||
|
|
||||||
|
(fn expected_checksum () -> i32
|
||||||
|
15000001)
|
||||||
|
|
||||||
|
(fn parse_stdin_loop_count () -> (result i32 i32)
|
||||||
|
(let input (result string i32) (std.io.read_stdin_result))
|
||||||
|
(match input
|
||||||
|
((ok text)
|
||||||
|
(std.string.parse_i32_result text))
|
||||||
|
((err code)
|
||||||
|
(err i32 i32 code))))
|
||||||
|
|
||||||
|
(fn parse_arg_loop_count () -> (result i32 i32)
|
||||||
|
(std.string.parse_i32_result (std.process.arg 2)))
|
||||||
|
|
||||||
|
(fn configured_stdin_loop_count () -> i32
|
||||||
|
(let parsed_stdin (result i32 i32) (parse_stdin_loop_count))
|
||||||
|
(if (is_ok parsed_stdin)
|
||||||
|
(unwrap_ok parsed_stdin)
|
||||||
|
(loop_count)))
|
||||||
|
|
||||||
|
(fn configured_loop_count () -> i32
|
||||||
|
(let parsed_arg (result i32 i32) (parse_arg_loop_count))
|
||||||
|
(if (is_ok parsed_arg)
|
||||||
|
(unwrap_ok parsed_arg)
|
||||||
|
(configured_stdin_loop_count)))
|
||||||
|
|
||||||
|
(fn target_text () -> string
|
||||||
|
(std.process.arg 1))
|
||||||
|
|
||||||
|
(fn json_quote_loop ((limit i32) (target string)) -> i32
|
||||||
|
(var i i32 0)
|
||||||
|
(var acc i32 1)
|
||||||
|
(while (< i limit)
|
||||||
|
(set acc (+ acc (std.string.len (std.json.quote_string target))))
|
||||||
|
(set i (+ i 1)))
|
||||||
|
acc)
|
||||||
|
|
||||||
|
(fn main () -> i32
|
||||||
|
(let result i32 (json_quote_loop (configured_loop_count) (target_text)))
|
||||||
|
(std.io.print_i32 result)
|
||||||
|
(if (= result (expected_checksum))
|
||||||
|
0
|
||||||
|
1))
|
||||||
|
|
||||||
|
(test "json quote loop checksum is deterministic"
|
||||||
|
(= (json_quote_loop 3 "slo\"vo\\path") 46))
|
||||||
2
compiler/Cargo.lock
generated
2
compiler/Cargo.lock
generated
@ -4,4 +4,4 @@ version = 3
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "glagol"
|
name = "glagol"
|
||||||
version = "1.0.0-beta.6"
|
version = "1.0.0-beta.7"
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "glagol"
|
name = "glagol"
|
||||||
version = "1.0.0-beta.6"
|
version = "1.0.0-beta.7"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
description = "Glagol, the first compiler for the Slovo language"
|
description = "Glagol, the first compiler for the Slovo language"
|
||||||
license = "MIT OR Apache-2.0"
|
license = "MIT OR Apache-2.0"
|
||||||
|
|||||||
@ -32,6 +32,7 @@ pub fn emit(_file: &str, program: &CheckedProgram) -> Result<String, Vec<Diagnos
|
|||||||
out.push_str("declare i32 @__glagol_string_parse_u64_result(ptr, ptr)\n\n");
|
out.push_str("declare i32 @__glagol_string_parse_u64_result(ptr, ptr)\n\n");
|
||||||
out.push_str("declare i32 @__glagol_string_parse_f64_result(ptr, ptr)\n\n");
|
out.push_str("declare i32 @__glagol_string_parse_f64_result(ptr, ptr)\n\n");
|
||||||
out.push_str("declare i32 @__glagol_string_parse_bool_result(ptr, ptr)\n\n");
|
out.push_str("declare i32 @__glagol_string_parse_bool_result(ptr, ptr)\n\n");
|
||||||
|
out.push_str("declare ptr @__glagol_json_quote_string(ptr)\n\n");
|
||||||
out.push_str("declare ptr @__glagol_num_i32_to_string(i32)\n\n");
|
out.push_str("declare ptr @__glagol_num_i32_to_string(i32)\n\n");
|
||||||
out.push_str("declare ptr @__glagol_num_i64_to_string(i64)\n\n");
|
out.push_str("declare ptr @__glagol_num_i64_to_string(i64)\n\n");
|
||||||
out.push_str("declare ptr @__glagol_num_u32_to_string(i32)\n\n");
|
out.push_str("declare ptr @__glagol_num_u32_to_string(i32)\n\n");
|
||||||
|
|||||||
@ -218,6 +218,13 @@ pub const FUNCTIONS: &[RuntimeFunction] = &[
|
|||||||
return_type: RuntimeType::ResultBoolI32,
|
return_type: RuntimeType::ResultBoolI32,
|
||||||
promoted: true,
|
promoted: true,
|
||||||
},
|
},
|
||||||
|
RuntimeFunction {
|
||||||
|
source_name: "std.json.quote_string",
|
||||||
|
runtime_symbol: "__glagol_json_quote_string",
|
||||||
|
params: STRING_PARAM,
|
||||||
|
return_type: RuntimeType::String,
|
||||||
|
promoted: true,
|
||||||
|
},
|
||||||
RuntimeFunction {
|
RuntimeFunction {
|
||||||
source_name: "std.io.eprint",
|
source_name: "std.io.eprint",
|
||||||
runtime_symbol: "__glagol_io_eprint",
|
runtime_symbol: "__glagol_io_eprint",
|
||||||
@ -740,6 +747,7 @@ const RESERVED_HELPER_SYMBOLS: &[&str] = &[
|
|||||||
"__glagol_string_parse_u64_result",
|
"__glagol_string_parse_u64_result",
|
||||||
"__glagol_string_parse_f64_result",
|
"__glagol_string_parse_f64_result",
|
||||||
"__glagol_string_parse_bool_result",
|
"__glagol_string_parse_bool_result",
|
||||||
|
"__glagol_json_quote_string",
|
||||||
"__glagol_num_u32_to_string",
|
"__glagol_num_u32_to_string",
|
||||||
"__glagol_num_u64_to_string",
|
"__glagol_num_u64_to_string",
|
||||||
"__glagol_num_f64_to_string",
|
"__glagol_num_f64_to_string",
|
||||||
@ -781,7 +789,7 @@ pub fn unsupported_standard_library_call(file: &str, span: Span, source_name: &s
|
|||||||
format!("standard library call `{}` is not supported", source_name),
|
format!("standard library call `{}` is not supported", source_name),
|
||||||
)
|
)
|
||||||
.with_span(span)
|
.with_span(span)
|
||||||
.expected("std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
.expected("std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
.found(source_name)
|
.found(source_name)
|
||||||
.hint("use a promoted standard-runtime name or a legacy intrinsic alias")
|
.hint("use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
}
|
}
|
||||||
|
|||||||
@ -739,6 +739,26 @@ fn format_f64_to_string(value: f64) -> String {
|
|||||||
text
|
text
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn quote_json_string_value(value: &str) -> String {
|
||||||
|
let mut quoted = String::with_capacity(value.len() + 2);
|
||||||
|
quoted.push('"');
|
||||||
|
for byte in value.bytes() {
|
||||||
|
match byte {
|
||||||
|
b'"' => quoted.push_str("\\\""),
|
||||||
|
b'\\' => quoted.push_str("\\\\"),
|
||||||
|
b'\n' => quoted.push_str("\\n"),
|
||||||
|
b'\t' => quoted.push_str("\\t"),
|
||||||
|
b'\r' => quoted.push_str("\\r"),
|
||||||
|
0x08 => quoted.push_str("\\b"),
|
||||||
|
0x0c => quoted.push_str("\\f"),
|
||||||
|
0x00..=0x1f => quoted.push_str(&format!("\\u{byte:04X}")),
|
||||||
|
_ => quoted.push(byte as char),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
quoted.push('"');
|
||||||
|
quoted
|
||||||
|
}
|
||||||
|
|
||||||
fn eval_expr(
|
fn eval_expr(
|
||||||
file: &str,
|
file: &str,
|
||||||
expr: &TExpr,
|
expr: &TExpr,
|
||||||
@ -2108,6 +2128,24 @@ fn eval_expr(
|
|||||||
};
|
};
|
||||||
return Ok(Value::String(format!("{}{}", left, right)));
|
return Ok(Value::String(format!("{}{}", left, right)));
|
||||||
}
|
}
|
||||||
|
if runtime_symbol == "__glagol_json_quote_string" {
|
||||||
|
let Some(arg) = args.first() else {
|
||||||
|
return Err(unsupported_test_expr(
|
||||||
|
file,
|
||||||
|
expr,
|
||||||
|
"malformed `std.json.quote_string` calls",
|
||||||
|
));
|
||||||
|
};
|
||||||
|
let value = eval_expr(file, arg, locals, functions, foreign_imports, depth)?;
|
||||||
|
let Some(value) = value.as_string() else {
|
||||||
|
return Err(unsupported_test_expr(
|
||||||
|
file,
|
||||||
|
expr,
|
||||||
|
"`std.json.quote_string` on non-string values",
|
||||||
|
));
|
||||||
|
};
|
||||||
|
return Ok(Value::String(quote_json_string_value(value)));
|
||||||
|
}
|
||||||
if runtime_symbol == "__glagol_string_parse_i32_result" {
|
if runtime_symbol == "__glagol_string_parse_i32_result" {
|
||||||
let Some(arg) = args.first() else {
|
let Some(arg) = args.first() else {
|
||||||
return Err(unsupported_test_expr(
|
return Err(unsupported_test_expr(
|
||||||
|
|||||||
@ -154,6 +154,7 @@ fn benchmark_roots() -> Vec<PathBuf> {
|
|||||||
root.join("math-loop"),
|
root.join("math-loop"),
|
||||||
root.join("branch-loop"),
|
root.join("branch-loop"),
|
||||||
root.join("parse-loop"),
|
root.join("parse-loop"),
|
||||||
|
root.join("json-quote-loop"),
|
||||||
root.join("array-index-loop"),
|
root.join("array-index-loop"),
|
||||||
root.join("string-eq-loop"),
|
root.join("string-eq-loop"),
|
||||||
root.join("array-struct-field-loop"),
|
root.join("array-struct-field-loop"),
|
||||||
|
|||||||
@ -1163,6 +1163,43 @@ const STANDARD_NET_RUNTIME_NAMES: &[&str] = &[
|
|||||||
"std.net.tcp_close_result",
|
"std.net.tcp_close_result",
|
||||||
];
|
];
|
||||||
|
|
||||||
|
const STANDARD_JSON_SOURCE_FACADE_ALPHA: &[&str] = &[
|
||||||
|
"quote_string",
|
||||||
|
"null_value",
|
||||||
|
"bool_value",
|
||||||
|
"i32_value",
|
||||||
|
"u32_value",
|
||||||
|
"i64_value",
|
||||||
|
"u64_value",
|
||||||
|
"f64_value",
|
||||||
|
"field_string",
|
||||||
|
"field_bool",
|
||||||
|
"field_i32",
|
||||||
|
"field_u32",
|
||||||
|
"field_i64",
|
||||||
|
"field_u64",
|
||||||
|
"field_f64",
|
||||||
|
"field_null",
|
||||||
|
"array0",
|
||||||
|
"array1",
|
||||||
|
"array2",
|
||||||
|
"array3",
|
||||||
|
"object0",
|
||||||
|
"object1",
|
||||||
|
"object2",
|
||||||
|
"object3",
|
||||||
|
];
|
||||||
|
|
||||||
|
const STANDARD_JSON_RUNTIME_NAMES: &[&str] = &[
|
||||||
|
"std.json.quote_string",
|
||||||
|
"std.string.concat",
|
||||||
|
"std.num.i32_to_string",
|
||||||
|
"std.num.u32_to_string",
|
||||||
|
"std.num.i64_to_string",
|
||||||
|
"std.num.u64_to_string",
|
||||||
|
"std.num.f64_to_string",
|
||||||
|
];
|
||||||
|
|
||||||
const STANDARD_PROCESS_SOURCE_FACADE_ALPHA: &[&str] = &[
|
const STANDARD_PROCESS_SOURCE_FACADE_ALPHA: &[&str] = &[
|
||||||
"argc",
|
"argc",
|
||||||
"arg",
|
"arg",
|
||||||
@ -1738,6 +1775,7 @@ fn promotion_gate_artifacts_are_aligned() {
|
|||||||
let glagol_project_std_layout_local_env = repo.join("examples/projects/std-layout-local-env");
|
let glagol_project_std_layout_local_env = repo.join("examples/projects/std-layout-local-env");
|
||||||
let glagol_project_std_layout_local_fs = repo.join("examples/projects/std-layout-local-fs");
|
let glagol_project_std_layout_local_fs = repo.join("examples/projects/std-layout-local-fs");
|
||||||
let glagol_project_std_layout_local_net = repo.join("examples/projects/std-layout-local-net");
|
let glagol_project_std_layout_local_net = repo.join("examples/projects/std-layout-local-net");
|
||||||
|
let glagol_project_std_layout_local_json = repo.join("examples/projects/std-layout-local-json");
|
||||||
let glagol_project_std_layout_local_io = repo.join("examples/projects/std-layout-local-io");
|
let glagol_project_std_layout_local_io = repo.join("examples/projects/std-layout-local-io");
|
||||||
let glagol_project_std_layout_local_cli = repo.join("examples/projects/std-layout-local-cli");
|
let glagol_project_std_layout_local_cli = repo.join("examples/projects/std-layout-local-cli");
|
||||||
let glagol_project_std_layout_local_vec_i32 =
|
let glagol_project_std_layout_local_vec_i32 =
|
||||||
@ -1758,6 +1796,7 @@ fn promotion_gate_artifacts_are_aligned() {
|
|||||||
let glagol_project_std_import_env = repo.join("examples/projects/std-import-env");
|
let glagol_project_std_import_env = repo.join("examples/projects/std-import-env");
|
||||||
let glagol_project_std_import_fs = repo.join("examples/projects/std-import-fs");
|
let glagol_project_std_import_fs = repo.join("examples/projects/std-import-fs");
|
||||||
let glagol_project_std_import_net = repo.join("examples/projects/std-import-net");
|
let glagol_project_std_import_net = repo.join("examples/projects/std-import-net");
|
||||||
|
let glagol_project_std_import_json = repo.join("examples/projects/std-import-json");
|
||||||
let glagol_project_std_import_process = repo.join("examples/projects/std-import-process");
|
let glagol_project_std_import_process = repo.join("examples/projects/std-import-process");
|
||||||
let glagol_project_std_import_string = repo.join("examples/projects/std-import-string");
|
let glagol_project_std_import_string = repo.join("examples/projects/std-import-string");
|
||||||
let glagol_project_std_import_num = repo.join("examples/projects/std-import-num");
|
let glagol_project_std_import_num = repo.join("examples/projects/std-import-num");
|
||||||
@ -1772,6 +1811,7 @@ fn promotion_gate_artifacts_are_aligned() {
|
|||||||
let glagol_benchmark_math_loop = repo.join("benchmarks/math-loop");
|
let glagol_benchmark_math_loop = repo.join("benchmarks/math-loop");
|
||||||
let glagol_benchmark_branch_loop = repo.join("benchmarks/branch-loop");
|
let glagol_benchmark_branch_loop = repo.join("benchmarks/branch-loop");
|
||||||
let glagol_benchmark_parse_loop = repo.join("benchmarks/parse-loop");
|
let glagol_benchmark_parse_loop = repo.join("benchmarks/parse-loop");
|
||||||
|
let glagol_benchmark_json_quote_loop = repo.join("benchmarks/json-quote-loop");
|
||||||
let glagol_benchmark_array_index_loop = repo.join("benchmarks/array-index-loop");
|
let glagol_benchmark_array_index_loop = repo.join("benchmarks/array-index-loop");
|
||||||
let glagol_benchmark_string_eq_loop = repo.join("benchmarks/string-eq-loop");
|
let glagol_benchmark_string_eq_loop = repo.join("benchmarks/string-eq-loop");
|
||||||
let glagol_benchmark_array_struct_field_loop = repo.join("benchmarks/array-struct-field-loop");
|
let glagol_benchmark_array_struct_field_loop = repo.join("benchmarks/array-struct-field-loop");
|
||||||
@ -2110,6 +2150,7 @@ fn promotion_gate_artifacts_are_aligned() {
|
|||||||
assert_project_std_import_env_tooling_matches_fixture(&glagol_project_std_import_env);
|
assert_project_std_import_env_tooling_matches_fixture(&glagol_project_std_import_env);
|
||||||
assert_project_std_import_fs_tooling_matches_fixture(&glagol_project_std_import_fs);
|
assert_project_std_import_fs_tooling_matches_fixture(&glagol_project_std_import_fs);
|
||||||
assert_project_std_import_net_tooling_matches_fixture(&glagol_project_std_import_net);
|
assert_project_std_import_net_tooling_matches_fixture(&glagol_project_std_import_net);
|
||||||
|
assert_project_std_import_json_tooling_matches_fixture(&glagol_project_std_import_json);
|
||||||
assert_project_std_import_process_tooling_matches_fixture(&glagol_project_std_import_process);
|
assert_project_std_import_process_tooling_matches_fixture(&glagol_project_std_import_process);
|
||||||
assert_project_std_import_string_tooling_matches_fixture(&glagol_project_std_import_string);
|
assert_project_std_import_string_tooling_matches_fixture(&glagol_project_std_import_string);
|
||||||
assert_project_std_import_num_tooling_matches_fixture(&glagol_project_std_import_num);
|
assert_project_std_import_num_tooling_matches_fixture(&glagol_project_std_import_num);
|
||||||
@ -2151,6 +2192,9 @@ fn promotion_gate_artifacts_are_aligned() {
|
|||||||
assert_project_std_layout_local_net_tooling_matches_fixture(
|
assert_project_std_layout_local_net_tooling_matches_fixture(
|
||||||
&glagol_project_std_layout_local_net,
|
&glagol_project_std_layout_local_net,
|
||||||
);
|
);
|
||||||
|
assert_project_std_layout_local_json_tooling_matches_fixture(
|
||||||
|
&glagol_project_std_layout_local_json,
|
||||||
|
);
|
||||||
assert_project_std_layout_local_io_tooling_matches_fixture(&glagol_project_std_layout_local_io);
|
assert_project_std_layout_local_io_tooling_matches_fixture(&glagol_project_std_layout_local_io);
|
||||||
assert_project_std_layout_local_cli_tooling_matches_fixture(
|
assert_project_std_layout_local_cli_tooling_matches_fixture(
|
||||||
&glagol_project_std_layout_local_cli,
|
&glagol_project_std_layout_local_cli,
|
||||||
@ -2181,6 +2225,11 @@ fn promotion_gate_artifacts_are_aligned() {
|
|||||||
"parse-loop",
|
"parse-loop",
|
||||||
"parse_loop",
|
"parse_loop",
|
||||||
);
|
);
|
||||||
|
assert_named_benchmark_scaffold_is_promotable(
|
||||||
|
&glagol_benchmark_json_quote_loop,
|
||||||
|
"json-quote-loop",
|
||||||
|
"json_quote_loop",
|
||||||
|
);
|
||||||
assert_named_benchmark_scaffold_is_promotable(
|
assert_named_benchmark_scaffold_is_promotable(
|
||||||
&glagol_benchmark_array_index_loop,
|
&glagol_benchmark_array_index_loop,
|
||||||
"array-index-loop",
|
"array-index-loop",
|
||||||
@ -3337,6 +3386,7 @@ fn assert_slovo_std_source_layout_alpha(repo: &Path, std_dir: &Path) {
|
|||||||
std_dir.join("env.slo"),
|
std_dir.join("env.slo"),
|
||||||
std_dir.join("fs.slo"),
|
std_dir.join("fs.slo"),
|
||||||
std_dir.join("io.slo"),
|
std_dir.join("io.slo"),
|
||||||
|
std_dir.join("json.slo"),
|
||||||
std_dir.join("math.slo"),
|
std_dir.join("math.slo"),
|
||||||
std_dir.join("net.slo"),
|
std_dir.join("net.slo"),
|
||||||
std_dir.join("num.slo"),
|
std_dir.join("num.slo"),
|
||||||
@ -3368,6 +3418,7 @@ fn assert_slovo_std_source_layout_alpha(repo: &Path, std_dir: &Path) {
|
|||||||
"fs.slo",
|
"fs.slo",
|
||||||
"math.slo",
|
"math.slo",
|
||||||
"net.slo",
|
"net.slo",
|
||||||
|
"json.slo",
|
||||||
"num.slo",
|
"num.slo",
|
||||||
"option.slo",
|
"option.slo",
|
||||||
"process.slo",
|
"process.slo",
|
||||||
@ -3385,6 +3436,7 @@ fn assert_slovo_std_source_layout_alpha(repo: &Path, std_dir: &Path) {
|
|||||||
&& file != "env.slo"
|
&& file != "env.slo"
|
||||||
&& file != "fs.slo"
|
&& file != "fs.slo"
|
||||||
&& file != "io.slo"
|
&& file != "io.slo"
|
||||||
|
&& file != "json.slo"
|
||||||
&& file != "process.slo"
|
&& file != "process.slo"
|
||||||
&& file != "string.slo"
|
&& file != "string.slo"
|
||||||
&& file != "vec_i32.slo"
|
&& file != "vec_i32.slo"
|
||||||
@ -4274,6 +4326,54 @@ fn assert_slovo_std_source_layout_alpha(repo: &Path, std_dir: &Path) {
|
|||||||
helper
|
helper
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let local_json = repo.join("examples/projects/std-layout-local-json/src/json.slo");
|
||||||
|
let slovo_json = read(&std_dir.join("json.slo"));
|
||||||
|
let glagol_json = read(&local_json);
|
||||||
|
assert!(
|
||||||
|
slovo_json.contains("(module json") && glagol_json.contains("(module json"),
|
||||||
|
"both Slovo std/json.slo and the Glagol local fixture should use explicit `json` module source shape"
|
||||||
|
);
|
||||||
|
for runtime_name in STANDARD_JSON_RUNTIME_NAMES {
|
||||||
|
assert!(
|
||||||
|
slovo_json.contains(runtime_name) && glagol_json.contains(runtime_name),
|
||||||
|
"standard json facade must stay backed by `{}`",
|
||||||
|
runtime_name
|
||||||
|
);
|
||||||
|
}
|
||||||
|
assert_std_only_contains(
|
||||||
|
&slovo_json,
|
||||||
|
STANDARD_JSON_RUNTIME_NAMES,
|
||||||
|
"Slovo std/json.slo must not introduce other compiler-known std names",
|
||||||
|
);
|
||||||
|
assert_std_only_contains(
|
||||||
|
&glagol_json,
|
||||||
|
STANDARD_JSON_RUNTIME_NAMES,
|
||||||
|
"Glagol local json fixture must not introduce other compiler-known std names",
|
||||||
|
);
|
||||||
|
for source in [&slovo_json, &glagol_json] {
|
||||||
|
assert!(
|
||||||
|
!source.contains("parse")
|
||||||
|
&& !source.contains("token")
|
||||||
|
&& !source.contains("map")
|
||||||
|
&& !source.contains("unicode")
|
||||||
|
&& !source.contains("schema")
|
||||||
|
&& !source.contains("stream"),
|
||||||
|
"standard json facade must not claim deferred parser or richer data policies"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
for helper in STANDARD_JSON_SOURCE_FACADE_ALPHA {
|
||||||
|
assert!(
|
||||||
|
slovo_json.contains(&format!("(fn {} ", helper)),
|
||||||
|
"Slovo std/json.slo is missing beta7 facade `{}`",
|
||||||
|
helper
|
||||||
|
);
|
||||||
|
assert!(
|
||||||
|
glagol_json.contains(&format!("(fn {} ", helper)),
|
||||||
|
"Glagol local json fixture is missing beta7 facade `{}`",
|
||||||
|
helper
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn assert_source_shaped_file(path: &Path) {
|
fn assert_source_shaped_file(path: &Path) {
|
||||||
@ -7107,6 +7207,22 @@ fn assert_project_std_import_net_tooling_matches_fixture(project: &Path) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn assert_project_std_import_json_tooling_matches_fixture(project: &Path) {
|
||||||
|
assert_project_std_import_host_facade_tooling_matches_fixture(
|
||||||
|
project,
|
||||||
|
"json",
|
||||||
|
STANDARD_JSON_SOURCE_FACADE_ALPHA,
|
||||||
|
concat!(
|
||||||
|
"test \"explicit std json quote escapes facade\" ... ok\n",
|
||||||
|
"test \"explicit std json scalar values facade\" ... ok\n",
|
||||||
|
"test \"explicit std json fields facade\" ... ok\n",
|
||||||
|
"test \"explicit std json arrays objects facade\" ... ok\n",
|
||||||
|
"test \"explicit std json facade all\" ... ok\n",
|
||||||
|
"5 test(s) passed\n",
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
fn assert_project_std_import_process_tooling_matches_fixture(project: &Path) {
|
fn assert_project_std_import_process_tooling_matches_fixture(project: &Path) {
|
||||||
assert_project_std_import_host_facade_shape(
|
assert_project_std_import_host_facade_shape(
|
||||||
project,
|
project,
|
||||||
@ -9271,6 +9387,82 @@ fn assert_standard_net_source_facade_alpha(project: &Path) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn assert_project_std_layout_local_json_tooling_matches_fixture(project: &Path) {
|
||||||
|
assert!(project.join("slovo.toml").is_file());
|
||||||
|
assert!(project.join("src/json.slo").is_file());
|
||||||
|
assert!(project.join("src/main.slo").is_file());
|
||||||
|
assert_standard_json_source_facade_alpha(project);
|
||||||
|
|
||||||
|
let check = run_glagol([OsStr::new("check"), project.as_os_str()]);
|
||||||
|
assert_success_stdout(check, "", "std layout local json project check");
|
||||||
|
|
||||||
|
let test = run_glagol([OsStr::new("test"), project.as_os_str()]);
|
||||||
|
assert_success_stdout(
|
||||||
|
test,
|
||||||
|
concat!(
|
||||||
|
"test \"explicit local json quote escapes facade\" ... ok\n",
|
||||||
|
"test \"explicit local json scalar values facade\" ... ok\n",
|
||||||
|
"test \"explicit local json fields facade\" ... ok\n",
|
||||||
|
"test \"explicit local json arrays objects facade\" ... ok\n",
|
||||||
|
"test \"explicit local json facade all\" ... ok\n",
|
||||||
|
"5 test(s) passed\n",
|
||||||
|
),
|
||||||
|
"std layout local json project test",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn assert_standard_json_source_facade_alpha(project: &Path) {
|
||||||
|
let json_source = read(&project.join("src/json.slo"));
|
||||||
|
let main = read(&project.join("src/main.slo"));
|
||||||
|
|
||||||
|
assert!(
|
||||||
|
json_source.starts_with("(module json (export "),
|
||||||
|
"local json fixture must stay an explicitly exported local module"
|
||||||
|
);
|
||||||
|
assert!(
|
||||||
|
main.starts_with("(module main)\n\n(import json ("),
|
||||||
|
"local json fixture must stay an explicit local import"
|
||||||
|
);
|
||||||
|
assert!(
|
||||||
|
!main.contains("(import std") && !main.contains("(import slovo.std"),
|
||||||
|
"standard json source facade fixture must not use automatic std imports"
|
||||||
|
);
|
||||||
|
for runtime_name in STANDARD_JSON_RUNTIME_NAMES {
|
||||||
|
assert!(
|
||||||
|
json_source.contains(runtime_name),
|
||||||
|
"standard json source facade fixture must wrap or compose `{}`",
|
||||||
|
runtime_name
|
||||||
|
);
|
||||||
|
}
|
||||||
|
assert_std_only_contains(
|
||||||
|
&json_source,
|
||||||
|
STANDARD_JSON_RUNTIME_NAMES,
|
||||||
|
"standard json source facade fixture must use only approved std runtime names directly",
|
||||||
|
);
|
||||||
|
assert!(
|
||||||
|
!main.contains("std.")
|
||||||
|
&& !json_source.contains("parse")
|
||||||
|
&& !json_source.contains("token")
|
||||||
|
&& !json_source.contains("map")
|
||||||
|
&& !json_source.contains("unicode")
|
||||||
|
&& !json_source.contains("schema")
|
||||||
|
&& !json_source.contains("stream"),
|
||||||
|
"standard json source facade fixture must remain local and must not claim deferred JSON policies"
|
||||||
|
);
|
||||||
|
for helper in STANDARD_JSON_SOURCE_FACADE_ALPHA {
|
||||||
|
assert!(
|
||||||
|
json_source.contains(&format!("(fn {} ", helper)),
|
||||||
|
"local json fixture is missing facade `{}`",
|
||||||
|
helper
|
||||||
|
);
|
||||||
|
assert!(
|
||||||
|
main.contains(helper),
|
||||||
|
"main fixture import/use is missing facade `{}`",
|
||||||
|
helper
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fn assert_project_std_layout_local_io_tooling_matches_fixture(project: &Path) {
|
fn assert_project_std_layout_local_io_tooling_matches_fixture(project: &Path) {
|
||||||
assert!(project.join("slovo.toml").is_file());
|
assert!(project.join("slovo.toml").is_file());
|
||||||
assert!(project.join("src/io.slo").is_file());
|
assert!(project.join("src/io.slo").is_file());
|
||||||
|
|||||||
226
compiler/tests/standard_json.rs
Normal file
226
compiler/tests/standard_json.rs
Normal file
@ -0,0 +1,226 @@
|
|||||||
|
use std::{
|
||||||
|
env,
|
||||||
|
ffi::OsStr,
|
||||||
|
fs,
|
||||||
|
path::{Path, PathBuf},
|
||||||
|
process::{Command, Output},
|
||||||
|
sync::atomic::{AtomicUsize, Ordering},
|
||||||
|
};
|
||||||
|
|
||||||
|
static NEXT_FIXTURE_ID: AtomicUsize = AtomicUsize::new(0);
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn standard_json_lowers_to_private_runtime_helper() {
|
||||||
|
let fixture = write_fixture(
|
||||||
|
"lowering",
|
||||||
|
r#"
|
||||||
|
(module main)
|
||||||
|
|
||||||
|
(fn main () -> i32
|
||||||
|
(if (= (std.json.quote_string "slo\"vo") "\"slo\\\"vo\"")
|
||||||
|
0
|
||||||
|
1))
|
||||||
|
"#,
|
||||||
|
);
|
||||||
|
let output = run_glagol([fixture.as_os_str()]);
|
||||||
|
assert_success("compile standard json lowering", &output);
|
||||||
|
let stdout = String::from_utf8_lossy(&output.stdout);
|
||||||
|
|
||||||
|
assert!(
|
||||||
|
stdout.contains("declare ptr @__glagol_json_quote_string(ptr)")
|
||||||
|
&& stdout.contains("call ptr @__glagol_json_quote_string(")
|
||||||
|
&& !stdout.contains("@std.json.quote_string"),
|
||||||
|
"standard json LLVM shape drifted\nstdout:\n{}",
|
||||||
|
stdout
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_runner_reports_deterministic_json_quoting() {
|
||||||
|
let fixture = write_fixture(
|
||||||
|
"test-runner",
|
||||||
|
r#"
|
||||||
|
(module main)
|
||||||
|
|
||||||
|
(test "quote plain string"
|
||||||
|
(= (std.json.quote_string "slovo") "\"slovo\""))
|
||||||
|
|
||||||
|
(test "quote embedded quote"
|
||||||
|
(= (std.json.quote_string "slo\"vo") "\"slo\\\"vo\""))
|
||||||
|
|
||||||
|
(test "quote backslash"
|
||||||
|
(= (std.json.quote_string "slo\\vo") "\"slo\\\\vo\""))
|
||||||
|
|
||||||
|
(test "quote newline tab"
|
||||||
|
(= (std.json.quote_string "line\n\tnext") "\"line\\n\\tnext\""))
|
||||||
|
"#,
|
||||||
|
);
|
||||||
|
let output = run_glagol([OsStr::new("test"), fixture.as_os_str()]);
|
||||||
|
assert_success("run standard json tests", &output);
|
||||||
|
assert_eq!(
|
||||||
|
String::from_utf8_lossy(&output.stdout),
|
||||||
|
concat!(
|
||||||
|
"test \"quote plain string\" ... ok\n",
|
||||||
|
"test \"quote embedded quote\" ... ok\n",
|
||||||
|
"test \"quote backslash\" ... ok\n",
|
||||||
|
"test \"quote newline tab\" ... ok\n",
|
||||||
|
"4 test(s) passed\n",
|
||||||
|
),
|
||||||
|
"standard json test runner stdout drifted"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn standard_json_diagnostics_cover_promoted_and_deferred_names() {
|
||||||
|
let cases = [
|
||||||
|
(
|
||||||
|
"quote-arity",
|
||||||
|
r#"
|
||||||
|
(module main)
|
||||||
|
|
||||||
|
(fn main () -> i32
|
||||||
|
(std.json.quote_string))
|
||||||
|
"#,
|
||||||
|
"ArityMismatch",
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"quote-type",
|
||||||
|
r#"
|
||||||
|
(module main)
|
||||||
|
|
||||||
|
(fn main () -> i32
|
||||||
|
(std.json.quote_string 42)
|
||||||
|
0)
|
||||||
|
"#,
|
||||||
|
"TypeMismatch",
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"parse-object-deferred",
|
||||||
|
r#"
|
||||||
|
(module main)
|
||||||
|
|
||||||
|
(fn main () -> i32
|
||||||
|
(std.json.parse_object_result "{}"))
|
||||||
|
"#,
|
||||||
|
"UnsupportedStandardLibraryCall",
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"promoted-shadow",
|
||||||
|
r#"
|
||||||
|
(module main)
|
||||||
|
|
||||||
|
(fn std.json.quote_string ((value string)) -> string
|
||||||
|
value)
|
||||||
|
|
||||||
|
(fn main () -> i32
|
||||||
|
(if (= (std.json.quote_string "x") "\"x\"") 0 1))
|
||||||
|
"#,
|
||||||
|
"DuplicateFunction",
|
||||||
|
),
|
||||||
|
];
|
||||||
|
|
||||||
|
for (name, source, diagnostic) in cases {
|
||||||
|
let fixture = write_fixture(name, source);
|
||||||
|
let output = run_glagol([fixture.as_os_str()]);
|
||||||
|
let stdout = String::from_utf8_lossy(&output.stdout);
|
||||||
|
let stderr = String::from_utf8_lossy(&output.stderr);
|
||||||
|
|
||||||
|
assert!(
|
||||||
|
!output.status.success(),
|
||||||
|
"compiler unexpectedly accepted `{}`\nstdout:\n{}\nstderr:\n{}",
|
||||||
|
name,
|
||||||
|
stdout,
|
||||||
|
stderr
|
||||||
|
);
|
||||||
|
assert!(
|
||||||
|
stdout.is_empty(),
|
||||||
|
"rejected compile wrote stdout:\n{}",
|
||||||
|
stdout
|
||||||
|
);
|
||||||
|
assert!(
|
||||||
|
stderr.contains(diagnostic),
|
||||||
|
"diagnostic `{}` was not reported for `{}`\nstderr:\n{}",
|
||||||
|
diagnostic,
|
||||||
|
name,
|
||||||
|
stderr
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn hosted_json_quote_smoke_when_clang_is_available() {
|
||||||
|
if !clang_is_available() {
|
||||||
|
eprintln!("skipping standard json runtime smoke: set GLAGOL_CLANG or install clang");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
let fixture = write_fixture(
|
||||||
|
"hosted",
|
||||||
|
r#"
|
||||||
|
(module main)
|
||||||
|
|
||||||
|
(fn main () -> i32
|
||||||
|
(if (= (std.json.quote_string "line\nnext") "\"line\\nnext\"")
|
||||||
|
0
|
||||||
|
1))
|
||||||
|
"#,
|
||||||
|
);
|
||||||
|
let binary = fixture.with_extension(env::consts::EXE_EXTENSION);
|
||||||
|
let build = run_glagol([
|
||||||
|
OsStr::new("build"),
|
||||||
|
fixture.as_os_str(),
|
||||||
|
OsStr::new("-o"),
|
||||||
|
binary.as_os_str(),
|
||||||
|
]);
|
||||||
|
assert_success("build standard json hosted smoke", &build);
|
||||||
|
|
||||||
|
let run = Command::new(&binary)
|
||||||
|
.output()
|
||||||
|
.unwrap_or_else(|err| panic!("run `{}`: {}", binary.display(), err));
|
||||||
|
assert_success("run standard json hosted smoke", &run);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn write_fixture(name: &str, source: &str) -> PathBuf {
|
||||||
|
let id = NEXT_FIXTURE_ID.fetch_add(1, Ordering::Relaxed);
|
||||||
|
let dir = env::temp_dir().join(format!("glagol-standard-json-{id}-{name}"));
|
||||||
|
fs::create_dir_all(&dir).unwrap_or_else(|err| panic!("create `{}`: {}", dir.display(), err));
|
||||||
|
let path = dir.join("main.slo");
|
||||||
|
fs::write(&path, source).unwrap_or_else(|err| panic!("write `{}`: {}", path.display(), err));
|
||||||
|
path
|
||||||
|
}
|
||||||
|
|
||||||
|
fn clang_is_available() -> bool {
|
||||||
|
if env::var_os("GLAGOL_CLANG").is_some() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
Command::new("clang")
|
||||||
|
.arg("--version")
|
||||||
|
.output()
|
||||||
|
.is_ok_and(|output| output.status.success())
|
||||||
|
}
|
||||||
|
|
||||||
|
fn run_glagol<I, S>(args: I) -> Output
|
||||||
|
where
|
||||||
|
I: IntoIterator<Item = S>,
|
||||||
|
S: AsRef<std::ffi::OsStr>,
|
||||||
|
{
|
||||||
|
Command::new(env!("CARGO_BIN_EXE_glagol"))
|
||||||
|
.args(args)
|
||||||
|
.current_dir(Path::new(env!("CARGO_MANIFEST_DIR")))
|
||||||
|
.output()
|
||||||
|
.expect("run glagol")
|
||||||
|
}
|
||||||
|
|
||||||
|
fn assert_success(context: &str, output: &Output) {
|
||||||
|
let stdout = String::from_utf8_lossy(&output.stdout);
|
||||||
|
let stderr = String::from_utf8_lossy(&output.stderr);
|
||||||
|
|
||||||
|
assert!(
|
||||||
|
output.status.success(),
|
||||||
|
"{} failed\nstdout:\n{}\nstderr:\n{}",
|
||||||
|
context,
|
||||||
|
stdout,
|
||||||
|
stderr
|
||||||
|
);
|
||||||
|
assert!(stderr.is_empty(), "{} wrote stderr:\n{}", context, stderr);
|
||||||
|
}
|
||||||
249
compiler/tests/standard_json_source_facade_alpha.rs
Normal file
249
compiler/tests/standard_json_source_facade_alpha.rs
Normal file
@ -0,0 +1,249 @@
|
|||||||
|
use std::{
|
||||||
|
ffi::OsStr,
|
||||||
|
fs,
|
||||||
|
path::Path,
|
||||||
|
process::{Command, Output},
|
||||||
|
};
|
||||||
|
|
||||||
|
const EXPECTED_LOCAL_TEST_OUTPUT: &str = concat!(
|
||||||
|
"test \"explicit local json quote escapes facade\" ... ok\n",
|
||||||
|
"test \"explicit local json scalar values facade\" ... ok\n",
|
||||||
|
"test \"explicit local json fields facade\" ... ok\n",
|
||||||
|
"test \"explicit local json arrays objects facade\" ... ok\n",
|
||||||
|
"test \"explicit local json facade all\" ... ok\n",
|
||||||
|
"5 test(s) passed\n",
|
||||||
|
);
|
||||||
|
|
||||||
|
const EXPECTED_STD_IMPORT_TEST_OUTPUT: &str = concat!(
|
||||||
|
"test \"explicit std json quote escapes facade\" ... ok\n",
|
||||||
|
"test \"explicit std json scalar values facade\" ... ok\n",
|
||||||
|
"test \"explicit std json fields facade\" ... ok\n",
|
||||||
|
"test \"explicit std json arrays objects facade\" ... ok\n",
|
||||||
|
"test \"explicit std json facade all\" ... ok\n",
|
||||||
|
"5 test(s) passed\n",
|
||||||
|
);
|
||||||
|
|
||||||
|
const STANDARD_JSON_SOURCE_FACADE_ALPHA: &[&str] = &[
|
||||||
|
"quote_string",
|
||||||
|
"null_value",
|
||||||
|
"bool_value",
|
||||||
|
"i32_value",
|
||||||
|
"u32_value",
|
||||||
|
"i64_value",
|
||||||
|
"u64_value",
|
||||||
|
"f64_value",
|
||||||
|
"field_string",
|
||||||
|
"field_bool",
|
||||||
|
"field_i32",
|
||||||
|
"field_u32",
|
||||||
|
"field_i64",
|
||||||
|
"field_u64",
|
||||||
|
"field_f64",
|
||||||
|
"field_null",
|
||||||
|
"array0",
|
||||||
|
"array1",
|
||||||
|
"array2",
|
||||||
|
"array3",
|
||||||
|
"object0",
|
||||||
|
"object1",
|
||||||
|
"object2",
|
||||||
|
"object3",
|
||||||
|
];
|
||||||
|
|
||||||
|
const STANDARD_JSON_RUNTIME_NAMES: &[&str] = &[
|
||||||
|
"std.json.quote_string",
|
||||||
|
"std.string.concat",
|
||||||
|
"std.num.i32_to_string",
|
||||||
|
"std.num.u32_to_string",
|
||||||
|
"std.num.i64_to_string",
|
||||||
|
"std.num.u64_to_string",
|
||||||
|
"std.num.f64_to_string",
|
||||||
|
];
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn standard_json_source_facade_project_checks_formats_and_tests() {
|
||||||
|
let project =
|
||||||
|
Path::new(env!("CARGO_MANIFEST_DIR")).join("../examples/projects/std-layout-local-json");
|
||||||
|
|
||||||
|
assert_local_json_fixture_is_source_authored(&project);
|
||||||
|
|
||||||
|
let fmt = run_glagol([
|
||||||
|
OsStr::new("fmt"),
|
||||||
|
OsStr::new("--check"),
|
||||||
|
project.as_os_str(),
|
||||||
|
]);
|
||||||
|
assert_success("std layout local json fmt --check", &fmt);
|
||||||
|
|
||||||
|
let check = run_glagol([OsStr::new("check"), project.as_os_str()]);
|
||||||
|
assert_success_stdout(check, "", "std layout local json check");
|
||||||
|
|
||||||
|
let test = run_glagol([OsStr::new("test"), project.as_os_str()]);
|
||||||
|
assert_success_stdout(
|
||||||
|
test,
|
||||||
|
EXPECTED_LOCAL_TEST_OUTPUT,
|
||||||
|
"std layout local json test output",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn standard_json_std_import_project_checks_formats_and_tests() {
|
||||||
|
let project =
|
||||||
|
Path::new(env!("CARGO_MANIFEST_DIR")).join("../examples/projects/std-import-json");
|
||||||
|
|
||||||
|
assert_std_import_json_fixture_uses_repo_std(&project);
|
||||||
|
|
||||||
|
let fmt = run_glagol([
|
||||||
|
OsStr::new("fmt"),
|
||||||
|
OsStr::new("--check"),
|
||||||
|
project.as_os_str(),
|
||||||
|
]);
|
||||||
|
assert_success("std import json fmt --check", &fmt);
|
||||||
|
|
||||||
|
let check = run_glagol([OsStr::new("check"), project.as_os_str()]);
|
||||||
|
assert_success_stdout(check, "", "std import json check");
|
||||||
|
|
||||||
|
let test = run_glagol([OsStr::new("test"), project.as_os_str()]);
|
||||||
|
assert_success_stdout(
|
||||||
|
test,
|
||||||
|
EXPECTED_STD_IMPORT_TEST_OUTPUT,
|
||||||
|
"std import json test output",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn assert_local_json_fixture_is_source_authored(project: &Path) {
|
||||||
|
let json = read(&project.join("src/json.slo"));
|
||||||
|
let main = read(&project.join("src/main.slo"));
|
||||||
|
|
||||||
|
assert!(
|
||||||
|
json.starts_with("(module json (export "),
|
||||||
|
"json.slo must stay an explicit local module export"
|
||||||
|
);
|
||||||
|
assert!(
|
||||||
|
main.starts_with("(module main)\n\n(import json ("),
|
||||||
|
"main.slo must stay an explicit local json import"
|
||||||
|
);
|
||||||
|
assert!(
|
||||||
|
!main.contains("(import std") && !main.contains("(import slovo.std"),
|
||||||
|
"json fixture must not depend on automatic or package std imports"
|
||||||
|
);
|
||||||
|
assert_json_source_shape(&json, &main, "local json fixture");
|
||||||
|
assert!(
|
||||||
|
!main.contains("std."),
|
||||||
|
"local json main fixture must use only local imports"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn assert_std_import_json_fixture_uses_repo_std(project: &Path) {
|
||||||
|
let std_json = read(&Path::new(env!("CARGO_MANIFEST_DIR")).join("../lib/std/json.slo"));
|
||||||
|
let main = read(&project.join("src/main.slo"));
|
||||||
|
|
||||||
|
assert!(
|
||||||
|
!project.join("src/json.slo").exists(),
|
||||||
|
"std import json fixture must use repo-root std/json.slo, not a local copy"
|
||||||
|
);
|
||||||
|
assert!(
|
||||||
|
main.starts_with("(module main)\n\n(import std.json ("),
|
||||||
|
"std import json fixture must use explicit `std.json` import syntax"
|
||||||
|
);
|
||||||
|
assert_json_source_shape(&std_json, &main, "repo std.json fixture");
|
||||||
|
}
|
||||||
|
|
||||||
|
fn assert_json_source_shape(json: &str, main: &str, context: &str) {
|
||||||
|
for runtime_name in STANDARD_JSON_RUNTIME_NAMES {
|
||||||
|
assert!(
|
||||||
|
json.contains(runtime_name),
|
||||||
|
"{} must wrap or compose `{}`",
|
||||||
|
context,
|
||||||
|
runtime_name
|
||||||
|
);
|
||||||
|
}
|
||||||
|
assert_std_only_contains(json, STANDARD_JSON_RUNTIME_NAMES, context);
|
||||||
|
assert!(
|
||||||
|
!json.contains("parse")
|
||||||
|
&& !json.contains("token")
|
||||||
|
&& !json.contains("map")
|
||||||
|
&& !json.contains("unicode")
|
||||||
|
&& !json.contains("schema")
|
||||||
|
&& !json.contains("stream")
|
||||||
|
&& !main.contains("parse")
|
||||||
|
&& !main.contains("token")
|
||||||
|
&& !main.contains("map")
|
||||||
|
&& !main.contains("unicode")
|
||||||
|
&& !main.contains("schema")
|
||||||
|
&& !main.contains("stream"),
|
||||||
|
"{} must not claim deferred JSON parsing or richer data APIs",
|
||||||
|
context
|
||||||
|
);
|
||||||
|
|
||||||
|
for helper in STANDARD_JSON_SOURCE_FACADE_ALPHA {
|
||||||
|
assert!(
|
||||||
|
json.contains(&format!("(fn {} ", helper)),
|
||||||
|
"{} is missing source facade `{}`",
|
||||||
|
context,
|
||||||
|
helper
|
||||||
|
);
|
||||||
|
assert!(
|
||||||
|
main.contains(helper),
|
||||||
|
"{} main fixture import/use is missing `{}`",
|
||||||
|
context,
|
||||||
|
helper
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn assert_std_only_contains(source: &str, allowed: &[&str], context: &str) {
|
||||||
|
let mut remaining = source.to_string();
|
||||||
|
for name in allowed {
|
||||||
|
remaining = remaining.replace(name, "");
|
||||||
|
}
|
||||||
|
assert!(
|
||||||
|
!remaining.contains("std."),
|
||||||
|
"{} introduced unexpected compiler-known std names",
|
||||||
|
context
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn run_glagol<I, S>(args: I) -> Output
|
||||||
|
where
|
||||||
|
I: IntoIterator<Item = S>,
|
||||||
|
S: AsRef<std::ffi::OsStr>,
|
||||||
|
{
|
||||||
|
Command::new(env!("CARGO_BIN_EXE_glagol"))
|
||||||
|
.args(args)
|
||||||
|
.current_dir(Path::new(env!("CARGO_MANIFEST_DIR")))
|
||||||
|
.output()
|
||||||
|
.expect("run glagol")
|
||||||
|
}
|
||||||
|
|
||||||
|
fn read(path: &Path) -> String {
|
||||||
|
fs::read_to_string(path).unwrap_or_else(|err| panic!("read `{}`: {}", path.display(), err))
|
||||||
|
}
|
||||||
|
|
||||||
|
fn assert_success(context: &str, output: &Output) {
|
||||||
|
let stdout = String::from_utf8_lossy(&output.stdout);
|
||||||
|
let stderr = String::from_utf8_lossy(&output.stderr);
|
||||||
|
|
||||||
|
assert!(
|
||||||
|
output.status.success(),
|
||||||
|
"{} failed\nstdout:\n{}\nstderr:\n{}",
|
||||||
|
context,
|
||||||
|
stdout,
|
||||||
|
stderr
|
||||||
|
);
|
||||||
|
assert!(stderr.is_empty(), "{} wrote stderr:\n{}", context, stderr);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn assert_success_stdout(output: Output, expected: &str, context: &str) {
|
||||||
|
let stdout = String::from_utf8_lossy(&output.stdout);
|
||||||
|
let stderr = String::from_utf8_lossy(&output.stderr);
|
||||||
|
|
||||||
|
assert!(
|
||||||
|
output.status.success(),
|
||||||
|
"{} failed\nstdout:\n{}\nstderr:\n{}",
|
||||||
|
context,
|
||||||
|
stdout,
|
||||||
|
stderr
|
||||||
|
);
|
||||||
|
assert_eq!(stdout, expected, "{} stdout drifted", context);
|
||||||
|
assert!(stderr.is_empty(), "{} wrote stderr:\n{}", context, stderr);
|
||||||
|
}
|
||||||
@ -181,6 +181,16 @@ Work:
|
|||||||
collections exist
|
collections exist
|
||||||
- add benchmark cases for parsing and formatting
|
- add benchmark cases for parsing and formatting
|
||||||
|
|
||||||
|
Released in `1.0.0-beta.7`: `lib/std/json.slo` now provides explicit helpers
|
||||||
|
for compact JSON text construction over strings, booleans, numbers, null,
|
||||||
|
fields, small arrays, and small objects. `std.json.quote_string` is a
|
||||||
|
compiler-known runtime helper so JSON string escaping is correct before Slovo
|
||||||
|
has source-level byte/character scanning and slicing. Matching explicit
|
||||||
|
std/local source fixtures and a `json-quote-loop` benchmark scaffold are in
|
||||||
|
place. JSON parsing, recursive JSON values, maps/sets, generic collections,
|
||||||
|
streaming encoders, schema validation, Unicode normalization, and stable text
|
||||||
|
encoding policy beyond the current runtime string ABI remain deferred.
|
||||||
|
|
||||||
Why seventh: networking and CLI tools need data interchange, but a complete JSON
|
Why seventh: networking and CLI tools need data interchange, but a complete JSON
|
||||||
library depends on collection work.
|
library depends on collection work.
|
||||||
|
|
||||||
|
|||||||
@ -12,6 +12,32 @@ integration/readiness release, not the first real beta.
|
|||||||
|
|
||||||
No unreleased changes yet.
|
No unreleased changes yet.
|
||||||
|
|
||||||
|
## 1.0.0-beta.7
|
||||||
|
|
||||||
|
Release label: `1.0.0-beta.7`
|
||||||
|
|
||||||
|
Release date: 2026-05-22
|
||||||
|
|
||||||
|
Release state: serialization/data-interchange beta update
|
||||||
|
|
||||||
|
### Summary
|
||||||
|
|
||||||
|
Glagol `1.0.0-beta.7` keeps the `1.0.0-beta` compiler support baseline and
|
||||||
|
adds the first narrow JSON construction foundation:
|
||||||
|
|
||||||
|
- compiler-known `std.json.quote_string`
|
||||||
|
- POSIX-hosted runtime support through `__glagol_json_quote_string`
|
||||||
|
- deterministic interpreter/test-runner behavior for JSON quoting tests
|
||||||
|
- focused lowering, diagnostics, source-facade, promotion, hosted runtime, and
|
||||||
|
benchmark-scaffold coverage
|
||||||
|
|
||||||
|
### Explicit Deferrals
|
||||||
|
|
||||||
|
This release does not add JSON parsing, recursive JSON values, maps/sets,
|
||||||
|
generic collections, streaming encoders, schema validation, Unicode
|
||||||
|
normalization, stable text encoding policy beyond the current null-terminated
|
||||||
|
runtime string ABI, or a stable standard-library API freeze.
|
||||||
|
|
||||||
## 1.0.0-beta.6
|
## 1.0.0-beta.6
|
||||||
|
|
||||||
Release label: `1.0.0-beta.6`
|
Release label: `1.0.0-beta.6`
|
||||||
|
|||||||
@ -22,15 +22,17 @@ general-purpose beta release.
|
|||||||
|
|
||||||
A Glagol feature is done only when it has parser/lowerer support, checker behavior, diagnostics for invalid forms, backend behavior or explicit unsupported diagnostics, and tests.
|
A Glagol feature is done only when it has parser/lowerer support, checker behavior, diagnostics for invalid forms, backend behavior or explicit unsupported diagnostics, and tests.
|
||||||
|
|
||||||
Current stage: `1.0.0-beta.6`, released on 2026-05-22 as the first post-beta
|
Current stage: `1.0.0-beta.7`, released on 2026-05-22 as the first post-beta
|
||||||
networking foundation update. It keeps the `1.0.0-beta` language/compiler
|
serialization/data-interchange foundation update. It keeps the `1.0.0-beta` language/compiler
|
||||||
support baseline and includes the `1.0.0-beta.1` tooling hardening release, the
|
support baseline and includes the `1.0.0-beta.1` tooling hardening release, the
|
||||||
`1.0.0-beta.2` runtime/resource foundation release, the `1.0.0-beta.3`
|
`1.0.0-beta.2` runtime/resource foundation release, the `1.0.0-beta.3`
|
||||||
standard-library stabilization release, the `1.0.0-beta.4`
|
standard-library stabilization release, the `1.0.0-beta.4`
|
||||||
language-usability diagnostics release, the `1.0.0-beta.5` package/workspace
|
language-usability diagnostics release, the `1.0.0-beta.5` package/workspace
|
||||||
discipline release, and the `1.0.0-beta.6` compiler-known `std.net` loopback
|
discipline release, and the `1.0.0-beta.6` compiler-known `std.net` loopback
|
||||||
TCP runtime family with focused lowering, interpreter, diagnostics,
|
TCP runtime family with focused lowering, interpreter, diagnostics,
|
||||||
source-facade, promotion, and hosted smoke coverage.
|
source-facade, promotion, and hosted smoke coverage, plus the `1.0.0-beta.7`
|
||||||
|
compiler-known `std.json.quote_string` runtime family with matching
|
||||||
|
source-facade, test-runner, hosted smoke, and benchmark-scaffold coverage.
|
||||||
|
|
||||||
The final experimental precursor scope is `exp-125`. Its unsigned direct-value
|
The final experimental precursor scope is `exp-125`. Its unsigned direct-value
|
||||||
flow, parse/format runtime lanes, and matching staged stdlib helper breadth
|
flow, parse/format runtime lanes, and matching staged stdlib helper breadth
|
||||||
|
|||||||
@ -8,19 +8,47 @@ Historical `exp-*` releases listed here are experimental maturity milestones.
|
|||||||
The pushed tag `v2.0.0-beta.1` is historical. It is now documented as an
|
The pushed tag `v2.0.0-beta.1` is historical. It is now documented as an
|
||||||
experimental integration/readiness release, not as a beta maturity claim.
|
experimental integration/readiness release, not as a beta maturity claim.
|
||||||
|
|
||||||
The current release is `1.0.0-beta.6`, published on 2026-05-22. It keeps the
|
The current release is `1.0.0-beta.7`, published on 2026-05-22. It keeps the
|
||||||
`1.0.0-beta` language surface, includes the first post-beta tooling/install
|
`1.0.0-beta` language surface, includes the first post-beta tooling/install
|
||||||
hardening bundle from `1.0.0-beta.1`, and adds the first runtime/resource
|
hardening bundle from `1.0.0-beta.1`, and adds the first runtime/resource
|
||||||
foundation bundle from `1.0.0-beta.2` plus the first standard-library
|
foundation bundle from `1.0.0-beta.2` plus the first standard-library
|
||||||
stabilization bundle from `1.0.0-beta.3`, the first language-usability
|
stabilization bundle from `1.0.0-beta.3`, the first language-usability
|
||||||
diagnostics bundle from `1.0.0-beta.4`, and the first local
|
diagnostics bundle from `1.0.0-beta.4`, and the first local
|
||||||
package/workspace discipline bundle from `1.0.0-beta.5`, plus the first
|
package/workspace discipline bundle from `1.0.0-beta.5`, plus the first
|
||||||
loopback networking foundation bundle from `1.0.0-beta.6`.
|
loopback networking foundation bundle from `1.0.0-beta.6`, and the first
|
||||||
|
serialization/data-interchange foundation bundle from `1.0.0-beta.7`.
|
||||||
|
|
||||||
## Unreleased
|
## Unreleased
|
||||||
|
|
||||||
No unreleased changes yet.
|
No unreleased changes yet.
|
||||||
|
|
||||||
|
## 1.0.0-beta.7
|
||||||
|
|
||||||
|
Release label: `1.0.0-beta.7`
|
||||||
|
|
||||||
|
Release name: Serialization And Data Interchange Bundle
|
||||||
|
|
||||||
|
Release date: 2026-05-22
|
||||||
|
|
||||||
|
Status: released beta serialization/data-interchange update on the
|
||||||
|
`1.0.0-beta` language baseline.
|
||||||
|
|
||||||
|
- `lib/std/json.slo` stages an explicit `std.json` source facade for compact
|
||||||
|
JSON text construction.
|
||||||
|
- The facade wraps the compiler-known `std.json.quote_string` runtime helper
|
||||||
|
and composes it with existing `std.string.concat` and `std.num.*_to_string`
|
||||||
|
helpers for scalar values, fields, small arrays, and small objects.
|
||||||
|
- `examples/projects/std-import-json/` and
|
||||||
|
`examples/projects/std-layout-local-json/` document the explicit import and
|
||||||
|
local source facade shapes.
|
||||||
|
- `benchmarks/json-quote-loop/` adds a local-machine timing scaffold for JSON
|
||||||
|
string quoting across Slovo, C, Rust, Python, Clojure, and Common Lisp/SBCL.
|
||||||
|
|
||||||
|
This release does not add JSON parsing, recursive JSON values, maps/sets,
|
||||||
|
generic collections, streaming encoders, schema validation, Unicode
|
||||||
|
normalization, stable text encoding policy beyond the current null-terminated
|
||||||
|
runtime string ABI, or a stable standard-library API freeze.
|
||||||
|
|
||||||
## 1.0.0-beta.6
|
## 1.0.0-beta.6
|
||||||
|
|
||||||
Release label: `1.0.0-beta.6`
|
Release label: `1.0.0-beta.6`
|
||||||
|
|||||||
@ -10,16 +10,18 @@ Long-horizon planning lives in
|
|||||||
release train from the historical `v2.0.0-beta.1` tag toward and beyond the
|
release train from the historical `v2.0.0-beta.1` tag toward and beyond the
|
||||||
first real general-purpose beta Slovo contract.
|
first real general-purpose beta Slovo contract.
|
||||||
|
|
||||||
Current stage: `1.0.0-beta.6`, released on 2026-05-22 as the first post-beta
|
Current stage: `1.0.0-beta.7`, released on 2026-05-22 as the first post-beta
|
||||||
networking foundation update. It keeps the `1.0.0-beta` language contract and
|
serialization/data-interchange foundation update. It keeps the `1.0.0-beta` language contract and
|
||||||
includes the `1.0.0-beta.1` tooling hardening release, the `1.0.0-beta.2`
|
includes the `1.0.0-beta.1` tooling hardening release, the `1.0.0-beta.2`
|
||||||
runtime/resource foundation release, the `1.0.0-beta.3` standard-library
|
runtime/resource foundation release, the `1.0.0-beta.3` standard-library
|
||||||
stabilization release, the `1.0.0-beta.4` language-usability diagnostics
|
stabilization release, the `1.0.0-beta.4` language-usability diagnostics
|
||||||
release, the `1.0.0-beta.5` package/workspace discipline release, and a narrow
|
release, the `1.0.0-beta.5` package/workspace discipline release, and a narrow
|
||||||
`std.net` source facade for blocking loopback TCP client/server primitives over
|
`std.net` source facade for blocking loopback TCP client/server primitives over
|
||||||
opaque `i32` handles and concrete `result` families. DNS, TLS, UDP, async IO,
|
opaque `i32` handles and concrete `result` families, plus a narrow `std.json`
|
||||||
non-loopback binding, HTTP frameworks, rich host-error ADTs, stable socket
|
source facade for compact JSON text construction. JSON parsing, recursive JSON
|
||||||
ABI/layout, and a stable standard-library API freeze remain deferred.
|
values, maps/sets, DNS, TLS, UDP, async IO, non-loopback binding, HTTP
|
||||||
|
frameworks, rich host-error ADTs, stable ABI/layout, and a stable
|
||||||
|
standard-library API freeze remain deferred.
|
||||||
|
|
||||||
The final experimental precursor scope is `exp-125`, defined in
|
The final experimental precursor scope is `exp-125`, defined in
|
||||||
`.llm/EXP_125_UNSIGNED_U32_U64_NUMERIC_AND_STDLIB_BREADTH_ALPHA.md`. Its
|
`.llm/EXP_125_UNSIGNED_U32_U64_NUMERIC_AND_STDLIB_BREADTH_ALPHA.md`. Its
|
||||||
|
|||||||
@ -1076,6 +1076,38 @@ timeouts, buffering policy, HTTP frameworks, platform-specific error codes,
|
|||||||
rich host-error ADTs, stable runtime helper symbols, stable socket ABI/layout,
|
rich host-error ADTs, stable runtime helper symbols, stable socket ABI/layout,
|
||||||
automatic cleanup, and affine ownership guarantees remain deferred.
|
automatic cleanup, and affine ownership guarantees remain deferred.
|
||||||
|
|
||||||
|
### 4.4.5 Post-Beta Serialization Foundation
|
||||||
|
|
||||||
|
Status: released in `1.0.0-beta.7`.
|
||||||
|
|
||||||
|
The `1.0.0-beta.7` serialization foundation stages compact JSON text
|
||||||
|
construction only. It does not change source syntax.
|
||||||
|
|
||||||
|
The source facade is `lib/std/json.slo`, imported explicitly as `std.json`.
|
||||||
|
It exposes:
|
||||||
|
|
||||||
|
```text
|
||||||
|
std.json.quote_string: (string) -> string
|
||||||
|
std.json.null_value: () -> string
|
||||||
|
std.json.bool_value: (bool) -> string
|
||||||
|
std.json.i32_value/u32_value/i64_value/u64_value/f64_value
|
||||||
|
std.json.field_string/field_bool/field_i32/field_u32/field_i64/field_u64/field_f64/field_null
|
||||||
|
std.json.array0/array1/array2/array3
|
||||||
|
std.json.object0/object1/object2/object3
|
||||||
|
```
|
||||||
|
|
||||||
|
`quote_string` is backed by a compiler-known runtime helper so JSON string
|
||||||
|
escaping is deterministic even before Slovo has source-visible byte or
|
||||||
|
character iteration. It returns a complete compact JSON string literal,
|
||||||
|
including surrounding quotes. The source helpers compose already-encoded JSON
|
||||||
|
fragments with compact comma/colon separators.
|
||||||
|
|
||||||
|
This release is not a complete JSON or serialization contract. JSON parsing,
|
||||||
|
recursive JSON values, maps/sets, generic collections, streaming encoders,
|
||||||
|
schema validation, Unicode normalization, stable text encoding policy beyond
|
||||||
|
the current null-terminated runtime string ABI, stable runtime helper symbols,
|
||||||
|
and stable standard-library API guarantees remain deferred.
|
||||||
|
|
||||||
## 4.5 v2.0.0-beta.1 Experimental Integration Readiness
|
## 4.5 v2.0.0-beta.1 Experimental Integration Readiness
|
||||||
|
|
||||||
Status: current experimental Slovo-side release contract, released 2026-05-17.
|
Status: current experimental Slovo-side release contract, released 2026-05-17.
|
||||||
|
|||||||
@ -27,6 +27,11 @@ result-returning, and loopback-only; they do not define DNS, TLS, UDP, async
|
|||||||
IO, non-loopback binding, HTTP frameworks, stable socket ABI/layout, or rich
|
IO, non-loopback binding, HTTP frameworks, stable socket ABI/layout, or rich
|
||||||
platform error values.
|
platform error values.
|
||||||
|
|
||||||
|
The `1.0.0-beta.7` serialization/data-interchange foundation release adds
|
||||||
|
`std.json.quote_string` behind the `std.json` source facade. It provides
|
||||||
|
deterministic compact JSON string quoting before source-level string scanning,
|
||||||
|
slicing, maps, or recursive JSON values are available.
|
||||||
|
|
||||||
The exp-era catalog is closed to names promoted through exp-101. exp-29,
|
The exp-era catalog is closed to names promoted through exp-101. exp-29,
|
||||||
exp-30, exp-32, exp-33, and exp-35 through exp-93 add no new standard-runtime
|
exp-30, exp-32, exp-33, and exp-35 through exp-93 add no new standard-runtime
|
||||||
operation names. exp-32/exp-39/exp-56/exp-57 `std/math.slo` helpers,
|
operation names. exp-32/exp-39/exp-56/exp-57 `std/math.slo` helpers,
|
||||||
@ -71,6 +76,7 @@ source-level result helper names are the `std.result.*` names cataloged below.
|
|||||||
| `std.num.f64_to_i64_result` | `(f64) -> (result i64 i32)` | exp-31 | `examples/supported/f64-to-i64-result.slo` | Returns `ok value` only when the `f64` input is finite, exactly integral, and in the signed `i64` range; returns `err 1` for non-finite, fractional, or out-of-range input without trapping. Conservative fixture values avoid pinning every `f64`/`i64` edge. | Uses existing standard-runtime usage recording if present; no schema change. | Unchecked casts, unchecked f64-to-i64, cast syntax, generic `cast_checked`, f32, unsigned/narrower integer families, mixed numeric arithmetic, broad math, stable helper ABI/layout/ownership. |
|
| `std.num.f64_to_i64_result` | `(f64) -> (result i64 i32)` | exp-31 | `examples/supported/f64-to-i64-result.slo` | Returns `ok value` only when the `f64` input is finite, exactly integral, and in the signed `i64` range; returns `err 1` for non-finite, fractional, or out-of-range input without trapping. Conservative fixture values avoid pinning every `f64`/`i64` edge. | Uses existing standard-runtime usage recording if present; no schema change. | Unchecked casts, unchecked f64-to-i64, cast syntax, generic `cast_checked`, f32, unsigned/narrower integer families, mixed numeric arithmetic, broad math, stable helper ABI/layout/ownership. |
|
||||||
| `std.string.len` | `(string) -> i32` | v1.5 | `examples/supported/standard-runtime.slo` | Returns the existing decoded byte-count length used by legacy `string_len`. | Uses existing standard-runtime usage recording if present; no schema change. | Unicode scalar/grapheme length, slicing, indexing, stable string ABI/layout. |
|
| `std.string.len` | `(string) -> i32` | v1.5 | `examples/supported/standard-runtime.slo` | Returns the existing decoded byte-count length used by legacy `string_len`. | Uses existing standard-runtime usage recording if present; no schema change. | Unicode scalar/grapheme length, slicing, indexing, stable string ABI/layout. |
|
||||||
| `std.string.concat` | `(string, string) -> string` | exp-1 | `examples/supported/owned-string-concat.slo` | Returns an immutable runtime-owned string; allocation failure traps as `slovo runtime error: string allocation failed`. | Uses existing standard-runtime usage recording if present; no concat-specific schema field. | Mutable strings, string containers, user-visible allocation/deallocation, stable string ABI/layout. |
|
| `std.string.concat` | `(string, string) -> string` | exp-1 | `examples/supported/owned-string-concat.slo` | Returns an immutable runtime-owned string; allocation failure traps as `slovo runtime error: string allocation failed`. | Uses existing standard-runtime usage recording if present; no concat-specific schema field. | Mutable strings, string containers, user-visible allocation/deallocation, stable string ABI/layout. |
|
||||||
|
| `std.json.quote_string` | `(string) -> string` | `1.0.0-beta.7` | `examples/projects/std-layout-local-json` | Returns a compact JSON string literal for the input text, including surrounding quotes; it escapes quote, backslash, newline, tab, carriage return, backspace, form feed, and other control bytes as JSON escapes. Allocation failure traps as `slovo runtime error: string allocation failed`. | Uses existing standard-runtime usage recording if present; no schema change. | JSON parsing, recursive JSON values, maps/sets, streaming encoders, schema validation, Unicode normalization, embedded NUL support in the current null-terminated string ABI, stable helper ABI/layout/ownership. |
|
||||||
| `std.vec.i32.empty` | `() -> (vec i32)` | exp-2 | `examples/supported/vec-i32.slo` | Returns an empty immutable runtime-owned `(vec i32)`. | Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Generic vectors, element families beyond `i32`, `i64`, and `string`, vector mutation, stable vector ABI/layout. |
|
| `std.vec.i32.empty` | `() -> (vec i32)` | exp-2 | `examples/supported/vec-i32.slo` | Returns an empty immutable runtime-owned `(vec i32)`. | Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Generic vectors, element families beyond `i32`, `i64`, and `string`, vector mutation, stable vector ABI/layout. |
|
||||||
| `std.vec.i32.append` | `((vec i32), i32) -> (vec i32)` | exp-2 | `examples/supported/vec-i32.slo` | Returns a new immutable vector containing the input elements and appended value; allocation failure traps with the exp-2 vector allocation message. | Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Mutation, `push`, capacity APIs, user deallocation, stable vector ABI/layout. |
|
| `std.vec.i32.append` | `((vec i32), i32) -> (vec i32)` | exp-2 | `examples/supported/vec-i32.slo` | Returns a new immutable vector containing the input elements and appended value; allocation failure traps with the exp-2 vector allocation message. | Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Mutation, `push`, capacity APIs, user deallocation, stable vector ABI/layout. |
|
||||||
| `std.vec.i32.len` | `((vec i32)) -> i32` | exp-2 | `examples/supported/vec-i32.slo` | Returns vector length as `i32`. | Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Generic length APIs and stable vector ABI/layout. |
|
| `std.vec.i32.len` | `((vec i32)) -> i32` | exp-2 | `examples/supported/vec-i32.slo` | Returns vector length as `i32`. | Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Generic length APIs and stable vector ABI/layout. |
|
||||||
|
|||||||
@ -6,15 +6,15 @@ Do not edit this file by hand.
|
|||||||
## Stability Tiers
|
## Stability Tiers
|
||||||
|
|
||||||
- `beta-supported`: exported from `lib/std` and covered by source-search, promotion, or facade gates in the current beta line.
|
- `beta-supported`: exported from `lib/std` and covered by source-search, promotion, or facade gates in the current beta line.
|
||||||
- `experimental`: not used for exported `lib/std` helpers in `1.0.0-beta.6`; future releases may mark new helpers this way before they graduate.
|
- `experimental`: not used for exported `lib/std` helpers in `1.0.0-beta.7`; future releases may mark new helpers this way before they graduate.
|
||||||
- `internal`: helper names that are not exported from their module; they are intentionally omitted from this catalog.
|
- `internal`: helper names that are not exported from their module; they are intentionally omitted from this catalog.
|
||||||
|
|
||||||
The catalog is a beta compatibility aid, not a stable `1.0.0` API freeze.
|
The catalog is a beta compatibility aid, not a stable `1.0.0` API freeze.
|
||||||
|
|
||||||
## Summary
|
## Summary
|
||||||
|
|
||||||
- Modules: 18
|
- Modules: 19
|
||||||
- Exported helpers: 548
|
- Exported helpers: 572
|
||||||
- Default tier: `beta-supported`
|
- Default tier: `beta-supported`
|
||||||
|
|
||||||
## Modules
|
## Modules
|
||||||
@ -186,6 +186,37 @@ The catalog is a beta compatibility aid, not a stable `1.0.0` API freeze.
|
|||||||
- `read_stdin_bool_or_false`
|
- `read_stdin_bool_or_false`
|
||||||
- `read_stdin_bool_or`
|
- `read_stdin_bool_or`
|
||||||
|
|
||||||
|
### std.json
|
||||||
|
|
||||||
|
- Path: `lib/std/json.slo`
|
||||||
|
- Tier: `beta-supported`
|
||||||
|
- Exported helpers: 24
|
||||||
|
|
||||||
|
- `quote_string`
|
||||||
|
- `null_value`
|
||||||
|
- `bool_value`
|
||||||
|
- `i32_value`
|
||||||
|
- `u32_value`
|
||||||
|
- `i64_value`
|
||||||
|
- `u64_value`
|
||||||
|
- `f64_value`
|
||||||
|
- `field_string`
|
||||||
|
- `field_bool`
|
||||||
|
- `field_i32`
|
||||||
|
- `field_u32`
|
||||||
|
- `field_i64`
|
||||||
|
- `field_u64`
|
||||||
|
- `field_f64`
|
||||||
|
- `field_null`
|
||||||
|
- `array0`
|
||||||
|
- `array1`
|
||||||
|
- `array2`
|
||||||
|
- `array3`
|
||||||
|
- `object0`
|
||||||
|
- `object1`
|
||||||
|
- `object2`
|
||||||
|
- `object3`
|
||||||
|
|
||||||
### std.math
|
### std.math
|
||||||
|
|
||||||
- Path: `lib/std/math.slo`
|
- Path: `lib/std/math.slo`
|
||||||
|
|||||||
@ -9,7 +9,10 @@ release notes. The current compiler-supported language baseline is
|
|||||||
`1.0.0-beta`; `1.0.0-beta.1` adds tooling/install hardening without changing
|
`1.0.0-beta`; `1.0.0-beta.1` adds tooling/install hardening without changing
|
||||||
these source-language fixtures. `1.0.0-beta.2` adds beta-scoped
|
these source-language fixtures. `1.0.0-beta.2` adds beta-scoped
|
||||||
runtime/resource foundation APIs. `1.0.0-beta.3` adds the generated stdlib API
|
runtime/resource foundation APIs. `1.0.0-beta.3` adds the generated stdlib API
|
||||||
catalog and the checked `projects/stdlib-composition/` example. The language
|
catalog and the checked `projects/stdlib-composition/` example.
|
||||||
|
`1.0.0-beta.7` adds explicit `projects/std-import-json/` and
|
||||||
|
`projects/std-layout-local-json/` examples for compact JSON text construction.
|
||||||
|
The language
|
||||||
baseline absorbs the final exp-125 unsigned precursor scope alongside the
|
baseline absorbs the final exp-125 unsigned precursor scope alongside the
|
||||||
already promoted project/package, stdlib-source, collection, composite-data,
|
already promoted project/package, stdlib-source, collection, composite-data,
|
||||||
formatter, and diagnostics surface.
|
formatter, and diagnostics surface.
|
||||||
|
|||||||
Binary file not shown.
@ -5,19 +5,20 @@
|
|||||||
Sanjin Gumbarevic<br>
|
Sanjin Gumbarevic<br>
|
||||||
hermeticum_lab@protonmail.com
|
hermeticum_lab@protonmail.com
|
||||||
|
|
||||||
Publication release: `1.0.0-beta.6`
|
Publication release: `1.0.0-beta.7`
|
||||||
|
|
||||||
Technical behavior baseline: compiler and language support through
|
Technical behavior baseline: compiler and language support through
|
||||||
`1.0.0-beta`; tooling and install workflow through `1.0.0-beta.1`;
|
`1.0.0-beta`; tooling and install workflow through `1.0.0-beta.1`;
|
||||||
runtime/resource foundation through `1.0.0-beta.2`; standard-library
|
runtime/resource foundation through `1.0.0-beta.2`; standard-library
|
||||||
stabilization through `1.0.0-beta.3`; language-usability diagnostics through
|
stabilization through `1.0.0-beta.3`; language-usability diagnostics through
|
||||||
`1.0.0-beta.4`; package/workspace discipline through `1.0.0-beta.5`;
|
`1.0.0-beta.4`; package/workspace discipline through `1.0.0-beta.5`;
|
||||||
loopback networking foundation through `1.0.0-beta.6`
|
loopback networking foundation through `1.0.0-beta.6`;
|
||||||
|
serialization/data-interchange foundation through `1.0.0-beta.7`
|
||||||
|
|
||||||
Date: 2026-05-22
|
Date: 2026-05-22
|
||||||
|
|
||||||
Evidence source: paired local Slovo/Glagol monorepo verification and benchmark
|
Evidence source: paired local Slovo/Glagol monorepo verification and benchmark
|
||||||
reruns from a local checkout; beta.6 release-gate verification from the public
|
reruns from a local checkout; beta.7 release-gate verification from the public
|
||||||
monorepo
|
monorepo
|
||||||
|
|
||||||
Maturity: beta
|
Maturity: beta
|
||||||
@ -29,21 +30,23 @@ Slovo. It exists to make the language support boundary inspectable: tokens,
|
|||||||
S-expression tree, AST, typed AST, LLVM IR, hosted native executable, tests,
|
S-expression tree, AST, typed AST, LLVM IR, hosted native executable, tests,
|
||||||
diagnostics, and release documents should agree.
|
diagnostics, and release documents should agree.
|
||||||
|
|
||||||
The current publication release, `1.0.0-beta.6`, keeps the first real
|
The current publication release, `1.0.0-beta.7`, keeps the first real
|
||||||
general-purpose beta toolchain baseline from `1.0.0-beta` and records the
|
general-purpose beta toolchain baseline from `1.0.0-beta` and records the
|
||||||
first post-beta tooling/install hardening update plus the first
|
first post-beta tooling/install hardening update plus the first
|
||||||
runtime/resource foundation update plus the first standard-library
|
runtime/resource foundation update plus the first standard-library
|
||||||
stabilization update plus the first language-usability diagnostics update and
|
stabilization update plus the first language-usability diagnostics update and
|
||||||
the first local package/workspace discipline update plus the first loopback
|
the first local package/workspace discipline update plus the first loopback
|
||||||
networking foundation update. The beta baseline includes the completed `u32` /
|
networking foundation update plus the first serialization/data-interchange
|
||||||
`u64` unsigned compiler and stdlib breadth scope, the narrow `std.net`
|
foundation update. The beta baseline includes the completed `u32` / `u64`
|
||||||
loopback TCP runtime family, and the current nine-kernel benchmark suite. This
|
unsigned compiler and stdlib breadth scope, the narrow `std.net` loopback TCP
|
||||||
paper records the current beta implementation surface, the benchmark method and
|
runtime family, the narrow `std.json.quote_string` runtime family, and the
|
||||||
results, the distinction between Glagol and Lisp-family implementations, the
|
current ten-scaffold benchmark suite. This paper records the current beta
|
||||||
beta.1 tooling update, the beta.2 runtime/resource foundation, the beta.3
|
implementation surface, the benchmark method and results, the distinction
|
||||||
standard-library stabilization slice, the beta.4 diagnostics usability slice,
|
between Glagol and Lisp-family implementations, the beta.1 tooling update, the
|
||||||
the beta.5 package discipline slice, the beta.6 networking foundation slice,
|
beta.2 runtime/resource foundation, the beta.3 standard-library stabilization
|
||||||
and the compiler path from beta to stable.
|
slice, the beta.4 diagnostics usability slice, the beta.5 package discipline
|
||||||
|
slice, the beta.6 networking foundation slice, the beta.7 serialization
|
||||||
|
foundation slice, and the compiler path from beta to stable.
|
||||||
|
|
||||||
## 1. Compiler Thesis
|
## 1. Compiler Thesis
|
||||||
|
|
||||||
@ -123,13 +126,15 @@ At the current technical behavior beta baseline, Glagol supports:
|
|||||||
`f64`, `bool`, and `string`
|
`f64`, `bool`, and `string`
|
||||||
- compiler-known standard-runtime calls through the promoted catalog plus
|
- compiler-known standard-runtime calls through the promoted catalog plus
|
||||||
staged source-authored `std/*.slo` gates
|
staged source-authored `std/*.slo` gates
|
||||||
|
- compact JSON string literal construction through `std.json.quote_string` and
|
||||||
|
the hosted `__glagol_json_quote_string` runtime helper
|
||||||
- scalar C FFI imports
|
- scalar C FFI imports
|
||||||
- benchmark scaffolds for Slovo, C, Rust, Python, Clojure, and Common
|
- benchmark scaffolds for Slovo, C, Rust, Python, Clojure, and Common
|
||||||
Lisp/SBCL, with `cold-process` and `hot-loop` timing modes
|
Lisp/SBCL, with `cold-process` and `hot-loop` timing modes
|
||||||
|
|
||||||
The current release, `1.0.0-beta.6`, is a beta networking foundation update on
|
The current release, `1.0.0-beta.7`, is a beta serialization/data-interchange
|
||||||
the first release line that may honestly use beta maturity language for this
|
foundation update on the first release line that may honestly use beta maturity
|
||||||
toolchain.
|
language for this toolchain.
|
||||||
|
|
||||||
## 4. Diagnostics And Support Discipline
|
## 4. Diagnostics And Support Discipline
|
||||||
|
|
||||||
@ -218,6 +223,8 @@ Benchmark kernels:
|
|||||||
accumulation
|
accumulation
|
||||||
- `vec-string-eq-loop`: runtime-owned string vector indexing plus exact string
|
- `vec-string-eq-loop`: runtime-owned string vector indexing plus exact string
|
||||||
equality reduced to an `i32` checksum
|
equality reduced to an `i32` checksum
|
||||||
|
- `json-quote-loop`: compact JSON string quoting plus quoted-length checksum
|
||||||
|
accumulation
|
||||||
|
|
||||||
Comparison boundaries:
|
Comparison boundaries:
|
||||||
|
|
||||||
@ -250,6 +257,10 @@ Comparison boundaries:
|
|||||||
- `vec-string-eq-loop` keeps the same five-word ASCII corpus and
|
- `vec-string-eq-loop` keeps the same five-word ASCII corpus and
|
||||||
runtime-supplied target as `string-eq-loop`, but routes selection through
|
runtime-supplied target as `string-eq-loop`, but routes selection through
|
||||||
the promoted runtime-owned `(vec string)` lane instead of fixed arrays.
|
the promoted runtime-owned `(vec string)` lane instead of fixed arrays.
|
||||||
|
- `json-quote-loop` keeps one runtime-supplied ASCII string containing a quote
|
||||||
|
and a backslash and measures compact JSON string quoting plus quoted-length
|
||||||
|
checksum accumulation. It does not compare JSON parsing, maps, recursive JSON
|
||||||
|
values, schema validation, or streaming encoders.
|
||||||
- Because Rust is timed at `opt-level=3` while Slovo and C are timed through
|
- Because Rust is timed at `opt-level=3` while Slovo and C are timed through
|
||||||
`clang -O2`, the suite is a useful local regression/comparison harness, not a
|
`clang -O2`, the suite is a useful local regression/comparison harness, not a
|
||||||
strict same-flags compiler shootout.
|
strict same-flags compiler shootout.
|
||||||
@ -266,6 +277,7 @@ python3 benchmarks/array-struct-field-loop/run.py --mode hot-loop --repeats 5 --
|
|||||||
python3 benchmarks/enum-struct-payload-loop/run.py --mode hot-loop --repeats 5 --warmups 1 --glagol compiler/target/debug/glagol
|
python3 benchmarks/enum-struct-payload-loop/run.py --mode hot-loop --repeats 5 --warmups 1 --glagol compiler/target/debug/glagol
|
||||||
python3 benchmarks/vec-i32-index-loop/run.py --mode hot-loop --repeats 5 --warmups 1 --glagol compiler/target/debug/glagol
|
python3 benchmarks/vec-i32-index-loop/run.py --mode hot-loop --repeats 5 --warmups 1 --glagol compiler/target/debug/glagol
|
||||||
python3 benchmarks/vec-string-eq-loop/run.py --mode hot-loop --repeats 5 --warmups 1 --glagol compiler/target/debug/glagol
|
python3 benchmarks/vec-string-eq-loop/run.py --mode hot-loop --repeats 5 --warmups 1 --glagol compiler/target/debug/glagol
|
||||||
|
python3 benchmarks/json-quote-loop/run.py --mode hot-loop --repeats 5 --warmups 1 --glagol compiler/target/debug/glagol
|
||||||
```
|
```
|
||||||
|
|
||||||
Cold-process commands:
|
Cold-process commands:
|
||||||
@ -280,6 +292,7 @@ python3 benchmarks/array-struct-field-loop/run.py --mode cold-process --repeats
|
|||||||
python3 benchmarks/enum-struct-payload-loop/run.py --mode cold-process --repeats 3 --warmups 1 --glagol compiler/target/debug/glagol
|
python3 benchmarks/enum-struct-payload-loop/run.py --mode cold-process --repeats 3 --warmups 1 --glagol compiler/target/debug/glagol
|
||||||
python3 benchmarks/vec-i32-index-loop/run.py --mode cold-process --repeats 3 --warmups 1 --glagol compiler/target/debug/glagol
|
python3 benchmarks/vec-i32-index-loop/run.py --mode cold-process --repeats 3 --warmups 1 --glagol compiler/target/debug/glagol
|
||||||
python3 benchmarks/vec-string-eq-loop/run.py --mode cold-process --repeats 3 --warmups 1 --glagol compiler/target/debug/glagol
|
python3 benchmarks/vec-string-eq-loop/run.py --mode cold-process --repeats 3 --warmups 1 --glagol compiler/target/debug/glagol
|
||||||
|
python3 benchmarks/json-quote-loop/run.py --mode cold-process --repeats 3 --warmups 1 --glagol compiler/target/debug/glagol
|
||||||
```
|
```
|
||||||
|
|
||||||
## 7. Benchmark Results
|
## 7. Benchmark Results
|
||||||
@ -289,8 +302,11 @@ baseline. `1.0.0-beta.1` changes tooling and install workflow, and
|
|||||||
`1.0.0-beta.2` adds runtime/resource APIs, `1.0.0-beta.3` adds
|
`1.0.0-beta.2` adds runtime/resource APIs, `1.0.0-beta.3` adds
|
||||||
standard-library catalog and composition coverage, `1.0.0-beta.4` improves
|
standard-library catalog and composition coverage, `1.0.0-beta.4` improves
|
||||||
diagnostics, `1.0.0-beta.5` tightens package/workspace discipline, and
|
diagnostics, `1.0.0-beta.5` tightens package/workspace discipline, and
|
||||||
`1.0.0-beta.6` adds a narrow loopback networking foundation. None of these
|
`1.0.0-beta.6` adds a narrow loopback networking foundation, and
|
||||||
post-beta slices claims changed benchmark performance.
|
`1.0.0-beta.7` adds a narrow JSON construction foundation. None of these
|
||||||
|
post-beta slices claims changed benchmark performance. The beta.7
|
||||||
|
`json-quote-loop` scaffold is present for local follow-up timing and is not
|
||||||
|
part of the exp-123 nine-row result table below.
|
||||||
|
|
||||||
The exp-123 publication baseline widened the paired same-machine result set
|
The exp-123 publication baseline widened the paired same-machine result set
|
||||||
from seven rows to nine by adding two owned-vector kernels:
|
from seven rows to nine by adding two owned-vector kernels:
|
||||||
@ -378,14 +394,15 @@ coverage and compatibility:
|
|||||||
- package behavior becoming stable before dependency, manifest, and versioning
|
- package behavior becoming stable before dependency, manifest, and versioning
|
||||||
rules are precise
|
rules are precise
|
||||||
|
|
||||||
## 9. Path Beyond `1.0.0-beta.6`
|
## 9. Path Beyond `1.0.0-beta.7`
|
||||||
|
|
||||||
Glagol now implements the first real beta Slovo contract, the first
|
Glagol now implements the first real beta Slovo contract, the first
|
||||||
post-beta tooling/install hardening release, the first runtime/resource
|
post-beta tooling/install hardening release, the first runtime/resource
|
||||||
foundation release, the first standard-library stabilization release, and the
|
foundation release, the first standard-library stabilization release, and the
|
||||||
first diagnostics usability release, and the first package/workspace
|
first diagnostics usability release, the first package/workspace discipline
|
||||||
discipline release, and the first loopback networking foundation release. The
|
release, the first loopback networking foundation release, and the first
|
||||||
remaining path is from beta to stable.
|
serialization/data-interchange foundation release. The remaining path is from
|
||||||
|
beta to stable.
|
||||||
|
|
||||||
Recommended compiler sequence:
|
Recommended compiler sequence:
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@ -5,19 +5,20 @@
|
|||||||
Sanjin Gumbarevic<br>
|
Sanjin Gumbarevic<br>
|
||||||
hermeticum_lab@protonmail.com
|
hermeticum_lab@protonmail.com
|
||||||
|
|
||||||
Publication release: `1.0.0-beta.6`
|
Publication release: `1.0.0-beta.7`
|
||||||
|
|
||||||
Technical behavior baseline: language surface through `1.0.0-beta`; tooling
|
Technical behavior baseline: language surface through `1.0.0-beta`; tooling
|
||||||
and install workflow through `1.0.0-beta.1`; runtime/resource foundation through
|
and install workflow through `1.0.0-beta.1`; runtime/resource foundation through
|
||||||
`1.0.0-beta.2`; standard-library stabilization through `1.0.0-beta.3`;
|
`1.0.0-beta.2`; standard-library stabilization through `1.0.0-beta.3`;
|
||||||
language-usability diagnostics through `1.0.0-beta.4`; package/workspace
|
language-usability diagnostics through `1.0.0-beta.4`; package/workspace
|
||||||
discipline through `1.0.0-beta.5`; loopback networking foundation through
|
discipline through `1.0.0-beta.5`; loopback networking foundation through
|
||||||
`1.0.0-beta.6`
|
`1.0.0-beta.6`; serialization/data-interchange foundation through
|
||||||
|
`1.0.0-beta.7`
|
||||||
|
|
||||||
Date: 2026-05-22
|
Date: 2026-05-22
|
||||||
|
|
||||||
Evidence source: paired local Slovo/Glagol monorepo verification and benchmark
|
Evidence source: paired local Slovo/Glagol monorepo verification and benchmark
|
||||||
reruns from a local checkout; beta.6 release-gate verification from the public
|
reruns from a local checkout; beta.7 release-gate verification from the public
|
||||||
monorepo
|
monorepo
|
||||||
|
|
||||||
Maturity: beta
|
Maturity: beta
|
||||||
@ -32,28 +33,31 @@ explicit types, explicit failure through `option` and `result`, lexical
|
|||||||
`unsafe`, and native compilation through the Glagol compiler to LLVM IR and
|
`unsafe`, and native compilation through the Glagol compiler to LLVM IR and
|
||||||
hosted executables.
|
hosted executables.
|
||||||
|
|
||||||
The current publication release, `1.0.0-beta.6`, keeps the first real
|
The current publication release, `1.0.0-beta.7`, keeps the first real
|
||||||
general-purpose beta language baseline from `1.0.0-beta` and records the first
|
general-purpose beta language baseline from `1.0.0-beta` and records the first
|
||||||
post-beta tooling/install hardening update plus the first runtime/resource
|
post-beta tooling/install hardening update plus the first runtime/resource
|
||||||
foundation update, the first standard-library stabilization update, and the
|
foundation update, the first standard-library stabilization update, and the
|
||||||
first language-usability diagnostics update, plus the first local
|
first language-usability diagnostics update, plus the first local
|
||||||
package/workspace discipline update, and the first loopback networking
|
package/workspace discipline update, the first loopback networking foundation
|
||||||
foundation update. The beta baseline includes the completed `u32` / `u64`
|
update, and the first serialization/data-interchange foundation update. The
|
||||||
|
beta baseline includes the completed `u32` / `u64`
|
||||||
unsigned scope, the staged stdlib breadth that makes ordinary command-line
|
unsigned scope, the staged stdlib breadth that makes ordinary command-line
|
||||||
programs practical, the current narrow `std.net` loopback TCP surface, and the
|
programs practical, the current narrow `std.net` loopback TCP surface, the
|
||||||
current nine-kernel benchmark suite. This paper records the current beta
|
current narrow `std.json` text-construction surface, and the current
|
||||||
|
ten-scaffold benchmark suite. This paper records the current beta
|
||||||
technical state, the difference between Slovo and Lisp-family languages, the
|
technical state, the difference between Slovo and Lisp-family languages, the
|
||||||
benchmark methodology, the beta.1 tooling update, the beta.2 runtime/resource
|
benchmark methodology, the beta.1 tooling update, the beta.2 runtime/resource
|
||||||
foundation, the beta.3 standard-library stabilization slice, the beta.4
|
foundation, the beta.3 standard-library stabilization slice, the beta.4
|
||||||
diagnostics usability slice, the beta.5 package discipline slice, the beta.6
|
diagnostics usability slice, the beta.5 package discipline slice, the beta.6
|
||||||
networking foundation slice, and the remaining path from beta to stable.
|
networking foundation slice, the beta.7 serialization foundation slice, and
|
||||||
|
the remaining path from beta to stable.
|
||||||
|
|
||||||
## 1. Scope
|
## 1. Scope
|
||||||
|
|
||||||
This document is a technical state paper for the current beta baseline. It
|
This document is a technical state paper for the current beta baseline. It
|
||||||
summarizes the behavior represented by the paired local Slovo and Glagol
|
summarizes the behavior represented by the paired local Slovo and Glagol
|
||||||
workspaces, with `1.0.0-beta` as the current language-surface baseline and
|
workspaces, with `1.0.0-beta` as the current language-surface baseline and
|
||||||
`1.0.0-beta.6` as the current publication baseline.
|
`1.0.0-beta.7` as the current publication baseline.
|
||||||
|
|
||||||
The support rule remains strict:
|
The support rule remains strict:
|
||||||
|
|
||||||
@ -65,7 +69,7 @@ The support rule remains strict:
|
|||||||
- partial parser recognition or speculative examples do not count as support
|
- partial parser recognition or speculative examples do not count as support
|
||||||
|
|
||||||
Historical `exp-*` releases remain experimental alpha maturity. The current
|
Historical `exp-*` releases remain experimental alpha maturity. The current
|
||||||
publication accompanies `1.0.0-beta.6`.
|
publication accompanies `1.0.0-beta.7`.
|
||||||
|
|
||||||
## 2. Design Thesis
|
## 2. Design Thesis
|
||||||
|
|
||||||
@ -180,6 +184,7 @@ std/cli.slo
|
|||||||
std/env.slo
|
std/env.slo
|
||||||
std/fs.slo
|
std/fs.slo
|
||||||
std/io.slo
|
std/io.slo
|
||||||
|
std/json.slo
|
||||||
std/math.slo
|
std/math.slo
|
||||||
std/num.slo
|
std/num.slo
|
||||||
std/option.slo
|
std/option.slo
|
||||||
@ -295,6 +300,8 @@ Benchmark kernels:
|
|||||||
accumulation
|
accumulation
|
||||||
- `vec-string-eq-loop`: runtime-owned string vector indexing plus exact string
|
- `vec-string-eq-loop`: runtime-owned string vector indexing plus exact string
|
||||||
equality reduced to an `i32` checksum
|
equality reduced to an `i32` checksum
|
||||||
|
- `json-quote-loop`: compact JSON string quoting plus quoted-length checksum
|
||||||
|
accumulation
|
||||||
|
|
||||||
Comparison boundaries:
|
Comparison boundaries:
|
||||||
|
|
||||||
@ -327,6 +334,10 @@ Comparison boundaries:
|
|||||||
`(vec string)` lane only: immutable vector creation, checked vector
|
`(vec string)` lane only: immutable vector creation, checked vector
|
||||||
indexing, and exact string equality. It should not widen into regex,
|
indexing, and exact string equality. It should not widen into regex,
|
||||||
normalization, locale handling, or concat-heavy allocation experiments.
|
normalization, locale handling, or concat-heavy allocation experiments.
|
||||||
|
- `json-quote-loop` should stay on compact JSON string quoting over a
|
||||||
|
runtime-supplied ASCII string containing a quote and a backslash. It should
|
||||||
|
not widen into parsing, recursive JSON values, maps, schema validation, or
|
||||||
|
streaming encoders.
|
||||||
- Because Rust is timed at `opt-level=3` while Slovo and C are timed through
|
- Because Rust is timed at `opt-level=3` while Slovo and C are timed through
|
||||||
`clang -O2`, the suite is a useful local regression/comparison harness, not
|
`clang -O2`, the suite is a useful local regression/comparison harness, not
|
||||||
a strict same-flags compiler shootout.
|
a strict same-flags compiler shootout.
|
||||||
@ -343,6 +354,7 @@ python3 benchmarks/array-struct-field-loop/run.py --mode hot-loop --repeats 5 --
|
|||||||
python3 benchmarks/enum-struct-payload-loop/run.py --mode hot-loop --repeats 5 --warmups 1 --glagol compiler/target/debug/glagol
|
python3 benchmarks/enum-struct-payload-loop/run.py --mode hot-loop --repeats 5 --warmups 1 --glagol compiler/target/debug/glagol
|
||||||
python3 benchmarks/vec-i32-index-loop/run.py --mode hot-loop --repeats 5 --warmups 1 --glagol compiler/target/debug/glagol
|
python3 benchmarks/vec-i32-index-loop/run.py --mode hot-loop --repeats 5 --warmups 1 --glagol compiler/target/debug/glagol
|
||||||
python3 benchmarks/vec-string-eq-loop/run.py --mode hot-loop --repeats 5 --warmups 1 --glagol compiler/target/debug/glagol
|
python3 benchmarks/vec-string-eq-loop/run.py --mode hot-loop --repeats 5 --warmups 1 --glagol compiler/target/debug/glagol
|
||||||
|
python3 benchmarks/json-quote-loop/run.py --mode hot-loop --repeats 5 --warmups 1 --glagol compiler/target/debug/glagol
|
||||||
```
|
```
|
||||||
|
|
||||||
Cold-process commands:
|
Cold-process commands:
|
||||||
@ -357,6 +369,7 @@ python3 benchmarks/array-struct-field-loop/run.py --mode cold-process --repeats
|
|||||||
python3 benchmarks/enum-struct-payload-loop/run.py --mode cold-process --repeats 3 --warmups 1 --glagol compiler/target/debug/glagol
|
python3 benchmarks/enum-struct-payload-loop/run.py --mode cold-process --repeats 3 --warmups 1 --glagol compiler/target/debug/glagol
|
||||||
python3 benchmarks/vec-i32-index-loop/run.py --mode cold-process --repeats 3 --warmups 1 --glagol compiler/target/debug/glagol
|
python3 benchmarks/vec-i32-index-loop/run.py --mode cold-process --repeats 3 --warmups 1 --glagol compiler/target/debug/glagol
|
||||||
python3 benchmarks/vec-string-eq-loop/run.py --mode cold-process --repeats 3 --warmups 1 --glagol compiler/target/debug/glagol
|
python3 benchmarks/vec-string-eq-loop/run.py --mode cold-process --repeats 3 --warmups 1 --glagol compiler/target/debug/glagol
|
||||||
|
python3 benchmarks/json-quote-loop/run.py --mode cold-process --repeats 3 --warmups 1 --glagol compiler/target/debug/glagol
|
||||||
```
|
```
|
||||||
|
|
||||||
## 7. Benchmark Results
|
## 7. Benchmark Results
|
||||||
@ -366,8 +379,11 @@ baseline. `1.0.0-beta.1` changes tooling and install workflow, and
|
|||||||
`1.0.0-beta.2` adds runtime/resource APIs, `1.0.0-beta.3` adds
|
`1.0.0-beta.2` adds runtime/resource APIs, `1.0.0-beta.3` adds
|
||||||
standard-library catalog and composition coverage, `1.0.0-beta.4` improves
|
standard-library catalog and composition coverage, `1.0.0-beta.4` improves
|
||||||
diagnostics, `1.0.0-beta.5` tightens package/workspace discipline, and
|
diagnostics, `1.0.0-beta.5` tightens package/workspace discipline, and
|
||||||
`1.0.0-beta.6` adds a narrow loopback networking foundation. None of these
|
`1.0.0-beta.6` adds a narrow loopback networking foundation, and
|
||||||
post-beta slices claims changed benchmark performance.
|
`1.0.0-beta.7` adds a narrow JSON construction foundation. None of these
|
||||||
|
post-beta slices claims changed benchmark performance. The beta.7
|
||||||
|
`json-quote-loop` scaffold is present for local follow-up timing and is not
|
||||||
|
part of the exp-123 nine-row result table below.
|
||||||
|
|
||||||
The exp-123 publication baseline widened the paired same-machine result set
|
The exp-123 publication baseline widened the paired same-machine result set
|
||||||
from seven rows to nine by adding two owned-vector kernels:
|
from seven rows to nine by adding two owned-vector kernels:
|
||||||
@ -488,7 +504,7 @@ Major remaining gaps before `1.0.0`:
|
|||||||
- semantic versioning and deprecation policy
|
- semantic versioning and deprecation policy
|
||||||
- a clear separation between stable and experimental features
|
- a clear separation between stable and experimental features
|
||||||
|
|
||||||
## 10. Path Beyond `1.0.0-beta.6`
|
## 10. Path Beyond `1.0.0-beta.7`
|
||||||
|
|
||||||
The beta threshold is now real. The next work should treat `1.0.0-beta` as
|
The beta threshold is now real. The next work should treat `1.0.0-beta` as
|
||||||
the language compatibility-governed baseline, `1.0.0-beta.1` as the first
|
the language compatibility-governed baseline, `1.0.0-beta.1` as the first
|
||||||
@ -496,7 +512,8 @@ tooling/install hardening point, `1.0.0-beta.2` as the first runtime/resource
|
|||||||
foundation point, and `1.0.0-beta.3` as the first standard-library
|
foundation point, and `1.0.0-beta.3` as the first standard-library
|
||||||
stabilization point, and `1.0.0-beta.4` as the first diagnostics usability
|
stabilization point, and `1.0.0-beta.4` as the first diagnostics usability
|
||||||
point, and `1.0.0-beta.5` as the first package/workspace discipline point,
|
point, and `1.0.0-beta.5` as the first package/workspace discipline point,
|
||||||
and `1.0.0-beta.6` as the first loopback networking foundation point,
|
and `1.0.0-beta.6` as the first loopback networking foundation point, and
|
||||||
|
`1.0.0-beta.7` as the first serialization/data-interchange foundation point,
|
||||||
then move deliberately toward stable general-purpose status.
|
then move deliberately toward stable general-purpose status.
|
||||||
|
|
||||||
Recommended sequence:
|
Recommended sequence:
|
||||||
|
|||||||
Binary file not shown.
4
examples/projects/std-import-json/slovo.toml
Normal file
4
examples/projects/std-import-json/slovo.toml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
[project]
|
||||||
|
name = "std-import-json"
|
||||||
|
source_root = "src"
|
||||||
|
entry = "main"
|
||||||
92
examples/projects/std-import-json/src/main.slo
Normal file
92
examples/projects/std-import-json/src/main.slo
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
(module main)
|
||||||
|
|
||||||
|
(import std.json (quote_string null_value bool_value i32_value u32_value i64_value u64_value f64_value field_string field_bool field_i32 field_u32 field_i64 field_u64 field_f64 field_null array0 array1 array2 array3 object0 object1 object2 object3))
|
||||||
|
|
||||||
|
(fn imported_json_quote_escapes () -> bool
|
||||||
|
(if (= (quote_string "slovo") "\"slovo\"")
|
||||||
|
(if (= (quote_string "slo\"vo") "\"slo\\\"vo\"")
|
||||||
|
(if (= (quote_string "slo\\vo") "\"slo\\\\vo\"")
|
||||||
|
(= (quote_string "line\nnext") "\"line\\nnext\"")
|
||||||
|
false)
|
||||||
|
false)
|
||||||
|
false))
|
||||||
|
|
||||||
|
(fn imported_json_scalar_values () -> bool
|
||||||
|
(if (= (null_value) "null")
|
||||||
|
(if (= (bool_value true) "true")
|
||||||
|
(if (= (bool_value false) "false")
|
||||||
|
(if (= (i32_value -7) "-7")
|
||||||
|
(if (= (u32_value 7u32) "7")
|
||||||
|
(if (= (i64_value 8i64) "8")
|
||||||
|
(if (= (u64_value 9u64) "9")
|
||||||
|
(= (f64_value 1.5) "1.5")
|
||||||
|
false)
|
||||||
|
false)
|
||||||
|
false)
|
||||||
|
false)
|
||||||
|
false)
|
||||||
|
false)
|
||||||
|
false))
|
||||||
|
|
||||||
|
(fn imported_json_fields () -> bool
|
||||||
|
(if (= (field_string "name" "slo\"vo") "\"name\":\"slo\\\"vo\"")
|
||||||
|
(if (= (field_bool "ok" true) "\"ok\":true")
|
||||||
|
(if (= (field_i32 "count" 3) "\"count\":3")
|
||||||
|
(if (= (field_u32 "u32" 4u32) "\"u32\":4")
|
||||||
|
(if (= (field_i64 "i64" 5i64) "\"i64\":5")
|
||||||
|
(if (= (field_u64 "u64" 6u64) "\"u64\":6")
|
||||||
|
(if (= (field_f64 "ratio" 2.5) "\"ratio\":2.5")
|
||||||
|
(= (field_null "none") "\"none\":null")
|
||||||
|
false)
|
||||||
|
false)
|
||||||
|
false)
|
||||||
|
false)
|
||||||
|
false)
|
||||||
|
false)
|
||||||
|
false))
|
||||||
|
|
||||||
|
(fn imported_json_arrays_objects () -> bool
|
||||||
|
(if (= (array0) "[]")
|
||||||
|
(if (= (array1 (quote_string "a")) "[\"a\"]")
|
||||||
|
(if (= (array2 (quote_string "a") (i32_value 7)) "[\"a\",7]")
|
||||||
|
(if (= (array3 (quote_string "a") (i32_value 7) (bool_value true)) "[\"a\",7,true]")
|
||||||
|
(if (= (object0) "{}")
|
||||||
|
(if (= (object1 (field_string "name" "slovo")) "{\"name\":\"slovo\"}")
|
||||||
|
(if (= (object2 (field_string "name" "slovo") (field_i32 "count" 3)) "{\"name\":\"slovo\",\"count\":3}")
|
||||||
|
(= (object3 (field_string "name" "slovo") (field_i32 "count" 3) (field_bool "ok" true)) "{\"name\":\"slovo\",\"count\":3,\"ok\":true}")
|
||||||
|
false)
|
||||||
|
false)
|
||||||
|
false)
|
||||||
|
false)
|
||||||
|
false)
|
||||||
|
false)
|
||||||
|
false))
|
||||||
|
|
||||||
|
(fn imported_json_all () -> bool
|
||||||
|
(if (imported_json_quote_escapes)
|
||||||
|
(if (imported_json_scalar_values)
|
||||||
|
(if (imported_json_fields)
|
||||||
|
(imported_json_arrays_objects)
|
||||||
|
false)
|
||||||
|
false)
|
||||||
|
false))
|
||||||
|
|
||||||
|
(fn main () -> i32
|
||||||
|
(if (imported_json_all)
|
||||||
|
42
|
||||||
|
1))
|
||||||
|
|
||||||
|
(test "explicit std json quote escapes facade"
|
||||||
|
(imported_json_quote_escapes))
|
||||||
|
|
||||||
|
(test "explicit std json scalar values facade"
|
||||||
|
(imported_json_scalar_values))
|
||||||
|
|
||||||
|
(test "explicit std json fields facade"
|
||||||
|
(imported_json_fields))
|
||||||
|
|
||||||
|
(test "explicit std json arrays objects facade"
|
||||||
|
(imported_json_arrays_objects))
|
||||||
|
|
||||||
|
(test "explicit std json facade all"
|
||||||
|
(= (main) 42))
|
||||||
4
examples/projects/std-layout-local-json/slovo.toml
Normal file
4
examples/projects/std-layout-local-json/slovo.toml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
[project]
|
||||||
|
name = "std-layout-local-json"
|
||||||
|
source_root = "src"
|
||||||
|
entry = "main"
|
||||||
78
examples/projects/std-layout-local-json/src/json.slo
Normal file
78
examples/projects/std-layout-local-json/src/json.slo
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
(module json (export quote_string null_value bool_value i32_value u32_value i64_value u64_value f64_value field_string field_bool field_i32 field_u32 field_i64 field_u64 field_f64 field_null array0 array1 array2 array3 object0 object1 object2 object3))
|
||||||
|
|
||||||
|
(fn quote_string ((value string)) -> string
|
||||||
|
(std.json.quote_string value))
|
||||||
|
|
||||||
|
(fn null_value () -> string
|
||||||
|
"null")
|
||||||
|
|
||||||
|
(fn bool_value ((value bool)) -> string
|
||||||
|
(if value
|
||||||
|
"true"
|
||||||
|
"false"))
|
||||||
|
|
||||||
|
(fn i32_value ((value i32)) -> string
|
||||||
|
(std.num.i32_to_string value))
|
||||||
|
|
||||||
|
(fn u32_value ((value u32)) -> string
|
||||||
|
(std.num.u32_to_string value))
|
||||||
|
|
||||||
|
(fn i64_value ((value i64)) -> string
|
||||||
|
(std.num.i64_to_string value))
|
||||||
|
|
||||||
|
(fn u64_value ((value u64)) -> string
|
||||||
|
(std.num.u64_to_string value))
|
||||||
|
|
||||||
|
(fn f64_value ((value f64)) -> string
|
||||||
|
(std.num.f64_to_string value))
|
||||||
|
|
||||||
|
(fn field_fragment ((name string) (encoded_value string)) -> string
|
||||||
|
(std.string.concat (std.string.concat (quote_string name) ":") encoded_value))
|
||||||
|
|
||||||
|
(fn field_string ((name string) (value string)) -> string
|
||||||
|
(field_fragment name (quote_string value)))
|
||||||
|
|
||||||
|
(fn field_bool ((name string) (value bool)) -> string
|
||||||
|
(field_fragment name (bool_value value)))
|
||||||
|
|
||||||
|
(fn field_i32 ((name string) (value i32)) -> string
|
||||||
|
(field_fragment name (i32_value value)))
|
||||||
|
|
||||||
|
(fn field_u32 ((name string) (value u32)) -> string
|
||||||
|
(field_fragment name (u32_value value)))
|
||||||
|
|
||||||
|
(fn field_i64 ((name string) (value i64)) -> string
|
||||||
|
(field_fragment name (i64_value value)))
|
||||||
|
|
||||||
|
(fn field_u64 ((name string) (value u64)) -> string
|
||||||
|
(field_fragment name (u64_value value)))
|
||||||
|
|
||||||
|
(fn field_f64 ((name string) (value f64)) -> string
|
||||||
|
(field_fragment name (f64_value value)))
|
||||||
|
|
||||||
|
(fn field_null ((name string)) -> string
|
||||||
|
(field_fragment name (null_value)))
|
||||||
|
|
||||||
|
(fn array0 () -> string
|
||||||
|
"[]")
|
||||||
|
|
||||||
|
(fn array1 ((first string)) -> string
|
||||||
|
(std.string.concat (std.string.concat "[" first) "]"))
|
||||||
|
|
||||||
|
(fn array2 ((first string) (second string)) -> string
|
||||||
|
(std.string.concat (std.string.concat (std.string.concat (std.string.concat "[" first) ",") second) "]"))
|
||||||
|
|
||||||
|
(fn array3 ((first string) (second string) (third string)) -> string
|
||||||
|
(std.string.concat (std.string.concat (std.string.concat (std.string.concat (std.string.concat (std.string.concat "[" first) ",") second) ",") third) "]"))
|
||||||
|
|
||||||
|
(fn object0 () -> string
|
||||||
|
"{}")
|
||||||
|
|
||||||
|
(fn object1 ((first string)) -> string
|
||||||
|
(std.string.concat (std.string.concat "{" first) "}"))
|
||||||
|
|
||||||
|
(fn object2 ((first string) (second string)) -> string
|
||||||
|
(std.string.concat (std.string.concat (std.string.concat (std.string.concat "{" first) ",") second) "}"))
|
||||||
|
|
||||||
|
(fn object3 ((first string) (second string) (third string)) -> string
|
||||||
|
(std.string.concat (std.string.concat (std.string.concat (std.string.concat (std.string.concat (std.string.concat "{" first) ",") second) ",") third) "}"))
|
||||||
92
examples/projects/std-layout-local-json/src/main.slo
Normal file
92
examples/projects/std-layout-local-json/src/main.slo
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
(module main)
|
||||||
|
|
||||||
|
(import json (quote_string null_value bool_value i32_value u32_value i64_value u64_value f64_value field_string field_bool field_i32 field_u32 field_i64 field_u64 field_f64 field_null array0 array1 array2 array3 object0 object1 object2 object3))
|
||||||
|
|
||||||
|
(fn imported_json_quote_escapes () -> bool
|
||||||
|
(if (= (quote_string "slovo") "\"slovo\"")
|
||||||
|
(if (= (quote_string "slo\"vo") "\"slo\\\"vo\"")
|
||||||
|
(if (= (quote_string "slo\\vo") "\"slo\\\\vo\"")
|
||||||
|
(= (quote_string "line\nnext") "\"line\\nnext\"")
|
||||||
|
false)
|
||||||
|
false)
|
||||||
|
false))
|
||||||
|
|
||||||
|
(fn imported_json_scalar_values () -> bool
|
||||||
|
(if (= (null_value) "null")
|
||||||
|
(if (= (bool_value true) "true")
|
||||||
|
(if (= (bool_value false) "false")
|
||||||
|
(if (= (i32_value -7) "-7")
|
||||||
|
(if (= (u32_value 7u32) "7")
|
||||||
|
(if (= (i64_value 8i64) "8")
|
||||||
|
(if (= (u64_value 9u64) "9")
|
||||||
|
(= (f64_value 1.5) "1.5")
|
||||||
|
false)
|
||||||
|
false)
|
||||||
|
false)
|
||||||
|
false)
|
||||||
|
false)
|
||||||
|
false)
|
||||||
|
false))
|
||||||
|
|
||||||
|
(fn imported_json_fields () -> bool
|
||||||
|
(if (= (field_string "name" "slo\"vo") "\"name\":\"slo\\\"vo\"")
|
||||||
|
(if (= (field_bool "ok" true) "\"ok\":true")
|
||||||
|
(if (= (field_i32 "count" 3) "\"count\":3")
|
||||||
|
(if (= (field_u32 "u32" 4u32) "\"u32\":4")
|
||||||
|
(if (= (field_i64 "i64" 5i64) "\"i64\":5")
|
||||||
|
(if (= (field_u64 "u64" 6u64) "\"u64\":6")
|
||||||
|
(if (= (field_f64 "ratio" 2.5) "\"ratio\":2.5")
|
||||||
|
(= (field_null "none") "\"none\":null")
|
||||||
|
false)
|
||||||
|
false)
|
||||||
|
false)
|
||||||
|
false)
|
||||||
|
false)
|
||||||
|
false)
|
||||||
|
false))
|
||||||
|
|
||||||
|
(fn imported_json_arrays_objects () -> bool
|
||||||
|
(if (= (array0) "[]")
|
||||||
|
(if (= (array1 (quote_string "a")) "[\"a\"]")
|
||||||
|
(if (= (array2 (quote_string "a") (i32_value 7)) "[\"a\",7]")
|
||||||
|
(if (= (array3 (quote_string "a") (i32_value 7) (bool_value true)) "[\"a\",7,true]")
|
||||||
|
(if (= (object0) "{}")
|
||||||
|
(if (= (object1 (field_string "name" "slovo")) "{\"name\":\"slovo\"}")
|
||||||
|
(if (= (object2 (field_string "name" "slovo") (field_i32 "count" 3)) "{\"name\":\"slovo\",\"count\":3}")
|
||||||
|
(= (object3 (field_string "name" "slovo") (field_i32 "count" 3) (field_bool "ok" true)) "{\"name\":\"slovo\",\"count\":3,\"ok\":true}")
|
||||||
|
false)
|
||||||
|
false)
|
||||||
|
false)
|
||||||
|
false)
|
||||||
|
false)
|
||||||
|
false)
|
||||||
|
false))
|
||||||
|
|
||||||
|
(fn imported_json_all () -> bool
|
||||||
|
(if (imported_json_quote_escapes)
|
||||||
|
(if (imported_json_scalar_values)
|
||||||
|
(if (imported_json_fields)
|
||||||
|
(imported_json_arrays_objects)
|
||||||
|
false)
|
||||||
|
false)
|
||||||
|
false))
|
||||||
|
|
||||||
|
(fn main () -> i32
|
||||||
|
(if (imported_json_all)
|
||||||
|
42
|
||||||
|
1))
|
||||||
|
|
||||||
|
(test "explicit local json quote escapes facade"
|
||||||
|
(imported_json_quote_escapes))
|
||||||
|
|
||||||
|
(test "explicit local json scalar values facade"
|
||||||
|
(imported_json_scalar_values))
|
||||||
|
|
||||||
|
(test "explicit local json fields facade"
|
||||||
|
(imported_json_fields))
|
||||||
|
|
||||||
|
(test "explicit local json arrays objects facade"
|
||||||
|
(imported_json_arrays_objects))
|
||||||
|
|
||||||
|
(test "explicit local json facade all"
|
||||||
|
(= (main) 42))
|
||||||
@ -33,7 +33,9 @@ through released `exp-108`, including the current concrete
|
|||||||
`std/vec_string.slo`, `std/vec_f64.slo`, and `std/vec_bool.slo`
|
`std/vec_string.slo`, `std/vec_f64.slo`, and `std/vec_bool.slo`
|
||||||
prefix/suffix helper scopes; `1.0.0-beta.6` networking foundation work releases
|
prefix/suffix helper scopes; `1.0.0-beta.6` networking foundation work releases
|
||||||
`std/net.slo` as an experimental loopback TCP facade over matching
|
`std/net.slo` as an experimental loopback TCP facade over matching
|
||||||
compiler-known runtime calls.
|
compiler-known runtime calls; `1.0.0-beta.7` serialization work releases
|
||||||
|
`std/json.slo` as an experimental JSON text-construction facade over
|
||||||
|
`std.json.quote_string` and existing string/number helpers.
|
||||||
|
|
||||||
This directory is the source home for staged standard library modules and
|
This directory is the source home for staged standard library modules and
|
||||||
examples. exp-44 lets project-mode source explicitly import `std/math.slo` as
|
examples. exp-44 lets project-mode source explicitly import `std/math.slo` as
|
||||||
@ -92,6 +94,11 @@ loopback TCP facade over `std.net.tcp_connect_loopback_result`,
|
|||||||
`std.net.tcp_write_text_result`, and `std.net.tcp_close_result`, while keeping
|
`std.net.tcp_write_text_result`, and `std.net.tcp_close_result`, while keeping
|
||||||
socket handles beta-scoped opaque `i32` values and leaving DNS, TLS, async,
|
socket handles beta-scoped opaque `i32` values and leaving DNS, TLS, async,
|
||||||
UDP, non-loopback binding, and stable ABI/layout deferred;
|
UDP, non-loopback binding, and stable ABI/layout deferred;
|
||||||
|
`1.0.0-beta.7` releases `std/json.slo` as an experimental compact JSON
|
||||||
|
text-construction facade over `std.json.quote_string`, `std.string.concat`,
|
||||||
|
and the current `std.num.*_to_string` helpers, while leaving JSON parsing,
|
||||||
|
recursive JSON values, maps/sets, streaming encoders, schema validation,
|
||||||
|
Unicode normalization, and stable text encoding policy deferred;
|
||||||
exp-76 extends project-mode source search to `std/vec_i32.slo`, a concrete
|
exp-76 extends project-mode source search to `std/vec_i32.slo`, a concrete
|
||||||
source-authored collection facade over the current promoted `std.vec.i32`
|
source-authored collection facade over the current promoted `std.vec.i32`
|
||||||
runtime family; exp-77 extends that facade with concrete option-returning
|
runtime family; exp-77 extends that facade with concrete option-returning
|
||||||
@ -136,13 +143,13 @@ For exp-44, exp-45, exp-47, exp-48, exp-49, exp-52, exp-53, exp-76, exp-94,
|
|||||||
exp-96, exp-97, exp-98, exp-99, exp-103, exp-104, exp-105, exp-107, and
|
exp-96, exp-97, exp-98, exp-99, exp-103, exp-104, exp-105, exp-107, and
|
||||||
exp-108, `std/math.slo`, `std/result.slo`,
|
exp-108, `std/math.slo`, `std/result.slo`,
|
||||||
`std/option.slo`, `std/time.slo`, `std/random.slo`, `std/env.slo`,
|
`std/option.slo`, `std/time.slo`, `std/random.slo`, `std/env.slo`,
|
||||||
`std/fs.slo`, `std/net.slo`, `std/string.slo`, `std/num.slo`,
|
`std/fs.slo`, `std/net.slo`, `std/json.slo`, `std/string.slo`, `std/num.slo`,
|
||||||
`std/io.slo`, `std/process.slo`, `std/cli.slo`, `std/vec_i32.slo`,
|
`std/io.slo`, `std/process.slo`, `std/cli.slo`, `std/vec_i32.slo`,
|
||||||
`std/vec_f64.slo`, `std/vec_i64.slo`, and `std/vec_string.slo` carry explicit
|
`std/vec_f64.slo`, `std/vec_i64.slo`, and `std/vec_string.slo` carry explicit
|
||||||
export lists.
|
export lists.
|
||||||
Glagol may address them externally as `std.math`, `std.result`,
|
Glagol may address them externally as `std.math`, `std.result`,
|
||||||
`std.option`, `std.time`, `std.random`, `std.env`, `std.fs`, `std.string`,
|
`std.option`, `std.time`, `std.random`, `std.env`, `std.fs`, `std.string`,
|
||||||
`std.net`, `std.num`, `std.io`, `std.process`, `std.cli`, `std.vec_i32`,
|
`std.net`, `std.json`, `std.num`, `std.io`, `std.process`, `std.cli`, `std.vec_i32`,
|
||||||
`std.vec_f64`, `std.vec_bool`, `std.vec_i64`, and `std.vec_string`.
|
`std.vec_f64`, `std.vec_bool`, `std.vec_i64`, and `std.vec_string`.
|
||||||
The file layout is the contract:
|
The file layout is the contract:
|
||||||
|
|
||||||
@ -164,6 +171,7 @@ The file layout is the contract:
|
|||||||
- `std/env.slo`
|
- `std/env.slo`
|
||||||
- `std/fs.slo`
|
- `std/fs.slo`
|
||||||
- `std/net.slo`
|
- `std/net.slo`
|
||||||
|
- `std/json.slo`
|
||||||
|
|
||||||
This follows a Zig-like standard-library facade discipline in a Slovo-sized
|
This follows a Zig-like standard-library facade discipline in a Slovo-sized
|
||||||
form: flat `std/*.slo` facade files are the staged source surface now, and a
|
form: flat `std/*.slo` facade files are the staged source surface now, and a
|
||||||
@ -278,6 +286,12 @@ close result calls and adds only `tcp_write_text_ok` and `tcp_close_ok` source
|
|||||||
helpers. It is not a general networking module: DNS, TLS, async IO, UDP,
|
helpers. It is not a general networking module: DNS, TLS, async IO, UDP,
|
||||||
non-loopback binding, socket options, rich host errors, and stable handle ABI
|
non-loopback binding, socket options, rich host errors, and stable handle ABI
|
||||||
remain deferred.
|
remain deferred.
|
||||||
|
`std/json.slo` is the beta.7 serialization/data-interchange source facade. It
|
||||||
|
wraps `std.json.quote_string` and composes compact JSON scalar, field, small
|
||||||
|
array, and small object text from existing string and number helpers. It is
|
||||||
|
not a JSON parser and does not define recursive JSON values, maps/sets,
|
||||||
|
streaming encoders, schema validation, Unicode normalization, or stable text
|
||||||
|
encoding policy beyond the current runtime string ABI.
|
||||||
`std/process.slo` includes the exp-52 narrow source wrappers over already
|
`std/process.slo` includes the exp-52 narrow source wrappers over already
|
||||||
released process argument runtime calls and a source-authored `has_arg`
|
released process argument runtime calls and a source-authored `has_arg`
|
||||||
predicate. exp-61 adds `arg_or` and `arg_or_empty` as ordinary source
|
predicate. exp-61 adds `arg_or` and `arg_or_empty` as ordinary source
|
||||||
|
|||||||
78
lib/std/json.slo
Normal file
78
lib/std/json.slo
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
(module json (export quote_string null_value bool_value i32_value u32_value i64_value u64_value f64_value field_string field_bool field_i32 field_u32 field_i64 field_u64 field_f64 field_null array0 array1 array2 array3 object0 object1 object2 object3))
|
||||||
|
|
||||||
|
(fn quote_string ((value string)) -> string
|
||||||
|
(std.json.quote_string value))
|
||||||
|
|
||||||
|
(fn null_value () -> string
|
||||||
|
"null")
|
||||||
|
|
||||||
|
(fn bool_value ((value bool)) -> string
|
||||||
|
(if value
|
||||||
|
"true"
|
||||||
|
"false"))
|
||||||
|
|
||||||
|
(fn i32_value ((value i32)) -> string
|
||||||
|
(std.num.i32_to_string value))
|
||||||
|
|
||||||
|
(fn u32_value ((value u32)) -> string
|
||||||
|
(std.num.u32_to_string value))
|
||||||
|
|
||||||
|
(fn i64_value ((value i64)) -> string
|
||||||
|
(std.num.i64_to_string value))
|
||||||
|
|
||||||
|
(fn u64_value ((value u64)) -> string
|
||||||
|
(std.num.u64_to_string value))
|
||||||
|
|
||||||
|
(fn f64_value ((value f64)) -> string
|
||||||
|
(std.num.f64_to_string value))
|
||||||
|
|
||||||
|
(fn field_fragment ((name string) (encoded_value string)) -> string
|
||||||
|
(std.string.concat (std.string.concat (quote_string name) ":") encoded_value))
|
||||||
|
|
||||||
|
(fn field_string ((name string) (value string)) -> string
|
||||||
|
(field_fragment name (quote_string value)))
|
||||||
|
|
||||||
|
(fn field_bool ((name string) (value bool)) -> string
|
||||||
|
(field_fragment name (bool_value value)))
|
||||||
|
|
||||||
|
(fn field_i32 ((name string) (value i32)) -> string
|
||||||
|
(field_fragment name (i32_value value)))
|
||||||
|
|
||||||
|
(fn field_u32 ((name string) (value u32)) -> string
|
||||||
|
(field_fragment name (u32_value value)))
|
||||||
|
|
||||||
|
(fn field_i64 ((name string) (value i64)) -> string
|
||||||
|
(field_fragment name (i64_value value)))
|
||||||
|
|
||||||
|
(fn field_u64 ((name string) (value u64)) -> string
|
||||||
|
(field_fragment name (u64_value value)))
|
||||||
|
|
||||||
|
(fn field_f64 ((name string) (value f64)) -> string
|
||||||
|
(field_fragment name (f64_value value)))
|
||||||
|
|
||||||
|
(fn field_null ((name string)) -> string
|
||||||
|
(field_fragment name (null_value)))
|
||||||
|
|
||||||
|
(fn array0 () -> string
|
||||||
|
"[]")
|
||||||
|
|
||||||
|
(fn array1 ((first string)) -> string
|
||||||
|
(std.string.concat (std.string.concat "[" first) "]"))
|
||||||
|
|
||||||
|
(fn array2 ((first string) (second string)) -> string
|
||||||
|
(std.string.concat (std.string.concat (std.string.concat (std.string.concat "[" first) ",") second) "]"))
|
||||||
|
|
||||||
|
(fn array3 ((first string) (second string) (third string)) -> string
|
||||||
|
(std.string.concat (std.string.concat (std.string.concat (std.string.concat (std.string.concat (std.string.concat "[" first) ",") second) ",") third) "]"))
|
||||||
|
|
||||||
|
(fn object0 () -> string
|
||||||
|
"{}")
|
||||||
|
|
||||||
|
(fn object1 ((first string)) -> string
|
||||||
|
(std.string.concat (std.string.concat "{" first) "}"))
|
||||||
|
|
||||||
|
(fn object2 ((first string) (second string)) -> string
|
||||||
|
(std.string.concat (std.string.concat (std.string.concat (std.string.concat "{" first) ",") second) "}"))
|
||||||
|
|
||||||
|
(fn object3 ((first string) (second string) (third string)) -> string
|
||||||
|
(std.string.concat (std.string.concat (std.string.concat (std.string.concat (std.string.concat (std.string.concat "{" first) ",") second) ",") third) "}"))
|
||||||
@ -726,6 +726,105 @@ char *__glagol_string_concat(const char *left, const char *right) {
|
|||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static char __glagol_json_hex_digit(unsigned char value) {
|
||||||
|
return value < 10u ? (char)('0' + value) : (char)('A' + (value - 10u));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void __glagol_json_add_size(size_t *total, size_t amount) {
|
||||||
|
if (*total > SIZE_MAX - amount) {
|
||||||
|
__glagol_allocation_trap();
|
||||||
|
}
|
||||||
|
*total += amount;
|
||||||
|
}
|
||||||
|
|
||||||
|
char *__glagol_json_quote_string(const char *text) {
|
||||||
|
if (text == NULL) {
|
||||||
|
text = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
size_t escaped_len = 2u;
|
||||||
|
const unsigned char *cursor = (const unsigned char *)text;
|
||||||
|
while (*cursor != '\0') {
|
||||||
|
switch (*cursor) {
|
||||||
|
case '"':
|
||||||
|
case '\\':
|
||||||
|
case '\b':
|
||||||
|
case '\f':
|
||||||
|
case '\n':
|
||||||
|
case '\r':
|
||||||
|
case '\t':
|
||||||
|
__glagol_json_add_size(&escaped_len, 2u);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
__glagol_json_add_size(&escaped_len, *cursor < 0x20u ? 6u : 1u);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
cursor++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (escaped_len == SIZE_MAX) {
|
||||||
|
__glagol_allocation_trap();
|
||||||
|
}
|
||||||
|
|
||||||
|
char *value = malloc(escaped_len + 1u);
|
||||||
|
if (value == NULL) {
|
||||||
|
__glagol_allocation_trap();
|
||||||
|
}
|
||||||
|
|
||||||
|
char *out = value;
|
||||||
|
*out++ = '"';
|
||||||
|
cursor = (const unsigned char *)text;
|
||||||
|
while (*cursor != '\0') {
|
||||||
|
unsigned char ch = *cursor;
|
||||||
|
switch (ch) {
|
||||||
|
case '"':
|
||||||
|
*out++ = '\\';
|
||||||
|
*out++ = '"';
|
||||||
|
break;
|
||||||
|
case '\\':
|
||||||
|
*out++ = '\\';
|
||||||
|
*out++ = '\\';
|
||||||
|
break;
|
||||||
|
case '\b':
|
||||||
|
*out++ = '\\';
|
||||||
|
*out++ = 'b';
|
||||||
|
break;
|
||||||
|
case '\f':
|
||||||
|
*out++ = '\\';
|
||||||
|
*out++ = 'f';
|
||||||
|
break;
|
||||||
|
case '\n':
|
||||||
|
*out++ = '\\';
|
||||||
|
*out++ = 'n';
|
||||||
|
break;
|
||||||
|
case '\r':
|
||||||
|
*out++ = '\\';
|
||||||
|
*out++ = 'r';
|
||||||
|
break;
|
||||||
|
case '\t':
|
||||||
|
*out++ = '\\';
|
||||||
|
*out++ = 't';
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
if (ch < 0x20u) {
|
||||||
|
*out++ = '\\';
|
||||||
|
*out++ = 'u';
|
||||||
|
*out++ = '0';
|
||||||
|
*out++ = '0';
|
||||||
|
*out++ = __glagol_json_hex_digit((unsigned char)(ch >> 4u));
|
||||||
|
*out++ = __glagol_json_hex_digit((unsigned char)(ch & 0x0Fu));
|
||||||
|
} else {
|
||||||
|
*out++ = (char)ch;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
cursor++;
|
||||||
|
}
|
||||||
|
*out++ = '"';
|
||||||
|
*out = '\0';
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
static char *__glagol_num_u64_to_string_impl(uint64_t magnitude, bool negative) {
|
static char *__glagol_num_u64_to_string_impl(uint64_t magnitude, bool negative) {
|
||||||
char reversed[20];
|
char reversed[20];
|
||||||
size_t digit_count = 0;
|
size_t digit_count = 0;
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 52)
|
(bytes 38 52)
|
||||||
(range 5 4 5 18)
|
(range 5 4 5 18)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.abi.layout")
|
(found "std.abi.layout")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 53)
|
(bytes 38 53)
|
||||||
(range 5 4 5 19)
|
(range 5 4 5 19)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.async.spawn")
|
(found "std.async.spawn")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 53)
|
(bytes 38 53)
|
||||||
(range 5 4 5 19)
|
(range 5 4 5 19)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.fs.list_dir")
|
(found "std.fs.list_dir")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 41 59)
|
(bytes 41 59)
|
||||||
(range 5 4 5 22)
|
(range 5 4 5 22)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.fs.read_binary")
|
(found "std.fs.read_binary")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 41 54)
|
(bytes 41 54)
|
||||||
(range 5 4 5 17)
|
(range 5 4 5 17)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.io.prompt")
|
(found "std.io.prompt")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 54)
|
(bytes 38 54)
|
||||||
(range 5 4 5 20)
|
(range 5 4 5 20)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.io.read_line")
|
(found "std.io.read_line")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 61)
|
(bytes 38 61)
|
||||||
(range 5 4 5 27)
|
(range 5 4 5 27)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.io.read_stdin_async")
|
(found "std.io.read_stdin_async")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 62)
|
(bytes 38 62)
|
||||||
(range 5 4 5 28)
|
(range 5 4 5 28)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.io.read_stdin_binary")
|
(found "std.io.read_stdin_binary")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 61)
|
(bytes 38 61)
|
||||||
(range 5 4 5 27)
|
(range 5 4 5 27)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.io.read_stdin_bytes")
|
(found "std.io.read_stdin_bytes")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 55)
|
(bytes 38 55)
|
||||||
(range 5 4 5 21)
|
(range 5 4 5 21)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.io.read_stdin")
|
(found "std.io.read_stdin")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 59)
|
(bytes 38 59)
|
||||||
(range 5 4 5 25)
|
(range 5 4 5 25)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.io.stdin_encoding")
|
(found "std.io.stdin_encoding")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 56)
|
(bytes 38 56)
|
||||||
(range 5 4 5 22)
|
(range 5 4 5 22)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.io.stdin_lines")
|
(found "std.io.stdin_lines")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 57)
|
(bytes 38 57)
|
||||||
(range 5 4 5 23)
|
(range 5 4 5 23)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.io.stdin_stream")
|
(found "std.io.stdin_stream")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 53)
|
(bytes 38 53)
|
||||||
(range 5 4 5 19)
|
(range 5 4 5 19)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.net.connect")
|
(found "std.net.connect")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 58)
|
(bytes 38 58)
|
||||||
(range 5 4 5 24)
|
(range 5 4 5 24)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.num.cast_checked")
|
(found "std.num.cast_checked")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 50)
|
(bytes 38 50)
|
||||||
(range 5 4 5 16)
|
(range 5 4 5 16)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.num.cast")
|
(found "std.num.cast")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 56)
|
(bytes 38 56)
|
||||||
(range 5 4 5 22)
|
(range 5 4 5 22)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.num.f64_to_i32")
|
(found "std.num.f64_to_i32")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 56)
|
(bytes 38 56)
|
||||||
(range 5 4 5 22)
|
(range 5 4 5 22)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.num.f64_to_i64")
|
(found "std.num.f64_to_i64")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 63)
|
(bytes 38 63)
|
||||||
(range 5 4 5 29)
|
(range 5 4 5 29)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.num.i32_to_i64_result")
|
(found "std.num.i32_to_i64_result")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 56)
|
(bytes 38 56)
|
||||||
(range 5 4 5 22)
|
(range 5 4 5 22)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.num.i64_to_i32")
|
(found "std.num.i64_to_i32")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 55)
|
(bytes 38 55)
|
||||||
(range 5 4 5 21)
|
(range 5 4 5 21)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.num.to_string")
|
(found "std.num.to_string")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 54)
|
(bytes 38 54)
|
||||||
(range 5 4 5 20)
|
(range 5 4 5 20)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.package.load")
|
(found "std.package.load")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 53)
|
(bytes 38 53)
|
||||||
(range 5 4 5 19)
|
(range 5 4 5 19)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.platform.os")
|
(found "std.platform.os")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 54)
|
(bytes 38 54)
|
||||||
(range 5 4 5 20)
|
(range 5 4 5 20)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.random.bytes")
|
(found "std.random.bytes")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 59)
|
(bytes 38 59)
|
||||||
(range 5 4 5 25)
|
(range 5 4 5 25)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.random.crypto_i32")
|
(found "std.random.crypto_i32")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 54)
|
(bytes 38 54)
|
||||||
(range 5 4 5 20)
|
(range 5 4 5 20)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.random.float")
|
(found "std.random.float")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 54)
|
(bytes 38 54)
|
||||||
(range 5 4 5 20)
|
(range 5 4 5 20)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.random.range")
|
(found "std.random.range")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 53)
|
(bytes 38 53)
|
||||||
(range 5 4 5 19)
|
(range 5 4 5 19)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.random.seed")
|
(found "std.random.seed")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 56)
|
(bytes 38 56)
|
||||||
(range 5 4 5 22)
|
(range 5 4 5 22)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.random.shuffle")
|
(found "std.random.shuffle")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 41 58)
|
(bytes 41 58)
|
||||||
(range 5 4 5 21)
|
(range 5 4 5 21)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.random.string")
|
(found "std.random.string")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 41 56)
|
(bytes 41 56)
|
||||||
(range 5 4 5 19)
|
(range 5 4 5 19)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.random.uuid")
|
(found "std.random.uuid")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 52)
|
(bytes 38 52)
|
||||||
(range 5 4 5 18)
|
(range 5 4 5 18)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.result.map")
|
(found "std.result.map")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 57)
|
(bytes 38 57)
|
||||||
(range 5 4 5 23)
|
(range 5 4 5 23)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.string.from_i64")
|
(found "std.string.from_i64")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 54)
|
(bytes 38 54)
|
||||||
(range 5 4 5 20)
|
(range 5 4 5 20)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.string.index")
|
(found "std.string.index")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 59)
|
(bytes 38 59)
|
||||||
(range 5 4 5 25)
|
(range 5 4 5 25)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.string.parse_bool")
|
(found "std.string.parse_bool")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 67)
|
(bytes 38 67)
|
||||||
(range 5 4 5 33)
|
(range 5 4 5 33)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.string.parse_bytes_result")
|
(found "std.string.parse_bytes_result")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 58)
|
(bytes 38 58)
|
||||||
(range 5 4 5 24)
|
(range 5 4 5 24)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.string.parse_f64")
|
(found "std.string.parse_f64")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 61)
|
(bytes 38 61)
|
||||||
(range 5 4 5 27)
|
(range 5 4 5 27)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.string.parse_result")
|
(found "std.string.parse_result")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 77)
|
(bytes 38 77)
|
||||||
(range 5 4 5 43)
|
(range 5 4 5 43)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.string.parse_i32_base_prefix_result")
|
(found "std.string.parse_i32_base_prefix_result")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 72)
|
(bytes 38 72)
|
||||||
(range 5 4 5 38)
|
(range 5 4 5 38)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.string.parse_i32_binary_result")
|
(found "std.string.parse_i32_binary_result")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 70)
|
(bytes 38 70)
|
||||||
(range 5 4 5 36)
|
(range 5 4 5 36)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.string.parse_i32_code_result")
|
(found "std.string.parse_i32_code_result")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 71)
|
(bytes 38 71)
|
||||||
(range 5 4 5 37)
|
(range 5 4 5 37)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.string.parse_i32_error_result")
|
(found "std.string.parse_i32_error_result")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 69)
|
(bytes 38 69)
|
||||||
(range 5 4 5 35)
|
(range 5 4 5 35)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.string.parse_i32_hex_result")
|
(found "std.string.parse_i32_hex_result")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 72)
|
(bytes 38 72)
|
||||||
(range 5 4 5 38)
|
(range 5 4 5 38)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.string.parse_i32_locale_result")
|
(found "std.string.parse_i32_locale_result")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 73)
|
(bytes 38 73)
|
||||||
(range 5 4 5 39)
|
(range 5 4 5 39)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.string.parse_i32_message_result")
|
(found "std.string.parse_i32_message_result")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 71)
|
(bytes 38 71)
|
||||||
(range 5 4 5 37)
|
(range 5 4 5 37)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.string.parse_i32_octal_result")
|
(found "std.string.parse_i32_octal_result")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 70)
|
(bytes 38 70)
|
||||||
(range 5 4 5 36)
|
(range 5 4 5 36)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.string.parse_i32_plus_result")
|
(found "std.string.parse_i32_plus_result")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 71)
|
(bytes 38 71)
|
||||||
(range 5 4 5 37)
|
(range 5 4 5 37)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.string.parse_i32_radix_result")
|
(found "std.string.parse_i32_radix_result")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 70)
|
(bytes 38 70)
|
||||||
(range 5 4 5 36)
|
(range 5 4 5 36)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.string.parse_i32_trim_result")
|
(found "std.string.parse_i32_trim_result")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 76)
|
(bytes 38 76)
|
||||||
(range 5 4 5 42)
|
(range 5 4 5 42)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.string.parse_i32_underscore_result")
|
(found "std.string.parse_i32_underscore_result")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 73)
|
(bytes 38 73)
|
||||||
(range 5 4 5 39)
|
(range 5 4 5 39)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.string.parse_i32_unicode_result")
|
(found "std.string.parse_i32_unicode_result")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 58)
|
(bytes 38 58)
|
||||||
(range 5 4 5 24)
|
(range 5 4 5 24)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.string.parse_i32")
|
(found "std.string.parse_i32")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
(bytes 38 76)
|
(bytes 38 76)
|
||||||
(range 5 4 5 42)
|
(range 5 4 5 42)
|
||||||
)
|
)
|
||||||
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
(expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err")
|
||||||
(found "std.string.parse_i32_whitespace_result")
|
(found "std.string.parse_i32_whitespace_result")
|
||||||
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
(hint "use a promoted standard-runtime name or a legacy intrinsic alias")
|
||||||
)
|
)
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user