1.0.2
   * Implement multithread support using QtConcurrent
   * Lexer usage is now reentrant
   * Parser usage is now pure parser
   * Seperate messages from output and add commandline param to redirect output to file
   * Implement dark theme preference
   * Faster STL output using generator for generateTriangles
   * Use boost mp for number types
   * Make indents configurable
   * Implement datum$ module
   * Add circumcenter function to find the center of three points
   * Add passive color module
   * Implement is_undef function
   * Implemented translate output in export
   * Faster group implementation
   * Fix self-intersecting polylines
   * Add warning when invalid rotation axis given
   * Added basic assert function and module
   * Implement an ord function to get unicode ordinals.

1.0.1
   * Windows installer is now 64bit
   * Official builds deployed by continuous integration
   * Fix several minor memory leaks
   * Fix crash for cube with undefined size
   * Fix crash under macosx for degenerate polyhedron test
   * Fix for sqrt with negative values
   * Fix crash for asin(2)
   * Fix crash for isolated points, move sanitize operations to class
   * Fix crash for empty polyhedron
   * Fix crash for num with no argument
   * Fix crash in hull with duplicate points
   * Modernize the code to use C++14
   * Add external CAM launching operation

1.0.0
   * Handle byte order marks by ignoring them in the parser
   * Implemented search/replace widget
   * Add selected text indent/unindent
   * Bounds module now also outputs size info
   * Implement scientific output format preference
   * Make print bed transparent when viewed from below
   * Implemented cbrt function
   * Implement history in console window
   * Implement highlight current line in code editor
   * Show tooltips when hovering over builtin module names
   * Built in modules are now highlighted
   * Allow configuration of the editor font
   * Fix for syntax highlighting of illegal unicode charaters
   * Improve configuration of rounding and precision preferences
   * Implement exponent notation
   * Add the ability to specify units on numbers (mm,cm,in,ft)
   * Basic implementation of concave hull using alpha shapes
   * Implement nef import
   * Added is_vec2 and is_vec3 functions
   * 'boundary' is now an alias for the old 'outline' module
   * Implemented Text Module using QPainerPath
   * A crude AMF import implementation
   * Basic SVG export support.
   * A crude 3MF import implementation
   * Add print bed configuration to preferences dialog
   * Added sweep angle parameter to rotate_extrude.
   * Modernize the code to use C++11
   * Allow print origin to be configured
   * New print area and base in the style of Mk42 heatbed

0.9.9
   * Support compilation with new QT versions
   * Added documentation generator and updated docs.
   * Output module description in show builtins.
   * Embed documentation in all builtin modules that have parameters.
   * Remove center parameter from sphere.
   * Added is_mat4x4 function.
   * Added indexes to children module.
   * Save line some numbers into syntax tree, which will be used in future.
   * Allow iteration over text values with for.
   * Implemented chr function.
   * Implemented type test functions.
   * Restore logical and/or operations.
   * Improve tests for Logical operators.
   * Added tests for chain_hull() module.
   * Better memory handling and exception handling.
   * Add some additional memory cleanup.
   * Implemented chain_hull() module.
   * Fix to offset module and added two simple tests.
   * Fix to tests for range length.
   * Fix to len() function for range.

0.9.8
   * Support for 3mf file format in export.
   * Choose a sensible location when exporting files.
   * Fix zero-length edges and zero-area triangles in input STL or polyhedron.
   * Added $fe variable which calculates fragments based on tolerance.
   * Correct parameter name for polyhedron "surfaces" -> "faces".
   * Basic implementation of mesh simplification.
   * Added more tests for polygon and fix for empty polygon.
   * Implemented normal$() module to show orthogonals to facets.
   * Better detection of binary STL.
   * Basic implementation of children() module.
   * Let the align function can take a vector.
   * Allow norm function to be applied to numbers and complex values.
   * Fix inverse trig functions.
   * Ang function can now return the axis and angle between two vectors.
   * Implemented cross function and operator.
   * Result of undefined binary operation should be undef.
   * Allow relative positioning by letting primitives have children.
   * Fix GL viewer, calculate normals with double.
   * Allow concatentation with undef to yield a result.
     e.g. a=[]; no longer needed before to make a~=[1,2,3]; work.
   * Implemented export to nef.
   * Basic caching of primitives.
   * Hook the view menu actions up to appropriate views.
   * Fix weird crash on shutdown.

