0540fbf526
fix: Resolve bgfx Frame 1 crash on Windows DLL + MinGW GCC 15 compatibility
...
- Add BGFX_CONFIG_MULTITHREADED=0 to fix TLS crash when bgfx runs from DLL
- Add -include stdint.h for MinGW GCC 15+ compatibility with bgfx third-party code
- Guard SDL2-dependent visual tests with if(SDL2_FOUND)
- Clean up debug logging in BgfxDevice::frame() and BgfxRendererModule::process()
- Re-enable all modules in test_full_stack_interactive.cpp
- Add grove::fs namespace for cross-platform filesystem operations
- Add InputModule C export for feedEvent across DLL boundary
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-30 11:03:06 +07:00
98acb32c4c
fix: Resolve deadlock in IntraIOManager + cleanup SEGFAULTs
...
- Fix critical deadlock in IntraIOManager using std::scoped_lock for
multi-mutex acquisition (CrossSystemIntegration: 1901s → 4s)
- Add std::shared_mutex for read-heavy operations (TopicTree, IntraIOManager)
- Fix SEGFAULT in SequentialModuleSystem destructor (logger guard)
- Fix SEGFAULT in ModuleLoader (don't auto-unload when modules still alive)
- Fix iterator invalidation in DependencyTestEngine destructor
- Add TSan/Helgrind integration for deadlock detection
- Add coding guidelines for synchronization patterns
All 23 tests now pass (100%)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-23 11:36:33 +08:00
3923e3cbbe
feat: Add StillHammer Logger & IntraIO batching (WIP)
...
- Add StillHammer Logger library (external/StillHammer/logger/)
* Elegant wrapper around spdlog (1 line instead of 10+)
* Auto-organize logs by domain: logs/domain/component.log
* Snake_case conversion: NetworkIO → network_io.log
* Thread-safe, zero-overhead, includes demo and tests
- Add IntraIO low-frequency batching infrastructure
* BatchBuffer structure for message accumulation
* batchFlushLoop() thread for periodic flushing
* Pattern matching lambda for detecting low-freq subscriptions
* WIP: test_11 scenario 4 still failing (100 batches instead of ~2)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-20 03:01:09 +08:00
a846ed26d7
feat: Add StillHammer TopicTree for O(k) topic routing
...
Replace O(n×m) regex-based pattern matching with O(k) hierarchical
hash map lookup in IntraIOManager.
## Changes
**New: StillHammer/topictree library**
- Header-only C++17 template library
- Zero-copy topic parsing with string_view
- Wildcards: `*` (single-level), `.*` (multi-level)
- Thread-safe with mutex protection
- Comprehensive test suite (10 scenarios)
**Modified: IntraIOManager**
- Replace RouteEntry vector + regex with TopicTree
- Batched logging (every 100 messages) to reduce spam
- O(k) lookup where k = topic depth (~3 segments)
## Performance
- Before: O(n patterns × m regex ops) per message
- After: O(k topic depth) per message
- Typical gain: ~33x faster for 100 patterns, depth 3
## Tests
✅ test_11 (scenarios 1-3): Basic routing, pattern matching, multi-module
✅ test_12: DataNode integration (all 6 tests pass)
⚠️ test_11 (scenario 4+): Batching feature not implemented (out of scope)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-20 01:31:50 +08:00