Conversation
- ruchy_binary() hard-coded $CARGO_MANIFEST_DIR/target/debug/ruchy, which does not
exist when CARGO_TARGET_DIR points elsewhere (NotFound / EOF on 14 tests)
- now env!("CARGO_BIN_EXE_ruchy"); 14 passed, 2 ignored (pre-existing)
Pmat-Ticket: RHLGA-1
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…-094, Issue #137) A `a::b::c(..)` call parses as Call{FieldAccess} (`obj.m(..)` is a MethodCall), so the callee of a Call that is a lowercase-rooted FieldAccess chain is rendered as a Rust path. self and std roots keep their existing handling. Fixes 6 tests in tests/parser_094_path_separator.rs and tests/parser_094_property_tests.rs. Differential: mod helpers { pub fun double } + helpers::double(4): ruchy run = rustc binary = 8. Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…-001, SPEC 7.11) self_receiver_tokens turned every bare `self` into `&self` (TRANSPILER-METHOD-SELF-001), contradicting SPECIFICATION 7.11 (`fun transfer(self)` moves). Now: &self/&mut self kept, `mut self` kept, bare self -> self, and a bare self whose body mutates it -> &mut self (an immutable owned receiver could not compile). Fixes 4 tests in tests/quality_001_self_receiver.rs; backend::transpiler lib tests 3233/3233. Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
returns_vec only saw a trailing list literal; `let mut arr = []; arr.push(..); arr` fell through to the numeric default -> i32. The Block tail check (block_tail_is_vec) now also traces a trailing identifier to its let-bound list. Fixes 2 tests in tests/issue_113_transpiler_type_inference.rs; the transpiled make_array compiles with rustc. Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…(description)] (BUG-033) format_regular_attribute_impl copied attribute args verbatim; Rust's #[test] takes none. The description is kept as a doc comment. Fixes 4 tests in tests/bug_033_test_attribute_invalid_rust.rs (compile + property-tests paths now build). Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…lling - root cause: default features (batteries-included) do not include notebook, so handle_serve_command is the stub; server-spawning tests could never connect - server tests cfg(feature = "notebook"); new default-build test asserts the stub names --features notebook and prints the ENVIRONMENT reason - serve validates the directory in every build (validate_serve_directory) - fixed 500 ms sleeps replaced by wait_for_port() TCP readiness polling - with --features notebook: http_server_cli 13/13 pass; http_watch_mode test_serve_with_watch_starts_successfully still fails (server exits under --watch) Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… RFC 1321 - root cause: 73569f2 (dependency-count chore) swapped the md5 crate for sha2, silently changing compute_hash from 32-hex MD5 to 64-hex SHA-256; docstring, STDLIB-005 tests and ticket all specify MD5 - src/stdlib/hash.rs: md5_hex/md5_digest, RFC 1321 A.5 suite + padding boundaries + proptest (32 lower-hex); no new crate dependency - METHODS-1 lib tests updated from SHA-256 to MD5 digests Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- readme_validation: README title is <h1 align=center>Ruchy</h1> and the usage section is '## Core Commands'; test accepts those spellings (sections exist) - dogfood_gates_declared: scripts/release-policy.sh landed (PMAT-135); pending allowlist emptied as the test itself instructs - tooling_002: 0.6 is a minimum (traces from 0.6.2 read fine on 0.10.2; all other renacer tests pass), parsed as a (major, minor) floor, not a substring pin Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… threshold; version 5.0.x - contracts check --min-coverage 80 on a contract-free file reports 0.0% and exits 1 (correct gate behaviour); test asserted success - version test pinned 5.0.0-alpha; crate is 5.0.0-beta.2 -> assert 'ruchy 5.0.' Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… test enabled
- parser_defect_010: the default-method body was f"...", x) (a stray ')' after an
f-string); the parser rightly rejects it. Body is now the spec's interpolated form
f"(Read more from {self.summarize_author()}...)".
- sqlite_163: 'fun next(self): Option<Self.Item>' is not Ruchy syntax (SPECIFICATION
uses '-> Option<Self::Response>'); now '-> Option<Self::Item>'.
- test_parser_010_transpile un-ignored: trait associated types already transpile.
Pmat-Ticket: RHLGA-1
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… yet implemented' - handle_complex_command sends Commands::Prove to dispatch_analysis (it was only listed there, so it fell through to dispatch_tooling's wildcard and exited 0). - dispatch_tooling's wildcard arm (eprintln + Ok) is gone: the match names every Commands variant, so an unrouted new variant no longer compiles. Variants main or dispatch_analysis own return an internal routing error. - tests/g2b_s2_cli.rs walks every verb in `ruchy --help` (recursing into command groups) on a trivial input; none may exit 0 printing the stub line. Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
….f)(..) The parser marks a FieldAccess written with `::` (Expr::is_path_access, attribute "::", not spellable in source); the interpreter still sees a plain FieldAccess. The transpiler renders a marked chain as a Rust path and wraps an unmarked FieldAccess callee in parens, replacing the G2B-T1 lowercase-root heuristic. tests/g2b_t2a_receiver_and_paths.rs: module path, std::cmp::max, Point::new, closure field (rustc-run); hand mutation is_path_access=false -> 2 RED. Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
test_bug_syntax_001 demanded an 'Attributes are not supported' error, the
pre-5.0 behaviour that PARSER-ATTR-001 removed. ruchy-5.0-sovereign-platform.md
section 3 defines attribute ::= '#[' IDENT ( '(' arg_list ')' )? ']', so the test
now asserts -e accepts the struct and transpile carries #[derive(Debug..)] through.
Pmat-Ticket: RHLGA-1
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…fn main async fun main transpiled to async fn main (rustc E0752) and a sync main using await emitted .await in a non-async fn (E0728). ruchy compile invokes rustc with no tokio, so main's body now runs as an async move block under a std-only, thread-parking __ruchy_block_on (no unsafe); a non-unit tail is bound and printed outside the println! macro so the awaited body stays rustfmt-formatted. Detection is exact: the emitted body contains the await keyword token. tests/g2b_t2b_misc.rs: sync-main-await, async-main, printed-tail, compiled and run. Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- infra plan/apply/drift/destroy require a regular file (verify_regular_file). `ruchy infra destroy /nonexistent` exited 0 because /nonexistent is a real directory on this host; it now exits 1 with "... is not a file". - CLI tests with a path missing on every host and with a directory. Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ored - cargo package --list refuses any dirty tree; the test now fails with "working tree is dirty: ..." plus the git status lines when that is the cause, instead of only cargo's raw error. No --allow-dirty. - Root .gitignore covers src/.pmat/, .pmat/*.db, .pmat/jidoka.jsonl, .pmat/clippy-receipt, .pmat/dead-code-cache-*.json (previously ignored only by pmat's own untracked nested .gitignore, absent in a fresh clone); a test checks them against the root .gitignore in a scratch repo. Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…reated
Root cause: FileWatcher::new failed with EMFILE ("Too many open files") when
the per-user inotify instance limit (fs.inotify.max_user_instances=128 here) was
exhausted by other processes, and run_watch_mode propagated it with `?`, so the
server exited ~immediately (reproduced: 60 extra inotify holders -> exit 1).
- open_watcher warns on stderr (cause + remedy) and serve falls back to
run_normal_mode; after the fix the same reproduction keeps serving.
- The watcher is created once per session, not once per restart.
Pmat-Ticket: RHLGA-1
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…rving forever - handle_serve_command = ServeRequest + serve_until(request, shutdown_on_signal) - serve_until takes the shutdown channel installer; tests pass a pre-sent channel - run_normal_mode returns the server's own error (e.g. port in use) instead of waiting forever - new tests: real GET then shutdown, port-in-use error, watch mode stops - pid-file test uses a tempdir, not /tmp/pid (PidFile::new kills the recorded pid) - serve_handler tests under --features notebook: 17 passed in 0.15s (was: hung >60s) Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…call - create_field_access spans receiver.start..field-name end (was 0..0), incl. tuple index t.0 - try_handle_postfix_call's same-line check now sees the real end; (h.f)(3) no longer splits into h.f; 3 - tests: tests/g2b_s3_misc.rs test_parencall_1_* (committed with G2BS8); hand-mutation span->0..0 fails 5/6 Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- module body parses a pub item via parse_pub_token (pub struct/enum/mod/use/fun, pub(crate))
- transpile_module_declaration emits nested modules as items: pub mod b { .. }, not mod b { { .. } }
- tests/g2b_s3_misc.rs: PARENCALL-1 + NESTEDMOD-1 differential (interpreter vs rustc); 10/10
- hand-mutation dropping pub on nested modules fails nestedmod 01/04 (E0603)
Pmat-Ticket: RHLGA-1
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…nd format! substitute like the macro Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…dded on main by #243) Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…oot; router tests exercise the real routes The proptest compiled random strings with the default output, so an empty or whitespace input produced a.out in the working directory. It and two tests writing fixed /tmp paths now compile into their own temp dirs. The six handle_advanced_command tests had passed only through the removed catch-all: parse, transpile, check and compile now go through handle_command_dispatch; publish and repl assert the router refuses a main-routed verb. Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… a restart awaits the aborted server - run_watch_mode polls the server task like normal mode (poll_server) and returns its outcome when it ends on its own; a file change aborts the task and awaits it before rebinding (serve_until_change, stopped_on_change, spawn_server) - test_serve_until_watch_mode_reports_a_port_in_use (RED: hung past 20 s) Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…zed; G2BFA2: &mut self sees nested/indexed field writes, field ++/--, mutating std methods on fields and mutating sibling calls (fixpoint) Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…r outside callee position Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…A5: an awaiting main keeps its declared return type; block_on park/wake is exercised Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…p and the crate root; the CLI verb walk is hermetic - g2b_t3_misc, g2b_t2a_receiver_and_paths: scratch_dir returns a TempDir - quality_001_self_receiver: rustc_lib compiles in a TempDir with --out-dir (no fixed /tmp paths, no .rlib in the crate root) - g2b_s2_cli: every leaf verb's --help must exit 0 without the stub line; only offline-safe verbs (parse, check, transpile, ast, lint, fmt, score, tier, provability, prove, explain) run for real; a timeout fails Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…(3) from source; is_path_access no longer steals Expr::new's docs - g2b_t2a t5_02: nested pub mod parses and transpiles; only std::cmp keeps it transpiler-only - g2b_t2a t5_04: the program calls (h.f)(3) directly; retarget_probe removed - ast.rs: is_path_access moved above Expr::new's doc block Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Compound assignment, nested-index assignment, field assignment through an indexed chain and in-place array methods on an element freeze the place first: every index expression is evaluated once and replaced by its value's literal, so the read and the write-back run no index expression again. Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The interpreter used a non-literal first argument with two or more
arguments as the template (println(s, 1) printed 1); the compiled binary
joins every argument with spaces (prints {} 1). Only a string-literal first
argument is a template now.
Pmat-Ticket: RHLGA-1
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
render records which positional argument each {} or {N} field uses and
reports the first one no field references, following rustc's rule; it used
to ignore extra arguments.
Pmat-Ticket: RHLGA-1
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…(found by G2b fix workers) Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- eval_builtin_comprehensive test_print_no_newline pinned print("A") as "A";
PRINTSTR-1/FMTSPEC-1 print the text, as the compiled print! does
- opt_022 hidden_class_transition pinned {} of 10.0 as 10.0; FLOATDISP-1 prints 10
- transpiler_deadlock_fix properties generated keyword names (fun); assume the
lexer reads the name as one identifier
- cli_unify_003 prop_030/031 (10K spawns) ran 113-119s against a 120s kill;
the property override now also matches property-test binaries
Pmat-Ticket: RHLGA-1
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…are vec! Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…s not printed Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The for loop assigned its variable with set_variable, which overwrote a same-named outer binding, and ignored the parsed pattern, so for (k, v) bound k to the whole tuple. Each iteration now pushes a scope, binds the pattern (try_pattern_match) there, runs the body and pops the scope. if-let, while-let and match arms did not leak; a regression test pins that. Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
eval_array_repeat clones the elements n times; a negative or non-integer count is a runtime error. Dispatched with the other one-argument array methods in eval_array.rs. Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ral-template rule format_sink_for now routes any identifier bound to a __builtin_*__ format marker (println, let g = format, a parameter holding one) through eval_format_call, the single FMTTEMPLATE-1 implementation, so only a string-literal first argument is a template. The value-only path (eval_builtin_format) keeps its heuristic for callees that are not identifiers, where no argument expressions exist. Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…kers) Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… with Display
- A named function's parameters whose emitted (inferred) type is String/&str
are recorded as strings, so println(s) uses {} (track_emitted_string_params).
- A closure bound by let takes its untyped parameters' call-site types
(call_site_arg_types) for the same choice (with_closure_param_scope).
- Parameters of unknown or non-string type keep {:?}.
- tests/g2b_transfix_6.rs: 7 end-to-end tests (compile, run, ruchy run).
Pmat-Ticket: RHLGA-1
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…terals is a vec! too - transpile_let/transpile_let_with_type record a binding whose inner list literals were emitted as vec! (the NESTARRVEC-1 rewrite) in inner_vec_lists; any other binding of the name clears it, as does a new function. - transpile_method_call emits the element argument of push/insert on such a binding as vec![..], so m[0].push(2); m.push([3]) compiles. - tests/g2b_transfix_6.rs: 4 end-to-end tests (compile, run, ruchy run). Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- Arrays: clone, to_vec, to_owned (eval_array nullary dispatch) - Tuples: clone, to_owned (eval_method::eval_generic_method) - Strings: clone, to_owned (eval_string_methods zero-arg dispatch) - Plain objects: clone (eval_method_dispatch::eval_plain_object_method) - A clone is independent of its source; tests/g2b_runfix_6.rs (7 tests) Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…batim, as compiled code does Found by the G2b final quorum (second sonnet seat). format(lit) stays a template. Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ariables over string items print as text Found by the G2b round-2 quorum (sonnet seat). Trailing for/while/+= in main are unit; strings gain split_whitespace in the interpreter. Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…n list-typed params and bindings
Found by the G2b round-3 confirmation seat (sonnet): an untracked Vec/Option receiver got {} and failed rustc. Vec records are cleared per function.
Pmat-Ticket: RHLGA-1
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ates vec![x; n] Found by the G2b round-4 quorum (sonnet and agy seats). Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Roadmap resolved by row: branch rows kept, PMAT-140 appended from main. Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…named-environment ignores Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…identifiers Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…CKFOR-1
- Mutable globals emit as static __global_<name>; with_globals_shadowed hides a
global for the lexical scope of params, closure/for/pattern binders and lets
- x += x on a global reads the guard instead of taking a second lock
- The numeric-name return heuristic applies only when the body ends in a value
- A failed set comprehension backtracks so { stmt\n for .. { } } parses as a block
- tests/g2b_transfix_7.rs: 21 tests; SETCOMP-1 filed as #247 (backlog)
Pmat-Ticket: RHLGA-1
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ccess Quorum finding (agy lane, G2c): test 03 passed an unexpanded glob to Command and checked only that the process spawned. Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Contributor
Author
|
quorum-review (AD-04): NOT agreed (auto_merge: checked=true was_armed=false disarmed=false) {
"ticket": "RHLGA-1",
"head": "feb1d2c5b7b9ce8554bae492a4ce3e007451a934",
"width": 3,
"executor": "agy",
"agreed": false,
"auto_merge": {
"checked": true,
"was_armed": false,
"disarmed": false,
"note": "auto-merge not armed"
},
"lanes": [
{
"lane": 1,
"verdict": "FAIL",
"findings": 3
},
{
"lane": 2,
"verdict": "PASS",
"findings": 8
},
{
"lane": 3,
"verdict": "PASS",
"findings": 5
}
]
} |
Contributor
Author
|
quorum-review (AD-04): NOT agreed (auto_merge: checked=true was_armed=false disarmed=false) {
"ticket": "RHLGA-1",
"head": "feb1d2c5b7b9ce8554bae492a4ce3e007451a934",
"width": 3,
"executor": "agy",
"agreed": false,
"auto_merge": {
"checked": true,
"was_armed": false,
"disarmed": false,
"note": "auto-merge not armed"
},
"lanes": [
{
"lane": 1,
"verdict": "FAIL",
"findings": 1
},
{
"lane": 2,
"verdict": "PASS",
"findings": 9
},
{
"lane": 3,
"verdict": "PASS",
"findings": 7
}
]
} |
- infer_return_type_with_lifetime used looks_like_numeric_function(name) alone, so an `add` with 2+ reference params and a reference return still got `-> i32` when its body ended in an assignment. It now uses is_numeric_named_value_function(name, body), like the plain path. - 2 unit tests (RED: "expected unit, got -> i32"); lib 20892 pass. - docs/audits/impl-RHLGA-1-receipt.md: G2c scope, HOSTDEP-1 acceptance for the named-environment ignores, quorum rounds 1-3. - Found by the G2c quorum (gemini-3.1-pro lane). Pmat-Ticket: RHLGA-1 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
Author
|
quorum-review (AD-04): three PASS — agreed (auto_merge: checked=true was_armed=false disarmed=false) {
"ticket": "RHLGA-1",
"head": "bb8b7ec012d329295f28a65393785e139d6aecb1",
"width": 3,
"executor": "agy",
"agreed": true,
"auto_merge": {
"checked": true,
"was_armed": false,
"disarmed": false,
"note": "auto-merge not armed"
},
"lanes": [
{
"lane": 1,
"verdict": "PASS",
"findings": 5
},
{
"lane": 2,
"verdict": "PASS",
"findings": 10
},
{
"lane": 3,
"verdict": "PASS",
"findings": 10
}
]
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
RHLGA-1 G2c: the workspace test suite passes on any host
Stacked on #246 (G2b). Once #246 merges, this PR's diff is the three commits after
1e82f210.G2 acceptance met: at
ba96b2ddon intel,cargo nextest run --workspace --no-fail-fastran 28138 tests: 28138 passed, 2492 skipped, exit 0. The follow-up commitfeb1d2c5changes only a test that is ignored by default.Changes
HOSTDEP-1: six test binaries ran whatever
ruchywas onPATH. They now spawnenv!("CARGO_BIN_EXE_ruchy"). Two checks that need a host tool are named-environment ignores:tooling_002test 01);opt_global_001test 03). This test now merges the collected profiles and asserts success.The
cli_unify_003determinism properties now run 1,000 cases, down from 10,000.RAWIDENT-2 (behaviour): a name that is a Rust reserved word (
box,do,typeof,extern, …) is emitted as a raw identifier in every binding position.GLOBALSHADOW-1 (behaviour): a parameter, closure/
for/pattern binder, orletthat has the same name as a mutable global now reads and writes the local.xis now__global_x.x += xon a global no longer takes a second lock.RETUNIT-1: a function named like arithmetic (
add,double) no longer gets-> i32when its body ends in an assignment.BLOCKFOR-1:
{ expr⏎ for x in xs { … } }parses as a block, not as a failed set comprehension.Filed to the backlog: SETCOMP-1 (SETCOMP-1: interpreter has no SetComprehension evaluation ({x * 2 for x in xs}) #247), the interpreter has no set comprehension.
Tests
tests/g2b_transfix_7.rs: 21 tests (RED first). Each checks that compiled and interpreted output match.-D warnings, lib (20890 passed), and 16 transfix/runfix/deadlock suites.Quorum
Brief sha
0d6aae48…, diff sha96500bf6…, headba96b2dd, author opus-5.5.feb1d2c5.Receipt:
/mnt/nvme-raid0/tmp/g2c-quorum/receipt.json.🤖 Generated with Claude Code