• lobsters__mira@crustaceanson.theshelf.top
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      14 days ago

      It explains why a jit for Python, Ruby, JS & co that wants to produce performant code has to take advantage of the fact that programs are less dynamic that what each piece of code permits per language semantics – code doesn’t get run with new types/values/environment every time.

      And yjit does in fact do this, via what they call lazy basic block versioning: When a basic block is is to be executed, yjit can produce a version of that block specialized for the types involved.


      score 1 · canonical