Home - About Us - Download - API - Framework Licensing Home.htmlAbout_Us.htmlDownload.htmlhttp://andrometa.net/doxygen/html/index.htmlLicensing.htmlDownload.htmlshapeimage_1_link_0shapeimage_1_link_1shapeimage_1_link_2shapeimage_1_link_3shapeimage_1_link_4

1/7/12 2.0.0 - MML++, MPL, MDL, MMage, improvements to MML. Various

fixes and improvements.


  -Introduces the MML++ language and compiler, MPL (Meta

   Performance/Parallelism Language), MDL (Meta Domain Language) and

   knowledge base.


  -Refinements to MML including a simpler syntax. To allow greater

   flexibility, MML is now a strictly interpreted language.


  -Introduces MMage (Math and Genetic-algorithms Evolver).


  -Several fixes, performance improvements, and design refinements.


  -Adds new examples which demonstrate the above features.


---------------------------------------------------------


9/23/10 1.5.0 - Implementation and performance improvements, MML

locality, various fixes and additions.


  -Implementation and performance improvements, fixes for memory leaks

   and various bugs.


  -MML locality allows such things as collision detection or other

   locality-based interactions to be easily accomplished in MML in a

   high-performance manner. An entity opts to have one of it

   attributes, such as position tracked with radius 0.12 by the

   specified tracker entity, root in this case:


       addLocality("position", 0.12, root);


   When another entity O that has opted to track its attribute A on

   root enters within a radius of R of the first entity E, E is sent

   an event evt:


      evt.type = "locality"

      evt.entity = <entity O>

      evt.attribute = <attribute A>

      evt.radius = <radius R>


   The locality attribute may be a scalar or n-dimensional numerical

   sequence value.


   The two parameter version of addLocality, equivalent to the

   above, is:


      addLocality("position", 0.12);


   and defaults to tracking on root.


   examples/locality has been added as a simple example to demonstrate

   how MML locality is used.


  -A more efficient underlying implementation for threading,

   synchronization, and networking constructs.


  -Fixed a bug with precision and string output of MReal.


  -In MML, the root entity class name must now be "Root", before

   it was "root". The examples have been revised to use upper-case

   class names.


  -Added MMLParser::isReservedName().


  -Added mmlcode() convenience function in MMLParser.h.


  -Added the following keys which may be set upon MProgram initialization:


    mMapDuplicateKeys - Set to false to have an MError thrown when an mvar

    is created which contains duplicate keys. Default value is true.


    mPrecise - Set to true to have floating point values outputted

    with maximum precision. Default value is false.


---------------------------------------------------------


3/24/10 1.4.0 - Licensing changes.


  -AndroMeta is now available free for non-commercial and academic

   use. See the LICENSE file for details.


  -Various fixes and additions.


---------------------------------------------------------


1/25/10 1.3.0 - Improved support for discrete-event systems simulation.


  -To better support discrete-event systems simulation, MMLEntity and

   MMLRoot have been revised to allow more control over time

   advancement and the run cycle. By default, time is initialized to 0

   and a run event is scheduled at regular intervals given by

   MMLRoot::setInterval(), defaulting to 1. Run events are received by

   every entity at each run cycle and are handled transparently,

   causing the entity's run() method to be called. Run cycling can be

   disabled by calling MMLRoot::stopRunCycle() in order to enable pure

   discrete-event systems handling. In this mode, the usual event

   handling mechanism is triggered to respond to events but

   MMLEntity::run() is never called. examples/qsys has been revised as

   a basic example of using MML in such a way.


  -Various fixes and improvements.


---------------------------------------------------------


