PSint BUGS file (07/02/90)
                    Fabien LELAQUAIS (1990)
                    lelaquaf@apo.esiee.fr
                    `Forgive my poor english'
------------------------------------------------------------------------

  This file contains bugs or problems found when running PSint.
If someone fixes one or more of these problems, please let me
know it...

* Transfer Procedures
---------------------
    As I first wanted to run that program on a common color display, I
  haven't though of that procedure implementation. When I first read
  the PostScript Language Reference, to start my program, I understood
  this was responsable for creating the right pattern to render the
  user gray scale properly.
    To do this, the transfer procecure is call as each dot has to be
  printed, which I haven't find a way to implement in a
  bitmap-oriented application. As a result, the transfer procedure
  given for the ``framedevice'' operator is never used. And olbiously,
  any PostScript program using this procedure (currently, filling with
  patterns) won't work properly.
    ``setscreen'' and ``currentscreen'' won't do anything useful for you.

* Memory management
-------------------
    I have installed a kind of garbage collector in that program.
  It should free every dynamic object as soon as it becomes
  unreachable from any of the stack or dictionnary. Whis works fine
  but in one case, it does not :
    To make the font loading stuff user-friendly, I defined, in the
  PSint profile, my fonts as PostScript procedures to be executed
  when ``findfont'' is called. findfont looks for that font, returns
  an error if it doesn't exist, or the font itself if it is a
  dictionnary. Otherwise, it pushes that object on the exec stack, so
  that any thing can be executed at font loading time. My problem is
  that the memory used to store that procedure is NOt released to the
  system pool. Why ????
    It doesn't matter that much (some 200 bytes are lost for each new
  font).

* Unknown Operators
-------------------
    A few operators have not been installed :
  - reversepath              (who uses it ?)
  - banddevice & renderbands (we're not using such devices, are we ?)
  - token                    (I'll do it, I'll do it...)
  
  Every other SHOULD work...

* Filling problems
------------------
    The filling process in PostScript is quite a difficult thing :
  we have to manage the clipping path, the choosen filling algorithm
  (even-odd rule or not), and overlapping shapes (that we have
  to render as one global shape, as some devices won't allow
  overlapping drawings).
    I've spent nigths triing to write a clean, bug-less, fast,
  short, portable, C-written algorithm... I wrote a dozen, since
  I discovered Crispin Goswell [Rutherford Appleton Laboratory,
   caag@uk.ac.rl.vd] work on an other PS interpretor. His
  algorithm had some of the capabilities I first wanted. I
  modified it a bit, and put it here.
    This filling algorithm is slow, and sometimes makes bad mistakess,
  most often due to computation errors.
  The result is some undrawn dots on the screen, or even worse
  if you have a plotter at the output. Can someone help me get out of
  it ? 
