Ralph26 - #135
Merged
Merged
Ralph26#135
Conversation
scuzz eval --probe DIR registers the prepared fuzz files through Fuzz.* and reports def-entry and branch-arm hits with the keys Emit interns. scuzz fuzz spawns it for search, shrink, and mutants on a package without [ui]; a mutant is a file set, not a link. The idle probe runs on both engines first and a timeline difference, deadline, or crash falls back to compiled probes. A promoted search failure replays compiled. Runtime: the probe detaches the outer scheduler so the toolchain fiber stays out of the census, silences the binary's own coverage, and turns the tombstone oracle off for a nested probe so evaluator strings free. Sys.getenv SCUZZ_EXECUTABLE returns the live binary path. Emit keeps expression offsets in rewriteBind and rewriteHole so compiled branch hits match the interned keys. Eval caches kit and enum names per program. scripts/ci-fuzz.sh runs webhook and api-report on both engines and diffs summary.json.
…duler step scuzz eval --probe DIR serves probes: the server checks the package once and forks a child per probe under SCUZZ_EV_REQUEST. Drive keeps one server per prepared file set. Panics under TESTRT exit 134 instead of abort so a probe child skips the host core handler. Structural IO nodes (pure, flatMap, handleError, attempt, ensure, loop entry) run in the same scheduler step as the effect that follows, so the evaluator's extra IO wrapping does not move the deterministic schedule. examples/io now matches on both engines in scripts/ci-fuzz.sh.
…deadline Cut the per-call cost in Eval: one location string per def at load, a plain-argument fast path around Check.alignCall, one Ftab lookup per call, literal patterns before the pattern scans, constructor fields cached per enum case, and character checks instead of Str.slice in the pattern scans. examples/kernel idle probe 21 s to 12 s, examples/fmt 21 s to 18 s.
Every Int comparison under coverage reports |a - b| at its site through the coverage hit channel (dist:<site>:<d>). The probe keeps the smallest distance per site and writes SCUZZ_DISTANCE_DUMP. Search keeps the script that lowers a distance and nudges one Int driver argument, inside its where, by a power of two sized to that distance. examples/reach proves it: the evaluator reaches a sometimes behind code == 4242 in 32 iterations and the compiled control does not.
View.* calls evaluate to a VView description with closures and signals inside; Signal.* are native signals; Icon, Color, Theme are native calls. Ui.run stores the description in the host Ref from Eval.withHost and fails loud without one. The compiler package still links without the UI runtime. examples/codegen probes every UI kit row and taps a counter through the description (eval-ui-ok). Docs: slice 6 plan, guided tutorial intent.
Docs depends on the compiler front. Mount walks a VView description into a native View. Eval.tryNow checks one source, runs @main to Ui.run, and returns the description or a diagnostic inside the Run tap. Evaluator signals pool per page so a run reuses signals by name and kind. Runtime: views get their own block kind. A list signal that drops a list no View.each mounted frees the views in it, so two writes between layouts do not leak the middle list. view.c installs the hook, so a program without views links no view code.
The web build links the whole Docs package with the compiler front to wasm32. The HTTP client and the servers are stubs that fail loud at the call, so the evaluator's Net cases link without sockets. impurity.c joins the web build. The browser proof taps +1, edits the source, runs it, and reads a check error in Chromium, Firefox, and WebKit. Slice 6 closes: vision.md marks it in the tree and points at slice 7.
…op pumps. How it runs shows evaluator traces, two schedule seeds, coverage, and a mutant. Idle pumps read X11/Cocoa so a static window still accepts clicks and close.
Docs searches a Bool oracle on the evaluator and shows the failing argument, without nesting Fuzz.probe inside the Docs campaign.
Start opens Try it and How it runs. How it runs puts the campaign first and shows one IO.both race as two scheduler worlds with the first winner and the leftFirst verdict.
How it runs paints seed 0 and seed 128 side by side so both first-winner verdicts stay on screen.
Keep scuzz docs as the STE reference. The hosted app is six stages with Continue gates, a tabs strip, and #stage= ids.
One program gains View, Check, Signal, Search, and Cover. @main binds the demonstrated result instead of an empty IO.pure.
A public Bool def is no longer a drive. Docs Check runs incAdds beside Main.scuzz, nested scrolls pass the wheel, and editor glyphs use DejaVu Sans Mono.
The Docs web proof waits for the verify editor after the nested tab paints.
Cover Copy also asserts the first code block, which is the schedule snippet.
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.
No description provided.