22. Backward Compatibility

Pike is a language under active development. This can lead to incompatibilities between different versions of Pike. To alleviate this problem Pike has a backward compatibility layer.

The backward compatibility layer can be engaged in two ways; either by starting the Pike interpreter with the -V option, or by using the #pike preprocessor directive.

The backward compatibility layer affects both the compiler and the available modules.

Note that the backward compatibility layer does not necessarily compensate for all incompatibilities documented here, and that there may be other incompatibilities that have not been documented.

The remainder of this chapter describes the main incompatibilities between the various versions of Pike and the current version.

22.1. Pike 8.0

22.1.1. Global Functions

22.1.2. Modules

The following modules and functions have moved, been renamed or been deleted:

22.1.3. Compiler

22.1.4. Runtime

22.2. Pike 7.8

22.2.1. Global Functions

decode_value() used to be able to decode programs using the 'old style' program encoding.

22.2.2. Modules

The SSL module API has had major changes since Pike 7.8.

The following modules and functions have moved, been renamed or been deleted:

7.8::Gdbm.gdbmGdbm.DB
7.8::Locale.CharsetCharset
7.8::SSL.alertSSL.Alert
7.8::SSL.connection + 7.8::SSL.handshakeSSL.ClientConnection + SSL.ServerConnection
7.8::SSL.contextSSL.Context
7.8::SSL.packetSSL.Packet
7.8::SSL.sessionSSL.Session
7.8::SSL.sslfileSSL.File
7.8::SSL.sslportSSL.Port
7.8::SSL.stateSSL.State
7.8::Tools.PEMStandards.PEM
7.8::Tools.X509Standards.X509
7.8::Yabu.dbYabu.DB
7.8::Yabu.tableYabu.Table
7.8::_PGsql(deleted)
7.8:_files_Stdio

22.2.3. Compiler

The compiler used to not complain about use of the keyword static.

The ancient syntax for arrays (string * was an alias for array(string)) used to be supported (but complained about), but has now been removed completely.

22.2.4. Build options

The builtin security sandbox has been deprecated.

Compiling without support for bignums is no longer supported.

The (optional) support for facet classes has been removed.

22.3. Pike 7.6 and earlier

22.3.1. Deprecated

The backward compatibility code for Pike 7.6 and earlier has been removed in Pike 8.2.