28. 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.
28.1. Pike 8.0
28.1.1. Global Functions
28.1.2. Modules
The Iterator
API has had some changes since Pike 8.0.
The following modules and functions have moved, been renamed or been deleted:
8.0::_assembler_debug | Debug.assembler_debug |
8.0::_debug | Debug.debug |
8.0::_dump_program_tables | Debug.dump_program_tables |
8.0::_optimizer_debug | Debug.optimizer_debug |
8.0::_map_all_objects | Debug.map_all_objects |
8.0::_refs | Debug.refs |
8.0::_next | Debug.next |
8.0::_prev | Debug.prev |
8.0::next_object | Debug.next_object |
28.1.3. Compiler
28.1.4. Runtime
28.2. Pike 7.8
28.2.1. Global Functions
decode_value()
used to be able to decode programs using
the 'old style' program encoding.
28.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.gdbm | Gdbm.DB |
7.8::Locale.Charset | Charset |
7.8::SSL.alert | SSL.Alert |
7.8::SSL.connection +
7.8::SSL.handshake | SSL.ClientConnection +
SSL.ServerConnection |
7.8::SSL.context | SSL.Context |
7.8::SSL.packet | SSL.Packet |
7.8::SSL.session | SSL.Session |
7.8::SSL.sslfile | SSL.File |
7.8::SSL.sslport | SSL.Port |
7.8::SSL.state | SSL.State |
7.8::Tools.PEM | Standards.PEM |
7.8::Tools.X509 | Standards.X509 |
7.8::Yabu.db | Yabu.DB |
7.8::Yabu.table | Yabu.Table |
7.8::_PGsql | (deleted) |
7.8:_files | _Stdio |
28.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.
28.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.
28.3. Pike 7.6 and earlier
28.3.1. Deprecated
The backward compatibility code for Pike 7.6 and earlier has been removed in Pike 9.0.