= Change Log =
This page details all the changes made to the Ponder2 software. Changes may be made at any time and this page will let you know whether the change is large or small and help you decide whether you need the latest version. Changes are marked by the Subversion version number of the latest commit of the main program in `ponder2.jar`.
The version number is the number printed out by the [[Ponder2Shell|shell]] when you connect to the SMC using telnet.
== Version 2.xxx - Next version to be released ==
These are changes made to the core system that have not been released yet. They will appear in the next release.
'''Known Problems in current release but not fixed yet'''
* Shell reports old version number - reports the SVN number of when it was last checked in
== Version 2.840 - Latest released version ==
Date: 28th April 2009
'''Category: Major'''
* Added missing NOT operation for Boolean - use as `bool not.`
* Removed possible race condition when an Event is sent to different threads
'''Category: Minor'''
* Added experimental onError: message to Block - see [[http://www.ponder2.net/doc/pondertalk/P2Block.html|P2Block]]. This may change in the future.
* Added Ponder2 Error object, handed as an argument to the error block - see [[http://www.ponder2.net/doc/pondertalk/P2Error.html|P2Error]]
* Improved documentation for basic objects
== Version 2.834 ==
Date: 21st November 2008
'''Category: Major'''
* Added focus "st" to authorisation policies
* Fixed authorisation checking to allow messages to objects with no parents e.g. "Hello, " + "World!".
'''Category: Minor'''
* Ant build includes all `lib` Jars so that user defined libraries may be added easily
* Ant build includes Ponder2 documentation .css file in `ponder2.jar` - affects Ponder2 documentation layout
== Version 2.809 - Latest released version ==
Date: 4th September 2008
'''Category: Major'''
* Added java.policy security file for RMI
* Ant build file automatically checks and starts the `rmiregistry` if necessary
* Added user source tree with example and ant build file
'''Category: Minor'''
* Simplified complete source build
* Added ANTLR and tuProlog runtime libraries to distribution
* Various small improvements to basic objects
* Added ability to send remote PonderTalk via RMI, see PonderTalk managed object
* Now accepts commas between file names within a single `-boot` argument
== Version 2.783 ==
Date: 14th July 2008 <
>Bastille Day
'''Category: Major'''
* Fixed problem when using RMI to some non-local hosts
'''Category: Minor'''
* Better error reporting when an error occurs within a block
* Various small improvements to basic objects
* Improved error handling when path name could not be resolved
* Allow all Ponder2 exceptions to hold source file information
* Added !EventForwarder to control event propagation between SMCs
* Added error block to blocks
* Added error block to obligation policies
* Added `whileTrue:` and `whileFalse:` to blocks
* Added ping SMC command, returns true if remote responds
* Added sleep SMC command
* Added Missions and Interfaces
* Allow "_" character in pathnames
* To/From XML now manages recursive structures properly
* Block method now returns a block not an adaptor
* Java nio package no longer used - not available on all small devices
* Added "has: anObjectName" operation to Domain
* RMI communications tries reconnecting on error
* Socket protocol always uses new sockets to cope with overlapping requests
* Web Service protocol rewritten
== Version 2.731 ==
Date: 21st February 2008
'''Category: Major'''
* '''build.xml: Javadoc - added classpath for jars of non source items. '''
* !JavaDoc: Fixed javadoc warnings
* PonderDoc: Added missing comments
* auth system: Provided for alternative authorisation system.
* proximity event bus: policies can now be `attach:`ed to any managed object
== Version 2.709 ==
Date: 13th February 2008
'''Category: Major'''
* Add Web Services protocol module
* Added divide (/) to numbers
* Added '!' character into the parser set of permissible binary operation characters
* Refactored underlying authorisation code
* Removed compilation dependencies of some Managed Objects upon their Adaptor Objects
* New authorisation examples
* Improved distribution scripts
* Added style sheets to PonderDoc documentation
* Rewritten ANTLR grammar file, distinguishing between path names and identifiers properly
* ANTLR grammar produces slightly more efficient abstract syntax tree
== Version 2.669 ==
Date: 11th January 2008
'''Category: Major'''
* Added floating point numbers in multiple formats and hex e.g. 3.0 3.4e6 0x0ff23
* Added authorisations with examples
* Added PonderTalk string execution
* Checks for Null in P2String
* Null Pointer Error fixed when getting to EOF
* Read PonderTalk from a file using PonderTalk Managed Object
* Shell: ls -l shows object class rather than external managed object
* Allows first element of pathname to be a variable
* Fixed problem in parser. "a + b msg" was parsed incorrectly.
* Changed collate: to collect: throughout.
* New PonderTalk/XML RMI interface
* Removed return type from PonderTalk do: operation
* Completely reorganised internal class hierarchy. All objects are managed objects. The managed object code is lazily evaluated so that there is minimal overhead.
== Version 2.432 ==
Date: 3rd July 2007
'''Category: Minor'''
* '''Improved Ponder'Talk Managed Object '''
* Fixed problem where "'" characters were not handled properly in strings
* Improved error messages. Stack traces printed only when tracing on
== Version 2.427 ==
Date: 27th June 2007
'''Category: Major'''
* Fix to parsing of arrays. Variables/names were not included properly
* Added and:'' and ''or:'' to Boolean ''
* Strings now allow escaped " characters i.e. \"
* Fixed JAR recipes to include generated files properly
== Version 2.423 ==
Date: 25th June 2007
'''Category: Major'''
* First release of Ponder2 version 2 incorporating PonderTalk
* PonderTalk Compiler and interpreter
* Easier to write Java objects
* Improved shell
== Version 1.287 ==
Date: 30th Mar 2007
'''Category: Minor'''
* Fixed incorrect name of library in Ponder2 build.xml
* The line was changed to ``
== Version 1.283 ==
Date: 29th Mar 2007
'''Category: Major'''
* Added authorisation policies and examples
Note: This release was previously released incorrectly as version 1.1 containing the wrong source files. This version should be downloaded to use authorisation policies.
== Version 161 ==
Date: 12th Dec 2006
'''Category: Minor'''
* Added revision number and date to shell and main routine
* Added `-version` option to print out the current version number and then exit