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.
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 |
decode_value()
used to be able to decode programs using
the 'old style' program encoding.
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 |
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.
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.
The backward compatibility code for Pike 7.6 and earlier has been removed in Pike 9.0.