Box Changelog

New in version 0.4.0

September 9th, 2013
  • The core of the Box VM has been rewritten.
  • The type system has been rewritten from scratch and is now much more powerful.
  • A new type, Any, allows boxing/unboxing objects and provides some reflection capabilities.
  • This release adds adds heterogeneous arrays of objects (Array object), a new undo manager to the GUI which allows having a single undo history for both the text editor and the graphics editor, and the new objects Curve, Tri, and Fill to draw cubic bezier splines and fill a path.
  • The GUI now supports "direction points" to simplify drawing and interacting with bezier curves via the Curve object.

New in version 0.3.4 (June 28th, 2012)

  • This version focuses on improvements to the documentation system, which was largely rewritten to be clearer and to support new features. In particular, it is now possible to specify a preview for a documented object: this is a piece of Box source code which is rendered as an image in the documentation browser.
  • It is also possible to organize documentation in sub-sections and document instances. Bugs were fixed in both Box and Boxer.
  • Steps were made to support converting Box code to C code and to support serialization/deserialization of Box programs (both features are not completed)

New in version 0.3.1 (November 29th, 2011)

  • The main focus of this release has been to fix bugs in both the compiler and the GUI.
  • Small improvements were also made.
  • For Box, BBox now sets (rather than extending) the bounding box.
  • The way the bounding box was handled in the Clip command was fixed.
  • Improvements were made in the memory management of Box.
  • Handling of FillStyle was fixed (it was ignored by Style).
  • For Boxer, the Box output view was fixed: it did not expand correctly with some versions of PyGTK.
  • Some small improvements were made in the documentation browser.

New in version 0.3.0 (October 24th, 2011)

  • The Box graphics library was rewritten in Box itself. The library was re-engineered and is now much more clean and powerful. The old interface is still supported, but is now obsolete. Note that the new interface reproduces and offers to the user the features of the old interface, deriving high level functionality from lower level functionality. Example: Poly is expressed in terms of paths (Path) and command streams (CmdStream).
  • Added Dox, a documentation system for Box (which is now part of Boxer). The core library and the Box graphics library have been documented with this. Boxer has now a documentation browser to browse Dox documentation "on-line".
  • Fixing bugs: the most important is the copy of complex objects.
  • Search in the current source directory when including another source.

New in version 0.2.3 (July 3rd, 2011)

  • Boxer has been extended: multiple reference points can be selected and dragged simultaneously; the syntax highlighting of sources has been improved with an ad-hoc file for Box syntax; bugs when loading broken files were fixed.
  • Box was also fixed and improved: a documentation system, Dox, was written; the core and g libraries were partially documented with this; it can now box and unbox objects of different types into the Obj object; raw access to Cairo is possible; a rewrite of the Box g library in Box (rather than C) has been started.
  • These last features are still under development and will appear in future releases.

New in version 0.2.2 (April 7th, 2011)

  • This release fixes some bugs in the graphics library, making the new version of Boxer (0.3.0) more usable.
  • The library libboxcore was also fixed in some of its references (this was noted when trying to run under Mac OS).

New in version 0.2.1 (February 8th, 2011)

  • Bugfixes and a reworked memory management system.
  • This release mainly fixes bugs.
  • It does not bring new features.
  • However, the memory management system has been largely rewritten.
  • The memory management system is now aware of the "complex" types and knows how to create, destroy, copy, and relocate objects.
  • The release prepares the ground for future features (boxing/unboxing through the Obj type, which will allow several fundamental improvements to both Box and Boxer).

New in version 0.1.3 (March 22nd, 2010)

  • '()Char' changed to 'Str' in the Box g library. This gives more flexibility (we now can, for example, save the frames of an animation into different files).

New in version 0.1.0 (February 22nd, 2009)

  • Copying of objects is now implemented, though it does not work for "complex" objects, such as Str.
  • 'include "file"' searches for files inside the directory containing the script.
  • The #provide directive was introduced for multiple inclusions of the same header.
  • Comments can start with #! (for Box scripts on Unix).
  • Some information was added to the -q query option.
  • Systematic versioning conventions and scripts are now used to help maintainers deal automatically with the issue.
  • Bugfixes and cleanup were done.
  • The libboxcore library was created.