I. Code which has become obsolete:

  1. Remove utils/doubleint.* and utils/ndoubleint.*, and replace with
     standard handling of double-precision integers ("long long", or 64
     bit, whichever was actually intended).  This change also obviates
     the need for all the ENDIAN definitions in misc/magic.h, which tend
     to break magic on new OS ports. . .

  2. Remove Gremlin and Versatec plot functions.

  3. Version 7.2 contains many things which should be removed;  these
     items have been dealt with in version 7.3, and doing them in
     version 7.2 is probably a waste of time.
   
II. Features to add:

  1. Need a new "undo" representation for select/unselect functions.
     Large selections such as network selections or large area selections
     are more compact if the whole selection celldef is kept, rather than
     attempting to disassemble the selection into separate paint and
     erase rules.  Each cell would be kept in a structure with a ref
     count, such that undo/redo records could point to the same celldef
     without having to duplicate it.  Also, if no intervening paint/erase
     functions occurred, a selection could be recovered instantly,
     preventing the huge allocation of memory that now occurs when, for
     example, ground and power networks are repeatedly selected in a
     large design.

  2. The new transistor W,L extraction method needs to be generalized.
     Also, the extractor should use the original, simple method when
     a device contains only one tile, and the new method for any
     device with more than one tile.  This is easy to determine, as
     the extractor already does a boundary search on each device.

  3. GDS output can be significantly compacted by replacing the "squares"
     generation function with one which first creates a cell from the
     contact cut and then arrays the cell to fill up the contact area.
     To go along with the output method, it is necessary to have an
     input method which will flatten such contacts back into magic's
     standard contact types.

  4. DEF format output routine.

III. Experimental stuff:

  1. Work out a fractal tile-splitting method to replace the existing
     "maximal horizontal strips" method.

IV. Bugs to fix:

  1. The "widespacing" rule does not catch all cases of rule violation,
     depending on the tile configuration.

  2. GDS output needs to be corrected for arrays which have indices
     counting down instead of up, which is not legal GDS syntax.  Such
     arrays need to be rotated or flipped, with the arrayed cells
     counter-rotated or counter-flipped to match.

  3. Nonmanhattan operations tend to fracture the tile plane into more
     and more tiles because there is no "merge" function to create
     larger nonmanhattan tiles from smaller ones.
