diff --git a/refdoc/chapters/compatibility.xml b/refdoc/chapters/compatibility.xml index 36ec9f623a7079bdf5b293551877f53aacf1b919..71fe122e97d639e6bb8a16cf1d70e206cb740601 100644 --- a/refdoc/chapters/compatibility.xml +++ b/refdoc/chapters/compatibility.xml @@ -11,15 +11,89 @@ <p>The backward compatibility layer affects both the compiler and the available modules.</p> +<p>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.</p> + <p>The remainder of this chapter describes the main incompatibilities between the various versions of Pike and the current version.</p> -<section title="Pike 7.6"> +<section title="Pike 7.8"> <subsection title="Global Functions"> + <p><ref>decode_value()</ref> used to be able to decode programs using + the 'old style' program encoding.</p> + </subsection> + <subsection title="Modules"> + <p>The SSL module API has had major changes since Pike 7.8.</p> + <p>The following modules and functions have moved, been renamed or + been deleted: + <matrix> + <r><c><ref>7.8::Gdbm.gdbm</ref></c> + <c><ref>Gdbm.DB</ref></c></r> + <r><c><ref>7.8::Locale.Charset</ref></c> + <c><ref>Charset</ref></c></r> + <r><c><ref>7.8::SSL.alert</ref></c> + <c><ref>SSL.Alert</ref></c></r> + <r><c><ref>7.8::SSL.connection</ref> + + <ref>7.8::SSL.handshake</ref></c> + <c><ref>SSL.ClientConnection</ref> + + <ref>SSL.ServerConnection</ref></c></r> + <r><c><ref>7.8::SSL.context</ref></c> + <c><ref>SSL.Context</ref></c></r> + <r><c><ref>7.8::SSL.packet</ref></c> + <c><ref>SSL.Packet</ref></c></r> + <r><c><ref>7.8::SSL.session</ref></c> + <c><ref>SSL.Session</ref></c></r> + <r><c><ref>7.8::SSL.sslfile</ref></c> + <c><ref>SSL.File</ref></c></r> + <r><c><ref>7.8::SSL.sslport</ref></c> + <c><ref>SSL.Port</ref></c></r> + <r><c><ref>7.8::SSL.state</ref></c> + <c><ref>SSL.State</ref></c></r> + <r><c><ref>7.8::Tools.PEM</ref></c> + <c><ref>Standards.PEM</ref></c></r> + <r><c><ref>7.8::Tools.X509</ref></c> + <c><ref>Standards.X509</ref></c></r> + <r><c><ref>7.8::Yabu.db</ref></c> + <c><ref>Yabu.DB</ref></c></r> + <r><c><ref>7.8::Yabu.table</ref></c> + <c><ref>Yabu.Table</ref></c></r> + <r><c><ref>7.8::_PGsql</ref></c> + <c>(deleted></c></r> + <r><c><ref>7.8:_files</ref></c> + <c><ref>_Stdio</ref></c></r> + </matrix> + </p> + </subsection> + <subsection title="Compiler"> + <p>The compiler used to not complain about use of + the keyword <tt>static</tt>.</p> + <p>The ancient syntax for arrays (<tt>string *</tt> was an alias for + <tt>array(string)</tt>) used to be supported (but complained about), + but has now been removed completely.</p> + </subsection> + <subsection title="Build options"> + <p>The builtin security sandbox has been deprecated.</p> + <p>Compiling without support for bignums is no longer supported.</p> + <p>The (optional) support for facet classes has been removed.</p> </subsection> +</section> + +<section title="Pike 7.6"> <subsection title="Modules"> - <p>The following modules and functions have moved or been renamed: + <p>Signal handlers in GTK2 used to get their arguments in the + form of an array.</p> + <p>Sql.mysql used to automatically attempt to reconnect on + broken connection.</p> + <p>The following modules and functions have moved, been renamed or + been deleted: <matrix> + <r><c><ref>ADT.Heap.size()</ref></c> + <c>Deprecated by <ref>ADT.Heap._sizeof()</ref></c></r> + <r><c><ref>ADT.Heap.top()</ref></c> + <c>Deprecated by <ref>ADT.Heap.pop()</ref></c></r> + <r><c><ref>7.6::Array.transpose_old</ref></c> + <c>(deleted)</c></r> <r><c><ref>7.6::Image.colortable</ref></c> <c><ref>Image.Colortable</ref></c></r> <r><c><ref>7.6::Image.font</ref></c> @@ -52,235 +126,21 @@ </p> </subsection> <subsection title="Compiler"> + <p>The compiler used to not complain about use of + the keyword <tt>nomask</tt>.</p> </subsection> -</section> -<section title="Pike 7.4"> - <subsection title="SQL Headerfiles"> - <p>Pike 7.4 had some SQL-related headerfiles <tt>msql.h</tt>, - <tt>mysql.h</tt> and <tt>postgres.h</tt> that just performed - <tt>import</tt> of the corresponding module, and nothing else.</p> - </subsection> - <subsection title="Modules"> - <p><ref>7.4::Standards.PKCS.Signature.build_digest()</ref> used to - expect a <ref>7.4::Crypto.md5</ref>-style hash object as - the second argument.</p> - <p>The lifetime for the <ref>Stdio.Fd</ref> object used by a - <ref>7.4::Stdio.File</ref> object could differ from the lifetime - of the using object. This could in theory cause problems for code - that uses <ref>Stdio.File()->dup()</ref> or - <ref>Stdio.File()->assign()</ref>.</p> - <p>Destructing a locked <ref>7.4::Thread.Mutex</ref> object had - the effect of also destructing the corresponding key object.</p> - <p><ref>7.4::Tools.Standalone.extract_autodoc</ref> had a different - argument list.</p> - <p><ref>7.4::explode_path()</ref> splitted a string on <tt>/</tt> - on all systems except NT, where it spitted on both <tt>/</tt> and - <tt>\</tt>.</p> - <p>The following modules and functions have moved, been renamed or - been deleted: - <matrix> - <r><c><ref>7.4::ADT.Heap()->top()</ref></c> - <c><ref>ADT.Heap()->pop()</ref></c></r> - <r><c><ref>7.4::Crypto</ref></c> - <c>(deprecated by <ref>Nettle</ref>)</c></r> - <r><c><ref>7.4::_Crypto</ref></c> - <c>(deprecated by <ref>Nettle</ref>)</c></r> - <r><c><ref>7.4::Locale.Charset.ascii</ref></c> - <c>(deprecated by <ref>Locale.Charset.ASCIIDec</ref>)</c></r> - <r><c><ref>7.4::Locale.Charset._encoder</ref></c> - <c><ref>Locale.Charset.Encoder</ref></c></r> - <r><c><ref>7.4::Protocols.SMTP.protocol</ref></c> - <c><ref>Protocols.SMTP.Protocol</ref></c></r> - <r><c><ref>7.4::Protocols.SMTP.client</ref></c> - <c><ref>Protocols.SMTP.Client</ref></c></r> - <r><c><ref>7.4::Protocols.SMTP.client()->reply_codes</ref></c> - <c><ref>Protocols.SMTP.replycodes</ref></c></r> - <r><c><ref>7.4::Regexp</ref></c> - <c><ref>Regexp.SimpleRegexp</ref></c></r> - <r><c><ref>7.4::Sql.sql</ref></c><c><ref>Sql.Sql</ref></c></r> - <r><c><ref>7.4::Standards.ASN1.Encode</ref></c> - <c>(deprecated by <ref>Standards.ASN1.Types</ref>)</c></r> - <r><c><ref>7.4::rusage()</ref></c> - <c>(deprecated by <ref>System.getrusage</ref>)</c></r> - <r><c><ref>7.4::hash()</ref></c> - <c><ref>hash_7_4()</ref></c></r> - <r><c><ref>7.4::call_with_creds()</ref></c> - <c><ref>__builtin.security.call_with_creds()</ref></c></r> - <r><c><ref>7.4::get_current_creds()</ref></c> - <c><ref>__builtin.security.get_current_creds()</ref></c></r> - <r><c><ref>7.4::get_object_creds()</ref></c> - <c><ref>__builtin.security.get_object_creds()</ref></c></r> - <r><c><ref>7.4::_pipe_debug()</ref></c> - <c><ref>Pipe._pipe_debug()</ref></c></r> - <r><c><ref>7.4::getpwent()</ref></c> - <c><ref>System.getpwent()</ref></c></r> - <r><c><ref>7.4::endpwent()</ref></c> - <c><ref>System.endpwent()</ref></c></r> - <r><c><ref>7.4::setpwent()</ref></c> - <c><ref>System.setpwent()</ref></c></r> - <r><c><ref>7.4::getgrent()</ref></c> - <c><ref>System.getgrent()</ref></c></r> - <r><c><ref>7.4::endgrent()</ref></c> - <c><ref>System.endgrent()</ref></c></r> - <r><c><ref>7.4::setgrent()</ref></c> - <c><ref>System.getgrent()</ref></c></r> - </matrix> - </p> - </subsection> - <subsection title="Compiler"> - </subsection> -</section> -<section title="Pike 7.2"> - <subsection title="Modules"> - <p><ref>7.2::Parser.XML.Simple</ref>, <ref>7.2::Parser.XML.Validating</ref> - as well as <ref>7.2::Parser.XML.Tree.parse_input()</ref> used to be more - lenient.</p> - <p>Most functions in <ref>7.2::Protocols.LDAP.client</ref> used to - have different calling conventions.</p> - <p><ref>7.2::Thread.Condition()->wait()</ref> used to support being called - without a <ref>Thread.Mutex</ref>. This support was removed since it - introduced race-conditions in almost all code that used the feature.</p> - <p><ref>7.2::dirname()</ref> used to return <tt>""</tt> for the path - <tt>"/"</tt>.</p> - <p><ref>7.2::new()</ref> and <ref>7.2::clone()</ref> have been obsoleted - by <expr>((program)prog)(@args)</expr>.</p> - <p>The following modules and functions have moved, been renamed or - been deleted: - <matrix> - <r><c><ref>7.2::Gmp.pow</ref></c><c><ref>pow</ref></c></r> - <r><c><ref>7.2::LR</ref></c><c><ref>Parser.LR</ref></c></r> - <r><c><ref>7.2::LR.item</ref></c> - <c><ref>Parser.LR.Parser.Item</ref> (protected)</c></r> - <r><c><ref>7.2::LR.parser</ref></c> - <c><ref>Parser.LR.Parser</ref></c></r> - <r><c><ref>7.2::LR.priority</ref></c> - <c><ref>Parser.LR.Priority</ref></c></r> - <r><c><ref>7.2::LR.rule</ref></c><c><ref>Parser.LR.Rule</ref></c></r> - <r><c><ref>7.2::LR.scanner</ref></c><c>(deleted)</c></r> - <r><c><ref>7.2::String.strmult</ref></c> - <c>(deprecated by <ref>`*</ref>)</c></r> - <r><c><ref>7.2::String.String_buffer</ref></c> - <c>(deprecated by <ref>String.Buffer</ref>)</c></r> - <r><c><ref>7.2::system</ref></c><c><ref>System</ref></c></r> - <r><c><ref>7.2::sleep</ref></c><c><ref>delay</ref></c></r> - <r><c><ref>7.2::default_yp_domain</ref></c> - <c><ref>Yp.default_domain</ref></c></r> - <r><c><ref>7.2::_low_program_name</ref></c> - <c><ref>spider._low_program_name</ref></c></r> - <r><c><ref>7.2::set_start_quote</ref></c> - <c><ref>spider.set_start_quote</ref></c></r> - <r><c><ref>7.2::set_end_quote</ref></c> - <c><ref>spider.set_end_quote</ref></c></r> - <r><c><ref>7.2::parse_accessed_database</ref></c> - <c><ref>spider.parse_accessed_database</ref></c></r> - <r><c><ref>7.2::_dump_obj_table</ref></c> - <c><ref>spider._dump_obj_table</ref></c></r> - <r><c><ref>7.2::parse_html</ref></c> - <c><ref>spider.parse_html</ref></c></r> - <r><c><ref>7.2::parse_html_lines</ref></c> - <c><ref>spider.parse_html_lines</ref></c></r> - <r><c><ref>7.2::discdate</ref></c> - <c><ref>spider.discdate</ref></c></r> - <r><c><ref>7.2::stardate</ref></c> - <c><ref>spider.stardate</ref></c></r> - <r><c><ref>7.2::get_all_active_fd</ref></c> - <c><ref>spider.get_all_active_fd</ref></c></r> - <r><c><ref>7.2::fd_info</ref></c> - <c><ref>spider.fd_info</ref></c></r> - </matrix> - </p> - </subsection> - <subsection title="Compiler"> - </subsection> -</section> -<section title="Pike 7.0"> - <subsection title="Simulate"> - <p><tt>#include</tt> of <tt><simulate.h></tt> or import of - the <ref>7.0::Simulate</ref> module provided some compatibility - with LPC.</p> - <p>The compatibility functions were - <ref>7.0::Simulate.member_array()</ref>, - <ref>7.0::Simulate.previous_object()</ref>, - <ref>7.0::Simulate.this_function()</ref>, - <ref>7.0::Simulate.get_function()</ref>, - <ref>7.0::Simulate.map_regexp()</ref> - as well was various functions from the <ref>Array</ref>, <ref>String</ref> - and <ref>Process</ref> modules.</p> - <p>The following functions were provided under alternate names: - <matrix> - <r><c><ref>7.0::Simulate.all_efuns</ref></c> - <c><ref>all_constants</ref></c></r> - <r><c><ref>7.0::Simulate.explode</ref></c> - <c><ref>`/</ref></c></r> - <r><c><ref>7.0::Simulate.filter_array</ref></c> - <c><ref>filter</ref></c></r> - <r><c><ref>7.0::Simulate.map_array</ref></c> - <c><ref>map</ref></c></r> - <r><c><ref>7.0::Simulate.implode</ref></c> - <c><ref>`*</ref></c></r> - <r><c><ref>7.0::Simulate.m_indices</ref></c> - <c><ref>indices</ref></c></r> - <r><c><ref>7.0::Simulate.m_sizeof</ref></c> - <c><ref>sizeof</ref></c></r> - <r><c><ref>7.0::Simulate.m_values</ref></c> - <c><ref>values</ref></c></r> - <r><c><ref>7.0::Simulate.strstr</ref></c> - <c><ref>search</ref></c></r> - <r><c><ref>7.0::Simulate.sum</ref></c> - <c><ref>`+</ref></c></r> - <r><c><ref>7.0::Simulate.add_efun</ref></c> - <c><ref>add_constant</ref></c></r> - <r><c><ref>7.0::Simulate.l_sizeof</ref></c> - <c><ref>sizeof</ref></c></r> - <r><c><ref>7.0::Simulate.listp</ref></c> - <c><ref>multisetp</ref></c></r> - <r><c><ref>7.0::Simulate.mklist</ref></c> - <c><ref>mkmultiset</ref></c></r> - <r><c><ref>7.0::Simulate.aggregate_list</ref></c> - <c><ref>aggregate_multiset</ref></c></r> - <r><c><ref>7.0::Simulate.query_host_name</ref></c> - <c><ref>gethostname</ref></c></r> - </matrix> - </p> - <p>A single mathematical constant was also provided; - <ref>7.0::Simulate.PI</ref> with a value close to - <tt>3.1415926535897932384626433832795080</tt>. - </p> - </subsection> - <subsection title="Modules"> - <p>The <ref>7.0::Colors</ref> module contained lots of color definitions - with three-element arrays containing the Red, Green and Blue components. - These color definitions are now provided by the <ref>Image.Colors</ref> - module.</p> - <p><ref>7.0::Stdio.File()->stat()</ref> and - <ref>7.0::Stdio.FILE()->stat()</ref> as well as - <ref>7.2::file_stat()</ref> used to return an array with - integers and not a <ref>Stdio.Stat</ref> object.</p> - <p><ref>7.0::_typeof()</ref> used to return a string and not a type.</p> - <p><ref>7.0::m_delete()</ref> used to return the mapping and not - the deleted value.</p> - <p>The following modules and functions have moved or been renamed: - <matrix> - <r><c><ref>7.0::Calendar</ref></c><c><ref>Calendar_I</ref></c></r> - <r><c><ref>7.0::hash</ref></c><c><ref>hash_7_0</ref></c></r> - <r><c><ref>7.0::Stack.stack</ref></c><c><ref>ADT.Stack</ref></c></r> - </matrix> - </p> - </subsection> - <subsection title="Compiler"> + <subsection title="Runtime"> + <p>The <tt>main()</tt> function used to get the environment + as a mapping in argument number three.</p> + <p>The API for <ref>Debug.describe_program()</ref> was different.</p> </subsection> </section> -<section title="Pike 0.6"> - <subsection title="Laxer Types"> - <p>Several functions, including <ref>0.6::Array.map</ref> and - <ref>0.6::aggregate</ref>, had much more lenient types than in - later versions.</p> - </subsection> - <subsection title="readline"> - <p>There was a global function <ref>0.6::readline()</ref> that - provided some simple readline support. This was obsoleted by - the <ref>Readline</ref> module.</p> + +<section title="Pike 7.4 and earlier"> + <subsection title="Deprecated"> + <p>The backward compatibility code for Pike 7.4 and earlier + has been removed in Pike 8.0.</p> </subsection> </section> -</chapter> \ No newline at end of file +</chapter> diff --git a/refdoc/structure/traditional.xml b/refdoc/structure/traditional.xml index a733eba75f176e8733bca967f7e976a1f5caea22..9756d7cfbd8b73559db00f3a224fd481f327975f 100644 --- a/refdoc/structure/traditional.xml +++ b/refdoc/structure/traditional.xml @@ -141,10 +141,9 @@ </dir> <void> - <!-- The 7.0 and 7.2 module should perhaps be added to a - compatible chapter, but it needs a modifying + <!-- The compatibility modules should perhaps be added to a + compatibility chapter, but they would need a modifying wrapper first. --> - <insert-move entity="7-4::"/> <insert-move entity="7-6::"/> <insert-move entity="7-8::"/> <insert-move entity="_Roxen"/>