Attribute sweep, compileProject, and a canary for check_examples - #214
Merged
Merged
Conversation
…pulateFrom crash)
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.
Adds a tool that asks the compiler where every attribute is legal, moves
tbbuildinto a library the harness tools call directly, and stopscheck_examplesfrom believing an IDE that has not yet reported.compileProject(scripts/lib/tb-build.mjs) istbbuildas a function;tbbuild,check_examplesand the sweep call it instead of spawning a process.tbbuild's output is byte-identical on seven cases. The IDE shuts down asynchronously, so one lane's shutdown no longer freezes the others.sweep_attributes(new) builds every attribute at every one of 62 declaration sites, beside a baseline with no attribute and a control with an invented name, and reports where the compiler accepts each one. A batch that crashes, hangs or disturbs its canaries is halved. On BETA 987: 34,526 probes, 8 to 16 minutes on four lanes, and 46 of 71 documented attributes disagree with the page. Many of those are "accepted but not documented" rather than wrong. Outside every gate, likeexamples.bat.check_attribute_sweep(new, in the CI action and Tools.md) tests the sweep's logic with no IDE: 138 probes, and each of 23 injected faults fails one.test.batis now sixteen steps.ComExportis also accepted on APIDeclares; theHiddennote cites a real example. BUGS-TO-REPORT.md gains a two-line[PopulateFrom]compiler crash.#Warningcanary (TB0005, kept a warning by[EnforceWarnings]). A read with no errors must report it; a silent read is built again, then halved, and a unit that stays silent stops the run. A read with real errors is taken as read, so a failing corpus is never stopped or slowed.Form1sample compiled only when batched beside another page'sClass Form1; it has its own hidden class now.