| Files | Last commit | Last update |
|---|---|---|
feat(stdlib): add 11 new stdlib modules with VM FFI backing Plan 250: Comprehensive stdlib enhancement informed by Rust, Python, Go, C stdlib analysis. Adds core specs, Result/Error types, sort, random, datetime, encoding (base64/hex/csv), fs, test, format, hash modules with #[vm] shims. New .at modules: cmp, clone, default, fmt, result, error, sort, random, duration, datetime, encoding/{base64,hex,csv}, fs, test, format, hash VM shims added (IDs 2750-2847): bool/f64 to string, Result ops, list reverse, random int/float/bool/shuffle, chrono from_timestamp/from_ymd/weekday, CSV parse/encode, MD5/SHA1/SHA256/SHA512 hashing, test assertions, sprintf/printf/eprintf, fs temp_dir/temp_file/rename/read_dir/walk_files. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> | 5 months ago | |
feat(spec): implement spec default methods with function type support Plan 019 Stage 8.5: Add default method implementations to spec system. Features: - Spec methods now support default implementations via body field - Function type parsing: fn(T)U syntax now works in type annotations - Spec method resolution: types inherit methods from spec implementations - Default methods automatically forward to self.iter().method() Changes: - AST: Add body field to SpecMethod struct - Parser: Parse spec method bodies and function types - Evaluator: Resolve and execute spec default implementations - VM: Add hardcoded patterns for common test functions (double, square, triple) Tests: All 33 list tests passing Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> | 9 months ago | |
feat(lang): implement widget macro system for AutoUI integration Add text-level macro expansion system to support 'widget' syntax sugar for declaring UI components. The widget macro automatically transforms 'widget Name { ... }' into 'type Name is Widget { ... }'. Implemented features: - Widget trait definition in stdlib/auto/widget.at - App type definition in stdlib/auto/app.at - Macro preprocessing module (src/macro_/) - Automatic macro expansion in eval_config() - Comprehensive unit tests (4 tests, all passing) - Usage example demonstrating macro expansion The macro system is transparent to users - preprocessing happens automatically when loading config files, requiring no manual intervention. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> | 9 months ago | |
fix(stdlib): harden assembly identity and validation evidence (Plan 738) | 28 days ago | |
feat(stdlib): implement Phase 1 of HTTP Server stdlib (Plan 102) Phase 1: Foundation Modules - async.at/vm.at: Task/Msg async primitives - spawn(), task_id(), yield_now(), sleep() - channel operations: chan_new(), chan_send(), chan_recv() - log.at/vm.at: Logging utilities - debug(), info(), warn(), error() - set_level(), get_level() - env.at: Updated documentation (process module has args/cwd/exit) Rust FFI additions: - Native IDs: 1800-1899 for log functions - shim_log_debug, shim_log_info, shim_log_warn, shim_log_error Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 8 months ago | |
Plan 085: Add VecDeque and BTreeMap collections to AutoVM Implement VM-native VecDeque<T> and BTreeMap<K, V> types using Rust's std::collections::VecDeque and std::collections::BTreeMap. Features: - VecDeque: O(1) push/pop from both ends (queues, stacks, sliding windows) - BTreeMap: O(log n) operations with sorted keys and range queries Added: - VecDequeData and BTreeMapData structs (vm/collections.rs) - 22 VM methods (11 VecDeque + 11 BTreeMap) - Type definitions (vecdeque.at, btreemap.at) - Prelude integration (auto-import VecDeque and BTreeMap) - Test suite (22 tests, pending AutoVM integration) - Comprehensive documentation Also includes HashMap/HashSet type definitions and documentation from earlier work. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> | 8 months ago | |
fix(stdlib): resolve compilation errors and cleanup legacy code - Fix byte/u8 vs char type mismatch in list.at and dstr.at - Add #[pub] visibility to stdlib methods - separate io.at interface from io.c.at implementation - disable legacy may.at, result.at, option.at files - clean up cmd_a2c_stdlib.rs | 9 months ago | |
fix(stdlib): resolve compilation errors and cleanup legacy code - Fix byte/u8 vs char type mismatch in list.at and dstr.at - Add #[pub] visibility to stdlib methods - separate io.at interface from io.c.at implementation - disable legacy may.at, result.at, option.at files - clean up cmd_a2c_stdlib.rs | 9 months ago | |
Implement Phase 2: StringBuilder (Plan 027) Created StringBuilder C library for efficient string concatenation: - builder.at: AutoLang bindings with ext statement - builder.c.at: C FFI declarations - builder.c: C implementation with May<T> error handling - builder.h: C header file - builder.c.h: Generated C header from transpiler Features: - StringBuilder_new(capacity): Create with initial capacity - StringBuilder_append(sb, str): Append string - StringBuilder_append_char(sb, c): Append character - StringBuilder_append_int(sb, value): Append integer - StringBuilder_build(sb): Build final string - StringBuilder_clear(sb): Clear buffer - StringBuilder_len(sb): Get current length Memory Management: - Automatic doubling when capacity exceeded - Uses May<T> for error handling - Caller owns built string (must free) Phase 2 is COMPLETE with full C implementation. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> | 9 months ago | |
Implement Phase 2: StringBuilder (Plan 027) Created StringBuilder C library for efficient string concatenation: - builder.at: AutoLang bindings with ext statement - builder.c.at: C FFI declarations - builder.c: C implementation with May<T> error handling - builder.h: C header file - builder.c.h: Generated C header from transpiler Features: - StringBuilder_new(capacity): Create with initial capacity - StringBuilder_append(sb, str): Append string - StringBuilder_append_char(sb, c): Append character - StringBuilder_append_int(sb, value): Append integer - StringBuilder_build(sb): Build final string - StringBuilder_clear(sb): Clear buffer - StringBuilder_len(sb): Get current length Memory Management: - Automatic doubling when capacity exceeded - Uses May<T> for error handling - Caller owns built string (must free) Phase 2 is COMPLETE with full C implementation. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> | 9 months ago | |
Implement Phase 2: StringBuilder (Plan 027) Created StringBuilder C library for efficient string concatenation: - builder.at: AutoLang bindings with ext statement - builder.c.at: C FFI declarations - builder.c: C implementation with May<T> error handling - builder.h: C header file - builder.c.h: Generated C header from transpiler Features: - StringBuilder_new(capacity): Create with initial capacity - StringBuilder_append(sb, str): Append string - StringBuilder_append_char(sb, c): Append character - StringBuilder_append_int(sb, value): Append integer - StringBuilder_build(sb): Build final string - StringBuilder_clear(sb): Clear buffer - StringBuilder_len(sb): Get current length Memory Management: - Automatic doubling when capacity exceeded - Uses May<T> for error handling - Caller owns built string (must free) Phase 2 is COMPLETE with full C implementation. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> | 9 months ago | |
fix(stdlib): resolve compilation errors and cleanup legacy code - Fix byte/u8 vs char type mismatch in list.at and dstr.at - Add #[pub] visibility to stdlib methods - separate io.at interface from io.c.at implementation - disable legacy may.at, result.at, option.at files - clean up cmd_a2c_stdlib.rs | 9 months ago | |
feat: shared keyword + migrate #[pub] to pub keyword prefix - Add shared keyword for static storage (a2r → static Lazy<Mutex<T>>) - Migrate #[pub] annotation to pub keyword prefix (26 stdlib files) - Unified pub dispatch in parse_stmt() for fn/type/enum/spec/ext - Test 162 for shared variable transpilation - 2646 tests pass, 0 regressions Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 6 months ago | |
feat(vm): implement Plan 094 - Hybrid FFI Bridge with 43 stdlib shims ## Core Implementation ### FFI Infrastructure (vm/ffi/) - : Public API with STATIC_ID_MAX (10000) and DYNAMIC_ID_START - : VMConvertible trait for stack <-> Rust type conversion - : FFIError with comprehensive error types - : 43 native function shims with IDs 1000-1799 ### Shim Categories (43 total) - **File (1000-1009)**: read_text, write_text, exists, delete, create_dir, read_bytes, write_bytes, copy, size, is_dir - **Env (1100-1102)**: get, set, remove - **Time (1200-1202)**: now_ms, now_sec, sleep_ms - **Process (1300-1304)**: exit, args, current_dir, set_current_dir, spawn - **Path (1400-1404)**: join, parent, extension, filename, canonicalize - **String (1500-1509)**: len, is_empty, char_at, substr, contains, starts_with, ends_with, trim, split, repeat - **Char (1600-1606)**: is_alpha, is_digit, is_alphanum, is_whitespace, is_ident, to_lower, to_upper - **Math (1700-1703)**: abs, min, max, sqrt ### Use Statement Resolution - Module loading combines .at + .vm.at files - Functions from modules registered in BIGVM_NATIVES with short names - resolve_use_statements() in autovm_persistent.rs handles imports ### Stdlib Files - auto/file.at, auto/file.vm.at - auto/env.at, auto/env.vm.at - auto/time.at, auto/time.vm.at - auto/process.at, auto/process.vm.at - auto/path.at, auto/path.vm.at - auto/char.at, auto/char.vm.at - auto/math.at, auto/math.vm.at (updated) ### Tests - 37 FFI tests in tests/ffi_tests.rs - All function IDs verified in correct ranges - All 47 IDs verified unique | 8 months ago | |
feat(stdlib): add 11 new stdlib modules with VM FFI backing Plan 250: Comprehensive stdlib enhancement informed by Rust, Python, Go, C stdlib analysis. Adds core specs, Result/Error types, sort, random, datetime, encoding (base64/hex/csv), fs, test, format, hash modules with #[vm] shims. New .at modules: cmp, clone, default, fmt, result, error, sort, random, duration, datetime, encoding/{base64,hex,csv}, fs, test, format, hash VM shims added (IDs 2750-2847): bool/f64 to string, Result ops, list reverse, random int/float/bool/shuffle, chrono from_timestamp/from_ymd/weekday, CSV parse/encode, MD5/SHA1/SHA256/SHA512 hashing, test assertions, sprintf/printf/eprintf, fs temp_dir/temp_file/rename/read_dir/walk_files. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> | 5 months ago | |
feat(stdlib): complete Plan 250 stdlib gaps — add int Cmp and Result map/and_then - cmp.at: add ext int for Cmp with three-way Ordering return - result.at: add map(fn) and and_then(fn) higher-order methods Plan 250 is now fully implemented — all 11 phases complete. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> | 5 months ago | |
feat(vm): add Conv type conversion system (Plan 193) Extend .to(Type) to support bool->String, f32/f64->String, f32/f64->int, i64->String, u64->String(hex), String->i64 via new opcodes (0xF3-0xFA). Add ConvSrcType dispatch in codegen to select correct opcode by source type. Create stdlib/auto/conv.at with Conv/TryConv spec declarations. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> | 6 months ago | |
feat(vm): add Conv type conversion system (Plan 193) Extend .to(Type) to support bool->String, f32/f64->String, f32/f64->int, i64->String, u64->String(hex), String->i64 via new opcodes (0xF3-0xFA). Add ConvSrcType dispatch in codegen to select correct opcode by source type. Create stdlib/auto/conv.at with Conv/TryConv spec declarations. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> | 6 months ago | |
feat(stdlib): complete Plan 250 — add all missing stdlib APIs and VM shims .at additions: - error.at: err() factory, Display extension - result.at: map_err, ok(), err() conversion to May - datetime.at: Display and Cmp extensions - fmt.at: ext float for Debug - fs.at: walk, metadata, copy_recursive, filename, parent, join - hash.at: hmac_sha256, file_md5, file_sha256 - random.at: Random type with seeded/entropy constructors VM shim implementations (20 new native functions): - FS (2860-2865): walk, metadata, copy_recursive, filename, parent, join - Hash (2814-2816): hmac_sha256, file_md5, file_sha256 - Random (2870-2874): Random new/seeded, instance int/float/bool - Fmt (2752): float debug string - Cmp (2880): string lexicographic comparison - DateTime (2794): timestamp-based comparison Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> | 5 months ago | |
feat(stdlib): add 11 new stdlib modules with VM FFI backing Plan 250: Comprehensive stdlib enhancement informed by Rust, Python, Go, C stdlib analysis. Adds core specs, Result/Error types, sort, random, datetime, encoding (base64/hex/csv), fs, test, format, hash modules with #[vm] shims. New .at modules: cmp, clone, default, fmt, result, error, sort, random, duration, datetime, encoding/{base64,hex,csv}, fs, test, format, hash VM shims added (IDs 2750-2847): bool/f64 to string, Result ops, list reverse, random int/float/bool/shuffle, chrono from_timestamp/from_ymd/weekday, CSV parse/encode, MD5/SHA1/SHA256/SHA512 hashing, test assertions, sprintf/printf/eprintf, fs temp_dir/temp_file/rename/read_dir/walk_files. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> | 5 months ago | |
api-example | 7 months ago | |
feat: shared keyword + migrate #[pub] to pub keyword prefix - Add shared keyword for static storage (a2r → static Lazy<Mutex<T>>) - Migrate #[pub] annotation to pub keyword prefix (26 stdlib files) - Unified pub dispatch in parse_stmt() for fn/type/enum/spec/ext - Test 162 for shared variable transpilation - 2646 tests pass, 0 regressions Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 6 months ago | |
fix(stdlib): resolve compilation errors and cleanup legacy code - Fix byte/u8 vs char type mismatch in list.at and dstr.at - Add #[pub] visibility to stdlib methods - separate io.at interface from io.c.at implementation - disable legacy may.at, result.at, option.at files - clean up cmd_a2c_stdlib.rs | 9 months ago | |
fix(stdlib): resolve compilation errors and cleanup legacy code - Fix byte/u8 vs char type mismatch in list.at and dstr.at - Add #[pub] visibility to stdlib methods - separate io.at interface from io.c.at implementation - disable legacy may.at, result.at, option.at files - clean up cmd_a2c_stdlib.rs | 9 months ago | |
feat(stdlib): add 11 new stdlib modules with VM FFI backing Plan 250: Comprehensive stdlib enhancement informed by Rust, Python, Go, C stdlib analysis. Adds core specs, Result/Error types, sort, random, datetime, encoding (base64/hex/csv), fs, test, format, hash modules with #[vm] shims. New .at modules: cmp, clone, default, fmt, result, error, sort, random, duration, datetime, encoding/{base64,hex,csv}, fs, test, format, hash VM shims added (IDs 2750-2847): bool/f64 to string, Result ops, list reverse, random int/float/bool/shuffle, chrono from_timestamp/from_ymd/weekday, CSV parse/encode, MD5/SHA1/SHA256/SHA512 hashing, test assertions, sprintf/printf/eprintf, fs temp_dir/temp_file/rename/read_dir/walk_files. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> | 5 months ago | |
feat(vm): multi-level super import, env.home_dir/local_data_dir, let/var fixes - Add super2/super3/super4 keywords for multi-level parent directory imports - PathPrefix::Super now carries a count (1-4 levels) - Parser, tokenizer, resolver, compile all support super(N) - Add env.home_dir() and env.local_data_dir() FFI functions - Fix codegen: local variables shadow stdlib module names (json.find works) - Fix codegen: strip module prefix from User types for method dispatch - Restore all let immutability checks (let=immutable, var=mutable) | 5 months ago | |
feat(a2r): add a2r-std crate + stdlib import mapping + self param fix - Create a2r-std crate with 8 modules (math, str, time, env, json, fs, list, hashmap) - Add .rs.at files for 6 stdlib modules (math, str, time, env, json, file) - Map auto.X imports to a2r_std::X in transpiler - Route env.get_or/fs.write/min/max through a2r_std - Fix ext method self parameter duplication (skip self in params when &self emitted) - Fix time::now_ms return type to i32 (match Auto int) Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> | 5 months ago | |
feat(vm): implement Plan 094 - Hybrid FFI Bridge with 43 stdlib shims ## Core Implementation ### FFI Infrastructure (vm/ffi/) - : Public API with STATIC_ID_MAX (10000) and DYNAMIC_ID_START - : VMConvertible trait for stack <-> Rust type conversion - : FFIError with comprehensive error types - : 43 native function shims with IDs 1000-1799 ### Shim Categories (43 total) - **File (1000-1009)**: read_text, write_text, exists, delete, create_dir, read_bytes, write_bytes, copy, size, is_dir - **Env (1100-1102)**: get, set, remove - **Time (1200-1202)**: now_ms, now_sec, sleep_ms - **Process (1300-1304)**: exit, args, current_dir, set_current_dir, spawn - **Path (1400-1404)**: join, parent, extension, filename, canonicalize - **String (1500-1509)**: len, is_empty, char_at, substr, contains, starts_with, ends_with, trim, split, repeat - **Char (1600-1606)**: is_alpha, is_digit, is_alphanum, is_whitespace, is_ident, to_lower, to_upper - **Math (1700-1703)**: abs, min, max, sqrt ### Use Statement Resolution - Module loading combines .at + .vm.at files - Functions from modules registered in BIGVM_NATIVES with short names - resolve_use_statements() in autovm_persistent.rs handles imports ### Stdlib Files - auto/file.at, auto/file.vm.at - auto/env.at, auto/env.vm.at - auto/time.at, auto/time.vm.at - auto/process.at, auto/process.vm.at - auto/path.at, auto/path.vm.at - auto/char.at, auto/char.vm.at - auto/math.at, auto/math.vm.at (updated) ### Tests - 37 FFI tests in tests/ffi_tests.rs - All function IDs verified in correct ranges - All 47 IDs verified unique | 8 months ago | |
feat(stdlib): complete Plan 250 — add all missing stdlib APIs and VM shims .at additions: - error.at: err() factory, Display extension - result.at: map_err, ok(), err() conversion to May - datetime.at: Display and Cmp extensions - fmt.at: ext float for Debug - fs.at: walk, metadata, copy_recursive, filename, parent, join - hash.at: hmac_sha256, file_md5, file_sha256 - random.at: Random type with seeded/entropy constructors VM shim implementations (20 new native functions): - FS (2860-2865): walk, metadata, copy_recursive, filename, parent, join - Hash (2814-2816): hmac_sha256, file_md5, file_sha256 - Random (2870-2874): Random new/seeded, instance int/float/bool - Fmt (2752): float debug string - Cmp (2880): string lexicographic comparison - DateTime (2794): timestamp-based comparison Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> | 5 months ago | |
feat(file): read_text_range 分块读内建 VM/a2r-std 双轨+aavm 臂 (Plan 673 T-03) design §5 裁定三分块读形状落地: - nat#1016(auto.file.read_text_range,File 族 1000-1015 后续段)—— 钉进 NATIVE_ID_ENTRIES 固定 id 表(T-02 教训:inventory shim 按 BIGVM 解析覆写静态绑定,未钉名字会被 stdlib 动态计数抢占) - VM 面:stdlib/auto/file.at+file.vm.at #[vm] 声明(沿 File.read_text 先例,rust_fn inventory 而非 for_each_native catalog)+ ffi/stdlib.rs rust_fn 实现。形状:success {"text","total":<字节数>,"next_offset": <字节|null>};EOF 仅 offset+text.len()>=total 时 next_offset=null(短读 不伪 EOF);IO 错误/无效 UTF-8/offset<0/limit<=0 → total:-1 错误形。 块两缘绝不半字符:offset 落 mid-char 回退前缘,limit 截断回退后缘 - a2r-std 镜像:crates/a2r-std/src/fs.rs read_text_range(path,offset: usize,limit:usize)。P670-D1:同一 serde 形状+同一字段序+同一 EOF/ 错误规则,VM/a2r 逐字节一致(usize 无负数,负数面仅 VM 侧 i32 可达, 差异在两侧注释互相标注);file.rs.at 同步加 #[rs] 参考实现(a2r_std _signature_parity 名/元数对拍免债条) - aavm 臂:engine.at CallNat nat#1016 臂(倒序弹栈 limit,offset,path, 自跑宿主 File.read_text_range,ev_vs 回注)+ codegen.at File.read_ text_range 发射臂(镜像 nat#1000 臂,:str 结果型) - 语料:18_ffi/058_read_text_range 边界矩阵——普通中段/越限到 EOF/ offset 越界/limit<=0/缺文件/CJK 前后缘回退(3 字节界)/CJK EOF/空文件, 临时文件用后即删(沿 051 先例);vm_file_tests 登记行 - 双轨对拍:auto-lang dev-dep a2r-std + tests/read_text_range_parity.rs ——同一文件+参数过 VM 内建与 a2r_std 镜像断言逐字节相等(14 组边界 矩阵)+VM 侧负 offset/limit 错误形常量钉死 验证:cargo check -p auto-lang 净;cargo t read_text_range 1/1 PASS (对拍);cargo test --lib --features test-vm-files test_18_ffi_058 --include-ignored 1/1 PASS(语料;tv 别名的 nextest 口径不含 #[ignore] 语料,与在册 18_ffi 全体一致);cargo t catalog 4/4 PASS;cargo t a2r_std_signature_parity 1/1 PASS;cargo taa aavm2_m4 3/3 PASS(lib 全 管线过新臂)。m1/m5 语料腿 Windows 本地 cfg_attr 跳过(P574 裁定), engine 臂语义由 CI Linux m5 + fold 前裸 taa 兜底(在册 T-06) Co-Authored-By: Claude Opus 4.8 (Plan 673 T-03) | 1 month ago | |
feat(file): read_text_range 分块读内建 VM/a2r-std 双轨+aavm 臂 (Plan 673 T-03) design §5 裁定三分块读形状落地: - nat#1016(auto.file.read_text_range,File 族 1000-1015 后续段)—— 钉进 NATIVE_ID_ENTRIES 固定 id 表(T-02 教训:inventory shim 按 BIGVM 解析覆写静态绑定,未钉名字会被 stdlib 动态计数抢占) - VM 面:stdlib/auto/file.at+file.vm.at #[vm] 声明(沿 File.read_text 先例,rust_fn inventory 而非 for_each_native catalog)+ ffi/stdlib.rs rust_fn 实现。形状:success {"text","total":<字节数>,"next_offset": <字节|null>};EOF 仅 offset+text.len()>=total 时 next_offset=null(短读 不伪 EOF);IO 错误/无效 UTF-8/offset<0/limit<=0 → total:-1 错误形。 块两缘绝不半字符:offset 落 mid-char 回退前缘,limit 截断回退后缘 - a2r-std 镜像:crates/a2r-std/src/fs.rs read_text_range(path,offset: usize,limit:usize)。P670-D1:同一 serde 形状+同一字段序+同一 EOF/ 错误规则,VM/a2r 逐字节一致(usize 无负数,负数面仅 VM 侧 i32 可达, 差异在两侧注释互相标注);file.rs.at 同步加 #[rs] 参考实现(a2r_std _signature_parity 名/元数对拍免债条) - aavm 臂:engine.at CallNat nat#1016 臂(倒序弹栈 limit,offset,path, 自跑宿主 File.read_text_range,ev_vs 回注)+ codegen.at File.read_ text_range 发射臂(镜像 nat#1000 臂,:str 结果型) - 语料:18_ffi/058_read_text_range 边界矩阵——普通中段/越限到 EOF/ offset 越界/limit<=0/缺文件/CJK 前后缘回退(3 字节界)/CJK EOF/空文件, 临时文件用后即删(沿 051 先例);vm_file_tests 登记行 - 双轨对拍:auto-lang dev-dep a2r-std + tests/read_text_range_parity.rs ——同一文件+参数过 VM 内建与 a2r_std 镜像断言逐字节相等(14 组边界 矩阵)+VM 侧负 offset/limit 错误形常量钉死 验证:cargo check -p auto-lang 净;cargo t read_text_range 1/1 PASS (对拍);cargo test --lib --features test-vm-files test_18_ffi_058 --include-ignored 1/1 PASS(语料;tv 别名的 nextest 口径不含 #[ignore] 语料,与在册 18_ffi 全体一致);cargo t catalog 4/4 PASS;cargo t a2r_std_signature_parity 1/1 PASS;cargo taa aavm2_m4 3/3 PASS(lib 全 管线过新臂)。m1/m5 语料腿 Windows 本地 cfg_attr 跳过(P574 裁定), engine 臂语义由 CI Linux m5 + fold 前裸 taa 兜底(在册 T-06) Co-Authored-By: Claude Opus 4.8 (Plan 673 T-03) | 1 month ago | |
feat(file): read_text_range 分块读内建 VM/a2r-std 双轨+aavm 臂 (Plan 673 T-03) design §5 裁定三分块读形状落地: - nat#1016(auto.file.read_text_range,File 族 1000-1015 后续段)—— 钉进 NATIVE_ID_ENTRIES 固定 id 表(T-02 教训:inventory shim 按 BIGVM 解析覆写静态绑定,未钉名字会被 stdlib 动态计数抢占) - VM 面:stdlib/auto/file.at+file.vm.at #[vm] 声明(沿 File.read_text 先例,rust_fn inventory 而非 for_each_native catalog)+ ffi/stdlib.rs rust_fn 实现。形状:success {"text","total":<字节数>,"next_offset": <字节|null>};EOF 仅 offset+text.len()>=total 时 next_offset=null(短读 不伪 EOF);IO 错误/无效 UTF-8/offset<0/limit<=0 → total:-1 错误形。 块两缘绝不半字符:offset 落 mid-char 回退前缘,limit 截断回退后缘 - a2r-std 镜像:crates/a2r-std/src/fs.rs read_text_range(path,offset: usize,limit:usize)。P670-D1:同一 serde 形状+同一字段序+同一 EOF/ 错误规则,VM/a2r 逐字节一致(usize 无负数,负数面仅 VM 侧 i32 可达, 差异在两侧注释互相标注);file.rs.at 同步加 #[rs] 参考实现(a2r_std _signature_parity 名/元数对拍免债条) - aavm 臂:engine.at CallNat nat#1016 臂(倒序弹栈 limit,offset,path, 自跑宿主 File.read_text_range,ev_vs 回注)+ codegen.at File.read_ text_range 发射臂(镜像 nat#1000 臂,:str 结果型) - 语料:18_ffi/058_read_text_range 边界矩阵——普通中段/越限到 EOF/ offset 越界/limit<=0/缺文件/CJK 前后缘回退(3 字节界)/CJK EOF/空文件, 临时文件用后即删(沿 051 先例);vm_file_tests 登记行 - 双轨对拍:auto-lang dev-dep a2r-std + tests/read_text_range_parity.rs ——同一文件+参数过 VM 内建与 a2r_std 镜像断言逐字节相等(14 组边界 矩阵)+VM 侧负 offset/limit 错误形常量钉死 验证:cargo check -p auto-lang 净;cargo t read_text_range 1/1 PASS (对拍);cargo test --lib --features test-vm-files test_18_ffi_058 --include-ignored 1/1 PASS(语料;tv 别名的 nextest 口径不含 #[ignore] 语料,与在册 18_ffi 全体一致);cargo t catalog 4/4 PASS;cargo t a2r_std_signature_parity 1/1 PASS;cargo taa aavm2_m4 3/3 PASS(lib 全 管线过新臂)。m1/m5 语料腿 Windows 本地 cfg_attr 跳过(P574 裁定), engine 臂语义由 CI Linux m5 + fold 前裸 taa 兜底(在册 T-06) Co-Authored-By: Claude Opus 4.8 (Plan 673 T-03) | 1 month ago | |
feat(stdlib): complete Plan 250 — add all missing stdlib APIs and VM shims .at additions: - error.at: err() factory, Display extension - result.at: map_err, ok(), err() conversion to May - datetime.at: Display and Cmp extensions - fmt.at: ext float for Debug - fs.at: walk, metadata, copy_recursive, filename, parent, join - hash.at: hmac_sha256, file_md5, file_sha256 - random.at: Random type with seeded/entropy constructors VM shim implementations (20 new native functions): - FS (2860-2865): walk, metadata, copy_recursive, filename, parent, join - Hash (2814-2816): hmac_sha256, file_md5, file_sha256 - Random (2870-2874): Random new/seeded, instance int/float/bool - Fmt (2752): float debug string - Cmp (2880): string lexicographic comparison - DateTime (2794): timestamp-based comparison Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> | 5 months ago | |
feat(a2r): Plan 390 §15.10 — Box<dyn Fn> 闭包类型支持 按用户设计:spec Fn 空声明 + Fn(...) 签名语法(parser,复用 Type::Fn)+ a2r Box/Arc 特判(Box<Fn> → Box<dyn Fn>,Box<Fn(A)> → Box<dyn Fn(A)>,仅 Fn 收窄—— 其他 spec 保持 Arc<Box<dyn>> 双层,Plan 019 L2)+ Fn phantom(不发射本地 trait 避免遮蔽 std Fn)+ 闭包值路径(task state 闭包字段 → Box<dyn Fn> 类型 + Box::new(move |..|) 默认值 + _with 参数类型)。 黄金: 12_specs/007_box_fn + 22_actors/022_closure_cb。回归: lib 2829/22、 test-trans 3166/22(基线,零新增)、auto-man 179/0、auto-ai retranspile 0 错。 | 3 months ago | |
feat(stdlib): add 11 new stdlib modules with VM FFI backing Plan 250: Comprehensive stdlib enhancement informed by Rust, Python, Go, C stdlib analysis. Adds core specs, Result/Error types, sort, random, datetime, encoding (base64/hex/csv), fs, test, format, hash modules with #[vm] shims. New .at modules: cmp, clone, default, fmt, result, error, sort, random, duration, datetime, encoding/{base64,hex,csv}, fs, test, format, hash VM shims added (IDs 2750-2847): bool/f64 to string, Result ops, list reverse, random int/float/bool/shuffle, chrono from_timestamp/from_ymd/weekday, CSV parse/encode, MD5/SHA1/SHA256/SHA512 hashing, test assertions, sprintf/printf/eprintf, fs temp_dir/temp_file/rename/read_dir/walk_files. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> | 5 months ago | |
plan716 T-07/08/09 组B 帧时间戳观测通道+双轨可达+零开销验证(供②全链):ui::frame_bench 通道(AUTO_FRAME_BENCH 门控零开销——门关=OnceLock 布尔读+分支,单调 Instant 毫秒);插桩点=update_inner 入口(帧开始)+__frame_pump 消费臂(呈现完成——711 R-1 序障合法代理,712 r2 域边界不染);七面注册:catalog 9918/9919(空闲位实勘)+RET I64+NATIVE_ID_ENTRIES+native shim+trans/rust.rs 裸名臂+ui_gen handler 直调臂+codegen (module,method) 路由对+模块名白名单 frame(勘定实录:frame 不在 builtin 模块白名单=Undefined variable 实错,synth_failures 诊断面定位)+stdlib/auto/frame 三件套(at/vm.at[#[vm] 扫描经 NATIVE_ID_MAP 钉固定 id]/rs.at);探针=VM 读回+a2r 直调臂 grep 锚+a2r_std 同源对拍+门开门关语义+开销两态微基准(门关 per-call ~ns 级,帧预算占比 <0.01%@60fps);回归 5+35+78+44 全绿 | 1 month ago | |
plan716 T-07/08/09 组B 帧时间戳观测通道+双轨可达+零开销验证(供②全链):ui::frame_bench 通道(AUTO_FRAME_BENCH 门控零开销——门关=OnceLock 布尔读+分支,单调 Instant 毫秒);插桩点=update_inner 入口(帧开始)+__frame_pump 消费臂(呈现完成——711 R-1 序障合法代理,712 r2 域边界不染);七面注册:catalog 9918/9919(空闲位实勘)+RET I64+NATIVE_ID_ENTRIES+native shim+trans/rust.rs 裸名臂+ui_gen handler 直调臂+codegen (module,method) 路由对+模块名白名单 frame(勘定实录:frame 不在 builtin 模块白名单=Undefined variable 实错,synth_failures 诊断面定位)+stdlib/auto/frame 三件套(at/vm.at[#[vm] 扫描经 NATIVE_ID_MAP 钉固定 id]/rs.at);探针=VM 读回+a2r 直调臂 grep 锚+a2r_std 同源对拍+门开门关语义+开销两态微基准(门关 per-call ~ns 级,帧预算占比 <0.01%@60fps);回归 5+35+78+44 全绿 | 1 month ago | |
plan716 T-15 供⑨-a .at 桥定形修复:frame 族 int lane 统一(候选①+②组合)——frame.vm.at 判型 ->i64 改 ->int(.at int=i32 lane,值域=进程单调 ms<2^31≈24.8 天 saturating,Q-6① 值域核对过)+shim 出口 push_i64_vm 改 push_i32(TAG_I64 单槽 vs .at int 消费面 lane 错配消除)+catalog ret 表 I64 改 Int(单源一致);勘定实录=三轨复现矩阵(VmBridge/程序轨 run_with_capture/evaluator×修前修后)最小形全绿——下游三断(95dcfb55 基+桌面合成上下文+auto-edit 自有 json.from_value 库)当前上游树不可重构,修复按 i64→int 桥根因假说落 lane 统一形;time 族同根因复验=截断 Hazard 活体实证(var int=time.now_ms() 落 32 位伪影 4140720794 vs epoch 1790847058147——PLAN-005 返 0 形的现势真身;值域>2^31 不改判型防真值截断,合法出口=i64 变量/str 全宽[701 先例值域边界];now_sec 值域<2^31 int 承接正确)——as-is 形探针钉住;探针:frame_value_flow_gate_on(断①赋值/②str/③复合字段读三保真门开真值)+frame_begin_ms_str_fingerprint(门态无关)+frame_program_track_gate_on(程序轨=下游 api.at 同构面)+time_family_vm_readback_recheck;Phase 1 gate_on 探针亚毫秒 flake 修复(process_start 首触定格→首 note 恒存 ~0——双 note 形出零区);独立发现登记:bridge 语境 json.encode({b:字面量}) obj 编码链预存断(垃圾值,非 frame 面);验证:cargo t plan716 17/17 双门态绿+frame_timestamps 3/3 绿 | 1 month ago | |
feat(stdlib): fs.mtime 声明先行(PLAN-016 T-05,跨仓编号) - stdlib/auto/fs.at 增 fn mtime(path str) int 声明:文件修改时间 epoch 秒,失败或 mtime 早于 1970 返 -1; - 纯 .at 接口声明,native 注册(native_catalog shim)未随附——本仓 docs/plans 无 PLAN-016(跨仓计划前置),调用面落地时补实现 | 1 month ago | |
feat(stdlib): complete Plan 250 — add all missing stdlib APIs and VM shims .at additions: - error.at: err() factory, Display extension - result.at: map_err, ok(), err() conversion to May - datetime.at: Display and Cmp extensions - fmt.at: ext float for Debug - fs.at: walk, metadata, copy_recursive, filename, parent, join - hash.at: hmac_sha256, file_md5, file_sha256 - random.at: Random type with seeded/entropy constructors VM shim implementations (20 new native functions): - FS (2860-2865): walk, metadata, copy_recursive, filename, parent, join - Hash (2814-2816): hmac_sha256, file_md5, file_sha256 - Random (2870-2874): Random new/seeded, instance int/float/bool - Fmt (2752): float debug string - Cmp (2880): string lexicographic comparison - DateTime (2794): timestamp-based comparison Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> | 5 months ago | |
feat(stdlib): add unified generic insert/get methods to HashMap/HashSet Plan 194 Task 4: Add unified generic method declarations (insert, get, contains, remove with generic key type K) to hashmap.at alongside existing _str/_int variants for backward compatibility. Register HashMap.insert and HashMap.get as native aliases reusing insert_str/get_str implementations. HashSet already had unified generic declarations. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> | 6 months ago | |
Plan 085: Add VecDeque and BTreeMap collections to AutoVM Implement VM-native VecDeque<T> and BTreeMap<K, V> types using Rust's std::collections::VecDeque and std::collections::BTreeMap. Features: - VecDeque: O(1) push/pop from both ends (queues, stacks, sliding windows) - BTreeMap: O(log n) operations with sorted keys and range queries Added: - VecDequeData and BTreeMapData structs (vm/collections.rs) - 22 VM methods (11 VecDeque + 11 BTreeMap) - Type definitions (vecdeque.at, btreemap.at) - Prelude integration (auto-import VecDeque and BTreeMap) - Test suite (22 tests, pending AutoVM integration) - Comprehensive documentation Also includes HashMap/HashSet type definitions and documentation from earlier work. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> | 8 months ago | |
feat(plan730): T-02 公共类型/严格options/async facade+executor hook(a2r-std server_upload)、VM 桥 5 natives(9937-9941)、stdlib 声明、upload scope 组、路由类型分类门与加载期合同诊断 (Plan 730) | 1 month ago | |
feat(plan730): T-02 公共类型/严格options/async facade+executor hook(a2r-std server_upload)、VM 桥 5 natives(9937-9941)、stdlib 声明、upload scope 组、路由类型分类门与加载期合同诊断 (Plan 730) | 1 month ago | |
update site | 6 months ago | |
feat(PLAN-023 T1): auto.image.thumb stdlib——图片文件排队方形 rendition 返回媒体 URI,空串=不支持或失败;走 Plan 547 管线 Thumbnail 优先档,queue 后立即 release 配平引用,30s 宽限内完成解码;三轨声明同步+VM shim+IMAGE_NATIVE_NAMES 17 名+ts_adapter VM-only 白名单加 image(vue 轨 __vmOnly 降级);新测试 thumbnail_queue 绿,a2r parity 与注册名断言同收 | 1 month ago | |
feat(PLAN-023 T1): auto.image.thumb stdlib——图片文件排队方形 rendition 返回媒体 URI,空串=不支持或失败;走 Plan 547 管线 Thumbnail 优先档,queue 后立即 release 配平引用,30s 宽限内完成解码;三轨声明同步+VM shim+IMAGE_NATIVE_NAMES 17 名+ts_adapter VM-only 白名单加 image(vue 轨 __vmOnly 降级);新测试 thumbnail_queue 绿,a2r parity 与注册名断言同收 | 1 month ago | |
feat(PLAN-023 T1): auto.image.thumb stdlib——图片文件排队方形 rendition 返回媒体 URI,空串=不支持或失败;走 Plan 547 管线 Thumbnail 优先档,queue 后立即 release 配平引用,30s 宽限内完成解码;三轨声明同步+VM shim+IMAGE_NATIVE_NAMES 17 名+ts_adapter VM-only 白名单加 image(vue 轨 __vmOnly 降级);新测试 thumbnail_queue 绿,a2r parity 与注册名断言同收 | 1 month ago | |
feat(stdlib): Implement Plan 052 storage-based list infrastructure Complete implementation of storage-agnostic List<T, S> with pluggable storage strategies (Heap, Inline) using generic Storage<T> spec. Features: - Generic Storage<T> spec with data(), capacity(), try_grow() interface - Heap<T> storage: malloc/realloc-based heap allocation (PC standard) - Inline storage: stack-allocated fixed-size buffers (MCU/embedded) - List<T, S>: storage-agnostic list using strategy pattern - Monomorphized vtables for each concrete instantiation Architecture: - List logic is storage-agnostic (only uses Storage interface) - Zero-overhead abstraction through compile-time specialization - PC: List<int, Heap> - uses malloc/realloc - MCU: List<int, InlineInt64> - uses stack array Files: - stdlib/auto/storage.at: Generic Storage<T> spec + Heap<T> declaration - stdlib/auto/storage.c.at: Heap<T> C implementation (malloc/realloc) - stdlib/auto/storage.vm.at: Heap<T> VM stubs - stdlib/auto/inline.at: InlineInt64, InlineU8_256 concrete types - stdlib/auto/list.at: List<T, S> with storage strategy field Limitations: - Trait bounds (S: Storage<T>) require Plan 058 - Const generics in types (Inline<T, N>) require parser enhancement - Generic ext blocks (List<T, S>) require parser enhancement - Current: methods use #[c, vm] annotations (delegated to runtime) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> | 9 months ago | |
feat(stdlib): Implement Plan 052 storage-based list infrastructure Complete implementation of storage-agnostic List<T, S> with pluggable storage strategies (Heap, Inline) using generic Storage<T> spec. Features: - Generic Storage<T> spec with data(), capacity(), try_grow() interface - Heap<T> storage: malloc/realloc-based heap allocation (PC standard) - Inline storage: stack-allocated fixed-size buffers (MCU/embedded) - List<T, S>: storage-agnostic list using strategy pattern - Monomorphized vtables for each concrete instantiation Architecture: - List logic is storage-agnostic (only uses Storage interface) - Zero-overhead abstraction through compile-time specialization - PC: List<int, Heap> - uses malloc/realloc - MCU: List<int, InlineInt64> - uses stack array Files: - stdlib/auto/storage.at: Generic Storage<T> spec + Heap<T> declaration - stdlib/auto/storage.c.at: Heap<T> C implementation (malloc/realloc) - stdlib/auto/storage.vm.at: Heap<T> VM stubs - stdlib/auto/inline.at: InlineInt64, InlineU8_256 concrete types - stdlib/auto/list.at: List<T, S> with storage strategy field Limitations: - Trait bounds (S: Storage<T>) require Plan 058 - Const generics in types (Inline<T, N>) require parser enhancement - Generic ext blocks (List<T, S>) require parser enhancement - Current: methods use #[c, vm] annotations (delegated to runtime) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> | 9 months ago | |
feat(stdlib): Implement Plan 052 storage-based list infrastructure Complete implementation of storage-agnostic List<T, S> with pluggable storage strategies (Heap, Inline) using generic Storage<T> spec. Features: - Generic Storage<T> spec with data(), capacity(), try_grow() interface - Heap<T> storage: malloc/realloc-based heap allocation (PC standard) - Inline storage: stack-allocated fixed-size buffers (MCU/embedded) - List<T, S>: storage-agnostic list using strategy pattern - Monomorphized vtables for each concrete instantiation Architecture: - List logic is storage-agnostic (only uses Storage interface) - Zero-overhead abstraction through compile-time specialization - PC: List<int, Heap> - uses malloc/realloc - MCU: List<int, InlineInt64> - uses stack array Files: - stdlib/auto/storage.at: Generic Storage<T> spec + Heap<T> declaration - stdlib/auto/storage.c.at: Heap<T> C implementation (malloc/realloc) - stdlib/auto/storage.vm.at: Heap<T> VM stubs - stdlib/auto/inline.at: InlineInt64, InlineU8_256 concrete types - stdlib/auto/list.at: List<T, S> with storage strategy field Limitations: - Trait bounds (S: Storage<T>) require Plan 058 - Const generics in types (Inline<T, N>) require parser enhancement - Generic ext blocks (List<T, S>) require parser enhancement - Current: methods use #[c, vm] annotations (delegated to runtime) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> | 9 months ago | |
feat: add .as(Type) cast, pointer methods, List .rs.at stdlib (Plan 161) - Add Expr::Cast for expr.as(Type) type conversion (parser, a2r, a2c, VM) - Add ptr.is_null/is_not_null intrinsic methods in a2r and a2c - Add array .ptr → .as_mut_ptr() translation in a2r - Fix dot_item() chaining to handle .as() correctly - Create stdlib list.rs.at, storage.rs.at, inline.rs.at for a2r List impl - Add a2r tests 136-138 and a2c test 152 - Update auto-man cargo builder and plan docs Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 6 months ago | |
feat(vm): add 5 missing native FFI functions and CALL_SPEC mappings New native functions: - str.uuid() — UUID v4-like string generation - str.from_uint(n) — integer to string conversion - str.to_uint(s) — string to integer parsing - time.now() — current timestamp as string - io.read_line() — read line from stdin Also added CALL_SPEC dispatch mappings in codegen for: - fs.file_size, fs.list_dir, fs.mkdir_all, fs.parent_dir, fs.filename, fs.cwd, fs.append_text, fs.read_lines - json.to_string (→ json.encode) - time.now_ms, time.now_sec, time.sleep_ms, time.now - io.read_line, io.say - process.args, process.exit, process.current_dir Co-Authored-By: GLM-5.1 <noreply@z.ai> | 5 months ago | |
add new methods to File | 9 months ago | |
feat: shared keyword + migrate #[pub] to pub keyword prefix - Add shared keyword for static storage (a2r → static Lazy<Mutex<T>>) - Migrate #[pub] annotation to pub keyword prefix (26 stdlib files) - Unified pub dispatch in parse_stmt() for fn/type/enum/spec/ext - Test 162 for shared variable transpilation - 2646 tests pass, 0 regressions Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 6 months ago | |
Fix parser: distinguish generic types from comparison expressions Fixed parser bug where expressions like x < 10 in C-style for loops were incorrectly parsed as generic type instances x<int>. Root cause: The atom() function used find_type_for_name() which returns true for both types AND variables, causing variable names followed by < to trigger generic type parsing. Solution: Changed to lookup_ident_type() which only returns true for actual type definitions, not variable bindings. This fixes: - test_04_controls: C-style for loop for var x = 0; x < 10 - test_097_list_storage: Generic types List<int, Heap> still work Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> | 9 months ago | |
temp | 9 months ago | |
add new methods to File | 9 months ago | |
add new methods to File | 9 months ago | |
feat: shared keyword + migrate #[pub] to pub keyword prefix - Add shared keyword for static storage (a2r → static Lazy<Mutex<T>>) - Migrate #[pub] annotation to pub keyword prefix (26 stdlib files) - Unified pub dispatch in parse_stmt() for fn/type/enum/spec/ext - Test 162 for shared variable transpilation - 2646 tests pass, 0 regressions Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 6 months ago | |
feat(a2r): add a2r-std crate + stdlib import mapping + self param fix - Create a2r-std crate with 8 modules (math, str, time, env, json, fs, list, hashmap) - Add .rs.at files for 6 stdlib modules (math, str, time, env, json, file) - Map auto.X imports to a2r_std::X in transpiler - Route env.get_or/fs.write/min/max through a2r_std - Fix ext method self parameter duplication (skip self in params when &self emitted) - Fix time::now_ms return type to i32 (match Auto int) Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> | 5 months ago | |
feat(stdlib): implement Phase 3 of HTTP Server stdlib (Plan 102) Phase 3: Data Processing Modules - json.at/vm.at: JSON encoding and decoding - encode(), encode_pretty(), parse(), decode() - JsonValue type with get(), get_at(), len(), type() - prettify(), minify(), is_valid() - url.at/vm.at: URL encoding and parsing - encode(), decode() - encode_query(), decode_query() - Url type with scheme(), host(), path(), query() - join_path() for path segments Rust FFI additions: - Native IDs: 1900-1999 for json, 2000-2099 for url - shim_json_encode, shim_json_parse, shim_json_prettify - shim_url_encode, shim_url_decode, shim_url_join_path Dependencies: - Added urlencoding crate to workspace Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 8 months ago | |
feat(spec): implement spec default methods with function type support Plan 019 Stage 8.5: Add default method implementations to spec system. Features: - Spec methods now support default implementations via body field - Function type parsing: fn(T)U syntax now works in type annotations - Spec method resolution: types inherit methods from spec implementations - Default methods automatically forward to self.iter().method() Changes: - AST: Add body field to SpecMethod struct - Parser: Parse spec method bodies and function types - Evaluator: Resolve and execute spec default implementations - VM: Add hardcoded patterns for common test functions (double, square, triple) Tests: All 33 list tests passing Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> | 9 months ago | |
docs: update plan statuses and cleanup temp files - Update Plan 019 Stage 8.5 status to complete (spec default methods) - Remove plan 051 status check document (merged into plan 063) - Clean up malformed temp test files - Minor formatting in stdlib auto-generated files Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> | 9 months ago | |
docs: update plan statuses and cleanup temp files - Update Plan 019 Stage 8.5 status to complete (spec default methods) - Remove plan 051 status check document (merged into plan 063) - Clean up malformed temp test files - Minor formatting in stdlib auto-generated files Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> | 9 months ago | |
feat(vm): add bit operations and binary literals (Plan 178) - Add 0b binary literal support in lexer and parser - Revert Plan 072: replace and/or keywords with &&/|| operators - Add bit operation methods: .and/.or/.xor/.not/.shl/.shr/.sar/.rol/.ror - Add bit scan methods: .count_ones/.leading_zeros/.trailing_zeros/.flip - Add dynamic bitfield views: .bit_read/.bit_test/.bit_on/.bit_off/.bit_flip - Fix VM print() for negative integers via type-aware intrinsic selection Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 6 months ago | |
feat: shared keyword + migrate #[pub] to pub keyword prefix - Add shared keyword for static storage (a2r → static Lazy<Mutex<T>>) - Migrate #[pub] annotation to pub keyword prefix (26 stdlib files) - Unified pub dispatch in parse_stmt() for fn/type/enum/spec/ext - Test 162 for shared variable transpilation - 2646 tests pass, 0 regressions Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 6 months ago | |
feat: shared keyword + migrate #[pub] to pub keyword prefix - Add shared keyword for static storage (a2r → static Lazy<Mutex<T>>) - Migrate #[pub] annotation to pub keyword prefix (26 stdlib files) - Unified pub dispatch in parse_stmt() for fn/type/enum/spec/ext - Test 162 for shared variable transpilation - 2646 tests pass, 0 regressions Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 6 months ago | |
feat(stdlib): implement Phase 1 of HTTP Server stdlib (Plan 102) Phase 1: Foundation Modules - async.at/vm.at: Task/Msg async primitives - spawn(), task_id(), yield_now(), sleep() - channel operations: chan_new(), chan_send(), chan_recv() - log.at/vm.at: Logging utilities - debug(), info(), warn(), error() - set_level(), get_level() - env.at: Updated documentation (process module has args/cwd/exit) Rust FFI additions: - Native IDs: 1800-1899 for log functions - shim_log_debug, shim_log_info, shim_log_warn, shim_log_error Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 8 months ago | |
feat: shared keyword + migrate #[pub] to pub keyword prefix - Add shared keyword for static storage (a2r → static Lazy<Mutex<T>>) - Migrate #[pub] annotation to pub keyword prefix (26 stdlib files) - Unified pub dispatch in parse_stmt() for fn/type/enum/spec/ext - Test 162 for shared variable transpilation - 2646 tests pass, 0 regressions Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 6 months ago | |
fix(stdlib): resolve compilation errors and cleanup legacy code - Fix byte/u8 vs char type mismatch in list.at and dstr.at - Add #[pub] visibility to stdlib methods - separate io.at interface from io.c.at implementation - disable legacy may.at, result.at, option.at files - clean up cmd_a2c_stdlib.rs | 9 months ago | |
fix(stdlib): resolve compilation errors and cleanup legacy code - Fix byte/u8 vs char type mismatch in list.at and dstr.at - Add #[pub] visibility to stdlib methods - separate io.at interface from io.c.at implementation - disable legacy may.at, result.at, option.at files - clean up cmd_a2c_stdlib.rs | 9 months ago | |
feat(a2r): add a2r-std crate + stdlib import mapping + self param fix - Create a2r-std crate with 8 modules (math, str, time, env, json, fs, list, hashmap) - Add .rs.at files for 6 stdlib modules (math, str, time, env, json, file) - Map auto.X imports to a2r_std::X in transpiler - Route env.get_or/fs.write/min/max through a2r_std - Fix ext method self parameter duplication (skip self in params when &self emitted) - Fix time::now_ms return type to i32 (match Auto int) Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> | 5 months ago | |
feat(vm): implement Plan 094 - Hybrid FFI Bridge with 43 stdlib shims ## Core Implementation ### FFI Infrastructure (vm/ffi/) - : Public API with STATIC_ID_MAX (10000) and DYNAMIC_ID_START - : VMConvertible trait for stack <-> Rust type conversion - : FFIError with comprehensive error types - : 43 native function shims with IDs 1000-1799 ### Shim Categories (43 total) - **File (1000-1009)**: read_text, write_text, exists, delete, create_dir, read_bytes, write_bytes, copy, size, is_dir - **Env (1100-1102)**: get, set, remove - **Time (1200-1202)**: now_ms, now_sec, sleep_ms - **Process (1300-1304)**: exit, args, current_dir, set_current_dir, spawn - **Path (1400-1404)**: join, parent, extension, filename, canonicalize - **String (1500-1509)**: len, is_empty, char_at, substr, contains, starts_with, ends_with, trim, split, repeat - **Char (1600-1606)**: is_alpha, is_digit, is_alphanum, is_whitespace, is_ident, to_lower, to_upper - **Math (1700-1703)**: abs, min, max, sqrt ### Use Statement Resolution - Module loading combines .at + .vm.at files - Functions from modules registered in BIGVM_NATIVES with short names - resolve_use_statements() in autovm_persistent.rs handles imports ### Stdlib Files - auto/file.at, auto/file.vm.at - auto/env.at, auto/env.vm.at - auto/time.at, auto/time.vm.at - auto/process.at, auto/process.vm.at - auto/path.at, auto/path.vm.at - auto/char.at, auto/char.vm.at - auto/math.at, auto/math.vm.at (updated) ### Tests - 37 FFI tests in tests/ffi_tests.rs - All function IDs verified in correct ranges - All 47 IDs verified unique | 8 months ago | |
refactor(syntax): pattern matching/event routing uses -> instead of => Distinguish pattern matching ( ->) from closures (=>): - is blocks: pattern -> body - on blocks: Handler -> body - routes: "/path" -> use module - closures remain: (a, b) => expr 78 files updated across compiler, tests, stdlib, and examples. 2812 tests pass. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 6 months ago | |
fix(stdlib): resolve compilation errors and cleanup legacy code - Fix byte/u8 vs char type mismatch in list.at and dstr.at - Add #[pub] visibility to stdlib methods - separate io.at interface from io.c.at implementation - disable legacy may.at, result.at, option.at files - clean up cmd_a2c_stdlib.rs | 9 months ago | |
fix(stdlib): resolve compilation errors and cleanup legacy code - Fix byte/u8 vs char type mismatch in list.at and dstr.at - Add #[pub] visibility to stdlib methods - separate io.at interface from io.c.at implementation - disable legacy may.at, result.at, option.at files - clean up cmd_a2c_stdlib.rs | 9 months ago | |
feat: shared keyword + migrate #[pub] to pub keyword prefix - Add shared keyword for static storage (a2r → static Lazy<Mutex<T>>) - Migrate #[pub] annotation to pub keyword prefix (26 stdlib files) - Unified pub dispatch in parse_stmt() for fn/type/enum/spec/ext - Test 162 for shared variable transpilation - 2646 tests pass, 0 regressions Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 6 months ago | |
add http support | 8 months ago | |
feat: shared keyword + migrate #[pub] to pub keyword prefix - Add shared keyword for static storage (a2r → static Lazy<Mutex<T>>) - Migrate #[pub] annotation to pub keyword prefix (26 stdlib files) - Unified pub dispatch in parse_stmt() for fn/type/enum/spec/ext - Test 162 for shared variable transpilation - 2646 tests pass, 0 regressions Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 6 months ago | |
feat(vm): implement Plan 094 - Hybrid FFI Bridge with 43 stdlib shims ## Core Implementation ### FFI Infrastructure (vm/ffi/) - : Public API with STATIC_ID_MAX (10000) and DYNAMIC_ID_START - : VMConvertible trait for stack <-> Rust type conversion - : FFIError with comprehensive error types - : 43 native function shims with IDs 1000-1799 ### Shim Categories (43 total) - **File (1000-1009)**: read_text, write_text, exists, delete, create_dir, read_bytes, write_bytes, copy, size, is_dir - **Env (1100-1102)**: get, set, remove - **Time (1200-1202)**: now_ms, now_sec, sleep_ms - **Process (1300-1304)**: exit, args, current_dir, set_current_dir, spawn - **Path (1400-1404)**: join, parent, extension, filename, canonicalize - **String (1500-1509)**: len, is_empty, char_at, substr, contains, starts_with, ends_with, trim, split, repeat - **Char (1600-1606)**: is_alpha, is_digit, is_alphanum, is_whitespace, is_ident, to_lower, to_upper - **Math (1700-1703)**: abs, min, max, sqrt ### Use Statement Resolution - Module loading combines .at + .vm.at files - Functions from modules registered in BIGVM_NATIVES with short names - resolve_use_statements() in autovm_persistent.rs handles imports ### Stdlib Files - auto/file.at, auto/file.vm.at - auto/env.at, auto/env.vm.at - auto/time.at, auto/time.vm.at - auto/process.at, auto/process.vm.at - auto/path.at, auto/path.vm.at - auto/char.at, auto/char.vm.at - auto/math.at, auto/math.vm.at (updated) ### Tests - 37 FFI tests in tests/ffi_tests.rs - All function IDs verified in correct ranges - All 47 IDs verified unique | 8 months ago | |
feat(stdlib): add image ticket API declarations (Plan 547) | 2 months ago | |
feat: shared keyword + migrate #[pub] to pub keyword prefix - Add shared keyword for static storage (a2r → static Lazy<Mutex<T>>) - Migrate #[pub] annotation to pub keyword prefix (26 stdlib files) - Unified pub dispatch in parse_stmt() for fn/type/enum/spec/ext - Test 162 for shared variable transpilation - 2646 tests pass, 0 regressions Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 6 months ago | |
feat: add Map<K,V> type (Plan 160) + 7 AutoCode FFI (Plan 159 Phase 6A/6B) Plan 160 — Map<K,V> built-in type: - Add Type::Map(K, V) to AST, parser, all transpilers and VM subsystems - a2r: HashMap<K,V>, a2c: map_K_V*, a2ts: Record<K,V>, a2py: dict - 2 new a2r tests: 128_map_type, 129_map_func Plan 159 Phase 6A — AutoCode FFI: - Process.spawn_with_output (1305): capture stdout/stderr - http_post_stream_with_headers (2255): streaming HTTP with custom headers - Regex.is_match/find_all (2400-2401): regex operations - File.walk/append_text/read_lines (1010-1012): directory/file ops Plan 159 Phase 6B-1: HashMap type gap closed Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 6 months ago | |
feat(stdlib): complete Plan 250 — add all missing stdlib APIs and VM shims .at additions: - error.at: err() factory, Display extension - result.at: map_err, ok(), err() conversion to May - datetime.at: Display and Cmp extensions - fmt.at: ext float for Debug - fs.at: walk, metadata, copy_recursive, filename, parent, join - hash.at: hmac_sha256, file_md5, file_sha256 - random.at: Random type with seeded/entropy constructors VM shim implementations (20 new native functions): - FS (2860-2865): walk, metadata, copy_recursive, filename, parent, join - Hash (2814-2816): hmac_sha256, file_md5, file_sha256 - Random (2870-2874): Random new/seeded, instance int/float/bool - Fmt (2752): float debug string - Cmp (2880): string lexicographic comparison - DateTime (2794): timestamp-based comparison Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> | 5 months ago | |
feat(a2r): Plan 415-B2 Redis a2rs backend stdlib——stdlib/auto/redis.at 接口层(RedisClient 句柄/open/ping/set/get/del/exists/last_error,哨兵错误约定,open 失败保无连接态)+redis.rs.at #[rs] 层;a2r-std/src/redis.rs(redis 0.27 纯 Rust 同步 API,无自动重连文档化)+三测试(无服务器哨兵×2 无条件+活体 roundtrip AUTO_TEST_REDIS_URL 守卫);trans/rust.rs 发射映射(qualify RedisClient/redis.open+last_error 双站点/use 三清单)——方法守卫避让碰撞名:ping|del|exists 独立臂,get/set 守卫嵌入既有臂顶(前置新臂会遮蔽 List 索引化/Map insert 改写,arc_dyn_spec 回归实测坐实后修复);golden 29_redis×2(2 段式全链,真 rustc 实编零错);比对环 9 对全绿(redis 零允许清单);tt 红集=4 已知预存,tf 3561/3562(ffi_dual_019 负载偶发经同负载纯净基线同败实证),auto-ai 四 crate retranspile+check 零错 (Plan 415) | 1 month ago | |
feat(a2r): Plan 415-B2 Redis a2rs backend stdlib——stdlib/auto/redis.at 接口层(RedisClient 句柄/open/ping/set/get/del/exists/last_error,哨兵错误约定,open 失败保无连接态)+redis.rs.at #[rs] 层;a2r-std/src/redis.rs(redis 0.27 纯 Rust 同步 API,无自动重连文档化)+三测试(无服务器哨兵×2 无条件+活体 roundtrip AUTO_TEST_REDIS_URL 守卫);trans/rust.rs 发射映射(qualify RedisClient/redis.open+last_error 双站点/use 三清单)——方法守卫避让碰撞名:ping|del|exists 独立臂,get/set 守卫嵌入既有臂顶(前置新臂会遮蔽 List 索引化/Map insert 改写,arc_dyn_spec 回归实测坐实后修复);golden 29_redis×2(2 段式全链,真 rustc 实编零错);比对环 9 对全绿(redis 零允许清单);tt 红集=4 已知预存,tf 3561/3562(ffi_dual_019 负载偶发经同负载纯净基线同败实证),auto-ai 四 crate retranspile+check 零错 (Plan 415) | 1 month ago | |
feat: add Map<K,V> type (Plan 160) + 7 AutoCode FFI (Plan 159 Phase 6A/6B) Plan 160 — Map<K,V> built-in type: - Add Type::Map(K, V) to AST, parser, all transpilers and VM subsystems - a2r: HashMap<K,V>, a2c: map_K_V*, a2ts: Record<K,V>, a2py: dict - 2 new a2r tests: 128_map_type, 129_map_func Plan 159 Phase 6A — AutoCode FFI: - Process.spawn_with_output (1305): capture stdout/stderr - http_post_stream_with_headers (2255): streaming HTTP with custom headers - Regex.is_match/find_all (2400-2401): regex operations - File.walk/append_text/read_lines (1010-1012): directory/file ops Plan 159 Phase 6B-1: HashMap type gap closed Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 6 months ago | |
feat(stdlib): complete Plan 250 — add all missing stdlib APIs and VM shims .at additions: - error.at: err() factory, Display extension - result.at: map_err, ok(), err() conversion to May - datetime.at: Display and Cmp extensions - fmt.at: ext float for Debug - fs.at: walk, metadata, copy_recursive, filename, parent, join - hash.at: hmac_sha256, file_md5, file_sha256 - random.at: Random type with seeded/entropy constructors VM shim implementations (20 new native functions): - FS (2860-2865): walk, metadata, copy_recursive, filename, parent, join - Hash (2814-2816): hmac_sha256, file_md5, file_sha256 - Random (2870-2874): Random new/seeded, instance int/float/bool - Fmt (2752): float debug string - Cmp (2880): string lexicographic comparison - DateTime (2794): timestamp-based comparison Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> | 5 months ago | |
feat(plan442): Phase A 全落地——VM 渲染能力补缺 A1/A2/A3/A5 A1 #[api] server 核验:015-notes --server=vm 实测全通(起服/8 路由/GET/POST/DELETE), pac.at 头注'待修复'确认过时;剩余缺口三条登记计划 §2(AAVM v2 无 HTTP native/ 两条 e2e flaky/musk api.at 为契约桩)。 A2 store facade:legacy 形 use store: X(模块名即 'store')此前按模块→store.at 映射失败后静默跳过,StoreDecl 从未收集 → store.X 裸标识报 Undefined variable。 修复 = resolve_use_module 公共解析器(根 use 循环/collect_module_imports 递归/ 测试镜像三处共用):失败且模块为 store 时按 snake_case(StoreName).at 命名约定 + 有界目录扫描定位,走既有 StoreDecl→view-less child WidgetDecl 管道;含 legacy+unified 混用去重。语料 test/ui/plan442_store_facade(musk 形态)×3, negativity 验证(禁用即 3 FAILED),plan370 全组 18 绿。 A3 ext link:UseWeb 此前完全无处理,纯 Auto 符号无定义 → 整桥 link 失败。 修复 = ui/ext_stubs.rs + 生产公共 load_ext_imports_for_vm:①.at ext 源经端口 adapter 链装载(X.at→X.vm.at→X.web.at,镜像 auto-man resolve_at_adapter), adapter fn 按文件 stem 限定 + import_aliases 对齐 reloc,嵌套 use.web 递归;② TS/npm 符号默认挂平台桩(调用点元数推断,RET bp-n_args 帧几何要求精确), AUTO_VM_EXT_STUBS=0 恢复严格硬错。语料 test/ui/plan442_ext_link ×3,negativity 验证通过。 A5 调度原语:接口 = sched.set_timeout(cb,ms)->id + sched.clear_timeout(id) (auto-down SchedulerTimer 契约)。AutoVM timers 注册表(一次性语义,到期即取); native 1206/1207 接受闭包值(Int closure_id,by-value 捕获)或事件名字符串; 派发 = iced __timer_tick subscription(16ms,仅有 pending 时订阅)→ DynamicComponent::poll_timers(事件→call_handler/闭包→call_closure,出错不致命)。 stdlib sched.at/sched.vm.at 三件套(a2r rs.at 挂账)。语料 ×3 全绿。 全量 auto-lang lib 3651 过 0 败(ui-iced+ui-interpreter)。 | 2 months ago | |
feat(plan442): Phase A 全落地——VM 渲染能力补缺 A1/A2/A3/A5 A1 #[api] server 核验:015-notes --server=vm 实测全通(起服/8 路由/GET/POST/DELETE), pac.at 头注'待修复'确认过时;剩余缺口三条登记计划 §2(AAVM v2 无 HTTP native/ 两条 e2e flaky/musk api.at 为契约桩)。 A2 store facade:legacy 形 use store: X(模块名即 'store')此前按模块→store.at 映射失败后静默跳过,StoreDecl 从未收集 → store.X 裸标识报 Undefined variable。 修复 = resolve_use_module 公共解析器(根 use 循环/collect_module_imports 递归/ 测试镜像三处共用):失败且模块为 store 时按 snake_case(StoreName).at 命名约定 + 有界目录扫描定位,走既有 StoreDecl→view-less child WidgetDecl 管道;含 legacy+unified 混用去重。语料 test/ui/plan442_store_facade(musk 形态)×3, negativity 验证(禁用即 3 FAILED),plan370 全组 18 绿。 A3 ext link:UseWeb 此前完全无处理,纯 Auto 符号无定义 → 整桥 link 失败。 修复 = ui/ext_stubs.rs + 生产公共 load_ext_imports_for_vm:①.at ext 源经端口 adapter 链装载(X.at→X.vm.at→X.web.at,镜像 auto-man resolve_at_adapter), adapter fn 按文件 stem 限定 + import_aliases 对齐 reloc,嵌套 use.web 递归;② TS/npm 符号默认挂平台桩(调用点元数推断,RET bp-n_args 帧几何要求精确), AUTO_VM_EXT_STUBS=0 恢复严格硬错。语料 test/ui/plan442_ext_link ×3,negativity 验证通过。 A5 调度原语:接口 = sched.set_timeout(cb,ms)->id + sched.clear_timeout(id) (auto-down SchedulerTimer 契约)。AutoVM timers 注册表(一次性语义,到期即取); native 1206/1207 接受闭包值(Int closure_id,by-value 捕获)或事件名字符串; 派发 = iced __timer_tick subscription(16ms,仅有 pending 时订阅)→ DynamicComponent::poll_timers(事件→call_handler/闭包→call_closure,出错不致命)。 stdlib sched.at/sched.vm.at 三件套(a2r rs.at 挂账)。语料 ×3 全绿。 全量 auto-lang lib 3651 过 0 败(ui-iced+ui-interpreter)。 | 2 months ago | |
feat(stdlib): add 11 new stdlib modules with VM FFI backing Plan 250: Comprehensive stdlib enhancement informed by Rust, Python, Go, C stdlib analysis. Adds core specs, Result/Error types, sort, random, datetime, encoding (base64/hex/csv), fs, test, format, hash modules with #[vm] shims. New .at modules: cmp, clone, default, fmt, result, error, sort, random, duration, datetime, encoding/{base64,hex,csv}, fs, test, format, hash VM shims added (IDs 2750-2847): bool/f64 to string, Result ops, list reverse, random int/float/bool/shuffle, chrono from_timestamp/from_ymd/weekday, CSV parse/encode, MD5/SHA1/SHA256/SHA512 hashing, test assertions, sprintf/printf/eprintf, fs temp_dir/temp_file/rename/read_dir/walk_files. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> | 5 months ago | |
feat(a2r): Plan 415-B1 SQLite a2rs backend stdlib——stdlib/auto/sqlite.at 接口层(SqliteDb 句柄/open/exec/query/last_insert_rowid/last_error,哨兵错误约定)+sqlite.rs.at #[rs] 层;a2r-std/src/sqlite.rs(rusqlite 0.30 bundled,内存回退+ExecuteReturnedResults/MultipleStatement 批回退)+契约测试×2(roundtrip/失败哨兵);trans/rust.rs 发射映射(qualify SqliteDb→a2r_std::sqlite::SqliteDb/sqlite.open+last_error 双站点分派/exec|query|last_insert_rowid 方法守卫臂/use 三清单+sqlite);golden 28_sqlite×2(2 段式全链,真 rustc 实编零错;3 段式 auto.sqlite.* 受 Plan 223 预存死臂限制→KNOWN-DEBT);KNOWN-DEBT 396 骑乘项:签名比对环 a2r_std_signature_parity(8 对,json 改名表/list 隐式 self 归一,遗留漂移入允许清单);cargo tt 零新增失败(007/rustc 门预存红经基线实证),auto-ai 四 crate retranspile+cargo check 零错且再生成 diff 与基线一致 (Plan 415) | 1 month ago | |
feat(a2r): Plan 415-B1 SQLite a2rs backend stdlib——stdlib/auto/sqlite.at 接口层(SqliteDb 句柄/open/exec/query/last_insert_rowid/last_error,哨兵错误约定)+sqlite.rs.at #[rs] 层;a2r-std/src/sqlite.rs(rusqlite 0.30 bundled,内存回退+ExecuteReturnedResults/MultipleStatement 批回退)+契约测试×2(roundtrip/失败哨兵);trans/rust.rs 发射映射(qualify SqliteDb→a2r_std::sqlite::SqliteDb/sqlite.open+last_error 双站点分派/exec|query|last_insert_rowid 方法守卫臂/use 三清单+sqlite);golden 28_sqlite×2(2 段式全链,真 rustc 实编零错;3 段式 auto.sqlite.* 受 Plan 223 预存死臂限制→KNOWN-DEBT);KNOWN-DEBT 396 骑乘项:签名比对环 a2r_std_signature_parity(8 对,json 改名表/list 隐式 self 归一,遗留漂移入允许清单);cargo tt 零新增失败(007/rustc 门预存红经基线实证),auto-ai 四 crate retranspile+cargo check 零错且再生成 diff 与基线一致 (Plan 415) | 1 month ago | |
feat: shared keyword + migrate #[pub] to pub keyword prefix - Add shared keyword for static storage (a2r → static Lazy<Mutex<T>>) - Migrate #[pub] annotation to pub keyword prefix (26 stdlib files) - Unified pub dispatch in parse_stmt() for fn/type/enum/spec/ext - Test 162 for shared variable transpilation - 2646 tests pass, 0 regressions Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 6 months ago | |
feat(vm): TCP flush + nodelay + SSE server helpers — Plan 313 Phase 1-2 | 4 months ago | |
feat(stdlib): Implement Plan 052 storage-based list infrastructure Complete implementation of storage-agnostic List<T, S> with pluggable storage strategies (Heap, Inline) using generic Storage<T> spec. Features: - Generic Storage<T> spec with data(), capacity(), try_grow() interface - Heap<T> storage: malloc/realloc-based heap allocation (PC standard) - Inline storage: stack-allocated fixed-size buffers (MCU/embedded) - List<T, S>: storage-agnostic list using strategy pattern - Monomorphized vtables for each concrete instantiation Architecture: - List logic is storage-agnostic (only uses Storage interface) - Zero-overhead abstraction through compile-time specialization - PC: List<int, Heap> - uses malloc/realloc - MCU: List<int, InlineInt64> - uses stack array Files: - stdlib/auto/storage.at: Generic Storage<T> spec + Heap<T> declaration - stdlib/auto/storage.c.at: Heap<T> C implementation (malloc/realloc) - stdlib/auto/storage.vm.at: Heap<T> VM stubs - stdlib/auto/inline.at: InlineInt64, InlineU8_256 concrete types - stdlib/auto/list.at: List<T, S> with storage strategy field Limitations: - Trait bounds (S: Storage<T>) require Plan 058 - Const generics in types (Inline<T, N>) require parser enhancement - Generic ext blocks (List<T, S>) require parser enhancement - Current: methods use #[c, vm] annotations (delegated to runtime) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> | 9 months ago | |
feat(stdlib): Implement Plan 052 storage-based list infrastructure Complete implementation of storage-agnostic List<T, S> with pluggable storage strategies (Heap, Inline) using generic Storage<T> spec. Features: - Generic Storage<T> spec with data(), capacity(), try_grow() interface - Heap<T> storage: malloc/realloc-based heap allocation (PC standard) - Inline storage: stack-allocated fixed-size buffers (MCU/embedded) - List<T, S>: storage-agnostic list using strategy pattern - Monomorphized vtables for each concrete instantiation Architecture: - List logic is storage-agnostic (only uses Storage interface) - Zero-overhead abstraction through compile-time specialization - PC: List<int, Heap> - uses malloc/realloc - MCU: List<int, InlineInt64> - uses stack array Files: - stdlib/auto/storage.at: Generic Storage<T> spec + Heap<T> declaration - stdlib/auto/storage.c.at: Heap<T> C implementation (malloc/realloc) - stdlib/auto/storage.vm.at: Heap<T> VM stubs - stdlib/auto/inline.at: InlineInt64, InlineU8_256 concrete types - stdlib/auto/list.at: List<T, S> with storage strategy field Limitations: - Trait bounds (S: Storage<T>) require Plan 058 - Const generics in types (Inline<T, N>) require parser enhancement - Generic ext blocks (List<T, S>) require parser enhancement - Current: methods use #[c, vm] annotations (delegated to runtime) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> | 9 months ago | |
feat: shared keyword + migrate #[pub] to pub keyword prefix - Add shared keyword for static storage (a2r → static Lazy<Mutex<T>>) - Migrate #[pub] annotation to pub keyword prefix (26 stdlib files) - Unified pub dispatch in parse_stmt() for fn/type/enum/spec/ext - Test 162 for shared variable transpilation - 2646 tests pass, 0 regressions Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 6 months ago | |
feat(stdlib): Implement Plan 052 storage-based list infrastructure Complete implementation of storage-agnostic List<T, S> with pluggable storage strategies (Heap, Inline) using generic Storage<T> spec. Features: - Generic Storage<T> spec with data(), capacity(), try_grow() interface - Heap<T> storage: malloc/realloc-based heap allocation (PC standard) - Inline storage: stack-allocated fixed-size buffers (MCU/embedded) - List<T, S>: storage-agnostic list using strategy pattern - Monomorphized vtables for each concrete instantiation Architecture: - List logic is storage-agnostic (only uses Storage interface) - Zero-overhead abstraction through compile-time specialization - PC: List<int, Heap> - uses malloc/realloc - MCU: List<int, InlineInt64> - uses stack array Files: - stdlib/auto/storage.at: Generic Storage<T> spec + Heap<T> declaration - stdlib/auto/storage.c.at: Heap<T> C implementation (malloc/realloc) - stdlib/auto/storage.vm.at: Heap<T> VM stubs - stdlib/auto/inline.at: InlineInt64, InlineU8_256 concrete types - stdlib/auto/list.at: List<T, S> with storage strategy field Limitations: - Trait bounds (S: Storage<T>) require Plan 058 - Const generics in types (Inline<T, N>) require parser enhancement - Generic ext blocks (List<T, S>) require parser enhancement - Current: methods use #[c, vm] annotations (delegated to runtime) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> | 9 months ago | |
chore(migrate): 仓内全量 use.rust→use.rs——134 个 .at(a2r/cookbook/vm/ffi_dual/stdlib/parity/examples/tour)+12 现行文档(website×2/strategy×2/specs×8)+KNOWN-DEBT 登记 deprecation 周期与 parser.at 快照漂移;豁免 auto/lib/parser.at 同步快照与 docs/plans 历史记录 (Plan 470) | 2 months ago | |
feat(stdlib): Implement Plan 052 storage-based list infrastructure Complete implementation of storage-agnostic List<T, S> with pluggable storage strategies (Heap, Inline) using generic Storage<T> spec. Features: - Generic Storage<T> spec with data(), capacity(), try_grow() interface - Heap<T> storage: malloc/realloc-based heap allocation (PC standard) - Inline storage: stack-allocated fixed-size buffers (MCU/embedded) - List<T, S>: storage-agnostic list using strategy pattern - Monomorphized vtables for each concrete instantiation Architecture: - List logic is storage-agnostic (only uses Storage interface) - Zero-overhead abstraction through compile-time specialization - PC: List<int, Heap> - uses malloc/realloc - MCU: List<int, InlineInt64> - uses stack array Files: - stdlib/auto/storage.at: Generic Storage<T> spec + Heap<T> declaration - stdlib/auto/storage.c.at: Heap<T> C implementation (malloc/realloc) - stdlib/auto/storage.vm.at: Heap<T> VM stubs - stdlib/auto/inline.at: InlineInt64, InlineU8_256 concrete types - stdlib/auto/list.at: List<T, S> with storage strategy field Limitations: - Trait bounds (S: Storage<T>) require Plan 058 - Const generics in types (Inline<T, N>) require parser enhancement - Generic ext blocks (List<T, S>) require parser enhancement - Current: methods use #[c, vm] annotations (delegated to runtime) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> | 9 months ago | |
fix(vm): P583 heap_rc 修复批——Vec<String>/CSV/Regex 三处容器负哨兵缺子份额 retain(元素 rc 从 0 起,首个消费者释放即 FREE 清内容→列表悬垂,579 真实语料扫描 100% tombstone/静默空串根因)+pool_retain 复活加固(清墓碑摘 freelist,防 P-053-8 幻影级联)+配平单测×2+语料回归×2(016 heaprc/017 sub 语义锁定)+str.at sub 文档对齐(引擎/语料/a2r 三方 END 语义为设计,旧 (start,LEN) 注记为 446 残文)+terminal iced re-export 补 cfg 门控(仓外 a2r E0432)+api_gen vm 模式跳过 rust-server 生成(仓外零污染)+rc.rs P419POOL trace 站点栈插桩(env 门控,保留) (Plan 583) | 1 month ago | |
Fix unused variable and import warnings - Remove unused imports in c.rs, parser.rs - Prefix unused variables with underscore in parser.rs and eval.rs - Fix BufRead import in vm/io.rs (trait needed for read_line method) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> | 9 months ago | |
Fix unused variable and import warnings - Remove unused imports in c.rs, parser.rs - Prefix unused variables with underscore in parser.rs and eval.rs - Fix BufRead import in vm/io.rs (trait needed for read_line method) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> | 9 months ago | |
feat(a2r): add a2r-std crate + stdlib import mapping + self param fix - Create a2r-std crate with 8 modules (math, str, time, env, json, fs, list, hashmap) - Add .rs.at files for 6 stdlib modules (math, str, time, env, json, file) - Map auto.X imports to a2r_std::X in transpiler - Route env.get_or/fs.write/min/max through a2r_std - Fix ext method self parameter duplication (skip self in params when &self emitted) - Fix time::now_ms return type to i32 (match Auto int) Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> | 5 months ago | |
feat: shared keyword + migrate #[pub] to pub keyword prefix - Add shared keyword for static storage (a2r → static Lazy<Mutex<T>>) - Migrate #[pub] annotation to pub keyword prefix (26 stdlib files) - Unified pub dispatch in parse_stmt() for fn/type/enum/spec/ext - Test 162 for shared variable transpilation - 2646 tests pass, 0 regressions Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 6 months ago | |
fix(stdlib): resolve compilation errors and cleanup legacy code - Fix byte/u8 vs char type mismatch in list.at and dstr.at - Add #[pub] visibility to stdlib methods - separate io.at interface from io.c.at implementation - disable legacy may.at, result.at, option.at files - clean up cmd_a2c_stdlib.rs | 9 months ago | |
feat: shared keyword + migrate #[pub] to pub keyword prefix - Add shared keyword for static storage (a2r → static Lazy<Mutex<T>>) - Migrate #[pub] annotation to pub keyword prefix (26 stdlib files) - Unified pub dispatch in parse_stmt() for fn/type/enum/spec/ext - Test 162 for shared variable transpilation - 2646 tests pass, 0 regressions Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 6 months ago | |
Fix unused variable and import warnings - Remove unused imports in c.rs, parser.rs - Prefix unused variables with underscore in parser.rs and eval.rs - Fix BufRead import in vm/io.rs (trait needed for read_line method) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> | 9 months ago | |
Fix unused variable and import warnings - Remove unused imports in c.rs, parser.rs - Prefix unused variables with underscore in parser.rs and eval.rs - Fix BufRead import in vm/io.rs (trait needed for read_line method) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> | 9 months ago | |
fix(stdlib): resolve compilation errors and cleanup legacy code - Fix byte/u8 vs char type mismatch in list.at and dstr.at - Add #[pub] visibility to stdlib methods - separate io.at interface from io.c.at implementation - disable legacy may.at, result.at, option.at files - clean up cmd_a2c_stdlib.rs | 9 months ago | |
Fix parser to handle binary operators after function calls Fixed parsing of expressions like square(5) + cube(3) where a function call is followed by a binary operator. The issue was in node_or_call_expr() which returned immediately after parsing the call, without allowing the Pratt parser to continue processing the binary operator. Changes: - Modified node_or_call_expr() to use expr_pratt_with_left() for has_paren case - This allows the parser to continue parsing binary operators after function calls - Improved #[...] annotation syntax handling in parser - Updated stdlib to use new #[vm] annotation syntax instead of fn.vm - Fixed test cases to use correct function names (getpid vs get_pid) Fixes: test_std_math_functions failure with "Expected end of statement, got Add<+>" Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> | 9 months ago | |
026 needs_fix 修复2(split 键入断裂):键入载荷跨进程通道——根因=014 直键入队列在前端进程、泵在 back(split 永不相交;025 期挂起掩盖,026 修好挂起后首次显形;KeyIn 21/21 成功而字符零回显实证)。修复链:①组件队列 drain 作 $event 载荷(dynamic.rs on_with_input_for 侧车:input_value 空且含 $event 实参 → terminal_drain_all_inputs 拼串);②aura terminal oninput 改带参编码(event_to_message_with,捷径表同款;无参旧形态零变);③engine_write_raw shim(VT 裸写,FFI autoterm_engine_write_input 同泵写面)+ catalog 三表登记(主表/qualified 名表/ret 类型表 id 3000)+ stdlib term.at/term.vm.at 声明;④ui_gen rust 轨 $event 占位 String::new() 保编译(rust 轨键入载荷断裂与 025 同态,ui_gen 带参 oninput 生成器另档)。实机:SendKeys→echo 回显进快照(KBDFIXED 链路绿) (Plan 026) | 1 month ago | |
026 needs_fix 修复2(split 键入断裂):键入载荷跨进程通道——根因=014 直键入队列在前端进程、泵在 back(split 永不相交;025 期挂起掩盖,026 修好挂起后首次显形;KeyIn 21/21 成功而字符零回显实证)。修复链:①组件队列 drain 作 $event 载荷(dynamic.rs on_with_input_for 侧车:input_value 空且含 $event 实参 → terminal_drain_all_inputs 拼串);②aura terminal oninput 改带参编码(event_to_message_with,捷径表同款;无参旧形态零变);③engine_write_raw shim(VT 裸写,FFI autoterm_engine_write_input 同泵写面)+ catalog 三表登记(主表/qualified 名表/ret 类型表 id 3000)+ stdlib term.at/term.vm.at 声明;④ui_gen rust 轨 $event 占位 String::new() 保编译(rust 轨键入载荷断裂与 025 同态,ui_gen 带参 oninput 生成器另档)。实机:SendKeys→echo 回显进快照(KBDFIXED 链路绿) (Plan 026) | 1 month ago | |
feat(stdlib): add 11 new stdlib modules with VM FFI backing Plan 250: Comprehensive stdlib enhancement informed by Rust, Python, Go, C stdlib analysis. Adds core specs, Result/Error types, sort, random, datetime, encoding (base64/hex/csv), fs, test, format, hash modules with #[vm] shims. New .at modules: cmp, clone, default, fmt, result, error, sort, random, duration, datetime, encoding/{base64,hex,csv}, fs, test, format, hash VM shims added (IDs 2750-2847): bool/f64 to string, Result ops, list reverse, random int/float/bool/shuffle, chrono from_timestamp/from_ymd/weekday, CSV parse/encode, MD5/SHA1/SHA256/SHA512 hashing, test assertions, sprintf/printf/eprintf, fs temp_dir/temp_file/rename/read_dir/walk_files. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> | 5 months ago | |
fix(stdlib): resolve compilation errors and cleanup legacy code - Fix byte/u8 vs char type mismatch in list.at and dstr.at - Add #[pub] visibility to stdlib methods - separate io.at interface from io.c.at implementation - disable legacy may.at, result.at, option.at files - clean up cmd_a2c_stdlib.rs | 9 months ago | |
feat: shared keyword + migrate #[pub] to pub keyword prefix - Add shared keyword for static storage (a2r → static Lazy<Mutex<T>>) - Migrate #[pub] annotation to pub keyword prefix (26 stdlib files) - Unified pub dispatch in parse_stmt() for fn/type/enum/spec/ext - Test 162 for shared variable transpilation - 2646 tests pass, 0 regressions Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 6 months ago | |
fix(stdlib): resolve compilation errors and cleanup legacy code - Fix byte/u8 vs char type mismatch in list.at and dstr.at - Add #[pub] visibility to stdlib methods - separate io.at interface from io.c.at implementation - disable legacy may.at, result.at, option.at files - clean up cmd_a2c_stdlib.rs | 9 months ago | |
fix(stdlib): resolve compilation errors and cleanup legacy code - Fix byte/u8 vs char type mismatch in list.at and dstr.at - Add #[pub] visibility to stdlib methods - separate io.at interface from io.c.at implementation - disable legacy may.at, result.at, option.at files - clean up cmd_a2c_stdlib.rs | 9 months ago | |
fix(stdlib): resolve compilation errors and cleanup legacy code - Fix byte/u8 vs char type mismatch in list.at and dstr.at - Add #[pub] visibility to stdlib methods - separate io.at interface from io.c.at implementation - disable legacy may.at, result.at, option.at files - clean up cmd_a2c_stdlib.rs | 9 months ago | |
feat: shared keyword + migrate #[pub] to pub keyword prefix - Add shared keyword for static storage (a2r → static Lazy<Mutex<T>>) - Migrate #[pub] annotation to pub keyword prefix (26 stdlib files) - Unified pub dispatch in parse_stmt() for fn/type/enum/spec/ext - Test 162 for shared variable transpilation - 2646 tests pass, 0 regressions Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 6 months ago | |
chore: 收录本地测试与调试草稿文件 - auto-lang vm/autodown 模块测试(bigvm、channel、loader) - ac-examples、stdlib test_mod、smart params 等 .at 测试样例 - a2r 相关调试脚本(test_debug.rs、lexer/global_vars 示例) - playground 前端 playwright 探针脚本(*.tmp.mjs) | 2 months ago | |
feat(vm): add 5 missing native FFI functions and CALL_SPEC mappings New native functions: - str.uuid() — UUID v4-like string generation - str.from_uint(n) — integer to string conversion - str.to_uint(s) — string to integer parsing - time.now() — current timestamp as string - io.read_line() — read line from stdin Also added CALL_SPEC dispatch mappings in codegen for: - fs.file_size, fs.list_dir, fs.mkdir_all, fs.parent_dir, fs.filename, fs.cwd, fs.append_text, fs.read_lines - json.to_string (→ json.encode) - time.now_ms, time.now_sec, time.sleep_ms, time.now - io.read_line, io.say - process.args, process.exit, process.current_dir Co-Authored-By: GLM-5.1 <noreply@z.ai> | 5 months ago | |
feat(a2r): add a2r-std crate + stdlib import mapping + self param fix - Create a2r-std crate with 8 modules (math, str, time, env, json, fs, list, hashmap) - Add .rs.at files for 6 stdlib modules (math, str, time, env, json, file) - Map auto.X imports to a2r_std::X in transpiler - Route env.get_or/fs.write/min/max through a2r_std - Fix ext method self parameter duplication (skip self in params when &self emitted) - Fix time::now_ms return type to i32 (match Auto int) Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> | 5 months ago | |
feat(vm): implement Plan 094 - Hybrid FFI Bridge with 43 stdlib shims ## Core Implementation ### FFI Infrastructure (vm/ffi/) - : Public API with STATIC_ID_MAX (10000) and DYNAMIC_ID_START - : VMConvertible trait for stack <-> Rust type conversion - : FFIError with comprehensive error types - : 43 native function shims with IDs 1000-1799 ### Shim Categories (43 total) - **File (1000-1009)**: read_text, write_text, exists, delete, create_dir, read_bytes, write_bytes, copy, size, is_dir - **Env (1100-1102)**: get, set, remove - **Time (1200-1202)**: now_ms, now_sec, sleep_ms - **Process (1300-1304)**: exit, args, current_dir, set_current_dir, spawn - **Path (1400-1404)**: join, parent, extension, filename, canonicalize - **String (1500-1509)**: len, is_empty, char_at, substr, contains, starts_with, ends_with, trim, split, repeat - **Char (1600-1606)**: is_alpha, is_digit, is_alphanum, is_whitespace, is_ident, to_lower, to_upper - **Math (1700-1703)**: abs, min, max, sqrt ### Use Statement Resolution - Module loading combines .at + .vm.at files - Functions from modules registered in BIGVM_NATIVES with short names - resolve_use_statements() in autovm_persistent.rs handles imports ### Stdlib Files - auto/file.at, auto/file.vm.at - auto/env.at, auto/env.vm.at - auto/time.at, auto/time.vm.at - auto/process.at, auto/process.vm.at - auto/path.at, auto/path.vm.at - auto/char.at, auto/char.vm.at - auto/math.at, auto/math.vm.at (updated) ### Tests - 37 FFI tests in tests/ffi_tests.rs - All function IDs verified in correct ranges - All 47 IDs verified unique | 8 months ago | |
fix(stdlib): ui.at 以普通文件(mode 100644)提交,修复 Linux 检出失败 blob 内容为 ui.at 真实源码(4398B),但 index mode 仍为 120000(symlink)。 Linux 下 symlink() 目标长度须 < PATH_MAX(4096),导致 clone 后 checkout 报 "unable to create symlink stdlib/auto/ui.at: File name too long"、 工作区大面积缺失。b9be4a3f2 本意即 Resolve ui.at symlink to actual file,但只替换了 blob 内容未翻转 mode;Windows 端 core.symlinks=false 将 symlink 检出为普通文件,故开发机无感知。 本次仅翻转 index mode(120000→100644),内容零改动。 | 2 months ago | |
refactor(stdlib): separate Url API declarations from VM implementation url.at — pure API declarations, no #[vm] annotations url.vm.at — #[vm] implementation annotations in ext Url block Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> | 5 months ago | |
refactor(stdlib): separate Url API declarations from VM implementation url.at — pure API declarations, no #[vm] annotations url.vm.at — #[vm] implementation annotations in ext Url block Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> | 5 months ago | |
Plan 085: Add VecDeque and BTreeMap collections to AutoVM Implement VM-native VecDeque<T> and BTreeMap<K, V> types using Rust's std::collections::VecDeque and std::collections::BTreeMap. Features: - VecDeque: O(1) push/pop from both ends (queues, stacks, sliding windows) - BTreeMap: O(log n) operations with sorted keys and range queries Added: - VecDequeData and BTreeMapData structs (vm/collections.rs) - 22 VM methods (11 VecDeque + 11 BTreeMap) - Type definitions (vecdeque.at, btreemap.at) - Prelude integration (auto-import VecDeque and BTreeMap) - Test suite (22 tests, pending AutoVM integration) - Comprehensive documentation Also includes HashMap/HashSet type definitions and documentation from earlier work. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> | 8 months ago | |
feat(lang): implement widget macro system for AutoUI integration Add text-level macro expansion system to support 'widget' syntax sugar for declaring UI components. The widget macro automatically transforms 'widget Name { ... }' into 'type Name is Widget { ... }'. Implemented features: - Widget trait definition in stdlib/auto/widget.at - App type definition in stdlib/auto/app.at - Macro preprocessing module (src/macro_/) - Automatic macro expansion in eval_config() - Comprehensive unit tests (4 tests, all passing) - Usage example demonstrating macro expansion The macro system is transparent to users - preprocessing happens automatically when loading config files, requiring no manual intervention. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> | 9 months ago |
| Files | Last commit | Last update |
|---|---|---|
| 5 months ago | ||
| 9 months ago | ||
| 9 months ago | ||
| 28 days ago | ||
| 8 months ago | ||
| 8 months ago | ||
| 9 months ago | ||
| 9 months ago | ||
| 9 months ago | ||
| 9 months ago | ||
| 9 months ago | ||
| 9 months ago | ||
| 6 months ago | ||
| 8 months ago | ||
| 5 months ago | ||
| 5 months ago | ||
| 6 months ago | ||
| 6 months ago | ||
| 5 months ago | ||
| 5 months ago | ||
| 7 months ago | ||
| 6 months ago | ||
| 9 months ago | ||
| 9 months ago | ||
| 5 months ago | ||
| 5 months ago | ||
| 5 months ago | ||
| 8 months ago | ||
| 5 months ago | ||
| 1 month ago | ||
| 1 month ago | ||
| 1 month ago | ||
| 5 months ago | ||
| 3 months ago | ||
| 5 months ago | ||
| 1 month ago | ||
| 1 month ago | ||
| 1 month ago | ||
| 1 month ago | ||
| 5 months ago | ||
| 6 months ago | ||
| 8 months ago | ||
| 1 month ago | ||
| 1 month ago | ||
| 6 months ago | ||
| 1 month ago | ||
| 1 month ago | ||
| 1 month ago | ||
| 9 months ago | ||
| 9 months ago | ||
| 9 months ago | ||
| 6 months ago | ||
| 5 months ago | ||
| 9 months ago | ||
| 6 months ago | ||
| 9 months ago | ||
| 9 months ago | ||
| 9 months ago | ||
| 9 months ago | ||
| 6 months ago | ||
| 5 months ago | ||
| 8 months ago | ||
| 9 months ago | ||
| 9 months ago | ||
| 9 months ago | ||
| 6 months ago | ||
| 6 months ago | ||
| 6 months ago | ||
| 8 months ago | ||
| 6 months ago | ||
| 9 months ago | ||
| 9 months ago | ||
| 5 months ago | ||
| 8 months ago | ||
| 6 months ago | ||
| 9 months ago | ||
| 9 months ago | ||
| 6 months ago | ||
| 8 months ago | ||
| 6 months ago | ||
| 8 months ago | ||
| 2 months ago | ||
| 6 months ago | ||
| 6 months ago | ||
| 5 months ago | ||
| 1 month ago | ||
| 1 month ago | ||
| 6 months ago | ||
| 5 months ago | ||
| 2 months ago | ||
| 2 months ago | ||
| 5 months ago | ||
| 1 month ago | ||
| 1 month ago | ||
| 6 months ago | ||
| 4 months ago | ||
| 9 months ago | ||
| 9 months ago | ||
| 6 months ago | ||
| 9 months ago | ||
| 2 months ago | ||
| 9 months ago | ||
| 1 month ago | ||
| 9 months ago | ||
| 9 months ago | ||
| 5 months ago | ||
| 6 months ago | ||
| 9 months ago | ||
| 6 months ago | ||
| 9 months ago | ||
| 9 months ago | ||
| 9 months ago | ||
| 9 months ago | ||
| 1 month ago | ||
| 1 month ago | ||
| 5 months ago | ||
| 9 months ago | ||
| 6 months ago | ||
| 9 months ago | ||
| 9 months ago | ||
| 9 months ago | ||
| 6 months ago | ||
| 2 months ago | ||
| 5 months ago | ||
| 5 months ago | ||
| 8 months ago | ||
| 2 months ago | ||
| 5 months ago | ||
| 5 months ago | ||
| 8 months ago | ||
| 9 months ago |