0.9.7
   * Use arbitary precision arithmetic for all calculations.
   * Prevent toolbar being hidden show actions menu on right click.
   * Greyscale the rendering window while compilation is taking place.
   * Use new QOpenGLWidget when Qt5.4 or above is available.
   * Added discrete module for quantising vertices to the nearest n decimal places.
   * Added a simple renderer, to render wireframes without cgal.
   * Experimental multi material support.
   * Provide backwards compatibility in rotate extrude.
   * Rotate module now accepts unit quaternion (versor).
   * Implemented quaternions, multiplication, and ang() function.
   * Allow nesting of auxilirary modules, and display nested to be displayed.
   * Implemented exponent operator for vectors.
   * Implemented length (magnitude) operator.
   * Implemented vector multiplication and norm() function.
   * Ranges now support basic interval arithmetic.
   * Update to Qt5.5.1 on windows build.
   * Allow diameter parameter on circle.
   * Removed extraneous new lines in console output.
   * Added places parameter to round function.
   * Added a triangulate module.
   * Fixed a crash in linear_extrude when there are no perimeters.
   * Preferences default to "Safety orange" theme.
   * Ensure only modified files are saved and allow do not save for new tabs when closed.
   * Updated windows build environment.

0.9.6
   * All trig functions now take value in degrees.
   * Ensure cone, prism, cylinder etc use exact centering along vertical axis.
   * Add option to use rounding within trig, and other functions.
   * Make output precision configurable in preferences.
   * Higher output precision in AMF format.
   * Fix to rotate_extrude bug where r=0.
   * Added test for bezier surface, solid linear extrude, and slice.
   * All primitives are now constructed as a list of points and indices to those points.
   * Corrections to docs where bounds() should be bound$().
   * Use exact centering for sphere and default to point when no radius given.
   * Improve compilation time output in gui.
   * Fix crash when version() is called more than once.
   * Added feature matrix to docs.
   * Functions min() and max() now work for any number of arguments.
   * Added some i18n support code.

0.9.5
   * Implemented importing scripts with the 'use' directive.
   * Fix some hard crashes in Polygon, Polyhedron and Polyline modules.
   * Fixed a bug so that the result of the expression !undef now yeilds true.
   * Implemented a num() function for converting values to number.
   * Interactive mode can now handle statements as well as expressions.
   * Implemented a volume$ module for calculating required print material, and optionally center of mass.
   * Implemented a radial$ module for measuring diameters and radii.
   * Bounds module is now named "bound$" since it is an auxilary geometry module.
   * Index over ranges and vectors using Iterator, which improves performance for huge ranges.
   * Polygon can now take a single list of vectors for the outline.
   * Added a few simple tests for intersection, difference and union modules.
   * Fixed problem with undef occasionally being initialised to the wrong type.
   * Functions now always return undef when the evaluation give no result.
   * Fixed nested functions. Test moved from non-working and added additional test.
   * Fixed incorrect clearing of arguments and parameters.
   * Distribute documentation as part of RapCAD. Available from Help menu.
   * Allow polygon module to have multiple line vectors.
   * Added some more tests for polygon, cone, square and circle modules.
   * Test suite is now integrated with TravisCI continuous integration.
   * Implemented a comlement module.
   * Added more tests for rad deg sin cos and tan functions.

0.9.4
   * Implemented simple align module.
   * Fix bug where updating the view gets called twice.
   * Added interactive mode, for evaluating expressions.
   * Implemented simple text for displaying numbers in auxilary geometry.
   * Allow print to be used with no output model. Correct precision in print output.
   * Added thickness parameter to Slice module.
   * Added decompose module. Decomposition can be seen with view->show edges.
   * Initial implementation of auxilary geometry for the bounds module.
   * Group module now does fast unions on non-intersecting primitives.
   * Performance improvement for unions.
   * Correct first parameter name in rotate module "vector"->"angle".
   * Added a concat() function.
   * Added export for vrml 2.0 and obj file format.
   * Polyline Module can now optionally do multiple lines.
   * Outline now works with holes.
   * Allow multiple files to be loaded from the commandline.

0.9.3
   * Moving forward only Qt5 and above will be supported.
   * Now using Qt 5.2.0 for windows builds.
   * Updated to use latest versions of CGAL Boost and dxflib for windows builds.
   * Updates to documentation for building latest version of boost and CGAL on windows.
   * Restored icon theme in windows build.
   * Changes to make rotate_extrude work with radius of 0, and consider size of rotation object when calculating fragments.
   * Resize module is more accurate, Added test for resize module.

