summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* First cut function ptr typeCliff Click2025-01-155-5/+144
|
* Initial pushCliff Click2025-01-1593-0/+14891
|
* Missing xScopes pushCliff Click2024-11-231-0/+2
|
* Replace loop finding with official algoCliff Click2024-11-2310-104/+85
| | | | Remove old fixLoops, walkInfinite.
* Fix transpiler / ignore not understood test resultsCliff Click2024-11-232-3/+3
|
* Assignment bugsCliff Click2024-11-237-116/+199
| | | | Restructure parsing declarations from assignments; allow assignments almost anywhere as a normal expression.
* Stronger requirement on new type nameCliff Click2024-11-232-12/+14
|
* Straighten out nested forward ref type errorsCliff Click2024-11-232-17/+33
|
* Error on ambiguous -- parseCliff Click2024-11-233-8/+6
| | | | `i -- i` now errors instead of (sometimes) parsing as `i - -i`
* Fix 2 small bugsCliff Click2024-11-233-2/+29
|
* Update README.mdCliff Click2024-11-231-2/+2
|
* Fix spacing readmeCliff Click2024-11-231-6/+8
|
* Update README.mdCliff Click2024-11-231-6/+7
|
* More READMECliff Click2024-11-231-6/+16
|
* more readmeCliff Click2024-11-231-8/+4
|
* Top level readmeCliff Click2024-11-231-4/+3
|
* Allow oper-assign, += -= etcCliff Click2024-11-233-21/+64
|
* Bug fix loop depth on infinite split-tail loopsCliff Click2024-11-233-73/+9
|
* Minor inf loop fixCliff Click2024-11-233-15/+6
|
* Final? pass of finalsCliff Click2024-11-2326-215/+426
| | | | | | | Add a least-upper-bound to set Phis to their respective Top while preserving final fields. Requires a ReadOnly node to "cast-away-writable". Series of isFinal/makeRO in all Types. Changes tests to match r/w intent.
* commentsCliff Click2024-11-232-2/+3
|
* Allow pre-inc/dec on variablesCliff Click2024-11-238-32/+63
|
* Allow C-style for loopsCliff Click2024-11-234-47/+199
|
* Much more robust guarded expression upcastingCliff Click2024-11-2317-122/+187
| | | | | Region does not print id, making all test cases much more stable (and slightly weaker). NotNode gets more precise compute
* Change field mutabilityCliff Click2024-11-2319-95/+365
| | | | | | | | Fields & locals with an initializer are immutable by default; those without are mutable. Make mutable with `!`. Fields are always mutable in a constructor. Add a trinary `pred ? then : else` syntax. SubNode retains as much precision as AddNode. Sharpen some asserts and error cases. Limit Load node cloning if the ptr is not obvious.
* some docsCliff Click2024-11-232-3/+24
|
* var/valCliff Click2024-11-235-30/+94
|
* Support post ++ on arrays and structsCliff Click2024-11-233-14/+67
|
* Missed oneCliff Click2024-11-231-1/+1
|
* Allow post ++, --Cliff Click2024-11-2334-158/+194
| | | | | | | | | | Fix eval auto-string result. Fix tests hacked because of this. Turn on BrainFuck in ch15,16,17, also disabled because of this. Use new features in BrainFuck. Fix bug not lifting forward refs; add a toString to Vars. Fix some missing addDeps. Remove large complex not-productive peep. Upcast after "while" tests. Improves a bunch of tests. Remove dead getBlockStart.
* Some ideas on functionsCliff Click2024-11-231-0/+59
|
* Initial pushCliff Click2024-11-2393-1/+13878
|
* transpile-tests: improve parsing of evaluator assertions and update RustPrinterRobert Obkircher2024-11-164-30/+65
|
* extra description to ch9 gvn graphTamas Hadhazy2024-11-011-0/+3
|
* Link to linear history and tag chaptersThalia Archibald2024-10-2318-2/+44
|
* fix typo ch6Tamas Hadhazy2024-10-231-1/+1
|
* Fixes in GCMCliff Click2024-10-232-6/+7
| | | | Several incorrect tests meant not late-scheduling many nodes, which instead lived with the sub-optimal early schedule
* Minor README comment changesCliff Click2024-10-212-2/+7
|
* Minor progress fixCliff Click2024-10-211-1/+1
|
* minor README fixsCliff Click2024-10-211-5/+5
|
* Turn on continuous random fuzzer testingCliff Click2024-10-211-1/+1
|
* ch 16 READMECliff Click2024-10-212-0/+133
|
* review comment fixesCliff Click2024-10-215-91/+110
| | | | | TODO for GraphViz Remove dead code
* Remove unneeded cutout testCliff Click2024-10-212-4/+3
|
* Parsing dead field expressionsCliff Click2024-10-219-39/+49
| | | | | | | `null` is a constant; "if(null)" will collapse. Phi w/mem keep mem even when dead. Load handles dead mem. static class Var
* Bunch of fuzzer fixesCliff Click2024-10-2111-19/+69
| | | | | | Mostly minor progress. Lost? shl/shr/sar high-type fixes. Turn off some printing crept back in
* fuzzer bug fixesCliff Click2024-10-2115-35/+163
| | | | | | | ignore temps made during constructing and/or/xor honor TypeInteger.TOP; TypeInteger.nonZero works with zero NotNode keeps precision. Scope lazy phis of narrow ints auto-widen
* Missing init-store-after-new optCliff Click2024-10-214-16/+40
|
* Constructors workingCliff Click2024-10-2132-458/+826
| | | | | | | | | Replace ArrayList with Ary, because no "setLength" in ArrayList and "size" is private so I cannot even override. Replace Utils.find with Ary.find. Split Scope into Scope and ScopeMin (bad name). Memory edges go in ScopeMin, and it is pointed at from Scope.mem(). This lets us lazily add memory edges without interleaving them through other non-memory aliases, which was breaking all sorts of parser invariants. ScopeMin aliases are added lazily. Scope & ScopeMin now use an array-of-Var structs instead of a struct-of-arrays.
* ConstructorsCliff Click2024-10-2112-138/+279
| | | | | | | | Missing arrays yet. Allow constructor syntax in 2 parts; the type description and at the New. must-init fields (final and not-null) have to be initialized in at least one of the two places; finals must be initialized exactly once. Any code is allowed in the constructors.