12/29/09 1.2.1 - Improvements to MML grid, fixes.


  -MMLGrid now supports initialization from a data file. See

   examples/grid3.


  -MMLGridScene now supports setting a background and foreground color

   and shapes/stencils for each cell.


  -MMLGridScene now generates events for mouse movement, mouse down,

   and mouse up for actions within cells. examples/grid1 has been

   updated to provide an example of this.


  -MMLGridScene now displays cell coordinates as a cursor tool-tip

   when the mouse hovers above a cell.


  -Fixed a problem with the MMLGrid not wrapping properly on the far

   boundary in "BoundaryWrap" mode.


  -The MMLCluster class and libmetanv have been removed.


  -Fixed a problem with MNum::operator*= when applied to integers and

   reals.


  -Fixed problems with MMLGraphScene not displaying grid properly on some

   graphics cards and a shading issue with MMLRobotScene.


  -Added MLib:inf() and MLib::negInf().


  -Fixed a problem with scene delay not working properly.


  -Fixed a problem in MCPPGenerator where some symbols which are

   referenced but not previously defined were not reported as errors.


---------------------------------------------------------


12/17/09 1.2.0 - MML grid and XML parser.


  -Added MMLGrid and MMLGridScene. The MMLGrid allows for the

   construction of a grid in an arbitrary number of dimensions and for

   light-weight agents positioned on it. A grid defines a locality

   which determines how agents interact with cells and other

   agents. Boundary rules may be specified which effect locality and

   control what happens when agents attempt to cross over a boundary,

   and in this way, the grid may be configured such that it is

   toroidal, either partially or completely. Agents may select other

   cells or agents in their locality which meet an

   application-specific criteria defined by selectCell() or

   selectAgent(), then, this selection may have an operation applied

   to it via applyCells() or applyAgents(). The grid is designed for

   high-performance, allowing it to scale to a large number of cells

   and agents. MMLGridScene is designed to be used in conjunction with

   MMLGrid, providing an OpenGL-based scene for rendering and

   projecting MMLGrid onto a 2d grid. See MMLGrid.h and MMLGridScene.h

   for more details.


  -Added the MXMLParser class which provides a basic parser for

   reading XML code into mvar format. The input XML code is parsed and

   emitted as an mnode/mvar using its map and vector to provide a

   nested representation. All data read is stored as strings -- it is

   up to the user to perform semantic interpretation and conversion to

   the appropriate types.


  -In MML, for, while, foreach loops as well as if and else clauses

   now require braces. For example, the following syntax was

   previously allowed:


     if(x < 2)

       ++x;


   Which now must be written as:


     if(x < 2){

       ++x;

     }


   This change was motivated for technical reasons, however we believe

   that it also makes MML clearer and more consistent.


  -Fixed a problem in MNum related to division with MReal's.


  -MVar::toDouble() and MVar::toLong() now throw an MTypeError on

   failed conversions.


  -Added an MProgram argument "mVerify" which can be enabled to

   perform additional run-time checks on various call parameters

   throughout the framework. This verification is disabled by default

   as it could impact performance significantly. Turning this flag on

   can be useful in some situations for debugging purposes such as

   upon getting an exception, seg fault, etc.


  -Various improvements to mvar and other fixes.


---------------------------------------------------------


10/28/09 1.1.1 - 32-bit Linux, fixes.


  -Added 32-bit Linux build for ongoing releases.


  -Fixed a problem related to the install script.


---------------------------------------------------------


10/14/09 1.1.0 - Improved high precision numerics


  -Thanks to the GMP (GNU Multiple Precision Arithmetic Library) and

   MPFR (Multiple-precision Floating point) libraries, AndroMeta's

   high precision numerical capabilities have been greatly

   improved. The existing MReal operators have been re-implemented to

   use GMP/MPFR and now all MMath methods support arbitrary precision

   operations. The MProgram argument "mPrecision" may be used to set

   the default precision which is now specified in bits which defaults

   to 256. Added examples/high-precision. Various math-related methods

   have been added to MObject.


---------------------------------------------------------


9/21/09 1.0.1  -  Minor fixes.


  -ImmediateExit is now the default exit mode in MProgram::exit().


9/17/09 1.0.0  -  First public release.