PicoRuby Development Constraints

Documents memory limits and stdlib constraints for PicoRuby on ESP32. Use this when writing code that will run on ESP32 hardware or designing features for PicoRuby applications.

$ 安裝

git clone https://github.com/bash0C7/picotorokko /tmp/picotorokko && cp -r /tmp/picotorokko/.claude/skills/picoruby-constraints ~/.claude/skills/picotorokko

// tip: Run this command in your terminal to install the skill


name: PicoRuby Development Constraints description: Documents memory limits and stdlib constraints for PicoRuby on ESP32. Use this when writing code that will run on ESP32 hardware or designing features for PicoRuby applications.

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

FeaturePicoRubyCRuby
Gems❌ No bundler/gems✅ Full ecosystem
stdlibMinimal (R2P2-ESP32 only)Complete stdlib
Memory~520KB heapGB+ available
GCSimple mark-sweepComplex generational
Float math⚠️ Limited precisionFull IEEE 754

PicoRuby-safe stdlib

Available:

  • Array#each, #map, #select (avoid #each_with_index in 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)