Differences between revisions 93 and 94
Deletions are marked like this. Additions are marked like this.
Line 22: Line 22:
 * Fixed auth documentation (`p_source` is actually `p_subject`)
 * Fixed comment that gave an error in JavaDoc
 * Fixed authorization policy documentation (`p_source` is actually `p_subject`)
 * Fixed comment that gave an error in Javadoc

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.3623 - Latest released version

Date: 22nd February 2011

Category: Minor bug fix, enhancement


  • Fixed authorization policy documentation (p_source is actually p_subject)

  • Fixed comment that gave an error in Javadoc


  • Added == operator for all Managed Objects.
  • Added -Dauth=[allow|deny] to Ant run script

Version 2.3619

Date: 15th February 2011

Category: Minor enhancement


Version 2.3617 - Latest released version

Date: 29th November 2010

Category: Minor Bugfix and enhancements


  • Sending a Null object remotely caused an error


Version 2.3593

Date: 3rd May 2010

Category: Major Missing file from release


  • Event Managed Object's PonderTalk adaptor was missing from the Ponder2 Jar file


  • New comms protocol plug-in added. Single Socket Communications (SSC) allows bi-directional, concurrent messaging over a single socket. The new comms library is not released yet. Email me for more information and for the library itself. Email is address on front page.

Version 2.3586

Date: 23rd March 2010

Category: Major new features, many bug fixes


  • 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.


  • 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 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

ChangeLog (last edited 2011-02-22 14:56:09 by KevinTwidle)