Some of Parrot's C data structures have too many members and those members are too large. This hurts maintainability, increases memory use, and harms processor cache performance. Here are some suggestions for pruning these structs.

parrot_interp_t

  • move into iglobals:
    • gc_registry
    • class_hash ?
  • turn into flags:
    • world_inited
    • sleeping
  • make into pointers:
    • runcores
    • gc
      • lo_var_ptr
      • hi_var_ptr
    • op libs
    • compiler
    • HLLs
    • tasks
    • runloop
    • args/params

PackFile

  • turn into flags:
    • is_mmap_ped
    • need_wordsize?
    • need_endianize