REVISION=$Revision: 563 $
# Do not change the previous line

Change log (recent come first)

Next:
  * When using include we now search files also inside the directory
    containing the currently executed script. If -st is specified,
    then we search inside the current working directory.
  * Automatic copy of objects is now implemented. However one should be very
    careful when using this feature with "complex" objects, such as Str, etc.
  * Introduced the temporary #provide directive, to deal properly with
    multiple inclusions of the same header.
  * Accept now line-comments starting with #! to allow Box scripts to be
    launched directly from the OS (Unix)
  * Added some info to the -q query option (compilation date, time and version
    string)
  * Adjusted versioning conventions and automated the change of version
    numbers in configure.ac and in the Makefile.am-s.
  * Bugfixes.

19 November 2008: created Boxer, a GUI for Box
  * created Boxer, a GUI for Box, using PyGTK (Python bindings for GTK+).
    The GUI can be run on Linux, Mac OS and Windows. The GUI has a text view
    containing the edited source and an image view, to show the output.
    The user can click on the image and add reference points, which can then
    be used in the Box source. These points can then be dragged, giving
    the possibility to change the position and shape of objects interactively.
    In this way using Box becomes much easier, still retaining the advantages
    of a vectorial language over the traditional mouse driven graphic editors.
    The GUI makes Box a powerful tool which can be used effectively to create
    complex figures for reports/papers/presentations.
  * Real@Window.Line denotes now the width of the line, not the half width
    (this is consistent with Real@Style.Border)
  * work on propagation of special procedures, such as creators, destructors
    etc. Now members are created/destroyed when their container is created/
    destroyed.
  * updated to the latest versions of autotool/hell.
  * Char, Int and Real are now species, while the raw types are named
    CHAR, INT and REAL (needed a bugfix).
  * Bugfix and improvements (also to the code style).
  * Added the hidden option -q to query for Box configuration (may be used
    in the future to assist installation of externally provided libraries).

10 august 2008: Improved support of user defined procedures
  * exit status should now be treated more carefully:
    0, if all OK, 1 otherwise;
  * variables defined in the upper scope unit are globally defined and are
    accessible from procedures: for example, using the color structure
    inside a procedure is now possible;
  * $, $$, ... without depth specifications refer now to the current
    definition Box;
  * if NewType = OldType then NewType inherits the procedures of OldType
    (but OldType does not inherits the procedures of NewType). NewType
    inherits also the procedures of OldType which are defined after
    the occurrence of 'NewType = OldType';
  * Window.Hot now returns the last point it received as argument.
  * Str object has been introduced. This object allows to concatenate
    strings, print integers, reals, ... to string. It can be safely
    used in procedure definitions, since ()Char is automatically converted
    (Str = (()Char -> STR))

09 august 2008: Improved text formatting
  * Removed a small horrible bug in the selection of fonts:
    this was leading to crashes whenever a known postscript font
    was selected on Cairo terminals;
  * Introduced Window.Text.From to decide what corner of the text 
    should go in the provided point: useful for centering text;
  * Can now handle quite complex text formatting: subscripts,
    superscripts and newlines are rendered correctly both in native
    EPS and Cairo terminals.
  * Bugfix: native EPS can now show text containing parenthesis.

27 july 2008: Improved Save method. Compile under Windows 
  * Can define "incomplete windows": windows which throw an error
    whenever they are used. Creation of such windows, however,
    does not produce any errors: this concept is useful for the 
    new syntax of the Window.Save method;
  * Extended the syntax of the Window.Save method: it can now take
    a window and (1) complete it (if it is uncomplete) or (2) put
    the figure into it (if it is complete). In both cases the figure
    fits the destination window;
  * Created man page and Ubuntu package;
  * Ported the source to Windows: we now compile on XP and can
    distribute the first version of Box for Windows;

5 July 2008: Bugfixes in the transformation of draw styles and font

28 June 2008: Filling with linear/radial color gradients (Gradient[]) 
  * Can now express color in HSV (besides RGB) and convert RGB<-->HSV.
  * Can now fill objects using linear or radial color gradients
    (Gradient[] can be used for the purpose).
  * Color[] defines .r=.g=.b=0 and .a=1 by default. Opaque red can be
    defined with Color[.r=1]. Similar behaviour for HSV[].
    They also both accept a triple (for opaque colors) or quadruple
    of reals (for translucent colors).

21 June 2008: Style object now allow tracing borders
  * We can now draw polygons with border, controlling the join style
    (including the miter limit), the cap style, the dashes, the color.
  * Style can be instructed to draw empty polygons. In that case
    the border is not closed in Poly, unless Poly.Close[] is used.

29 May 2008: Work on the documentation and on the internal allocation system.
  * Started to write documentation on the graphic capabilities of Box.
  * Destructors are now called automatically by the VM before deallocation
    of objects: Window, PointList and Style are now fully deallocated.
  * Used Valgrind to track allocation errors: found one major problem
    and corrected other two minor ones. Need to work more on this.

17 May 2008: Integration of Cairo in the graphic library.
  * The graphic terminal has been adjusted, removing the lowfn midfn
    function list, which are now replaced by full declared methods.
  * A new function to open any type of windows has been introduced.
    This function takes a GrpWindowPlan which can contain the window
    size, file_name, resolution, etc.
  * Cairo is now detected in configuration scripts and new terminals
    are avaiblable when Box is compiled with support for it.
    We now can use Cairo image, PDF, SVG, PS terminals.
  * Extended the method Window.Save, which now looks at the extension
    and can accordingly save EPS, PNG, PDF, SVG, BMP files.
  * Colors have now an alpha channel: translucency is possible with
    Cairo windows!
  * We can now set the drawing Style: we can decide what rule to use
    for filling and we now can also clip along the path generated
    by all the graphic commands (Line, Circle, Poly and Text).

26 April 2008: Improvements and bugfixes.
  * Subtypes are resolved into their children if the method in Subtype.Method
    is not found.
  * Bugfix in the resolution of subtype-->parent.

20 April 2008: Adjustments and bugfixes.
  * Bugfix on the strnlen implementation. Should affect only a limited
    number of architectures.
  * Introducing reference counting for objects allocated by the VM:
    still not used to the full extent.
  * Several improvements to Window.Line: it should now be more robust,
    and supports lines having multiple join styles.
  * Poly accepts now (;)
  * Error messages are now displayed when undefined items appear
    inside structures.

30 March 2008: bugfixes and improvements.
  * fixed the VM bug for jump instruction on 64 bit machines.
  * improved the handling of open procedures

22 March 2008: minor improvements, added examples.
  * added builtin functions Max, Min, Abs, Vec.
  * added more examples in the examples directory.
  * Color@Window sets now the current fg color.

20 March 2008: first release of the tarball. Still very unstable.
  First tarball is released, just for letting people try the package.

