Skip to content
  • Andreas Klebinger's avatar
    Fix GHCis interaction with tag inference. · 0ac60423
    Andreas Klebinger authored and Marge Bot's avatar Marge Bot committed
    I had assumed that wrappers were not inlined in interactive mode.
    Meaning we would always execute the compiled wrapper which properly
    takes care of upholding the strict field invariant.
    This turned out to be wrong. So instead we now run tag inference even
    when we generate bytecode. In that case only for correctness not
    performance reasons although it will be still beneficial for runtime
    in some cases.
    
    I further fixed a bug where GHCi didn't tag nullary constructors
    properly when used as arguments. Which caused segfaults when calling
    into compiled functions which expect the strict field invariant to
    be upheld.
    
    Fixes #22042 and #21083
    
    -------------------------
    Metric Increase:
        T4801
    
    Metric Decrease:
        T13035
    -------------------------
    0ac60423