[Push] Push updates

Lee Spector lspector at hampshire.edu
Tue Apr 13 15:37:39 EDT 2004


Push list people,

FYI a few updates have recently been made to the Push2 language 
specification and to the Lisp implementation of Push and PushGP. There 
are a couple of important bug fixes and a few minor new features, 
including some new Push instructions. The recent segments of the 
version histories are included below, and all of the new files are now 
available from http://hampshire.edu/lspector/push.html.

The C++ implementation is now also nearly up to the current Push2 
specification, and we'll be posting a new version of that very soon 
(and I'll drop a note here). These updates do *not* include any of the 
more radical revisions that were kicked around here and in private 
email a couple months ago, although I am finally clearing my plate 
enough to return to these issues and perhaps to incorporate some of 
them into future revisions. FYI some of what has been on my plate 
recently has been a book I've just written which will include a lot of 
material on Push and PushGP (Automatic Quantum Computer Programming: A 
Genetic Programming Approach -- coming out from Kluwer in about 6 
weeks).

  -Lee


==== Push2 version history ====
20031116: Changed consp to listp in EVALPUSH, completing transition
             from t/nil to true/false.
20031130: Added defaults for all types (for GET).
           Changed arg order for CONTAINS.
20031202: Fixed NOOP conditions for SHOVE.
20031205: Fixed NOOP conditions for YANK and YANKDUP.
20031206: Fixed SET and GET for special cases with NAME.SET and 
NAME.GET.
           Added pushparamters for random number limits.
20031229: Minor changes for openmcl.
           Added support for constant instructions defined in config
             files, including SETCONSTANT for setting them.
           Added RANDOM-SEED push parameter, which can occur in
             config files.
20031230: Changed config file extension to .pconf (instead of .pst).
20040111: Fixed off-by-1 error in random-code handling of max-points.
20040112: Changed *./ and *.% (divide and mod templates) to NOOP instead
             of pushing zero when denominator is zero.
           Changed *.GET to NOOP instead of pushing default values for
             unbound names.
20040413: (actually sometime earlier) Added CODE.FROMBOOLEAN,
           CODE.FROMINTEGER, CODE.FROMFLOAT, CODE.FROMNAME, 
CODE.DO*COUNT,
           CODE.DO*TIMES.


==== PushGP version history (since Fall 2003) ====
20030831 - Commented out complete-push-configuration to allow for
            configuration from file with push2
20030918 - Removed push configuration parameters
          - Changed examples to conform to new runpush syntax
20030925 - Crashed-proofed fitness testing in PUSHGP, so it needn't be
            done in individual fitness functions.
          - Added *fitness-for-invalid-program*.
20031229 - Added regression example with input from a constant, rather
            than the stack.
          - Added ADD and REMOVE mutation methods.
          - Removed obsolete call to complete-push-configuration.
          - Removed problem-specific-initialization.
          - Switched random seeding to be based on the pushparameter
            *RANDOM-SEED*.
          - The effective seed will be the configured seed PLUS the
            host number (which is 1 if not running on a cluster).
          - Documentation revised for posting with Push2.
20031230 - Changed config file extension to .pconf (instead of .pst).
20040412 - Fixed bug in fair mutation (was previously mutating only
            at extremes of range).
20040413 - Changed default problem to FLOAT regression of
            y = x^4 + x^3 + x^2 + x, {x in [-1,1]}


--
Lee Spector
Dean, Cognitive Science + Associate Professor, Computer Science
Cognitive Science, Hampshire College, Amherst, MA 01002
lspector at hampshire.edu, http://hampshire.edu/lspector/
Phone: 413-559-5352, Fax: 413-559-5438





More information about the Push mailing list