v0.60.0
·
1458 commits
to master
since this release
Changelog
- 7570d8c Widen the summary on a re-entrant lambda instead of skipping it
- 79d584d Weigh the slice the conversions are held in
- f55e356 Weigh the conversions against the arguments they came from
- 8a165ab Weigh the block's keys when admitting the memo
- 09b5e05 Warn when a statement-position mutator provably updates nothing (#1226)
- bf90838 Walk a hash lookup's retained results as a memory-quota root (#1183)
- 02b048f Validate sort scratch, charge merge preflight keys
- fa6e1e3 Validate set-op buffers together with their operands
- 21ceb12 Validate scratch in difference's membership equality
- bee99aa Validate equality scratch with the compared operands
- 61e1ee7 Validate before charging where the check is cheap
- 24adeca Validate absorbed breaks from preserved bound methods
- 5489785 Use the repository's spelling for traveling and behavior
- 3be0eba Use slices.Contains and maps.Copy for linear scans and map merges
- 7bbfd53 Use errors.New for a constant-shaped message
- d41a418 Use a fresh comparison state for the _by extrema
- f0b3a6c Use a class's to_s for format's %s
- 3ba6018 Use American spelling in the enum rendering comments
- 8d57424 Use American spelling in the JSON key test comments
- 5f696a4 Update the changelog for the clone and module-root fixes
- 8aacd0b Treat a lone rest block parameter as arity one
- 074b1f6 Traverse metered maps deterministically, skip empty lookups
- a6ba8ed Tie a task slot to the job rather than to a worker
- 1a6292b Tidy the bound-equality charge comment
- 1ac36da Thread a byte charge through value equality
- 6b8a0f8 Test zone abbreviations alongside the zoneless default
- a74867c Test unknown-member reporting and its soundness boundaries
- d39cab8 Test to_s dispatch, fallbacks, and sandbox accounting
- f881c78 Test to_s and inspect coverage, agreement, and quotas
- b44c008 Test the teaching diagnostics and their boundaries
- e2e6c97 Test the spaced-paren diagnostic and its boundaries
- fcb4659 Test the removed sentinel and the rebuilt positional view
- 8b0dc28 Test the keyword-default diagnostic and its boundaries
- 85a643d Test the directive scanner and literal percent handling
- 7213695 Test the conversion digit cap
- 63348e2 Test the checker's view of symbol comparisons
- 7ed1091 Test the checker's view of string repetition
- 4a39ecf Test the break diagnostic across blocks, procs, and loops
- 0630f09 Test that zoneless time results are host-zone independent
- 46ae05c Test that ordinary host objects keep their rendering
- 739cf6f Test that character-set scans bill their entry comparisons
- ab0a518 Test task root-cause reporting in both read orders
- 8c8e5e5 Test string repetition, its rejections, and its quota
- 8859aea Test scalar comparison coverage per kind
- b3b2848 Test rescued error rendering and the unchanged bags
- 7bcd265 Test recursive eql? strictness and unchanged ==
- 4454a60 Test named captures, shadowing, and the offset match path
- 631e668 Test integer-string parsing, syntax limits, and quotas
- 26d4311 Test hash stored entries and regex receiver checking
- 32e7f51 Test format's to_s conversion, padding, and quota
- 7760f9c Test flat_map semantics and per-element accounting
- a74e66b Test every capped method instead of trusting the set
- 701e42e Test enum value to_s and inspect
- 401d1e3 Test enum type members
- c3577be Test enum rendering projection and the alias suggestion
- 393c52c Test duplicate named capture resolution
- 471da59 Test diagnostic deduplication across call sites
- 79215ba Test crossed formats, both dispatch paths, and literal text
- 0edebb3 Test control-flow signals escaping an implicit to_s
- 34039f2 Test completion narrowing and its fallbacks
- 522a85b Test comparison metering, memoization, and equal prefixes
- 4e4ff89 Test comparison error rescue, position, and limit classification
- 46ac99a Test break in blocks, its boundaries, and sandbox accounting
- ceafa50 Test assert call forms across both spacings
- d06d57a Test array ordering, cycles, and the unchanged operand kinds
- b8ca8d9 Test absorbed break return-type validation
- abbf838 Test Hash#map block shapes and quota accounting
- eba1cbb Test Hash#map arity and retained-output accounting
- 292040f Teach the checker that symbols compare
- 19a538c Teach the checker that a string repeats
- faf18e8 Tag deliberate string-form bags instead of inferring them from shape
- d7e129c Suspend yield recording while block bodies run
- 899029c Surface named captures on match data
- b524d60 Surface latched exhaustion past swallowing adapters
- 2507d97 Surface a nesting refusal from the percent-literal probe
- f15beb5 Suppress the hint when the field already admits nil
- 2b69fc7 Suppress local-callee modulo before probing for a percent literal
- b0f8b0d Support break inside blocks
- 3480a41 Stop the summary walk from re-entering a stored lambda
- 1c942cc Stop the key charge where canonicalization stops
- 177b9e4 Stop the composite scan after a sticky equality error
- 2bf246b Stop the ambient walk when its budget is spent
- 1fc2ebd Stop retry at the implicit to_s boundary
- a359135 Stop reporting a hash's stored entries as unknown members
- 586129c Stop repeated-region ivar effects from re-entering a lambda
- 1b0bfcb Stop propagating failed key encodings in equality charges
- f28ad7d Stop object provenance at the host boundary
- ffecc31 Stop four static-check paths doing quadratic work (#1182)
- 5457821 Stop converting template values twice, and size interpolated regexes
- 6703f2e Stop bounded collection inside captured environments
- 1a946ea Stop ambient traversal when the budget is spent
- 7430939 Stop ambient binding iteration at the budget
- 1399055 Stand a tiny token in for the execution in credentials
- a29b554 Staff task workers per job rather than per max
- a1249ba Spread the set-op precharge sources as well
- f7e1e52 Spread set-op sources instead of materializing them
- 5394758 Snapshot fallback diagnostics for outer dispatches
- 54b66ff Snapshot ambient builtins before contracted capability calls
- 6b2caae Skip untouched bigint canonicalization, hold the scan reservation
- 1a5e0b2 Skip the regex flag charge when sources already differ
- 098c34c Skip the build accumulator for one-element array literals
- 28f1483 Skip detaching a slice that already owns its bytes
- 5650160 Size the squish builder to its output
- c78f777 Size regexes without rendering in the value package
- 5647fc3 Size regexes without rendering in the recursive walkers too
- c8db928 Size big-integer inspections with the decimal bound
- d17a99e Size a rendering from its payload, not by rendering it
- 18f0027 Share the source replay with the splat lookahead
- bf4cf4b Share the property contract a host clone copies
- 775a789 Share the pool with a scope opened inside a scope
- 82451be Share the lexer stacks a snapshot captures
- 70f952d Share the argument classification, not just the arithmetic
- efae5e3 Share one type copy across a whole clone, not one per class
- ae4270e Share one task concurrency budget across a call tree
- 32e158e Share one comparison state across a sort or extrema pass
- 53771f3 Settle container delimiters, and search invalid UTF-8 linearly
- c08c5b0 Settle a block's bind charge construction walk before its callbacks (#1198)
- 12517a4 Settle JSON output per value, not once at the end
- 9f33275 Set up the comparison memo lazily and charge its real footprint
- df1765a Separate the return-type target from the options-hash target
- 0e5a51d See through exact-one repeats when sizing
- 73634f6 See through counted repeat aliases when sizing
- 1144bbc Scope the unrescuable guarantee to the latched caps
- c9a9afa Scope the changelog to what the charge covers
- 7aa2c7c Scan typed hash entries at data-only boundaries
- a792187 Scan raw statics without materializing them
- c2c656b Scan for published capabilities before returning a validation error
- 96f9864 Scan absorbed break results for newly published builtins
- 8053c11 Scale the needle rejection by the widest encoding
- 89cba6d Scale durations by float operands instead of truncating them
- dbc3c57 Say what the deep-transform retained-payload figure does not bound (#1188)
- 7968fc2 Run the zip build as an accumulator-metered section
- 71751d4 Run the estimator-counter test serially
- 353126f Run the awaited job, and only on a goroutine that holds a slot
- 98b0600 Route unknown-member errors through the script error path
- 9701f51 Route an absorbed break through the normal return path
- 2a3f60e Root a module's environment while it initializes
- 4f4edab Roll back dropped memo reservations and charge the map's footprint
- 71f100c Rewrap shared clones with each wrapper's own tag
- 8a58d61 Reuse the comparison state across _by extrema, clearing results
- 6ba09d5 Retract the dormant memory total when a block can rebind it (#1184)
- f19dce8 Retain worker exhaustion independently of the first error
- 2fcbe23 Resume the structural replay instead of restarting it
- 32c11fe Restore the ivar dirty marker after lambda body walks
- f362a07 Resolve token positions through a line index
- ee5e64e Reserve the template scratch as the projection allocates it
- a3c2ec9 Reserve the slice copy beside slice's ignored arguments
- 30a518f Reserve the set-op root wrapper slice
- cb00c4f Reserve the set helpers' buffers in loop scratch
- 6df2417 Reserve the result backing before the first block call
- d9771f8 Reserve the hinted scalar map before allocating it
- 335f8dc Reserve the equality index maps before building them
- 429f880 Reserve the entry sort's full live footprint
- 9fc40ba Reserve the detaching copy before allocating it
- ad83cf4 Reserve the backing before the runner snapshots its baseline
- ed8c492 Reserve the HashEntries copies a metered comparison materializes
- 8b7f347 Reserve task slots for the work a group has
- f04decb Reserve retained template segments, and charge the regex sizing walk
- 9808551 Reserve rendered display keys at realized capacity
- 52c2fd4 Reserve outer slice growth in the scan budget
- e2fbc42 Reserve only the template segments the render allocates
- 53d8343 Reserve memo entries without a per-entry heap walk
- fa5d3bd Reserve in-place array growth through the memoized walk
- 12502f5 Require matching kinds, and order symbols in one pass
- 87c6aa0 Reproduce the accepted-break binding case in its test
- 1f27b46 Reprice equality scratch per granule, not per allocation (#1191)
- 7c0f362 Report each check diagnostic once
- 275b599 Report concatenations whose every operand alternative is rejected
- 5cb4485 Report an unknown method on a statically-known receiver
- 8d71c18 Report an invalid negated literal once
- 1b07536 Report a task group's root cause, not a sibling's cancellation
- d89149f Report a space before a parenthesised call argument
- 55d145a Report a source that outruns the percent-scan allowance
- d56e66a Report a scratch shortfall instead of answering "not found"
- 09bff58 Report a crossed Time format instead of echoing it
- c6c2fa9 Replace sort.Strings with slices.Sort
- 1373886 Replace errors.As with errors.AsType where the target is an error type
- e6c74d2 Render only the bags that declare a string form
- 8eae82c Render negative token values through the fallback
- 3d402c6 Render enum text into the buffer the quota charges
- e847139 Render a rescued error as its message
- 2781a4d Remove the unreachable callable example
- c76f3a8 Remove the obsolete hash-key rationale
- e2ae60e Remove the internal key from match results
- 9cee7cf Remove the closed comparison caveat
- ff37a97 Remove superseded hash migration notes
- efb2a8e Remove superseded block-break restriction
- bc0c8de Remove script-visible tasks and sleep (#1212)
- 762cdba Remove obsolete callable release notes
- 2296fad Remove escaping callables; blocks become enforced-nonescaping (#1224)
- 17b4e58 Remove differential-testing scratch committed with the rc2 release prep
- a58e45c Release the slots a shifted array no longer reaches (#1201)
- 39a415b Release sort scratch as sibling traversals complete
- ea485d0 Reject oversized needles before scanning them
- 6afd552 Reject objects in string concatenation
- d12cf67 Reject non-renderable operands in string concatenation statically too
- ef588f0 Reject nil and containers in string concatenation
- 727108f Reject member assignment to tagged bags
- 10cf34d Reject in-place mutation of tagged bags
- d91d930 Reject dotted type atoms without splitting them
- 582481a Reject class instances in string concatenation
- 7019922 Register the conversions instead of pricing them
- bc0f693 Refuse spawns that observe exhaustion behind a nil group error
- fcceac2 Refuse rescue on authenticated task exhaustion
- f372d84 Refuse rescue matches on an exhausted execution
- 072cbf7 Reduce modules to namespaces (#1211)
- cab35ce Record which label colons precede a ternary separator
- 868449c Record the deadcode sweep after the ADR-006 removals (#1225)
- 3c41489 Record namespace writes a re-entrant lambda reaches
- e68240f Recognize every renderer directive and reject malformed formats
- c95f677 Rebuild exhaustion diagnostics from execution-held state only
- 117dde2 Rebuild authenticated exhaustion instead of trusting it
- 0bbebef Rebind escaped bound methods across calls
- 51a7de2 Reach yields the recursion enables instead of assuming them
- 848177b Re-observe exhaustion before admitting a spawned job
- 49192c0 Re-measure retained entries against each live base
- 20f2760 Qualify the ensure guarantee for latched exhaustion
- a454c74 Publish a tagged bag's rendering at construction
- 38f765f Publish ADR-006: slim the language for predictable sandboxing (#1213)
- eb77195 Project runtime rune lengths without rendering
- cb726a7 Project enum renderings before allocating them
- a6e0a63 Project and stream enum text without materializing it
- 4e3012b Price the zip rows once and keep the probe serial
- 4120448 Price the zip result before building it
- 43f5b2b Price the conversions instead of walking them per check
- fb29b56 Price hash-literal entries through the memoized base walk
- bd215a8 Price a partition against the array it returns
- 8358a72 Preserve tags on capability result clones
- 9597b76 Preserve stored lookup identities when cloning typed hashes
- be55552 Preserve object tags through task payload cloning
- e3e9cc5 Preserve object tags in packaged capability clones
- 77563a4 Preserve object tags across internal containment clones
- c0e51d6 Preserve nil in the default-proc migration
- f45d797 Prepare v0.60.0 release
- 0fcb194 Preflight display renderings, skip aliased key payloads
- e53d319 Prefer the latched error over unrelated adapter failures
- fcbb636 Precharge set operands in every dispatch path
- cb2bb5b Preallocate the squish projection corpus
- dfdd8d2 Preallocate the regex-length test corpora
- d200225 Preallocate the order helper's result
- fe60658 Position an incomparable relational comparison
- 95fefe1 Pool the metered equality context on the execution
- 7d55382 Point deliberate Ruby divergences at their alternative
- 858c5fb Pin the percent scan's growth with a byte counter
- 50120cb Pin that valid modulo never spends the percent-scan allowance
- 90a3ccc Pin nested comparison metering with proportionality tests
- fd8c532 Pin how the label-colon scan grows with the label count
- 2797f94 Pin hash literal key kinds in both directions
- 51b9ca3 Pin JSON key kinds and the documented conversion
- 546385f Parse integer strings beyond int64
- 89f88af Parse assert(cond, message) as an ordinary call
- 0fbae59 Pace the conversion check and hand back a nested backing
- af580f5 Order symbols and nil under the comparison operators
- 2b5ca2e Order mixed hash entries before the metered linear walk
- 73c335d Offer freed slots to waiting groups in registration order
- 569cd0a Offer a freed slot to a waiting group before the local queue
- 996e900 Note the template scratch check in the changelog
- 2e4edc9 Narrow the module release overview
- 41e479c Narrow retained-output release notes
- 6837e3b Narrow member completion to the receiver's kind
- 154a068 Name the block boundary when break cannot leave one
- 357c8ea Meter regex source comparisons
- eb25c8b Meter equality through the runtime's comparison paths
- 972428e Meter display-key sizing and singleton renders
- b496f43 Meter array comparison and memoize shared subtrees
- 9be8d43 Merge remote-tracking branch 'origin/master' into mgomes/tokentype-int
- 61199f6 Merge origin/master, reconciling token.go imports
- 76386db Merge origin/master, dropping the sort imports both sides touched
- 7c35486 Merge origin/master and latch the new quota raises
- 7c9326d Merge origin/master
- d85ec4f Memoize function effect scans so self-call sites stay linear (#1227)
- 73bf66a Measure walk work by allocation rather than wall clock
- 3d5e316 Measure deep-nesting construction under a memory quota
- f554c0f Measure a mixin adoption against the quota that remains
- 8777fea Match crossing detection to the renderer's directive acceptance
- 58e1b69 Match Simplify's quantifier rules when sizing
- 6414fc1 Mark latched exhaustion unforgeably at wrap time
- e3000de Make the object tag part of identity and document it as Tier 2
- 1c081a9 Make TokenType an integer enum
- 99a36d7 Let re-entry walks read facts instead of clearing them
- 111cf3c Let latched exhaustion outrank cancellation
- 0e53404 Let ensure-triggered exhaustion replace the body's error
- 3713b93 Let a builtin declare that it does not mutate, and stop re-walking the graph around it (#1202)
- bd5b9e8 Leave a drained group registered rather than forgetting it
- 9507162 Latch the parent when task exhaustion crosses the boundary
- 6d0fc11 Latch genuine quota exhaustion on the execution
- e8d6e44 Key the cost-walk cycle guard on the full slice header
- be18128 Keep zone abbreviations out of the zoneless UTC default
- 64d94e8 Keep unmetered host map equality allocation-free
- 1bd7976 Keep typed clones intact and bound their key depth
- dd0f0e0 Keep the seconds operand exact when scaling by a float
- 56665a9 Keep the retention bookkeeping off the common path
- 1fadcb2 Keep the participating group for duplicate capture names
- a1839fc Keep the outer call site for positionless member lookups
- 30e2429 Keep the ivar dirty marker through fresh inference scopes
- f90ca70 Keep the exhaustion site when ensure cannot run
- 387fd54 Keep the base-walk memo across a loop body's scope re-push (#1133)
- 7a72d4f Keep regexes concatenable
- 5e512d6 Keep propagated error frames past the dispatch latch check
- ebff145 Keep only errors that carry the latched exhaustion
- 88d85a3 Keep identity accounting through literal replacements
- 192e808 Keep eql? kind-strict for nested values
- 44f1614 Keep an inline job inside its group's limit and its waiter's wait
- 8533a1f Keep Data public, charge the wrapper, key result clones by tag
- df598ad Index code frames sparsely instead of per line
- ee7c6f4 Include the result backing in the retained reservation
- 83af173 Include string framing in key canonicalization charges
- fb3d128 Host boundary hands out independent values (#1222)
- be7fe81 Honor block arity and charge retained output in Hash#map
- 01e82e8 Hold task slots only while the work needs them
- dc470e7 Hold both allocations when admitting a replacement
- bfdd0d2 Guard the token spelling table against drift
- 4eec9fe Guard member builtins against wrong-kind receivers
- 462fef9 Grow the comparison memo instead of preallocating it
- 83ca924 Give the ordering members the bounded memo
- c2855e9 Give the local race gate CI's 30m timeout (#1215)
- 7cd3c36 Give differently-tagged wrappers independent clones
- dd649a8 Give back the retained backing once nothing is held
- 99b8186 Give arrays and hashes value semantics (#1219)
- 361d35c Give an enum type name, to_s, and inspect
- d9f8230 Generalize the byteslice detach into a shared helper
- 5194328 Funnel memory-quota raises through one helper
- 3e2f9a9 Frame raw Step exhaustion at the capability call site
- a90524a Fold a minus into a literal only when it is adjacent
- d2b5c8e Fix the embedding starter templates and gate them in CI
- 84930e6 Fix the arbitrary-precision fuzz oracle
- 2f0d05e Extend scratch validation and sort metering to set scans
- bbd5ad9 Expose the member receiver at a parse position
- 5e3e4d4 Export the escaped-method test value through block forwarding
- 5929379 Explain a nullable read of a required shape field
- 4f6e2e9 Explain a keyword default that reads as a type annotation
- 9f500a9 Expand numeric alternatives before consulting the rule table
- e2a2c2f Exempt the constant-time string methods from the scan charge
- 00a8384 Exempt chomp by arity, and charge symbol equality predicates
- 4a938b3 Exclude the sign from the digit limit
- 7d414fe Exclude absorbed break values from capability binding
- 6f75be7 Evict the oldest memo entry instead of refusing new ones
- 680cca3 Estimate regex program size without expanding it
- d752669 Enforce the digit cap before the int64 fast path
- e15ea28 Eliminate the second rendering instead of halving it
- cd459a4 Drop wall-clock ceilings from the comparison tests
- 1a94620 Drop the registration machinery this no longer uses
- 995e1a3 Drop provenance at every host boundary
- 2c74407 Drop object tags from script-level duplication
- fcbd650 Drop equality operand roots once a comparison answers
- 8e5dd9c Document unrescuable quota exhaustion
- bd8f63b Document type-aware member completion
- 4305a69 Document the v0.60.0 module downgrade
- a9a0c51 Document the sizing model's error asymmetry
- 4824c87 Document the parenthesized keyword default form
- 90ffe1f Document the hint's argument-path scope
- 173c61c Document the UTC default for zoneless times
- adedb1e Document that crossing the Time format languages is an error
- 8ced90c Document that JSON.parse produces string keys
- 4cabc9c Document how zone abbreviations resolve
- 6b8eb56 Document enum value to_s and inspect
- c84b2a1 Document enum type members
- 069634d Document String#*
- b140541 Document ParseTimeString
- 3cb9230 Document Array#flat_map
- a63c0ae Do not bind contracts from a rejected return value
- f3e1dd1 Dispatch interpolation and puts to a class's to_s
- 28d68a3 Discard the fluent return in the task latch transfer
- a1b94ce Detect a crossed format without rendering it
- c656bd9 Detach writes through call-form and auto-invoked accessor roots (#1228)
- 17abf23 Detach string results from their receiver's backing (#1194)
- a86bf64 Detach string bracket reads from their backing
- 3a0c61f Detach small byte slices from their backing
- bbede5e Detach partition components from the receiver
- bbd3305 Detach every byte slice and charge the copy
- 39761e4 Detach String#slice results from their backing
- 425d487 Describe the live nonretaining contract
- 82681a2 Describe the ensure body as skipped after exhaustion
- 817395b Defer starved task jobs instead of running them at spawn
- 6859150 Default zoneless times to UTC rather than the host zone
- c10cefa Deduplicate repeated payloads across hash-literal entries
- 6633b05 Deduplicate literal entries against the union of identities
- 5aab996 Decline the charged append on reallocation
- 6820fbe Decline charged appends into occupied spare slots
- 6c43d9a Decide concatenation validity over both operands' alternatives
- 6c52f90 Decide concatenation for callable operands
- 14cb4ea Cut the cost walk at its budget and bill object keys
- 17fc0a8 Cover the member receiver guard
- d03a6b3 Cover capability revocation for forwarded bound methods
- 2d77ffd Count the wrappers a predeclaration scan steps over
- 85f88a2 Count invalid UTF-8 runes, and keep the per-node step
- 4dc385a Count estimator visits instead of allocations
- fa0bf44 Correct the v0.60 module milestone
- 24a7e0d Correct the quoted hash key rule in the language reference
- 07f3a3a Correct the escape bound and charge template values as rendered
- 07696eb Correct the collection-loop caveat
- 7255694 Copy a property contract once per clone instead of sharing it
- 5320103 Convert the func-comparator sorts to slices.SortFunc
- b413596 Consult the length hook from the unbounded byte projections
- 0048e2b Compare expansion roots when collapsing quantifiers
- 2a04991 Compare arrays lexicographically
- 0c3a2b6 Compare an int and a float numerically under ==
- 34dd0e4 Commit array appends into the base-walk memo
- c3bd50e Commit added hash entries into the base-walk memo
- f61ee19 Collect difference composites instead of the arrays holding them (#1186)
- d1dff32 Collapse only identical nested quantifiers
- cd58e15 Collapse nested quantifiers when sizing
- 8029842 Collapse hash keys to one string keyspace (#1217)
- 1abd0fa Collapse clamp-style if statements into min and max
- 93b2707 Close the sort-metering and scalar-lookup gaps
- e57863f Close the key-charge gaps codex found
- 35ac8fb Clone typed hashes in insertion order
- 1a0dd37 Clone capability arguments in containment mode
- 2825773 Clear the slots Array#pop and Array#shift vacate (#1167)
- 9e98ec1 Clear a released conversion slot before dropping it
- b71d623 Classify incomparable comparisons as ArgumentError
- 619b6c0 Clarify zone abbreviation portability
- eda57aa Clarify the lightweight language surface (#1231)
- 15b2091 Check the conversions once, when the pile is complete
- 4ccc404 Check memo reservations periodically
- f4617c4 Check conversions between them rather than reserving them
- 89b7b99 Charge value rendering for the bytes it prints
- 6edf58e Charge truncated renders and cap between?
- f345c82 Charge the step quota per element in array scans (#1132)
- ababf1e Charge the step quota for the bytes a string method scans
- 1be96f1 Charge the result backing once and weigh binds against the live baseline
- 176e3ea Charge the public byte walk, and size regexes in the rune walks
- f33ad6b Charge the prefix a failed hash-key canonicalization copies (#1190)
- c0792ac Charge the parse scan before it runs
- 105ee6b Charge the local predeclaration scan
- 87569d2 Charge the interpolation sizing walk, which the last commit missed
- 9bbdcaf Charge the eviction ring alongside the memo
- 1bb4070 Charge the destructuring targets a scan walks
- 6d299b2 Charge the comparison memo against the memory quota
- 1f5d125 Charge the class constants a mixin adopts
- b81acb6 Charge the ancestor copies canonicalization performs
- 527fac6 Charge the aggregate branch of every format projection
- 89631da Charge tally keys during capacity sampling
- 38341f2 Charge symbol comparisons; stop charging chop and chomp
- ad87184 Charge substitution output and template renders
- c94c304 Charge string work that never reaches method dispatch
- 6ec832a Charge string work at the shared paths, not the entrances
- 6a84747 Charge string character-set scans for the entries they compare
- 6457ebc Charge string bytes in ordered element comparisons
- 20787e7 Charge string bytes at key-canonicalization sites
- f05ab3f Charge sort reads in batches from the comparator
- d2f344f Charge shared array keys per canonicalized occurrence
- 8356b56 Charge repeat branches and discard zero repeats
- bbe0e95 Charge regex flags before comparing them
- f202bb3 Charge receiver keys in typed hash copies
- b7a3a78 Charge receiver keys in the typed merge copy
- a376b85 Charge preprocessed arguments in full, and from one place
- 17c9f10 Charge operations whose output size is not bounded by their inputs
- 4354208 Charge only the completed prefix for failed key canonicalization
- a69b912 Charge one step per node when sizing a nested regex
- 35d7d72 Charge hash.map_with_index and transform_values for the results they keep (#1197)
- 3fbb400 Charge format's projected output and every direct-call argument
- c640e27 Charge format for its pattern and its hex inputs
- 4a812d9 Charge format conversions as they accumulate
- 6d552dd Charge every rendering site, not only inspect and puts
- a6a9d7b Charge each object wrapper and its published rendering
- 269963d Charge duplicate-scan candidates before rendering them
- 7d2b9e6 Charge conversions for what they add
- 1428cb1 Charge byteslice for the bytes it copies
- 4f30875 Charge block substitutions and serialized nested strings
- ade693b Charge block replacements as they are accepted
- 3d78a8c Charge and reserve the byteslice copy
- 49d6d2f Charge an argumentless difference for the copy it makes (#1189)
- 74605ea Charge adopted keys in hash.replace
- 5ad0960 Charge a predeclaration scan for the names it hashes
- 6649ef8 Charge a function value its captured environment
- 19c94f2 Charge a block for what its caller is still holding (#1187)
- 5a0c27f Charge Min copies for open-ended repeats
- 0616d4d Charge JSON output without projecting memory per value
- d52365e Charge JSON output built from literals, and parsing
- 7e0ebba Charge JSON output and compare strings in one pass
- a37bd7f Carry worker diagnostics through the trusted channel
- 0ab7fc9 Carry the equality byte remainder across comparisons
- 7643bad Carry the conversions into the render check
- 54990fd Carry the class-body marker through env clones
- b47fb25 Capture the shape-key-kind hint with the argument fact
- 53053ec Capture hints for statically expanded splat elements
- 5283025 Capture an absent hint rather than re-inferring it
- 49c5f77 Cap the digits a string conversion will parse
- f0d29d5 Cap sessions mode by hash-literal width
- fa8fb93 Cap comparison arguments at what the receiver can bound
- 7f3237f Calibrate the search timing test to the clock
- dc819f5 Cache object clones by map and tag
- 543a3af Build the rune table a prefix at a time too
- c823d09 Build the line index a prefix at a time
- 97ae24c Build the conversion bookkeeping at the first conversion
- eff068e Build hash literals without bumping the mutation epoch
- 4c11f65 Build each script's code frame index once
- 1e4583c Budget the typed destructure projection
- 743d0fb Budget the scan request against remaining quota
- b019239 Budget the regex cache by compiled program size
- d5ae9c1 Budget the destructure projection by type size
- 658c533 Bound two unmetered loops in eval (#1177)
- d7fe44e Bound the zero-width scan table by the memory quota
- 92978d4 Bound the traversal map a pooled context retains
- 8d6d617 Bound the summary yield walk and prove the mutator fact comparisons (#1195)
- 63697d9 Bound the speculative percent-array literal scan
- 78c984e Bound the scan match request by the memory quota
- 88cd389 Bound the runtime string hooks so precision formats do not materialize
- 319f150 Bound the rendering of a rejected Time.at unit
- ced3f87 Bound the reentrant ivar effect walk per walk, not per nesting level (#1192)
- 631cc05 Bound the namespace effect scan on self-invoking lambdas
- 68729fd Bound the module suggestion directory scans
- 38a2f74 Bound the length of an is_type? atom
- c3d199d Bound the copying a hash shape field write does (#1185)
- 02b951f Bound the comparison memo and reserve it once
- c9479f8 Bound the ambient builtin snapshot
- 36212d8 Bound live memory across a chain of nested tasks (#1196)
- 1b3196c Bound how long a script may sleep (#1180)
- f799b0b Bound how far the splat lookahead reads
- b9446c4 Bound how deeply string interpolations may nest
- cbd798c Bound how deeply parenless calls may nest
- b5dfa1c Bound how deep task jobs may nest on one goroutine (#1193)
- c7c7a9c Bound forwarded send-chain resolution depth
- ba01c98 Bind yielded contracts before the block runs
- 133e1de Bind the allocator rounder on set-op equality contexts
- d270c0f Bind exhaustion credentials to their execution
- c02b914 Bind contracts to the values a capability yields
- b972761 Bind contracts on builtins retained by capability blocks
- e597b87 Bind a minus before a numeric literal to the literal
- a1b015b Bill the mixed hash path by display work performed
- 227d9d2 Bill keys before sorting them, order the legacy value scan
- b424065 Bill index and rindex for what their guard admits
- 059c04b Bill an operand by what it renders, not by its kind
- 666cad3 Batch sub-granularity leaf charges across the equality walk
- cdaccc6 Avoid repeated instance ivar widening scans
- 2473611 Authenticate exhaustion across aggregate error trees
- 5322f77 Ask other groups before the releasing group's own queue
- 52c5b5a Apply the kind and length guards only where they hold
- 75c85fb Annotate the deliberately non-wrapping test error
- a53412c Annotate the deliberate manual unwrap walk
- f74c516 Align docs and capability proofs with the slim language (#1230)
- 3ac9bbe Advance the wakeup generation on repeat registrations
- 4d8aeb4 Adopt Cut, range-int loops, and drop dead loop-variable copies
- 3ef0ae1 Admit the memo against the caller's live roots
- 0a35220 Admit charged hash stores on the fallback's terms
- 1dca882 Address review: meter equality, keep sandbox errors, fix memoization
- f159db9 Add to_s and inspect to enum values
- 0d61c20 Add the missing to_s and inspect members
- fc42acc Add the loop-growth changelog entry
- b61d8b7 Add changelog fragment for unknown-member checking
- a008d6b Add changelog fragment for to_s and inspect coverage
- 877ab3a Add changelog fragment for the unknown-member fixes
- ce9e13b Add changelog fragment for the teaching diagnostics
- 71e2b03 Add changelog fragment for the string-form gate
- 68ab14d Add changelog fragment for the spaced-paren diagnostic
- 28669d9 Add changelog fragment for the quoted hash key docs fix
- fa55c03 Add changelog fragment for the match data key removal
- c6b06d8 Add changelog fragment for the implicit to_s boundary
- 638358a Add changelog fragment for the format detection scan
- 3cc4e27 Add changelog fragment for the enum rendering guard
- 4e37fdc Add changelog fragment for the conversion digit cap
- d7ea6e3 Add changelog fragment for the checker string repetition fix
- e42d9b4 Add changelog fragment for the break diagnostic
- 795cca4 Add changelog fragment for the JSON key note
- 57022f1 Add changelog fragment for the Hash#map fixes
- 2fcdab2 Add changelog fragment for task root-cause reporting
- 5d386af Add changelog fragment for symbol comparison checking
- 2c12c4f Add changelog fragment for scalar comparison coverage
- 93aa619 Add changelog fragment for rescued error rendering
- 8f425c5 Add changelog fragment for parenthesised assert
- 1157b00 Add changelog fragment for nested eql? strictness
- af1d0b9 Add changelog fragment for named captures
- 1bf1e7a Add changelog fragment for integer string parsing
- 64dc009 Add changelog fragment for instance to_s dispatch
- 9e416db Add changelog fragment for format to_s
- 2c8edd9 Add changelog fragment for duplicate named captures
- b3d3178 Add changelog fragment for diagnostic deduplication
- e653f14 Add changelog fragment for comparison error positioning
- 2677e59 Add changelog fragment for break in blocks
- da048b7 Add changelog fragment for array comparison metering
- 556a12f Add changelog fragment for array comparison
- f311c86 Add changelog fragment for absorbed break validation
- bf55756 Add changelog fragment for Hash#map
- 3de020d Add changelog entry for the percent scan budget
- 40e88e6 Add changelog entries for the clone and adoption budgets
- 5b003e2 Add a just deadcode recipe (#1218)
- 144ec50 Add a changelog entry for the character-set scan charge
- bc8b36c Add String#* for string repetition
- c19ca17 Add Hash#map
- c458bd5 Add Array#flat_map
- 1420a52 Abort metered key sorts when their charge fails