diff options
Diffstat (limited to 'TODO.md')
| -rw-r--r-- | TODO.md | 66 |
1 files changed, 66 insertions, 0 deletions
@@ -0,0 +1,66 @@ +- [x] read the compiler, runtime, vm cores, language server, and build tools. +- [x] verify formatted markdown and code in vs code hovers, including bundled server builds. +- [x] add mandatory documentation for every built-in type. +- [x] use `/* ... */` comments as documentation, including comments for individual variables and arguments on the same line. +- [x] run focused tests between changes and avoid repeating the full suite. +- [x] check every core source file through the lsp document protocol with its expected source dependencies; reproduce and fix editor diagnostics, including those in `src/compiler/compiler.zc`. +- [x] rename current i/o and string helpers consistently, including `puts` → `put_s`, `putn` → `put_n`, and `scat` → `cat_s`; update compiler references, examples, tests, and documentation. +- [x] review passing a temporary owned return to an output function; preserve the restriction if it is needed for lifetime safety, otherwise fix it with regression coverage. +- [x] draft `docs/BORROW.md` with a concrete plan for a less intrusive borrow checker and lifetime analyzer. +- [x] grow collector mark work without losing pending objects or counting compiler storage as user objects on the default map. +- [x] verify more than 64 generic declarations, more than 128 instantiations, more than 32 captures, and more than 8 nested closures on the default map. +- [x] move source files into appropriate subdirectories of `src/`, tests into subdirectories of `tests/`, and documentation and designs into `docs/`. +- [x] consolidate windows build, run, and test entry points into one interactive `tinyvm.bat`. +- [x] add a matching interactive `tinyvm.sh` for linux, with direct command mode. +- [x] remove stale planning references from current documentation and code. +- [x] consolidate useful memory-limit information, then remove `CEILINGS.md` if redundant. +- [x] reject stale lsp diagnostics after closing and reopening a document. +- [x] make raw native stack picks obey the same address bounds as the portable backends. +- [x] show array, pointer, struct, enum, alias, and function types in hover previews. +- [x] show inferred types for untyped variables, function returns, arguments, and other inferred declarations. +- [x] verify inference for 600 functions and 5000 locals without silently dropping later edits. +- [x] grow stable frame segments and preserve older local addresses through collection on native, microcore, and javascript. +- [x] verify stable frame growth with llvm 23 and fix the macos libc helper-name conflict. +- [x] inventory fixed addresses and capacities across native, microcore, javascript, and lsp backends in docs/design/memory.md. +- [x] grow execution data and return stacks on native, microcore, and javascript, with explicit runtime reservations and collection after relocation. +- [x] verify operand and return stack growth on llvm and check invalid requests and denied growth without corrupting the vm. +- [x] repeat growth checks on a small generated map. +- [x] verify growing frames on small generated maps. +- [x] preserve all generic parameter names and inference state across nested compilation; infer later function arguments. +- [x] grow assembly and remaining parser scratch storage. +- [x] preserve long lsp request identifiers, grow json and header scratch buffers, and reset tagged-enum records between document checks. +- [x] grow image-building output independently of the building host’s genome slot while preserving logical image addresses. +- [x] grow native code-address metadata and preserve warm calls and invalidation after bulk rewrites. +- [x] restore missing javascript float opcodes and binary32 conversions, then compare focused arithmetic and formatting tests across backends. +- [x] grow program emission and image-building capacity without relocating live code or globals. +- [x] correct the lexer’s float-buffer load and read long float spellings without clipping their exponents. +- [x] point documented image boot headers at the symbol table after packed documentation. +- [x] polish the learning guide and verify its examples against their documented output. +- [x] fix reproducible bugs and apply useful optimizations with regression coverage. +- [x] support build-time adjustment through a consistent generated layout. +- [x] finish growing all compiler tables and execution stacks during execution, preserving live references; heap growth alone does not satisfy this requirement. +- [x] test changed limits, memory growth, invalid configurations, and agreement between image and host layout. +- [x] document available controls and any remaining fixed constraints precisely. +- [x] update builds, runners, editor bundles, tests, and links for the new paths, keeping the repository root focused on entry points. +- [x] preserve useful commands, propagate failures, and handle paths containing spaces. +- [x] verify runner behavior on available hosts and document untested platform behavior. +- [x] polish the learning guide and reference documentation; keep examples executable. +- [x] replace obsolete build commands and distinguish current behavior from historical notes. +- [x] make comments consistent and keep section overviews separate from unrelated declarations. +- [x] keep documentation and comment prose lowercase, matching the older style; preserve case-sensitive code and identifiers. +- [x] preserve full 64-bit integer literals, including values outside the single-word literal format. +- [x] grow stage 0 source input and image output beyond their initial capacities. +- [x] execute javascript vm and micro enhancement recipes with the same slot and output rules as the native hosts. +- [x] add basic bounds and lifetime analysis that warns about provable out-of-bounds access and use after free. +- [x] test definite failures and safe cases so uncertain behavior does not produce a definite warning. +- [x] show known size and lifetime information when hovering over an array or pointer. +- [x] fix the macos first-call crash in native mutual o3 recursion and verify it with a focused regression. +- [x] preserve nonfatal bounds and lifetime warnings across native, microcore, javascript, and both extension hosts. +- [x] verify block documentation, inferred pointer types, and lifetime metadata in the real editor. +- [x] replace quadratic hint deduplication with a growing set and verify large javascript documents. +- [x] make compact compiler maps grow past startup pressure and update obsolete fixed-limit test expectations. +- [x] fix darwin stdio variadic argument placement exposed by native integration tests. +- [x] index local names and preserve shadow chains to avoid rescanning all earlier locals. +- [ ] keep cast bounds conservative and infer aggregate aliases as pointers to their stored addresses. +- [ ] allow run-only heaps to grow and separate freestanding physical backing from logical vm limits. +- [ ] complete final integration checks and refresh generated editor artifacts after the final fixes. |
