Skip to content
  • Edward Z. Yang's avatar
    BC-breaking changes to C-- CLOSURE syntax. · 3b5a840b
    Edward Z. Yang authored
    
    
    Summary:
    Previously, there were two variants of CLOSURE in C--:
    
        - Top-level CLOSURE(foo_closure, foo, lits...), which defines a new
          static closure and gives it a name, and
    
        - Array CLOSURE(foo, lits...), which was used for the static char
          and integer arrays.
    
    They used the same name, were confusing, and didn't even generate
    the correct internal label representation!  So now, we have two
    new forms:
    
        - Top-level CLOSURE(foo, lits...) which automatically generates
          foo_closure (along with foo_info, which we were doing already)
    
        - Array ANONYMOUS_CLOSURE(foo, lits...) which doesn't generate
          a foo_closure identifier.
    
    Part of remove HEAP_ALLOCED patch set (#8199)
    
    Signed-off-by: default avatarEdward Z. Yang <ezyang@mit.edu>
    
    Test Plan: validate
    
    Reviewers: simonmar, austin
    
    Subscribers: simonmar, ezyang, carter, thomie
    
    Differential Revision: https://phabricator.haskell.org/D264
    
    GHC Trac Issues: #8199
    3b5a840b