feat(core): implement Aegis bootstrap foundation#14
Merged
zombocoder merged 12 commits intoApr 28, 2026
Conversation
- Add .gitattributes to enforce LF line endings and UTF-8 without BOM - Introduce O2L_HAS_INT128 macro and is_long_ flag in Value to handle platforms without __int128 (MSVC/Windows) - Add holds_Int_Value/get_Int_Value/holds_Long_Value/get_Long_Value helpers for MSVC-safe variant access throughout all AST/Runtime files - Replace hardcoded variant index switch in ComparisonNode with type-safe holds_alternative chain to fix bad_variant_access on Windows - Fix JsonLibrary.cpp: revert 6 call sites back to holds_alternative<Int> for JsonValue contexts (distinct type from o2l::Value) - Fix tools/o2l-lsp-server/main.cpp: add popen/pclose aliases for MSVC - Add wininet and ws2_32 link targets for Windows in tests/CMakeLists.txt - Guard Unix-only path assertions in test_system_fs_path.cpp with _WIN32 ifdefs - Guard Int/Long identity tests in test_runtime.cpp with O2L_HAS_INT128 - Guard LongToIntConversion test with O2L_HAS_INT128 (Long==Int on MSVC) - Update README with Windows build instructions and CHANGELOG entry Closes zombocoder#2
- Implement Native AST Reflection via CompilerLibrary - Implement high-performance Binary I/O via BinaryLibrary (ByteBuffer) - Implement LLVM-equivalent bit manipulation intrinsics via BitLibrary - Add support for recursive generic types and hex literals in Parser - Implement first-class null support across Lexer, Parser, and Runtime - Transition toolchain to Clang 18 / LLVM 18 with libc++ - Verify foundation via self_lexer.obq bootstrap script
…alue variant in Aegis foundation
…rameter warnings in AST nodes
…tency
- Parser.cpp: handle RSHIFT ('>>') in parseTypeName() by splitting it into
two GREATER_THAN tokens, fixing 'Expected >' errors for nested generics
like Map<Text, List<Int>> and List<Map<Text, Set<Int>>>
- MethodCallNode.cpp: fix Text.toDouble() and Bool.toDouble() to return
Double instead of Float, consistent with Int/Long.toDouble()
- test_type_conversions.cpp: update all toDouble assertions and fixtures
to expect Double (not Float); guard LongToIntConversion with O2L_HAS_INT128
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR introduces the foundational systems for the Aegis Operations engine, ensuring full cross-platform compliance (including Windows/MSVC).
Features
ull\ support across Lexer, Parser, and Runtime.
Note: This PR is built cleanly on top of the cross-platform MSVC foundation (PR #13) to guarantee it compiles on Windows without inheritance or linking errors.