The language Pop-11 changed significantly with the release of Poplog Version 15.0 in late 1995. In particular the default for undeclared input and output variables in a procedure changed from dynamic scoping to lexical scoping. Thus it is no longer necessary to use "lvars" to declare such variables explicitly. In addition the use of "vars" within a procedure to simultaneously declare a variable as global ("permanent") and make its value dynamically scoped, generated a warning message. After complaints from educational users those warning messages were withdrawn in Poplog Version 15.01. This primer is geared to V15.01, and later versions, though users of earlier versions should still find it helpful.
There were several other changes, which are described in the HELP NEWS file available on Poplog systems, and in the release notes provided with Poplog Version 15.0. Notable among these are the introduction of a socket library, new options for spawning sub-processes, and other facilities for interacting with external libraries and the operating system.
In addition Version 15 saw the first release of Poplog for the DEC Alpha Architecture, both under VMS and under Digital Unix (previously known as OSF/1). There was also a port of Poplog to run on Intel-based PCs under the free Linux operating system, and a reduced version of Linux Poplog was made freely available via ftp, so that for the first time an up to date version of Pop-11 is available free of charge. There was then a charge for the unrestricted Linux Poplog. However, since July 1999 all versions of Poplog have been available free of charge with full system sources, at the Free Poplog site, whose address is given in the Acknowledgements section.
It is also worth mentioning that Poplog Version 14.5 provided the first official release of both the Objectclass Object Oriented Programming extension to Pop-11 and the Graphical Objects library (GO), both in the "proto" directory.
$usepop/pop/lib/proto(Objectclass is now, since December 1996, Poplog Version 15.5, better integrated into Poplog.)
Pop-11 is still being extended, and a future version will provide a new data-type, a "matchvar" which provides extended pattern matching facilities integrated with the Pop-11 equality operator "=". (Since January 1997, that has been a standard part of Pop-11. See HELP EQUAL)
This edition of the primer has had a chapter added on how to define a general problem solver, and many other minor changes. It also seemed a good idea to start by illustrating Pop-11 before going on to more general matters, so that the reader who is new to Pop-11 has some idea of what the language is like.