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 shell when you connect to the SMC using telnet.
Version 2.xxxx - 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.
- None yet
Known Problems in current release
- Shell reports old version number - reports the SVN number of when it was last checked in
Version 2.3586 - Latest released version
Date: 23rd March 2010
Category: Major new features, many bug fixes
Features
Internal improvements to the PonderTalk compiler including better error messages
include "filename" includes file filename into the PonderTalk source file. The file must be located on the classpath or as an absolute file or relative to current location.
New Semaphore managed object for multi-threading applications
SelfManagedCell (root): added address: message to create local addresses dynamically and to load protocols dynamically from PonderTalk
References to hashes are sent remotely now, not the hash itself. If a local copy is required then use localHash := (remoteHash asArray) asHash. because arrays are always copied remotely.
- Events, a subclass of Hash, are immutable and are copied remotely.
New Ponder2 Communications protocols added for intra-SMC communications
XmlBlaster protocol
SsComms a new, lightweight, communications protocol utilisating a single socket for bidirectional, asynchronous traffic. Ideal for mobile phones which can only create IP connections.
Bugfixes
- Wrong number of arguments caught at compile time. Indicated by generating self-explanatory bad Java code. Not possible to report it as a compiler error.
- Empty string was sent remotely incorrectly, ended up as null.
- Empty block "[]" not allowed, use "[ true ]" instead.
Certain words used by the PonderTalk grammar were treated as possible input by the lexical analyser, no longer true.
- Remote address now sent with remote objects to remote SMCs.
- If a received object that has a local address but cannot be found locally then a remote error is generated.
- Fixed a problem with blocks assuming that their arguments were always local objects
- Objects that have fixed instances e.g. True and False, could be imported incorrectly if there were more than one in a message.
Version 2.897
Date: 12th September 2009
Category: Minor new features, no bug fixes
New PonderTalk accessible arguments can be given to the SMC when it is started
- New function added to Array
at: anIndex put: anObject
- Collections - Domain and Hash now have
size
has: aName
hasObject: anObject
remove: anObject - to remove anObject
removeObject: anObject - to remove all occurences of anObject
- Collections - Array now has
size
has: anIndex
hasObject: anObject
remove: anIndex
removeObject: anObject - to remove all occurences of anObject
- Block
valueVars: aHash - to supplement/override the enclosing variables
Numbers and Strings have better comparisons for hasObject: and removeObject
- Internal object references have better comparisons for the above operations.
Removed Security manager from RMI protocol. Use -Djava.security.manager= instead
- Random commands added for numbers and booleans
Java APT factory for @Ponder2op can be built without requiring an existing previous version
Version 2.840
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 P2Block. This may change in the future.
Added Ponder2 Error object, handed as an argument to the error block - see 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 <property name="qdparser" location="${dist}/qdparser.jar"/>
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