Skip to content
  • Julian Seward's avatar
    [project @ 1999-12-10 15:59:41 by sewardj] · 51c33894
    Julian Seward authored
    Major improvements in interface processing, and minor supporting
    improvements to CT-storage management.
    
    * Make the iface parser return the complete interface as a single
      tree, which is processed later.  Added abs syntax tags
      I_INTERFACE .. I_VALUE to support this.
    
    * Add tagged ("z") 2,3,4,5 tuples.  Because they are tagged, they can't
      be confused with lists, etc.  Selectors zfst, zsnd ... zsel45, zsel55
      check tags first.  Iface processing uses z-tuples wherever it can.
    
    * Add unap as a safe "inverse" of ap; it checks tags.  So
      unap(TAG1, ap(TAG2,cell)) == cell but only if TAG1==TAG2, else
      assertion failure.
    
    * In interface.c, clean up the startGHC*/endGHC* functions.
      processInterfaces() is the top-level driver; it makes 4
      passes over the supplied iface trees.
    
    * Throw away iface symbols not mentioned in export lists.
    
    * Use iface export lists to construct both the export and
      eval environments for a module.
    
    * Don't use Texts to refer to things.  Instead use ConId and
      VarId.  Added ConId and VarId as synonyms for Cell in
      storage.h.
    
    * Add findSimpleInstance in storage.c.
    51c33894