|
29 | 29 | - cd(), pwd(), which(), readFile(), writeFile(), exit() builtins |
30 | 30 | - Auto-exec mode for bare commands; directory-aware prompt |
31 | 31 | - 86 passing tests, bsh.elf cross-compiles to 303KB |
32 | | -- **Phase 4**: IN PROGRESS -- Async/await (Promises, event loop) |
| 32 | +- **Phase 4**: COMPLETE (PRs #194-195) -- Async/await (Promises, event loop) |
33 | 33 | - Promise object: PromiseState (Fulfilled/Rejected/Pending), ObjectKind::Promise |
34 | | - - Promise.resolve(), Promise.reject(), Promise.all() as native functions |
| 34 | + - Promise.resolve(), Promise.reject(), Promise.all(), Promise.race(), Promise.allSettled() |
35 | 35 | - Await opcode: extracts fulfilled value, throws on rejected, passes through non-promises |
36 | 36 | - .then()/.catch()/.finally() built-in methods on Promise objects |
37 | 37 | - Persistent globals with cross-pool property re-keying for Promise global |
38 | | - - 94 passing tests, bsh.elf includes Promise builtins |
39 | | -- **Phase 5**: IN PROGRESS -- Full shell experience |
| 38 | + - Async function declarations and async arrow functions |
| 39 | + - WrapPromise opcode for implicit Promise wrapping |
| 40 | + - pipe() native function for pipeline execution |
| 41 | + - 102 passing tests |
| 42 | +- **Phase 5**: COMPLETE (PRs #196-201) -- Full shell experience |
40 | 43 | - JSON.parse/JSON.stringify with recursive descent JSON parser |
41 | 44 | - Math object: floor, ceil, round, abs, min, max, pow, sqrt, random, log, trunc, PI, E |
42 | 45 | - Number object: isInteger, isFinite, isNaN, parseInt, parseFloat |
|
60 | 63 | - Map and Set collections with full method support (get/set/has/delete/size/clear/keys/values/forEach) |
61 | 64 | - do...while loops with continue fix (deferred forward-jump patching) |
62 | 65 | - 182 passing tests, bsh v0.5.0 with full shell builtins |
63 | | -- **Phase 6**: PLANNED -- Advanced features (class, Proxy, JIT) |
| 66 | + - CI: ecosystem-tests job runs all 182 tests in GitHub Actions (PR #201) |
| 67 | + - aarch64: libbreenix-libc provides environ/pow/log for cross-compilation (PR #202) |
| 68 | + - **Default shell**: init.rs and telnetd.rs launch /bin/bsh instead of /bin/init_shell |
| 69 | +- **Phase 6**: PLANNED -- Advanced features (class, regex, modules, Proxy, JIT) |
64 | 70 |
|
65 | 71 | ## Architecture |
66 | 72 |
|
|
0 commit comments