0.9.2
   * Disabled some usless ui elements until the features are implemented.
   * Create a point if a sphere of radius 0 requested.
   * Fix 'for' with no argument, should not execute child statements.
   * Zoom distance can no longer be negative, mouse wheel and shift+rmb zoom are more consistent.
   * Implemented multmatrix module.
   * Added '.csg' and '.rcad' files to the import statement.
   * Implemented comparison mode for comparing stl, off, etc.
   * Workaround bug in CGAL to fix to hard crash caused by an exception thown from the destructor of a CGAL class.
   * Implemented export of CSG product. (Works but needs improvement)
   * Fix for arguments in module instances and function invocations, they are now evaluated in new context.
   * Fix polygon module. Single vectors, and nested vectors can be used for point list.
   * Fix for index. Should return undef on out of bounds.
   * Fix match by index. Should only be used when no arguments match by name.
   * Allow cube to create squares when x=0, or y=0.
   * Fix text value comparisons.
   * Added a unit testing framework and lots of unit tests.
   * Fix index out of bounds error in index operator.
   * Implemented projection module.
   * Fixes to allow correct unicode output under Qt4.x
   * Make version commandline output return 0 exit code.
   * Fixed a bug where variables are resolved in parent contextual scope rather than lexical scope.
   * Implemented rad and deg functions for converting to and from radians.
   * Fixed message. 'rendering time' is the wrong terminology.
   * Fix error reporting and re-enable buttons on error.
   * Fix outline module, now closes the gap.
   * Initial implementation of GCODE generation. Currently reprap.rcam must be in the working directory.
   * Rotate extrude now implemented and accepts $fn $fs and $fa.
   * Fixes to linear extrude, seems to be stable (finally).
   * Added write and writeln modules, echo now emits deprication warning.
   * Make rotate module do exact rotations with multiples of 90 deg. (i.e. right angles)
   * Fixed sign() function works with values less than 1.0.
   * Support compilation against Qt5
   * Implemented index operator for Text and Vector Values.

0.9.1
   * Apply short-circuit for logical operations.
   * Fixed compilation USE_CGAL undefined.
   * Fixed display of human readable rendering time.
   * Autosize should default to false.
   * Added ln() and log() functions.
   * Minor improvement to hull evaluation.
   * Documentation updates.
   * Add parameters to modules and added ability to dump builtin modules into ed
   * Save [as] shortcut Ctrl+[Shift]+S
   * Added option to auto save when compiling.
   * Implemented cone module.
   * Fix for cylinder that can produce a cone when only two unnamed parameters s
   * Make the tabs closeable.

0.9.0
   * Preliminary support for special variables $fn $fs and $fa.
   * Improve memory management for csg tree nodes.
   * Implemented a point() module.
   * Implemented a slice() module.
   * Improvements for hull module.

0.8.0
   * Implemented amf export feature.
   * Allow range values to be treated as though they are vector values.
   * Implemented preferences for edge and vertex size.
   * Added simple about box dialog that displays the RapCAD version number.
   * Improved the tool tips in main window tool bar.
   * Improve memory management for values.
   * Improvements to array concatenation code and some tests.
   * Fixed some defeferenced null pointer exceptions in polygon.
   * Documentation Improvements.
   * Added some more examples 
   * Licensing updated.

0.7.0
   * Implemented add assign (+=), and subtract assign (-=) operators.
   * Added some simple examples.
   * Implemented center() module for centering about the bounding box.
   * Fix for cylinder and cube of zero height.
   * Updated icons.
   * Added support for non centered spheres
   * Implemented new functions tanh() sinh() cosh() atan() atan2() acos()
     asin() exp() pow() ceil() floor() round() min() max() sign() abs()
     sin() cos() tan().
   * Added warning when function cannot be found.

0.6.0
   * Allow for additional commas in Vector expressions, but raise a warning.
   * Fixed implementation of default values for parameters.

0.5.0
  * Added support for export via the command line, this removes the -f command
    line option.
  * Implemented STL import.
  * Relaxed the grammar slightly to allow 'for' and 'if' to follow module instances.
  * Added 'len' function to return the length of a vector or string and an
    'str' function for backwards compatibility.
  * Implemented a polygon module.
  * Added a version function which returns the rapcad version triplicate as a
    vector and equality/inequality operator for vectors.
  * Various bug fixes and documentation improvements.

0.4.0
  * Multiple files support.
  * Dynamic arrays support using the concatinate operator ~ and the append
    operator ~=
  * Fixed mouse button assignments so that right mouse button controls pan and
    zoom, and left mouse button to controls rotation.
  * Added a resize module which is a more convenient way to scale, it also has an
    autosize parameter.

0.3.0
  * Basic support for importing off files as modules, and support code
    that will facilitate importing stl's dxf's etc.
  * Implemented 'outline' module which strokes an outline around a polygon, and
    a 'cylinder_surface' which creates the sides of a cylinder with no top or
    bottom.
  * Added a 'rands' function that returns a vector of random numbers.
  * Implemented actions to show/hide areas of the GUI. Window position, size
    visibility, and default viewport is saved across sessions.
  * Tab name now reflects the loaded file and 'New' button now creates new tabs.
  * Added application icon and toolbar/menu icons for Windows and Mac OS X.

0.2.0
  * Optimisation to 'linear_extrude' module.
  * Implemented OFF and STL export.
  * Export to PNG using view screen capture.
  * Added 'bezier_surface' and 'prism' modules.
  * New Preferences Dialog, and Preferences which are saved across sessions.
  * Improved 'for' so that the variables inside are not in a seperate context.
  * Basic types can be cast to vectors allowing for cube(10) to work.
  * Better handling when arguments are not supplied to modules.
  * Renamed 'inset' module as 'offset', must now supply negative values.
  * Support for file associations.
  * MacOS X support.
  * Added first builtin functions 'sqrt' and 'sum'.

0.1.0

  * Initial Release