PicoRuby Development Constraints
Memory constraints and stdlib limitations for ESP32 PicoRuby development.
Memory & Runtime Limits
- •Total heap: 520KB (strict limit)
- •Nesting depth: Avoid deep recursion; prefer iterative solutions
- •String handling: Pre-allocate when possible; avoid repeated concatenation
- •Arrays: Use fixed-size when known; minimize dynamic growth during tight loops
PicoRuby vs CRuby
| Feature | PicoRuby | CRuby |
|---|---|---|
| Gems | ❌ No bundler/gems | ✅ Full ecosystem |
| stdlib | Minimal (R2P2-ESP32 only) | Complete stdlib |
| Memory | ~520KB heap | GB+ available |
| GC | Simple mark-sweep | Complex generational |
| Float math | ⚠️ Limited precision | Full IEEE 754 |
PicoRuby-safe stdlib
Available:
- •
Array#each,#map,#select(avoid#each_with_indexin tight loops) - •
Hash(simple key-value) - •
String(basic methods, avoid regex for embedded) - •
Time(limited; ESP32 time depends on system clock) - •
File(via R2P2-ESP32 abstraction)
Unavailable:
- •Regex (use string matching instead)
- •Threads (single-threaded runtime)
- •Fiber/Enumerator (complex control flow not needed)