Skip to content
Snippets Groups Projects
Commit 51c33894 authored by Julian Seward's avatar Julian Seward
Browse files

[project @ 1999-12-10 15:59:41 by sewardj]

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.
parent 0491574d
Loading
Showing with 1645 additions and 1044 deletions
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment