Skip to content

Self-host P0: JIT __value__ / hashtable paths for Block::scopeOperandBySlot #557

@PurHur

Description

@PurHur

Blocks

Native self-host compile segfaults in LLVM (LLVMBuildStructGEP) while JIT-lowering Block::findSlot and related CFG using:

  • scopeOperandBySlot (array)
  • ?Variable returns boxed as __value__
  • isset / property fetch on array-backed scope slots

Goal

Unify JIT typing: array params → __hashtable__*, property loads via value-box slots, HashTableHelper + IssetHelper use alloca pointers not loaded struct values.

Acceptance

  • php bin/compile.php -o build/selfhost test/selfhost/compiler_minimal/main.php exits 0 in Docker
  • ./build/selfhost prints selfhost
  • ./script/bootstrap-selfhost-link.sh OK
  • README self-host section updated to Achieved (minimal subset) with date + PR

Links

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions