autodoc.git / onepage.xml

version» Context lines:

autodoc.git/onepage.xml:1:   <?xml version='1.0' encoding='utf-8'?> - <manual time-stamp='2019-01-26' version='Pike v8.1.13'> + <manual time-stamp='2019-02-01' version='Pike v8.1.13'>    <dir name='./onepage'>    <file name='./onepage/manual.html'>    <chapter number='1' title='Control Structures'>      <p>In this chapter all the control structures in Pike will be   explained. Control structures are used to control the flow of the   program execution. Note that functions that make the program pause and   simple function calls are not qualified as control structures.</p>      <section number='1' title='Conditions'>
autodoc.git/onepage.xml:1576:   </text><group><param name='context'/><text><p>Inherit in the current object to return the annotations for.    If <expr>UNDEFINED</expr> or left out, <expr>this_program::this</expr>    should be used (ie start at the current context and ignore    any overloaded symbols).</p>   </text></group><group><param name='access'/><text><p>Access permission override. One of the following:</p>   <int><group><value>0</value><value>UNDEFINED</value><text><p>See only public symbols.</p>   </text></group><group><value>1</value><text><p>See protected symbols as well.</p>   </text></group></int>   </text></group><group><param name='recursive'/><text><p>Include nested annotations from the inherits.</p>   <p> Builtin function to list the annotations (if any) of the identifiers -  of an object. This is useful when <ref>lfun::_annotations</ref> has been overloaded.</p> - </text></group><group><seealso/><text><p><ref>annotations()</ref>, <ref>lfun::_annotations()</ref></p> +  of an object. This is useful when <ref resolved='lfun::_annotations'>lfun::_annotations</ref> has been overloaded.</p> + </text></group><group><seealso/><text><p><ref>annotations()</ref>, <ref resolved='lfun::_annotations'>lfun::_annotations()</ref></p>   </text></group></doc>   <method name='_annotations'>   <arguments><argument name='context'><type><or><object resolved='::_annotations'/><void/></or></type></argument><argument name='access'><type><or><int/><void/></or></type></argument><argument name='recursive'><type><or><int><min>0</min><max>1</max></int><void/></or></type></argument></arguments>   <returntype><array/></returntype>   </method>   </docgroup>   <docgroup homogen-name='_indices' homogen-type='method'><doc><group><param name='context'/><text><p>Context in the current object to start the list from.    If <expr>UNDEFINED</expr> or left out, this_program::this    will be used (ie start at the current context and ignore    any overloaded symbols).</p>   </text></group><group><param name='access'/><text><p>Access permission override. One of the following:</p>   <int><group><value>0</value><value>UNDEFINED</value><text><p>See only public symbols.</p>   </text></group><group><value>1</value><text><p>See protected symbols as well.</p>   </text></group></int><p>Builtin function to list the identifiers of an object. -  This is useful when <ref>lfun::_indices</ref> has been overloaded.</p> +  This is useful when <ref resolved='lfun::_indices'>lfun::_indices</ref> has been overloaded.</p>   </text></group><group><seealso/><text><p><ref resolved='::_values'>::_values()</ref>, <ref resolved='::_types'>::_types()</ref>, <ref resolved='::`-&gt;'>::`-&gt;()</ref></p>   </text></group></doc>   <method name='_indices'>   <arguments><argument name='context'><type><or><object resolved='::_indices'/><void/></or></type></argument><argument name='access'><type><or><int/><void/></or></type></argument></arguments>   <returntype><array><valuetype><string/></valuetype></array></returntype>   </method>   </docgroup>   <docgroup homogen-name='_types' homogen-type='method'><doc><group><param name='context'/><text><p>Context in the current object to start the list from.    If <expr>UNDEFINED</expr> or left out, this_program::this    will be used (ie start at the current context and ignore    any overloaded symbols).</p>   </text></group><group><param name='access'/><text><p>Access permission override. One of the following:</p>   <int><group><value>0</value><value>UNDEFINED</value><text><p>See only public symbols.</p>   </text></group><group><value>1</value><text><p>See protected symbols as well.</p>   </text></group></int><p>Builtin function to list the types of the identifiers of an -  object. This is useful when <ref>lfun::_types</ref> has been overloaded.</p> +  object. This is useful when <ref resolved='lfun::_types'>lfun::_types</ref> has been overloaded.</p>   </text></group><group><seealso/><text><p><ref resolved='::_indices'>::_indices()</ref>, <ref resolved='::_values'>::_values()</ref>, <ref resolved='::`-&gt;'>::`-&gt;()</ref></p>   </text></group></doc>   <method name='_types'>   <arguments><argument name='context'><type><or><object resolved='::_types'/><void/></or></type></argument><argument name='access'><type><or><int/><void/></or></type></argument></arguments>   <returntype><array/></returntype>   </method>   </docgroup>   <docgroup homogen-name='_values' homogen-type='method'><doc><group><param name='context'/><text><p>Context in the current object to start the list from.    If <expr>UNDEFINED</expr> or left out, this_program::this    will be used (ie start at the current context and ignore    any overloaded symbols).</p>   </text></group><group><param name='access'/><text><p>Access permission override. One of the following:</p>   <int><group><value>0</value><value>UNDEFINED</value><text><p>See only public symbols.</p>   </text></group><group><value>1</value><text><p>See protected symbols as well.</p>   </text></group></int><p>Builtin function to list the values of the identifiers of an -  object. This is useful when <ref>lfun::_values</ref> has been overloaded.</p> +  object. This is useful when <ref resolved='lfun::_values'>lfun::_values</ref> has been overloaded.</p>   </text></group><group><seealso/><text><p><ref resolved='::_indices'>::_indices()</ref>, <ref resolved='::_types'>::_types()</ref>, <ref resolved='::`-&gt;'>::`-&gt;()</ref></p>   </text></group></doc>   <method name='_values'>   <arguments><argument name='context'><type><or><object resolved='::_values'/><void/></or></type></argument><argument name='access'><type><or><int/><void/></or></type></argument></arguments>   <returntype><array/></returntype>   </method>   </docgroup>   <docgroup homogen-name='`-&gt;' homogen-type='method'><doc><text><p>Builtin arrow operator.</p>   </text><group><param name='index'/><text><p>Symbol in <ref resolved='::`-&gt;.context'>context</ref> to access.</p>   </text></group><group><param name='context'/><text><p>Context in the current object to start the search from.
autodoc.git/onepage.xml:2688:   </docgroup>   </class>   <class name='DES3'>   <docgroup homogen-name='CBC' homogen-type='inherit'>   <inherit name='CBC'><classname resolved='8.0::Crypto.CBC'>Crypto.CBC</classname></inherit>   </docgroup>   </class>   <class name='DHKeyExchange'>   <doc><text><p>Implements Diffie-Hellman key-exchange.</p>   <p> The following key exchange methods are implemented here: -  <ref resolved='7.8::SSL.Constants.KeyExchangeType.KE_dhe_dss'>KE_dhe_dss</ref>, <ref resolved='7.8::SSL.Constants.KeyExchangeType.KE_dhe_rsa'>KE_dhe_rsa</ref> and <ref resolved='7.8::SSL.Constants.KeyExchangeType.KE_dh_anon'>KE_dh_anon</ref>.</p> +  <ref resolved='predef::SSL.Constants.KeyExchangeType.KE_dhe_dss'>KE_dhe_dss</ref>, <ref resolved='predef::SSL.Constants.KeyExchangeType.KE_dhe_rsa'>KE_dhe_rsa</ref> and <ref resolved='predef::SSL.Constants.KeyExchangeType.KE_dh_anon'>KE_dh_anon</ref>.</p>   </text></doc>   <docgroup homogen-name='create' homogen-type='method'>   <method name='create'><modifiers><protected/></modifiers>   <arguments><argument name='p'><type><object resolved='7.8::SSL.Cipher.DHParameters'>DHParameters</object></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup>   </class>   <class name='DHParameters'>   <doc><text><p>Diffie-Hellman parameters.</p>
autodoc.git/onepage.xml:3305:   <variable name='client_cert_distinguished_names'><type><array><valuetype><string/></valuetype></array></type></variable>   </docgroup>   <docgroup homogen-type='variable'><doc><text><p>Random cookies, sent and received with the hello-messages.</p>   </text></doc>   <variable name='client_random'><type><string/></type></variable>   <variable name='server_random'><type><string/></type></variable>   </docgroup>   <docgroup homogen-name='create' homogen-type='method'><doc><group><param name='is_server'/><text><p>Whether this is the server end of the connection or not.</p>   </text></group><group><param name='ctx'/><text><p>The context for the connection.</p>   </text></group><group><param name='min_version'/><text><p>Minimum version of SSL to support. -  Defaults to <ref resolved='7.8::SSL.Constants.ProtocolVersion.PROTOCOL_SSL_3_0'>Constants.PROTOCOL_SSL_3_0</ref>.</p> +  Defaults to <ref resolved='predef::SSL.Constants.ProtocolVersion.PROTOCOL_SSL_3_0'>Constants.PROTOCOL_SSL_3_0</ref>.</p>   </text></group><group><param name='max_version'/><text><p>Maximum version of SSL to support.    Defaults to <ref resolved='7.8::SSL.Constants.PROTOCOL_minor'>Constants.PROTOCOL_minor</ref>.</p>   </text></group></doc>   <method name='create'>   <arguments><argument name='is_server'><type><int/></type></argument><argument name='ctx'><type><or><void/><object resolved='7.8::SSL.context'>SSL.context</object></or></type></argument><argument name='min_version'><type><or><void/><object resolved='7.8::SSL.Constants.ProtocolVersion'>ProtocolVersion</object></or></type></argument><argument name='max_version'><type><or><void/><object resolved='7.8::SSL.Constants.ProtocolVersion'>ProtocolVersion</object></or></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup>   <docgroup homogen-name='handle_handshake' homogen-type='method'><doc><text><p>Do handshake processing. Type is one of HANDSHAKE_*, data is the    contents of the packet, and raw is the raw packet received (needed
autodoc.git/onepage.xml:3821:   </docgroup>   <docgroup homogen-name='set_blocking_keep_callbacks' homogen-type='method'><doc><text><p>Set blocking mode like <ref resolved='7.8::SSL.sslfile.set_blocking'>set_blocking</ref>, but don't alter any    callbacks.</p>   </text><group><seealso/><text><p><ref resolved='7.8::SSL.sslfile.set_blocking'>set_blocking</ref>, <ref resolved='7.8::SSL.sslfile.set_nonblocking'>set_nonblocking</ref></p>   </text></group></doc>   <method name='set_blocking_keep_callbacks'>   <arguments/>   <returntype><void/></returntype>   </method>   </docgroup> - <docgroup homogen-name='set_callbacks' homogen-type='method'><doc><text><p>Installs all the specified callbacks at once. Use <ref>UNDEFINED</ref> + <docgroup homogen-name='set_callbacks' homogen-type='method'><doc><text><p>Installs all the specified callbacks at once. Use <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref>    to keep the current setting for a callback.</p>   <p> Like <ref resolved='7.8::SSL.sslfile.set_nonblocking'>set_nonblocking</ref>, the callbacks are installed atomically.    As opposed to <ref resolved='7.8::SSL.sslfile.set_nonblocking'>set_nonblocking</ref>, this function does not do    anything with the stream, and it doesn't even have to be open.</p>   </text><group><bugs/><text><p><ref resolved='7.8::SSL.sslfile.set_callbacks.read_oob'>read_oob</ref> and <ref resolved='7.8::SSL.sslfile.set_callbacks.write_oob'>write_oob</ref> are currently ignored.</p>   </text></group><group><seealso/><text><p><ref resolved='7.8::SSL.sslfile.set_read_callback'>set_read_callback</ref>, <ref resolved='7.8::SSL.sslfile.set_write_callback'>set_write_callback</ref>,    <ref resolved='7.8::SSL.sslfile.set_close_callback'>set_close_callback</ref>, <ref resolved='7.8::SSL.sslfile.set_accept_callback'>set_accept_callback</ref>, <ref resolved='7.8::SSL.sslfile.query_callbacks'>query_callbacks</ref></p>   </text></group></doc>   <method name='set_callbacks'>   <arguments><argument name='read'><type><or><void/><function><argtype><mixed/></argtype><argtype><string/></argtype><returntype><int/></returntype></function></or></type></argument><argument name='write'><type><or><void/><function><argtype><mixed/></argtype><returntype><int/></returntype></function></or></type></argument><argument name='close'><type><or><void/><function><argtype><mixed/></argtype><returntype><int/></returntype></function></or></type></argument><argument name='read_oob'><type><or><void/><function><argtype><mixed/></argtype><argtype><string/></argtype><returntype><int/></returntype></function></or></type></argument><argument name='write_oob'><type><or><void/><function><argtype><mixed/></argtype><returntype><int/></returntype></function></or></type></argument><argument name='accept'><type><or><void/><function><argtype><or><void/><mixed/></or></argtype><returntype><int/></returntype></function></or></type></argument></arguments>
autodoc.git/onepage.xml:5054:   </text></group></doc>   <method name='set_nonblocking_keep_callbacks'>   <arguments/>   <returntype><void/></returntype>   </method>   <method name='set_blocking_keep_callbacks'>   <arguments/>   <returntype><void/></returntype>   </method>   </docgroup> - <docgroup homogen-name='set_callbacks' homogen-type='method'><doc><text><p>Installs all the specified callbacks at once. Use <ref>UNDEFINED</ref> + <docgroup homogen-name='set_callbacks' homogen-type='method'><doc><text><p>Installs all the specified callbacks at once. Use <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref>    to keep the current setting for a callback.</p>   <p> Like <ref resolved='7.8::Stdio.File.set_nonblocking'>set_nonblocking</ref>, the callbacks are installed atomically.    As opposed to <ref resolved='7.8::Stdio.File.set_nonblocking'>set_nonblocking</ref>, this function does not do    anything with the stream, and it doesn't even have to be open.</p>   </text><group><seealso/><text><p><ref resolved='7.8::Stdio.File.set_read_callback'>set_read_callback</ref>, <ref resolved='7.8::Stdio.File.set_write_callback'>set_write_callback</ref>,    <ref resolved='7.8::Stdio.File.set_read_oob_callback'>set_read_oob_callback</ref>, <ref resolved='7.8::Stdio.File.set_write_oob_callback'>set_write_oob_callback</ref>,    <ref resolved='7.8::Stdio.File.set_close_callback'>set_close_callback</ref>, <ref resolved='7.8::Stdio.File.query_callbacks'>query_callbacks</ref></p>   </text></group></doc>   <method name='set_callbacks'>   <arguments><argument name='read_cb'><type><or><void/><function><argtype><mixed/></argtype><argtype><string/></argtype><returntype><int/></returntype></function></or></type></argument><argument name='write_cb'><type><or><void/><function><argtype><mixed/></argtype><returntype><int/></returntype></function></or></type></argument><argument name='close_cb'><type><or><void/><function><argtype><mixed/></argtype><returntype><int/></returntype></function></or></type></argument><argument name='read_oob_cb'><type><or><void/><function><argtype><mixed/></argtype><argtype><string/></argtype><returntype><int/></returntype></function></or></type></argument><argument name='write_oob_cb'><type><or><void/><function><argtype><mixed/></argtype><returntype><int/></returntype></function></or></type></argument></arguments>
autodoc.git/onepage.xml:5376:   </docgroup>   <module name='ADT'>   <class name='Heap'>   <docgroup homogen-name='' homogen-type='import'>   <import name=''><classname resolved='predef::'>8.1::</classname></import>   </docgroup>   <docgroup homogen-name='Heap' homogen-type='inherit'>   <inherit name='Heap'><classname resolved='predef::ADT.Heap'>ADT.Heap</classname></inherit>   </docgroup>   <docgroup homogen-name='size' homogen-type='method'><doc><text><p>Returns the number of elements in the heap.</p> - </text><group><deprecated><name><ref>lfun::_sizeof</ref></name></deprecated></group></doc> + </text><group><deprecated><name><ref resolved='lfun::_sizeof'>lfun::_sizeof</ref></name></deprecated></group></doc>   <method name='size'>   <arguments/>   <returntype><int/></returntype>   </method>   </docgroup>   <docgroup homogen-name='top' homogen-type='method'><doc><text><p>Removes and returns the item on top of the heap,    which also is the smallest value in the heap.</p>   </text><group><deprecated><name><ref resolved='predef::ADT.Heap.pop'>pop</ref></name></deprecated></group></doc>   <method name='top'>   <arguments/>
autodoc.git/onepage.xml:7411:   <docgroup homogen-name='static_assert' homogen-type='constant'><doc><text><p>This define expands to the symbol <ref>_Static_assert</ref>.</p>   <p> It is the preferred way to perform static    (ie compile-time) assertions.</p>   </text><group><note/><text><p>The macro can also be used to check for whether static assertions    are supported.</p>   </text></group><group><seealso/><text><p><ref resolved='predef::_Static_assert'>predef::_Static_assert()</ref></p>   </text></group></doc>   <constant name='static_assert'/>   </docgroup>   </namespace> + <namespace name='lfun'> + <doc><text><p>Callback functions used to overload various builtin functions.</p> + <p> The functions can be grouped into a few sets:</p> + <ul><group><item/><text><p>Object initialization and destruction.</p> + <p> <ref resolved='lfun::__INIT'>__INIT()</ref>, <ref resolved='lfun::create'>create()</ref>, <ref resolved='lfun::_destruct'>_destruct()</ref></p> + </text></group><group><item/><text><p>Unary operator overloading.</p> + <p> <ref resolved='lfun::`~'>`~()</ref>, <ref resolved='lfun::`!'>`!()</ref>, +  <ref resolved='lfun::_values'>_values()</ref>, <ref resolved='lfun::cast'>cast()</ref>, +  <ref resolved='lfun::_sizeof'>_sizeof()</ref>, <ref resolved='lfun::_indices'>_indices()</ref>, +  <ref resolved='lfun::__hash'>__hash()</ref></p> + </text></group><group><item/><text><p>Binary asymmetric operator overloading.</p> + <p> <ref resolved='lfun::`+'>`+()</ref>, <ref resolved='lfun::``+'>``+()</ref>, +  <ref resolved='lfun::`-'>`-()</ref>, <ref resolved='lfun::``-'>``-()</ref>, +  <ref resolved='lfun::`&amp;'>`&amp;()</ref>, <ref resolved='lfun::``&amp;'>``&amp;()</ref>, +  <ref resolved='lfun::`|'>`|()</ref>, <ref resolved='lfun::``|'>``|()</ref>, +  <ref resolved='lfun::`^'>`^()</ref>, <ref resolved='lfun::``^'>``^()</ref>, +  <ref resolved='lfun::`&lt;&lt;'>`&lt;&lt;()</ref>, <ref resolved='lfun::``&lt;&lt;'>``&lt;&lt;()</ref>, +  <ref resolved='lfun::`&gt;&gt;'>`&gt;&gt;()</ref>, <ref resolved='lfun::``&gt;&gt;'>``&gt;&gt;()</ref>, +  <ref resolved='lfun::`*'>`*()</ref>, <ref resolved='lfun::``*'>``*()</ref>, +  <ref resolved='lfun::`/'>`/()</ref>, <ref resolved='lfun::``/'>``/()</ref>, +  <ref resolved='lfun::`%'>`%()</ref>, <ref resolved='lfun::``%'>``%()</ref></p> + </text></group><group><item/><text><p>Binary symmetric operator overloading.</p> + <p> The optimizer will make assumptions about the relations +  between these functions.</p> + <p> <ref resolved='lfun::`=='>`==()</ref>, <ref resolved='lfun::_equal'>_equal()</ref>, <ref resolved='lfun::`&lt;'>`&lt;()</ref>, <ref resolved='lfun::`&gt;'>`&gt;()</ref></p> + </text></group><group><item/><text><p>Other binary operator overloading.</p> + <p> <ref resolved='lfun::`[]'>`[]()</ref>, <ref resolved='lfun::`[]='>`[]=()</ref>, <ref resolved='lfun::`-&gt;'>`-&gt;()</ref>, +  <ref resolved='lfun::`-&gt;='>`-&gt;=()</ref>, <ref resolved='lfun::`+='>`+=()</ref>, <ref resolved='lfun::`()'>`()()</ref></p> + </text></group><group><item/><text><p>Overloading of other builtin functions.</p> + <p> <ref resolved='lfun::_is_type'>_is_type()</ref>, <ref resolved='lfun::_sprintf'>_sprintf()</ref>, <ref resolved='lfun::_m_delete'>_m_delete()</ref>, +  <ref resolved='lfun::_get_iterator'>_get_iterator()</ref>, <ref resolved='lfun::_search'>_search()</ref></p> + </text></group></ul> + </text><group><note/><text><p>Although these functions are called from outside the object they +  exist in, they will still be used even if they are declared +  <expr>protected</expr>. It is in fact recommended to declare them +  <expr>protected</expr>, since that will hinder them being used for +  other purposes.</p> + </text></group><group><seealso/><text><p><ref resolved='::'>::</ref></p> + </text></group></doc> + <docgroup homogen-name='__INIT' homogen-type='method'><doc><text><p>Inherit and variable initialization.</p> + <p> This function is generated automatically by the compiler. It's +  called just before <ref resolved='lfun::create'>lfun::create()</ref> when an object is +  instantiated.</p> + <p> It first calls any <expr>__INIT</expr> functions in inherited classes +  (regardless of modifiers on the inherits). It then executes all +  the variable initialization expressions in this class, in the +  order they occur.</p> + </text><group><note/><text><p>This function can not be overloaded or blocked from executing.</p> + </text></group><group><seealso/><text><p><ref resolved='lfun::create'>lfun::create()</ref></p> + </text></group></doc> + <method name='__INIT'> + <arguments/> + <returntype><void/></returntype> + </method> + </docgroup> + <docgroup homogen-name='__hash' homogen-type='method'><doc><text><p>Hashing callback.</p> + <p> The main caller of this function is <ref resolved='predef::hash_value'>predef::hash_value()</ref> +  or the low-level equivalent, which get called by various +  mapping operations when the object is used as index in a mapping.</p> + </text><group><returns/><text><p>It should return an integer that corresponds to the object +  in such a way that all values which <ref resolved='lfun::`=='>lfun::`==</ref> considers +  equal to the object get the same hash value.</p> + </text></group><group><note/><text><p>The function <ref resolved='predef::hash'>predef::hash</ref> does not return hash values that +  are compatible with this one.</p> + </text></group><group><note/><text><p>It's assumed that this function is side-effect free.</p> + </text></group><group><seealso/><text><p><ref resolved='lfun::`=='>lfun::`==</ref>, <ref resolved='predef::hash_value'>predef::hash_value()</ref></p> + </text></group></doc> + <method name='__hash'> + <arguments/> + <returntype><int/></returntype> + </method> + </docgroup> + <docgroup homogen-name='_annotations' homogen-type='method'><doc><text><p>Called by <ref>annotations()</ref></p> + </text><group><param name='context'/><text><p>Inherit in the current object to return the annotations for. +  If <expr>UNDEFINED</expr> or left out, <expr>this_program::this</expr> +  should be used (ie start at the current context and ignore +  any overloaded symbols).</p> + </text></group><group><param name='access'/><text><p>Access permission override. One of the following:</p> + <int><group><value>0</value><value>UNDEFINED</value><text><p>See only public symbols.</p> + </text></group><group><value>1</value><text><p>See protected symbols as well.</p> + </text></group></int> + </text></group><group><param name='recursive'/><text><p>Include nested annotations from the inherits.</p> + </text></group><group><seealso/><text><p><ref>annotations()</ref></p> + </text></group></doc> + <method name='_annotations'> + <arguments><argument name='context'><type><or><object resolved='lfun::_annotations'/><void/></or></type></argument><argument name='access'><type><or><int/><void/></or></type></argument><argument name='recursive'><type><or><int><min>0</min><max>1</max></int><void/></or></type></argument></arguments> + <returntype><array/></returntype> + </method> + </docgroup> + <docgroup homogen-name='_deserialize' homogen-type='method'><doc><text><p>Dispatch function for <ref>Serialization.deserialize()</ref>.</p> + </text><group><param name='o'/><text><p>Object to serialize. Always a context of the current object.</p> + </text></group><group><param name='deserializer'/><text><p>Function to be called once for every variable +  to serialize.</p> + <p> The <ref resolved='lfun::_deserialize.deserializer'>deserializer</ref> function expects to be called with three arguments:</p> + <dl><group><item/><text><p><tt>setter</tt> - Function that sets the symbol value.</p> + </text></group><group><item/><text><p><tt>symbol</tt> - The symbol name.</p> + </text></group><group><item/><text><p><tt>symbol_type</tt> - The type of the symbol.</p> + </text></group></dl> + </text></group><group><note/><text><p>A default implementation of <ref resolved='lfun::_serialize'>lfun::_serialize()</ref> and +  <ref resolved='lfun::_deserialize'>lfun::_deserialize()</ref> is available in <ref>Serializer.Serializable</ref>.</p> + </text></group><group><seealso/><text><p><ref resolved='lfun::_serialize'>lfun::_serialize()</ref>, <ref>Serializer.deserialize()</ref>, +  <ref>Serializer.Serializable()-&gt;_deserialize()</ref></p> + </text></group></doc> + <method name='_deserialize'> + <arguments><argument name='o'><type><object resolved='lfun::_deserialize'/></type></argument><argument name='deserializer'><type><function><argtype><function><argtype><mixed/></argtype><returntype><void/></returntype></function></argtype><argtype><string/></argtype><argtype><type><mixed/></type></argtype><returntype><mixed/></returntype></function></type></argument></arguments> + <returntype><void/></returntype> + </method> + </docgroup> + <docgroup homogen-name='_destruct' homogen-type='method'><doc><text><p>Object destruction callback.</p> + <p> This function is called right before the object is destructed. +  That can happen either through a call to <ref resolved='predef::destruct'>predef::destruct()</ref>, +  when there are no more references to the object, or when the +  garbage collector discovers that it's part of a cyclic data +  structure that has become garbage.</p> + </text><group><param name='reason'/><text><p>A flag that tells why the object is destructed:</p> + <int><group><value>Object.DESTRUCT_EXPLICIT</value><text><p>Destructed explicitly by <ref resolved='predef::destruct'>predef::destruct</ref>.</p> + </text></group><group><value>Object.DESTRUCT_NO_REFS</value><text><p>Destructed due to running out of references.</p> + </text></group><group><value>Object.DESTRUCT_GC</value><text><p>Destructed by the garbage collector.</p> + </text></group><group><value>Object.DESTRUCT_CLEANUP</value><text><p>Destructed as part of the cleanup when the pike process +  exits. Occurs only if Pike has been compiled with the +  configure option <tt>--with-cleanup-on-exit</tt>. See note +  below.</p> + </text></group></int> + </text></group><group><note/><text><p>Objects are normally not destructed when a process exits, so +  <expr>_destruct</expr> functions aren't called then. Use <ref>atexit</ref> to get +  called when the process exits.</p> + </text></group><group><note/><text><p>Regarding destruction order during garbage collection:</p> + <p> If an object is destructed by the garbage collector, it's part of +  a reference cycle with other things but with no external +  references. If there are other objects with <expr>_destruct</expr> +  functions in the same cycle, it becomes a problem which to call +  first.</p> + <p> E.g. if this object has a variable with another object which +  (directly or indirectly) points back to this one, you might find +  that the other object already has been destructed and the variable +  thus contains zero.</p> + <p> The garbage collector tries to minimize such problems by defining +  an order as far as possible:</p> + <ul><group><item/><text><p>If an object A contains an <ref resolved='lfun::_destruct'>lfun::_destruct</ref> and an object B does +  not, then A is destructed before B.</p> + </text></group><group><item/><text><p>If A references B single way, then A is destructed before B.</p> + </text></group><group><item/><text><p>If A and B are in a cycle, and there is a reference somewhere +  from B to A that is weaker than any reference from A to B, then +  A is destructed before B.</p> + </text></group><group><item/><text><p>If a cycle is resolved according to the rule above by ignoring a +  weaker reference, and there is another ambiguous cycle that +  would get resolved by ignoring the same reference, then the +  latter cycle will be resolved by ignoring that reference.</p> + </text></group><group><item/><text><p>Weak references (e.g. set with <ref resolved='predef::set_weak_flag'>predef::set_weak_flag()</ref>) are +  considered weaker than normal references, and both are +  considered weaker than strong references.</p> + </text></group><group><item/><text><p>Strong references are those from objects to the objects of their +  lexically surrounding classes. There can never be a cycle +  consisting only of strong references. (This means the gc never +  destructs a parent object before all children have been +  destructed.)</p> + </text></group></ul><p>An example with well defined destruct order due to strong +  references:</p> + <code><text><p>class Super { +  class Sub { +  protected void _destruct() { +  if (!Super::this) +  error ("My parent has been destructed!\n"); +  } +  } +  Sub sub = Sub(); +  protected void _destruct() { +  if (!sub) +  werror ("sub already destructed.\n"); +  } +  }</p> + </text></code><p>The garbage collector ensures that these objects are destructed in +  an order so that <expr>werror</expr> in <expr>Super</expr> is called and not +  <expr>error</expr> in <expr>Sub</expr>.</p> + </text></group><group><note/><text><p>When the garbage collector calls <ref resolved='lfun::_destruct'>lfun::_destruct</ref>, all accessible +  non-objects and objects without <expr>_destruct</expr> functions are +  still intact. They are not freed if the <expr>_destruct</expr> function +  adds external references to them. However, all objects with +  <ref resolved='lfun::_destruct'>lfun::_destruct</ref> in the cycle are already scheduled for +  destruction and will therefore be destroyed even if external +  references are added to them.</p> + </text></group><group><seealso/><text><p><ref resolved='lfun::create'>lfun::create()</ref>, <ref resolved='predef::destruct'>predef::destruct()</ref></p> + </text></group></doc> + <method name='_destruct'> + <arguments><argument name='reason'><type><or><void/><int/></or></type></argument></arguments> + <returntype><void/></returntype> + </method> + </docgroup> + <docgroup homogen-name='_equal' homogen-type='method'><doc><text><p>Recursive equality callback.</p> + </text><group><returns/><text><p>Is expected to return <expr>1</expr> if the current object is +  equal to <ref resolved='lfun::_equal.arg'>arg</ref>, and <expr>0</expr> (zero) otherwise.</p> + </text></group><group><note/><text><p>It's assumed that this function is side-effect free.</p> + </text></group><group><note/><text><p>Note that this function may return different values at different +  times for the same argument due to the mutability of the object.</p> + </text></group><group><seealso/><text><p><ref resolved='predef::equal'>predef::equal()</ref>, <ref resolved='lfun::`=='>lfun::`==()</ref></p> + </text></group></doc> + <method name='_equal'> + <arguments><argument name='arg'><type><mixed/></type></argument></arguments> + <returntype><int/></returntype> + </method> + </docgroup> + <docgroup homogen-name='_get_iterator' homogen-type='method'><doc><text><p>Iterator creation callback.</p> + <p> The returned <ref resolved='predef::Iterator'>predef::Iterator</ref> instance works as a cursor that +  references a specific item contained (in some arbitrary sense) +  in this one.</p> + </text><group><note/><text><p>It's assumed that this function is side-effect free.</p> + </text></group><group><seealso/><text><p><ref resolved='predef::Iterator'>predef::Iterator</ref>, <ref resolved='predef::get_iterator'>predef::get_iterator</ref>, <ref>predef::foreach()</ref></p> + </text></group></doc> + <method name='_get_iterator'> + <arguments/> + <returntype><object resolved='predef::Iterator'>predef::Iterator</object></returntype> + </method> + </docgroup> + <docgroup homogen-name='_indices' homogen-type='method'><doc><text><p>List indices callback.</p> + </text><group><returns/><text><p>Expected to return an array with the valid indices in the object.</p> + </text></group><group><note/><text><p>It's assumed that this function is side-effect free.</p> + </text></group><group><seealso/><text><p><ref resolved='predef::indices'>predef::indices()</ref>, <ref resolved='lfun::_values'>lfun::_values()</ref>, <ref resolved='lfun::_types'>lfun::_types()</ref>, +  <ref resolved='::_indices'>::_indices()</ref></p> + </text></group></doc> + <method name='_indices'> + <arguments><argument name='context'><type><or><object resolved='lfun::_indices'/><void/></or></type></argument><argument name='access'><type><or><int/><void/></or></type></argument></arguments> + <returntype><array/></returntype> + </method> + </docgroup> + <docgroup homogen-name='_is_type' homogen-type='method'><doc><text><p>Type comparison callback.</p> + <p> Called by the cast operator to determine if an object +  simulates a basic type.</p> + </text><group><param name='basic_type'/><text><p>One of:</p> + <string><group><value>"array"</value><value>"float"</value><value>"function"</value><value>"int"</value><value>"mapping"</value><value>"multiset"</value><value>"object"</value><value>"program"</value><value>"string"</value><value>"type"</value><value>"void"</value><value>"zero"</value></group></string><p>The following five shouldn't occurr, but are here for completeness:</p> + <string><group><value>"lvalue"</value><value>"mapping_data"</value><value>"object storage"</value><value>"pike_frame"</value><value>"unknown"</value></group></string> + </text></group><group><returns/><text><p>Expected to return <expr>1</expr> if the object is to be regarded as a +  simulation of the type specified by <ref resolved='lfun::_is_type.basic_type'>basic_type</ref>.</p> + </text></group><group><note/><text><p>The argument is currently a string with the name +  of the type, but might in the future be a value of the type type.</p> + </text></group><group><note/><text><p>It's assumed that this function is side-effect free.</p> + </text></group></doc> + <method name='_is_type'> + <arguments><argument name='basic_type'><type><string/></type></argument></arguments> + <returntype><int><min>0</min><max>1</max></int></returntype> + </method> + </docgroup> + <docgroup homogen-name='_m_add' homogen-type='method'><doc><text><p>Called by <ref>m_add()</ref>.</p> + </text><group><seealso/><text><p><ref resolved='lfun::_m_delete'>lfun::_m_delete()</ref>, <ref resolved='lfun::_m_clear'>lfun::_m_clear()</ref></p> + </text></group></doc> + <method name='_m_add'> + <arguments/> + <returntype><void/></returntype> + </method> + </docgroup> + <docgroup homogen-name='_m_clear' homogen-type='method'><doc><text><p>Called by <ref>m_clear()</ref>.</p> + </text><group><seealso/><text><p><ref resolved='lfun::_m_delete'>lfun::_m_delete()</ref>, <ref resolved='lfun::_m_add'>lfun::_m_add()</ref></p> + </text></group></doc> + <method name='_m_clear'> + <arguments/> + <returntype><void/></returntype> + </method> + </docgroup> + <docgroup homogen-name='_m_delete' homogen-type='method'><doc><text><p>Delete index callback.</p> + </text><group><seealso/><text><p><ref resolved='predef::m_delete'>predef::m_delete()</ref></p> + </text></group></doc> + <method name='_m_delete'> + <arguments><argument name='arg'><type><mixed/></type></argument></arguments> + <returntype><mixed/></returntype> + </method> + </docgroup> + <docgroup homogen-name='_random' homogen-type='method'><doc><text><p>Called by <ref resolved='lfun::_random.random'>random()</ref>. Typical use is when the object implements +  a ADT, when a call to this lfun should return a random member of +  the ADT or range implied by the ADT.</p> + </text><group><param name='random_string'/><text><p>A <ref>RandomInterface()-&gt;random_string</ref> function that returns +  a string(8bit) of the specified length.</p> + </text></group><group><param name='random'/><text><p>A <ref>RandomInterface()-&gt;random</ref> function.</p> + </text></group><group><seealso/><text><p><ref resolved='predef::random'>predef::random()</ref>, <ref>RandomInterface</ref></p> + </text></group></doc> + <method name='_random'> + <arguments><argument name='random_string'><type><function><argtype><int><min>0</min><max/></int></argtype><returntype><string><min>0</min><max>255</max></string></returntype></function></type></argument><argument name='random'><type><function><argtype><mixed/></argtype><returntype><mixed/></returntype></function></type></argument></arguments> + <returntype><mixed/></returntype> + </method> + </docgroup> + <docgroup homogen-name='_search' homogen-type='method'><doc><text><p>Search callback.</p> + <p> The arguments are sent straight from <ref>search()</ref>, and are +  as follows:</p> + </text><group><param name='needle'/><text><p>Value to search for.</p> + </text></group><group><param name='start'/><text><p>The first position to search.</p> + </text></group><group><param name='extra_args'/><text><p>Optional extra arguments as passed to <ref>search()</ref>.</p> + </text></group><group><seealso/><text><p><ref resolved='predef::search'>predef::search()</ref></p> + </text></group></doc> + <method name='_search'> + <arguments><argument name='needle'><type><mixed/></type></argument><argument name='start'><type><or><mixed/><void/></or></type></argument><argument name='extra_args'><type><varargs><mixed/></varargs></type></argument></arguments> + <returntype><mixed/></returntype> + </method> + </docgroup> + <docgroup homogen-name='_serialize' homogen-type='method'><doc><text><p>Dispatch function for <ref>Serializer.serialize()</ref>.</p> + </text><group><param name='o'/><text><p>Object to serialize. Always a context of the current object.</p> + </text></group><group><param name='serializer'/><text><p>Function to be called once for every variable +  to serialize.</p> + <p> The <ref resolved='lfun::_serialize.serializer'>serializer</ref> function expects to be called with three arguments:</p> + <dl><group><item/><text><p><tt>value</tt> - The value of the symbol.</p> + </text></group><group><item/><text><p><tt>symbol</tt> - The symbol name.</p> + </text></group><group><item/><text><p><tt>symbol_type</tt> - The type of the symbol.</p> + </text></group></dl> + </text></group><group><note/><text><p>A default implementation of <ref resolved='lfun::_serialize'>lfun::_serialize()</ref> and +  <ref resolved='lfun::_deserialize'>lfun::_deserialize()</ref> is available in <ref>Serializer.Serializable</ref>.</p> + </text></group><group><seealso/><text><p><ref resolved='lfun::_deserialize'>lfun::_deserialize()</ref>, <ref>Serializer.serialize()</ref>, +  <ref>Serializer.Serializable()-&gt;_serialize()</ref></p> + </text></group></doc> + <method name='_serialize'> + <arguments><argument name='o'><type><object resolved='lfun::_serialize'/></type></argument><argument name='serializer'><type><function><argtype><mixed/></argtype><argtype><string/></argtype><argtype><type><mixed/></type></argtype><returntype><void/></returntype></function></type></argument></arguments> + <returntype><void/></returntype> + </method> + </docgroup> + <docgroup homogen-name='_size_object' homogen-type='method'><doc><text><p><ref>Debug.size_object()</ref> callback.</p> + </text><group><returns/><text><p>Returns an approximation of the memory use in bytes for the object.</p> + </text></group><group><seealso/><text><p><ref>Debug.size_object()</ref>, <ref resolved='lfun::_sizeof'>lfun::_sizeof()</ref></p> + </text></group></doc> + <method name='_size_object'> + <arguments/> + <returntype><int/></returntype> + </method> + </docgroup> + <docgroup homogen-name='_sizeof' homogen-type='method'><doc><text><p>Size query callback.</p> + <p> Called by <ref resolved='predef::sizeof'>predef::sizeof()</ref> to determine the number of elements +  in an object. If this function is not present, the number +  of public symbols in the object will be returned.</p> + </text><group><returns/><text><p>Expected to return the number of valid indices in the object.</p> + </text></group><group><note/><text><p>It's assumed that this function is side-effect free.</p> + </text></group><group><seealso/><text><p><ref resolved='predef::sizeof'>predef::sizeof()</ref></p> + </text></group></doc> + <method name='_sizeof'> + <arguments/> + <returntype><int/></returntype> + </method> + </docgroup> + <docgroup homogen-name='_sprintf' homogen-type='method'><doc><text><p>Sprintf callback.</p> + <p> This method is called by <ref resolved='predef::sprintf'>predef::sprintf()</ref> to print objects. If it is +  not present, printing of the object will not be supported for any +  conversion-type except for the <tt>%O</tt>-conversion-type, which +  will output <expr>"object"</expr>.</p> + </text><group><param name='conversion_type'/><text><p>One of:</p> + <int><group><value>'b'</value><text><p>Signed binary integer.</p> + </text></group><group><value>'d'</value><text><p>Signed decimal integer.</p> + </text></group><group><value>'u'</value><text><p>Unsigned decimal integer.</p> + </text></group><group><value>'o'</value><text><p>Signed octal integer.</p> + </text></group><group><value>'x'</value><text><p>Lowercase signed hexadecimal integer.</p> + </text></group><group><value>'X'</value><text><p>Uppercase signed hexadecimal integer.</p> + </text></group><group><value>'c'</value><text><p>Character. If a fieldsize has been specified this will output +  the low-order bytes of the integer in network byte order.</p> + </text></group><group><value>'f'</value><text><p>Float.</p> + </text></group><group><value>'g'</value><text><p>Heuristically chosen representation of float.</p> + </text></group><group><value>'G'</value><text><p>Like <tt>%g</tt>, but uses uppercase <tt>E</tt> for exponent.</p> + </text></group><group><value>'e'</value><text><p>Exponential notation float.</p> + </text></group><group><value>'E'</value><text><p>Like <tt>%e</tt>, but uses uppercase <tt>E</tt> for exponent.</p> + </text></group><group><value>'s'</value><text><p>String.</p> + </text></group><group><value>'O'</value><text><p>Any value (debug style).</p> + </text></group><group><value>'t'</value><text><p>Type of the argument.</p> + </text></group></int> + </text></group><group><param name='params'/><text><p>Conversion parameters. The following parameters may be supplied:</p> + <mapping><group><member><type><int/></type><index>"precision"</index></member><text><p>Precision.</p> + </text></group><group><member><type><int/></type><index>"width"</index></member><text><p>Field width.</p> + </text></group><group><member><type><int><min>1</min><max>1</max></int></type><index>"flag_left"</index></member><text><p>Indicates that the output should be left-aligned.</p> + </text></group><group><member><type><int/></type><index>"indent"</index></member><text><p>Indentation level in <tt>%O</tt>-mode.</p> + </text></group></mapping> + </text></group><group><returns/><text><p>Is expected to return a string describing the object formatted +  according to <ref resolved='lfun::_sprintf.conversion_type'>conversion_type</ref>.</p> + </text></group><group><note/><text><p><ref resolved='lfun::_sprintf'>_sprintf()</ref> is currently not called for the following +  conversion-types:</p> + <int><group><value>'F'</value><text><p>Binary IEEE representation of float (<tt>%4F</tt> gives +  single precision, <tt>%8F</tt> gives double precision.)</p> + </text></group></int> + </text></group><group><note/><text><p>This function might be called at odd times, e.g. before +  <ref resolved='lfun::create'>lfun::create</ref> has been called or when an error has occurred. +  The reason is typically that it gets called when a backtrace is +  being formatted to report an error. It should therefore be very +  robust and not make any assumptions about its own internal +  state, at least not when <ref resolved='lfun::_sprintf.conversion_type'>conversion_type</ref> is <expr>'O'</expr>.</p> + </text></group><group><note/><text><p>It's assumed that this function is side-effect free.</p> + </text></group><group><seealso/><text><p><ref resolved='predef::sprintf'>predef::sprintf()</ref></p> + </text></group></doc> + <method name='_sprintf'> + <arguments><argument name='conversion_type'><type><int/></type></argument><argument name='params'><type><or><mapping><indextype><string/></indextype><valuetype><int/></valuetype></mapping><void/></or></type></argument></arguments> + <returntype><string/></returntype> + </method> + </docgroup> + <docgroup homogen-name='_sqrt' homogen-type='method'><doc><text><p>Called by <ref>sqrt()</ref>.</p> + </text><group><seealso/><text><p><ref>sqrt()</ref></p> + </text></group></doc> + <method name='_sqrt'> + <arguments/> + <returntype><mixed/></returntype> + </method> + </docgroup> + <docgroup homogen-name='_sqrt' homogen-type='method'><doc><text><p>Called by sqrt when the square root of an object is requested.</p> + </text><group><note/><text><p>_sqrt is not a real lfun, so it must not be defined as static.</p> + </text></group><group><seealso/><text><p><ref resolved='predef::sqrt'>predef::sqrt()</ref></p> + </text></group></doc> + <method name='_sqrt'> + <arguments/> + <returntype><mixed/></returntype> + </method> + </docgroup> + <docgroup homogen-name='_types' homogen-type='method'><doc><text><p>List types callback.</p> + <p> This callback is typically called via <ref resolved='predef::types'>predef::types()</ref>.</p> + </text><group><returns/><text><p>Expected to return an array with the types corresponding to +  the indices returned by <ref resolved='lfun::_indices'>lfun::_indices()</ref>.</p> + </text></group><group><note/><text><p>It's assumed that this function is side-effect free.</p> + </text></group><group><note/><text><p><ref resolved='predef::types'>predef::types()</ref> was added in Pike 7.9.</p> + </text></group><group><seealso/><text><p><ref resolved='predef::types'>predef::types()</ref>, <ref resolved='lfun::_indices'>lfun::_indices()</ref>, <ref resolved='lfun::_values'>lfun::_values()</ref>, +  <ref resolved='::_types'>::_types()</ref></p> + </text></group></doc> + <method name='_types'> + <arguments><argument name='context'><type><or><object resolved='lfun::_types'/><void/></or></type></argument><argument name='access'><type><or><int/><void/></or></type></argument></arguments> + <returntype><array/></returntype> + </method> + </docgroup> + <docgroup homogen-name='_values' homogen-type='method'><doc><text><p>List values callback.</p> + </text><group><returns/><text><p>Expected to return an array with the values corresponding to +  the indices returned by <ref resolved='lfun::_indices'>lfun::_indices()</ref>.</p> + </text></group><group><note/><text><p>It's assumed that this function is side-effect free.</p> + </text></group><group><seealso/><text><p><ref resolved='predef::values'>predef::values()</ref>, <ref resolved='lfun::_indices'>lfun::_indices()</ref>, <ref resolved='lfun::_types'>lfun::_types()</ref>, +  <ref resolved='::_values'>::_values()</ref></p> + </text></group></doc> + <method name='_values'> + <arguments><argument name='context'><type><or><object resolved='lfun::_values'/><void/></or></type></argument><argument name='access'><type><or><int/><void/></or></type></argument></arguments> + <returntype><array/></returntype> + </method> + </docgroup> + <docgroup homogen-name='`!' homogen-type='method'><doc><text><p>Logical not callback.</p> + </text><group><returns/><text><p>Returns non-zero if the object should be evaluated as false, +  and <expr>0</expr> (zero) otherwise.</p> + </text></group><group><note/><text><p>It's assumed that this function is side-effect free.</p> + </text></group><group><seealso/><text><p><ref resolved='predef::`!'>predef::`!()</ref></p> + </text></group></doc> + <method name='`!'> + <arguments/> + <returntype><int/></returntype> + </method> + </docgroup> + <docgroup homogen-name='`%' homogen-type='method'><doc><text><p>Left side modulo callback.</p> + </text><group><note/><text><p>It's assumed that this function is side-effect free.</p> + </text></group><group><seealso/><text><p><ref resolved='lfun::``%'>lfun::``%()</ref>, <ref resolved='predef::`%'>predef::`%()</ref></p> + </text></group></doc> + <method name='`%'> + <arguments><argument name='args'><type><varargs><zero/></varargs></type></argument></arguments> + <returntype><mixed/></returntype> + </method> + </docgroup> + <docgroup homogen-name='`&amp;' homogen-type='method'><doc><text><p>Left side bitwise and/intersection callback.</p> + </text><group><note/><text><p>It's assumed that this function is side-effect free.</p> + </text></group><group><seealso/><text><p><ref resolved='lfun::``&amp;'>lfun::``&amp;()</ref>, <ref resolved='predef::`&amp;'>predef::`&amp;()</ref></p> + </text></group></doc> + <method name='`&amp;'> + <arguments><argument name='args'><type><varargs><zero/></varargs></type></argument></arguments> + <returntype><mixed/></returntype> + </method> + </docgroup> + <docgroup homogen-name='`()' homogen-type='method'><doc><text><p>Apply callback.</p> + </text><group><seealso/><text><p><ref resolved='predef::`()'>predef::`()</ref></p> + </text></group></doc> + <method name='`()'> + <arguments><argument name='args'><type><varargs><zero/></varargs></type></argument></arguments> + <returntype><mixed/></returntype> + </method> + </docgroup> + <docgroup homogen-name='`*' homogen-type='method'><doc><text><p>Left side multiplication/repetition/implosion callback.</p> + </text><group><note/><text><p>It's assumed that this function is side-effect free.</p> + </text></group><group><seealso/><text><p><ref resolved='lfun::``*'>lfun::``*()</ref>, <ref resolved='predef::`*'>predef::`*()</ref></p> + </text></group></doc> + <method name='`*'> + <arguments><argument name='args'><type><varargs><zero/></varargs></type></argument></arguments> + <returntype><mixed/></returntype> + </method> + </docgroup> + <docgroup homogen-name='`**' homogen-type='method'><doc><text><p>Called by <ref resolved='predef::`**'>predef::`**()</ref>.</p> + </text><group><seealso/><text><p><ref resolved='predef::`**'>predef::`**()</ref>, <ref resolved='lfun::``**'>lfun::``**()</ref></p> + </text></group></doc> + <method name='`**'> + <arguments><argument name='exp'><type><or><int/><float/><object resolved='lfun::`**'/></or></type></argument></arguments> + <returntype><or><object resolved='lfun::`**'/><int/><float/></or></returntype> + </method> + </docgroup> + <docgroup homogen-name='`+' homogen-type='method'><doc><text><p>Left side addition/concatenation callback.</p> + <p> This is used by <ref resolved='predef::`+'>predef::`+</ref>. It's called with any arguments +  that follow this object in the argument list of the call to +  <ref resolved='predef::`+'>predef::`+</ref>. The returned value should be a new instance that +  represents the addition/concatenation between this object and +  the arguments in the order they are given.</p> + </text><group><note/><text><p>It's assumed that this function is side-effect free.</p> + </text></group><group><seealso/><text><p><ref resolved='lfun::``+'>lfun::``+()</ref>, <ref resolved='lfun::`+='>lfun::`+=()</ref>, <ref resolved='predef::`+'>predef::`+()</ref></p> + </text></group></doc> + <method name='`+'> + <arguments><argument name='arg'><type><zero/></type></argument><argument name='rest'><type><varargs><zero/></varargs></type></argument></arguments> + <returntype><mixed/></returntype> + </method> + </docgroup> + <docgroup homogen-name='`+=' homogen-type='method'><doc><text><p>Destructive addition/concatenation callback.</p> + <p> This is used by <ref resolved='predef::`+'>predef::`+</ref>. It's called with any arguments +  that follow this object in the argument list of the call to +  <ref resolved='predef::`+'>predef::`+</ref>. It should update this object to represent the +  addition/concatenation between it and the arguments in the order +  they are given. It should always return this object.</p> + </text><group><note/><text><p>This function should only be implemented if <ref resolved='lfun::`+'>lfun::`+()</ref> also +  is. It should only work as a more optimized alternative to that +  one, for the case when it's safe to change the object +  destructively and use it directly as the result.</p> + </text></group><group><note/><text><p>This function is not an lfun for the <expr>+=</expr> operator. It's +  only whether or not it's safe to do a destructive change that +  decides if this function or <ref resolved='lfun::`+'>lfun::`+()</ref> is called; both the +  <expr>+</expr> operator and the <expr>+=</expr> operator can call either +  one.</p> + </text></group><group><seealso/><text><p><ref resolved='lfun::`+'>lfun::`+()</ref>, <ref resolved='predef::`+'>predef::`+()</ref></p> + </text></group></doc> + <method name='`+='> + <arguments><argument name='arg'><type><zero/></type></argument><argument name='rest'><type><varargs><zero/></varargs></type></argument></arguments> + <returntype><object>this_program</object></returntype> + </method> + </docgroup> + <docgroup homogen-name='`-' homogen-type='method'><doc><text><p>Negation and left side subtraction/set difference callback.</p> + <p> This is used by <ref resolved='predef::`-'>predef::`-</ref>. When called without an argument +  the result should be a new instance that represents the negation +  of this object, otherwise the result should be a new instance +  that represents the difference between this object and <ref resolved='lfun::`-.arg'>arg</ref>.</p> + </text><group><note/><text><p>It's assumed that this function is side-effect free.</p> + </text></group><group><seealso/><text><p><ref resolved='lfun::``-'>lfun::``-()</ref>, <ref resolved='predef::`-'>predef::`-()</ref></p> + </text></group></doc> + <method name='`-'> + <arguments><argument name='arg'><type><or><void/><zero/></or></type></argument></arguments> + <returntype><mixed/></returntype> + </method> + </docgroup> + <docgroup homogen-name='`-&gt;' homogen-type='method'><doc><text><p>Arrow index callback.</p> + </text><group><param name='index'/><text><p>Symbol in <ref resolved='lfun::`-&gt;.context'>context</ref> to access.</p> + </text></group><group><param name='context'/><text><p>Context in the current object to start the search from. +  If <expr>UNDEFINED</expr> or left out, <expr>this_program::this</expr> +  is to be be used (ie start at the current context and ignore +  any overloaded symbols).</p> + </text></group><group><param name='access'/><text><p>Access permission override. One of the following:</p> + <int><group><value>0</value><value>UNDEFINED</value><text><p>See only public symbols.</p> + </text></group><group><value>1</value><text><p>See protected symbols as well.</p> + </text></group></int> + </text></group><group><returns/><text><p>Returns the value at <ref resolved='lfun::`-&gt;.index'>index</ref> if it exists, and +  <expr>UNDEFINED</expr> otherwise.</p> + </text></group><group><note/><text><p>It's assumed that this function is side-effect free.</p> + </text></group><group><seealso/><text><p><ref resolved='predef::`-&gt;'>predef::`-&gt;()</ref>, <ref resolved='::`-&gt;'>::`-&gt;()</ref></p> + </text></group></doc> + <method name='`-&gt;'> + <arguments><argument name='index'><type><string/></type></argument><argument name='context'><type><or><object resolved='lfun::`-&gt;'/><void/></or></type></argument><argument name='access'><type><or><int/><void/></or></type></argument></arguments> + <returntype><mixed/></returntype> + </method> + </docgroup> + <docgroup homogen-name='`-&gt;=' homogen-type='method'><doc><text><p>Arrow index assignment callback.</p> + </text><group><param name='index'/><text><p>Symbol in <ref resolved='lfun::`-&gt;=.context'>context</ref> to change the value of.</p> + </text></group><group><param name='value'/><text><p>The new value.</p> + </text></group><group><param name='context'/><text><p>Context in the current object to index.</p> + <p> If <expr>UNDEFINED</expr> or left out, <expr>this_program::this</expr> +  is to be used (ie start at the current context and ignore +  any overloaded symbols).</p> + </text></group><group><param name='access'/><text><p>Access permission override. One of the following:</p> + <int><group><value>0</value><value>UNDEFINED</value><text><p>See only public symbols.</p> + </text></group><group><value>1</value><text><p>See protected symbols as well.</p> + </text></group></int><p>This function is to set the value at symbol <ref resolved='lfun::`-&gt;=.index'>index</ref> of the current +  object to <ref resolved='lfun::`-&gt;=.value'>value</ref>.</p> + </text></group><group><seealso/><text><p><ref resolved='predef::`-&gt;='>predef::`-&gt;=()</ref>, <ref resolved='::`-&gt;='>::`-&gt;=()</ref>, <ref resolved='lfun::`[]='>lfun::`[]=()</ref></p> + </text></group></doc> + <method name='`-&gt;='> + <arguments><argument name='index'><type><string/></type></argument><argument name='value'><type><zero/></type></argument><argument name='context'><type><or><object resolved='lfun::`-&gt;='/><void/></or></type></argument><argument name='access'><type><or><int/><void/></or></type></argument></arguments> + <returntype><void/></returntype> + </method> + </docgroup> + <docgroup homogen-name='`/' homogen-type='method'><doc><text><p>Left side division/split callback.</p> + </text><group><note/><text><p>It's assumed that this function is side-effect free.</p> + </text></group><group><seealso/><text><p><ref resolved='lfun::``/'>lfun::``/()</ref>, <ref resolved='predef::`/'>predef::`/()</ref></p> + </text></group></doc> + <method name='`/'> + <arguments><argument name='args'><type><varargs><zero/></varargs></type></argument></arguments> + <returntype><mixed/></returntype> + </method> + </docgroup> + <docgroup homogen-name='`&lt;' homogen-type='method'><doc><text><p>Less than test callback.</p> + </text><group><note/><text><p>It's assumed that this function is side-effect free.</p> + </text></group><group><seealso/><text><p><ref resolved='predef::`&lt;'>predef::`&lt;()</ref></p> + </text></group></doc> + <method name='`&lt;'> + <arguments><argument name='arg'><type><mixed/></type></argument></arguments> + <returntype><int><min>0</min><max>1</max></int></returntype> + </method> + </docgroup> + <docgroup homogen-name='`&lt;&lt;' homogen-type='method'><doc><text><p>Left side left shift callback.</p> + </text><group><note/><text><p>It's assumed that this function is side-effect free.</p> + </text></group><group><seealso/><text><p><ref resolved='lfun::``&lt;&lt;'>lfun::``&lt;&lt;()</ref>, <ref resolved='predef::`&lt;&lt;'>predef::`&lt;&lt;()</ref></p> + </text></group></doc> + <method name='`&lt;&lt;'> + <arguments><argument name='arg'><type><zero/></type></argument></arguments> + <returntype><mixed/></returntype> + </method> + </docgroup> + <docgroup homogen-name='`==' homogen-type='method'><doc><text><p>Equivalence test callback.</p> + </text><group><returns/><text><p>Is expected to return <expr>1</expr> if the current object is +  equivalent to <ref resolved='lfun::`==.arg'>arg</ref> (ie may be replaced with <ref resolved='lfun::`==.arg'>arg</ref>, with +  no semantic differences (disregarding the effects of <ref>destruct()</ref>)), +  and <expr>0</expr> (zero) otherwise.</p> + </text></group><group><note/><text><p>If this is implemented it may be necessary to implement +  <ref resolved='lfun::__hash'>lfun::__hash</ref> too. Otherwise mappings may hold several +  objects as indices which are duplicates according to this +  function. This may also affect various other functions +  that use hashing internally, e.g. <ref resolved='predef::Array.uniq'>predef::Array.uniq</ref>.</p> + </text></group><group><note/><text><p>It's assumed that this function is side-effect free.</p> + </text></group><group><note/><text><p>It's recommended to only implement this function for +  immutable objects, as otherwise stuff may get confusing +  when things that once were equivalent no longer are so, +  or the reverse.</p> + </text></group><group><seealso/><text><p><ref resolved='predef::`=='>predef::`==()</ref>, <ref resolved='lfun::__hash'>lfun::__hash</ref></p> + </text></group></doc> + <method name='`=='> + <arguments><argument name='arg'><type><mixed/></type></argument></arguments> + <returntype><int><min>0</min><max>1</max></int></returntype> + </method> + </docgroup> + <docgroup homogen-name='`&gt;' homogen-type='method'><doc><text><p>Greater than test callback.</p> + </text><group><note/><text><p>It's assumed that this function is side-effect free.</p> + </text></group><group><seealso/><text><p><ref resolved='predef::`&gt;'>predef::`&gt;()</ref></p> + </text></group></doc> + <method name='`&gt;'> + <arguments><argument name='arg'><type><mixed/></type></argument></arguments> + <returntype><int><min>0</min><max>1</max></int></returntype> + </method> + </docgroup> + <docgroup homogen-name='`&gt;&gt;' homogen-type='method'><doc><text><p>Left side right shift callback.</p> + </text><group><note/><text><p>It's assumed that this function is side-effect free.</p> + </text></group><group><seealso/><text><p><ref resolved='lfun::``&gt;&gt;'>lfun::``&gt;&gt;()</ref>, <ref resolved='predef::`&gt;&gt;'>predef::`&gt;&gt;()</ref></p> + </text></group></doc> + <method name='`&gt;&gt;'> + <arguments><argument name='arg'><type><zero/></type></argument></arguments> + <returntype><mixed/></returntype> + </method> + </docgroup> + <docgroup homogen-name='`[..]' homogen-type='method'><doc><text><p>Subrange callback.</p> + </text><group><note/><text><p>It's assumed that this function is side-effect free.</p> + </text></group><group><seealso/><text><p><ref resolved='predef::`[..]'>predef::`[..]</ref></p> + </text></group></doc> + <method name='`[..]'> + <arguments><argument name='low'><type><zero/></type></argument><argument name='low_bound_type'><type><int/></type></argument><argument name='high'><type><zero/></type></argument><argument name='high_bound_type'><type><int/></type></argument></arguments> + <returntype><mixed/></returntype> + </method> + </docgroup> + <docgroup homogen-name='`[]' homogen-type='method'><doc><text><p>Indexing callback.</p> + <p> For compatibility, this is also called to do subranges unless +  there is a <ref resolved='lfun::`[..]'>`[..]</ref> in the class. See <ref resolved='predef::`[..]'>predef::`[..]</ref> for +  details.</p> + </text><group><note/><text><p>It's assumed that this function is side-effect free.</p> + </text></group><group><seealso/><text><p><ref resolved='predef::`[]'>predef::`[]()</ref>, <ref resolved='predef::`[..]'>predef::`[..]</ref></p> + </text></group></doc> + <method name='`[]'> + <arguments><argument name='arg1'><type><zero/></type></argument><argument name='arg2'><type><or><zero/><void/></or></type></argument></arguments> + <returntype><mixed/></returntype> + </method> + </docgroup> + <docgroup homogen-name='`[]=' homogen-type='method'><doc><text><p>Index assignment callback.</p> + </text><group><param name='index'/><text><p>Index to change the value of.</p> + </text></group><group><param name='value'/><text><p>The new value.</p> + </text></group><group><param name='context'/><text><p>Context in the current object to index.</p> + <p> If <expr>UNDEFINED</expr> or left out, <expr>this_program::this</expr> +  is to be used (ie start at the current context and ignore +  any overloaded symbols).</p> + </text></group><group><param name='access'/><text><p>Access permission override. One of the following:</p> + <int><group><value>0</value><value>UNDEFINED</value><text><p>See only public symbols.</p> + </text></group><group><value>1</value><text><p>See protected symbols as well.</p> + </text></group></int><p>This function is to set the value at index <ref resolved='lfun::`[]=.index'>index</ref> of the current +  object to <ref resolved='lfun::`[]=.value'>value</ref>.</p> + </text></group><group><seealso/><text><p><ref resolved='predef::`[]='>predef::`[]=()</ref>, <ref resolved='lfun::`-&gt;='>lfun::`-&gt;=()</ref></p> + </text></group></doc> + <method name='`[]='> + <arguments><argument name='index'><type><zero/></type></argument><argument name='value'><type><zero/></type></argument><argument name='context'><type><or><object resolved='lfun::`[]='/><void/></or></type></argument><argument name='access'><type><or><int/><void/></or></type></argument></arguments> + <returntype><void/></returntype> + </method> + </docgroup> + <docgroup homogen-name='`^' homogen-type='method'><doc><text><p>Left side exclusive or callback.</p> + </text><group><note/><text><p>It's assumed that this function is side-effect free.</p> + </text></group><group><seealso/><text><p><ref resolved='lfun::``^'>lfun::``^()</ref>, <ref resolved='predef::`^'>predef::`^()</ref></p> + </text></group></doc> + <method name='`^'> + <arguments><argument name='args'><type><varargs><zero/></varargs></type></argument></arguments> + <returntype><mixed/></returntype> + </method> + </docgroup> + <docgroup homogen-name='``%' homogen-type='method'><doc><text><p>Right side modulo callback.</p> + </text><group><note/><text><p>It's assumed that this function is side-effect free.</p> + </text></group><group><seealso/><text><p><ref resolved='lfun::`%'>lfun::`%()</ref>, <ref resolved='predef::`%'>predef::`%()</ref></p> + </text></group></doc> + <method name='``%'> + <arguments><argument name='args'><type><varargs><zero/></varargs></type></argument></arguments> + <returntype><mixed/></returntype> + </method> + </docgroup> + <docgroup homogen-name='``&amp;' homogen-type='method'><doc><text><p>Right side bitwise and/intersection callback.</p> + </text><group><note/><text><p>It's assumed that this function is side-effect free.</p> + </text></group><group><seealso/><text><p><ref resolved='lfun::`&amp;'>lfun::`&amp;()</ref>, <ref resolved='predef::`&amp;'>predef::`&amp;()</ref></p> + </text></group></doc> + <method name='``&amp;'> + <arguments><argument name='args'><type><varargs><zero/></varargs></type></argument></arguments> + <returntype><mixed/></returntype> + </method> + </docgroup> + <docgroup homogen-name='``*' homogen-type='method'><doc><text><p>Right side multiplication/repetition/implosion callback.</p> + </text><group><note/><text><p>It's assumed that this function is side-effect free.</p> + </text></group><group><seealso/><text><p><ref resolved='lfun::`*'>lfun::`*()</ref>, <ref resolved='predef::`*'>predef::`*()</ref></p> + </text></group></doc> + <method name='``*'> + <arguments><argument name='args'><type><varargs><zero/></varargs></type></argument></arguments> + <returntype><mixed/></returntype> + </method> + </docgroup> + <docgroup homogen-name='``**' homogen-type='method'><doc><text><p>Called by <ref resolved='predef::`**'>predef::`**()</ref>.</p> + </text><group><seealso/><text><p><ref resolved='predef::`**'>predef::`**()</ref>, <ref resolved='lfun::`**'>lfun::`**()</ref></p> + </text></group></doc> + <method name='``**'> + <arguments><argument name='base'><type><or><int/><float/><object resolved='lfun::``**'/></or></type></argument></arguments> + <returntype><or><object resolved='lfun::``**'/><int/><float/></or></returntype> + </method> + </docgroup> + <docgroup homogen-name='``+' homogen-type='method'><doc><text><p>Right side addition/concatenation callback.</p> + <p> This is used by <ref resolved='predef::`+'>predef::`+</ref>. It's called with any arguments +  that precede this object in the argument list of the call to +  <ref resolved='predef::`+'>predef::`+</ref>. The returned value should be a new instance that +  represents the addition/concatenation between the arguments in +  the order they are given and this object.</p> + </text><group><note/><text><p>It's assumed that this function is side-effect free.</p> + </text></group><group><seealso/><text><p><ref resolved='lfun::`+'>lfun::`+()</ref>, <ref resolved='predef::`+'>predef::`+()</ref></p> + </text></group></doc> + <method name='``+'> + <arguments><argument name='arg'><type><zero/></type></argument><argument name='rest'><type><varargs><zero/></varargs></type></argument></arguments> + <returntype><mixed/></returntype> + </method> + </docgroup> + <docgroup homogen-name='``-' homogen-type='method'><doc><text><p>Right side subtraction/set difference callback.</p> + <p> This is used by <ref resolved='predef::`-'>predef::`-</ref>. The result should be a new +  instance that represents the difference between <ref resolved='lfun::``-.arg'>arg</ref> and this +  object.</p> + </text><group><note/><text><p>It's assumed that this function is side-effect free.</p> + </text></group><group><seealso/><text><p><ref resolved='lfun::`-'>lfun::`-()</ref>, <ref resolved='predef::`-'>predef::`-()</ref></p> + </text></group></doc> + <method name='``-'> + <arguments><argument name='arg'><type><zero/></type></argument></arguments> + <returntype><mixed/></returntype> + </method> + </docgroup> + <docgroup homogen-name='``/' homogen-type='method'><doc><text><p>Right side division/split callback.</p> + </text><group><note/><text><p>It's assumed that this function is side-effect free.</p> + </text></group><group><seealso/><text><p><ref resolved='lfun::`/'>lfun::`/()</ref>, <ref resolved='predef::`/'>predef::`/()</ref></p> + </text></group></doc> + <method name='``/'> + <arguments><argument name='args'><type><varargs><zero/></varargs></type></argument></arguments> + <returntype><mixed/></returntype> + </method> + </docgroup> + <docgroup homogen-name='``&lt;&lt;' homogen-type='method'><doc><text><p>Right side left shift callback.</p> + </text><group><note/><text><p>It's assumed that this function is side-effect free.</p> + </text></group><group><seealso/><text><p><ref resolved='lfun::`&lt;&lt;'>lfun::`&lt;&lt;()</ref>, <ref resolved='predef::`&lt;&lt;'>predef::`&lt;&lt;()</ref></p> + </text></group></doc> + <method name='``&lt;&lt;'> + <arguments><argument name='arg'><type><zero/></type></argument></arguments> + <returntype><mixed/></returntype> + </method> + </docgroup> + <docgroup homogen-name='``&gt;&gt;' homogen-type='method'><doc><text><p>Right side right shift callback.</p> + </text><group><note/><text><p>It's assumed that this function is side-effect free.</p> + </text></group><group><seealso/><text><p><ref resolved='lfun::`&gt;&gt;'>lfun::`&gt;&gt;()</ref>, <ref resolved='predef::`&gt;&gt;'>predef::`&gt;&gt;()</ref></p> + </text></group></doc> + <method name='``&gt;&gt;'> + <arguments><argument name='arg'><type><zero/></type></argument></arguments> + <returntype><mixed/></returntype> + </method> + </docgroup> + <docgroup homogen-name='``^' homogen-type='method'><doc><text><p>Right side exclusive or callback.</p> + </text><group><note/><text><p>It's assumed that this function is side-effect free.</p> + </text></group><group><seealso/><text><p><ref resolved='lfun::`^'>lfun::`^()</ref>, <ref resolved='predef::`^'>predef::`^()</ref></p> + </text></group></doc> + <method name='``^'> + <arguments><argument name='args'><type><varargs><zero/></varargs></type></argument></arguments> + <returntype><mixed/></returntype> + </method> + </docgroup> + <docgroup homogen-name='``|' homogen-type='method'><doc><text><p>Right side bitwise or/union callback.</p> + </text><group><note/><text><p>It's assumed that this function is side-effect free.</p> + </text></group><group><seealso/><text><p><ref resolved='lfun::`|'>lfun::`|()</ref>, <ref resolved='predef::`|'>predef::`|()</ref></p> + </text></group></doc> + <method name='``|'> + <arguments><argument name='args'><type><varargs><zero/></varargs></type></argument></arguments> + <returntype><mixed/></returntype> + </method> + </docgroup> + <docgroup homogen-name='`|' homogen-type='method'><doc><text><p>Left side bitwise or/union callback.</p> + </text><group><note/><text><p>It's assumed that this function is side-effect free.</p> + </text></group><group><seealso/><text><p><ref resolved='lfun::``|'>lfun::``|()</ref>, <ref resolved='predef::`|'>predef::`|()</ref></p> + </text></group></doc> + <method name='`|'> + <arguments><argument name='args'><type><varargs><zero/></varargs></type></argument></arguments> + <returntype><mixed/></returntype> + </method> + </docgroup> + <docgroup homogen-name='`~' homogen-type='method'><doc><text><p>Complement/inversion callback.</p> + </text><group><note/><text><p>It's assumed that this function is side-effect free.</p> + </text></group><group><seealso/><text><p><ref resolved='predef::`~'>predef::`~()</ref></p> + </text></group></doc> + <method name='`~'> + <arguments/> + <returntype><mixed/></returntype> + </method> + </docgroup> + <docgroup homogen-name='cast' homogen-type='method'><doc><text><p>Value cast callback.</p> + </text><group><param name='requested_type'/><text><p>Type to cast to.</p> + </text></group><group><returns/><text><p>Expected to return the object value-casted (converted) to +  the type described by <ref resolved='lfun::cast.requested_type'>requested_type</ref>.</p> + </text></group><group><note/><text><p>The argument is currently a string with the name +  of the type, but might in the future be a value of the type type.</p> + </text></group><group><note/><text><p>Currently casting between object types is a noop.</p> + </text></group><group><note/><text><p>If the returned value is not deemed to be of the requested type +  a runtime error may be thrown.</p> + </text></group><group><note/><text><p>It's assumed that this function is side-effect free.</p> + </text></group></doc> + <method name='cast'> + <arguments><argument name='requested_type'><type><string/></type></argument></arguments> + <returntype><mixed/></returntype> + </method> + </docgroup> + <docgroup homogen-name='create' homogen-type='method'><doc><text><p>Object creation callback.</p> + <p> This function is called right after <ref resolved='lfun::__INIT'>lfun::__INIT()</ref>.</p> + <p> <ref resolved='lfun::create.args'>args</ref> are the arguments passed when the program was called.</p> + </text><group><note/><text><p>This function can be created implicitly +  by the compiler using the syntax:</p> + <code><text><p>class Foo(int foo) { +  int bar; +  }</p> + </text></code><p>In the above case an implicit <ref resolved='lfun::create'>lfun::create()</ref> is created, and +  it's equivalent to:</p> + <code><text><p>class Foo { +  int foo; +  int bar; +  protected void create(int foo) +  { +  this::foo = foo; +  } +  }</p> + </text></code> + </text></group><group><seealso/><text><p><ref resolved='lfun::__INIT'>lfun::__INIT()</ref>, <ref resolved='lfun::_destruct'>lfun::_destruct()</ref></p> + </text></group></doc> + <method name='create'> + <arguments><argument name='args'><type><varargs><zero/></varargs></type></argument></arguments> + <returntype><void/></returntype> + </method> + </docgroup> + <docgroup homogen-name='symbol' homogen-type='variable'> + <variable name='symbol'><type><mixed/></type></variable> + </docgroup> + </namespace>   <namespace name='predef'>   <doc><text><p>This is the default namespace and contains lots of global symbols.</p>   </text></doc>   <docgroup homogen-type='constant'><doc><text><p>The version of FUSE</p>   </text></doc>   <constant name='FUSE_MAJOR_VERSION'/>   <constant name='FUSE_MINOR_VERSION'/>   </docgroup>   <docgroup homogen-type='constant'><doc><text><p>Root handles in the Windows registry.</p>   </text><group><note/><text><p>These constants are only available on Win32 systems.</p>
autodoc.git/onepage.xml:7492:   <arguments><argument name='hkey'><type><int/></type></argument><argument name='key'><type><string/></type></argument></arguments>   <returntype><mapping><indextype><string/></indextype><valuetype><or><string/><int/><array><valuetype><string/></valuetype></array></or></valuetype></mapping></returntype>   </method>   </docgroup>   <docgroup homogen-name='TOKENIZE_KEEP_ESCAPES' homogen-type='constant'><doc><text><p>Don't unquote backslash-sequences in quoted strings during tokenizing.    This is used for bug-compatibility with Microsoft...</p>   </text><group><seealso/><text><p><ref>tokenize()</ref>, <ref>tokenize_labled()</ref></p>   </text></group></doc>   <constant name='TOKENIZE_KEEP_ESCAPES'/>   </docgroup> + <docgroup homogen-name='UNDEFINED' homogen-type='constant'><doc><text><p>The undefined value; ie a zero for which <ref resolved='predef::zero_type'>zero_type()</ref> returns 1.</p> + </text></doc> + <constant name='UNDEFINED'/> + </docgroup>   <docgroup homogen-name='_Static_assert' homogen-type='method'><doc><text><p>Perform a compile-time assertion check.</p>   <p> If <ref resolved='predef::_Static_assert.constant_expression'>constant_expression</ref> is false, a compiler error message    containing <ref resolved='predef::_Static_assert.constant_message'>constant_message</ref> will be generated.</p>   </text><group><note/><text><p>Note that the function call compiles to the null statement,    and thus does not affect the run-time.</p>   </text></group><group><seealso/><text><p><ref resolved='cpp::.static_assert'>cpp::static_assert</ref></p>   </text></group></doc>   <method name='_Static_assert'>   <arguments><argument name='constant_expression'><type><int/></type></argument><argument name='constant_message'><type><string/></type></argument></arguments>   <returntype><void/></returntype>
autodoc.git/onepage.xml:7650:   <returntype><type><mixed/></type></returntype>   </method>   </docgroup>   <docgroup homogen-name='`!' homogen-type='method'><doc><text><p>Logical not.</p>   <p> Every expression with the <expr>!</expr> operator becomes a call to    this function, i.e. <expr>!a</expr> is the same as    <expr>predef::`!(a)</expr>.</p>   <p> It's also used when necessary to test truth on objects, i.e. in    a statement <expr>if (o) ...</expr> where <expr>o</expr> is an object, the    test becomes the equivalent of <expr>!!o</expr> so that any -  <ref>lfun::`!()</ref> the object might have gets called.</p> - </text><group><returns/><text><p>If <ref resolved='predef::`!.arg'>arg</ref> is an object that implements <ref>lfun::`!()</ref>, that function +  <ref resolved='lfun::`!'>lfun::`!()</ref> the object might have gets called.</p> + </text><group><returns/><text><p>If <ref resolved='predef::`!.arg'>arg</ref> is an object that implements <ref resolved='lfun::`!'>lfun::`!()</ref>, that function    will be called.</p>   <p> If <ref resolved='predef::`!.arg'>arg</ref> is <expr>0</expr> (zero), a destructed object, or a function in a    destructed object, <expr>1</expr> will be returned.</p>   <p> Otherwise <expr>0</expr> (zero) will be returned.</p>   </text></group><group><note/><text><p>No float is considered false, not even <expr>0.0</expr>.</p> - </text></group><group><seealso/><text><p><ref resolved='predef::`=='>`==()</ref>, <ref resolved='predef::`!='>`!=()</ref>, <ref>lfun::`!()</ref></p> + </text></group><group><seealso/><text><p><ref resolved='predef::`=='>`==()</ref>, <ref resolved='predef::`!='>`!=()</ref>, <ref resolved='lfun::`!'>lfun::`!()</ref></p>   </text></group></doc>   <method name='`!'>   <arguments><argument name='arg'><type><or><object resolved='predef::`!'/><function/></or></type></argument></arguments>   <returntype><int><min>0</min><max>1</max></int></returntype>   </method>   <method name='`!'>   <arguments><argument name='arg'><type><int><min>0</min><max>0</max></int></type></argument></arguments>   <returntype><int><min>1</min><max>1</max></int></returntype>   </method>   <method name='`!'>
autodoc.git/onepage.xml:7691:   </text></group></doc>   <method name='`!='>   <arguments><argument name='arg1'><type><mixed/></type></argument><argument name='arg2'><type><mixed/></type></argument><argument name='extras'><type><varargs><mixed/></varargs></type></argument></arguments>   <returntype><int><min>0</min><max>1</max></int></returntype>   </method>   </docgroup>   <docgroup homogen-name='`%' homogen-type='method'><doc><text><p>Modulo.</p>   <p> Every expression with the <expr>%</expr> operator becomes a call to    this function, i.e. <expr>a%b</expr> is the same as    <expr>predef::`%(a,b)</expr>.</p> - </text><group><returns/><text><p>If <ref resolved='predef::`%.arg1'>arg1</ref> is an object that implements <ref>lfun::`%()</ref> then + </text><group><returns/><text><p>If <ref resolved='predef::`%.arg1'>arg1</ref> is an object that implements <ref resolved='lfun::`%'>lfun::`%()</ref> then    that function will be called with <ref resolved='predef::`%.arg2'>arg2</ref> as the single argument.</p> - <p> If <ref resolved='predef::`%.arg2'>arg2</ref> is an object that implements <ref>lfun::``%()</ref> then + <p> If <ref resolved='predef::`%.arg2'>arg2</ref> is an object that implements <ref resolved='lfun::``%'>lfun::``%()</ref> then    that function will be called with <ref resolved='predef::`%.arg2'>arg2</ref> as the single argument.</p>   <p> Otherwise the result will be as follows:</p>   <mixed name='arg1'><group><type><or><string/><array/></or></type><text><p>If <ref resolved='predef::`%.arg2'>arg2</ref> is positive, the result will be the last    <expr>`%(<ref resolved='predef::sizeof'>sizeof</ref>(<ref resolved='predef::`%.arg1'>arg1</ref>), <ref resolved='predef::`%.arg2'>arg2</ref>)</expr> elements of <ref resolved='predef::`%.arg1'>arg1</ref>.    If <ref resolved='predef::`%.arg2'>arg2</ref> is negative, the result will be the first    <expr>`%(<ref resolved='predef::sizeof'>sizeof</ref>(<ref resolved='predef::`%.arg1'>arg1</ref>), -<ref resolved='predef::`%.arg2'>arg2</ref>)</expr> elements of <ref resolved='predef::`%.arg1'>arg1</ref>.</p>   </text></group><group><type><or><int/><float/></or></type><text><p>The result will be    <expr><ref resolved='predef::`%.arg1'>arg1</ref> - <ref resolved='predef::`%.arg2'>arg2</ref>*<ref resolved='predef::floor'>floor</ref>(<ref resolved='predef::`%.arg1'>arg1</ref>/<ref resolved='predef::`%.arg2'>arg2</ref>)</expr>.    The result will be a float if either <ref resolved='predef::`%.arg1'>arg1</ref> or <ref resolved='predef::`%.arg2'>arg2</ref> is    a float, and an int otherwise.</p>
autodoc.git/onepage.xml:7757:   <returntype><int/></returntype>   </method>   </docgroup>   <docgroup homogen-name='`&amp;' homogen-type='method'><doc><text><p>Bitwise and/intersection.</p>   <p> Every expression with the <expr>&amp;</expr> operator becomes a call to    this function, i.e. <expr>a&amp;b</expr> is the same as    <expr>predef::`&amp;(a,b)</expr>.</p>   </text><group><returns/><text><p>If there's a single argument, that argument is returned.</p>   <p> If there are more than two arguments the result is:    <expr>`&amp;(`&amp;(<ref resolved='predef::`&amp;.arg1'>arg1</ref>, <ref resolved='predef::`&amp;.arg2'>arg2</ref>), @<ref resolved='predef::`&amp;.extras'>extras</ref>)</expr>.</p> - <p> Otherwise, if <ref resolved='predef::`&amp;.arg1'>arg1</ref> is an object with an <ref>lfun::`&amp;()</ref>, that + <p> Otherwise, if <ref resolved='predef::`&amp;.arg1'>arg1</ref> is an object with an <ref resolved='lfun::`&amp;'>lfun::`&amp;()</ref>, that    function is called with <ref resolved='predef::`&amp;.arg2'>arg2</ref> as argument, and its result is    returned.</p> - <p> Otherwise, if <ref resolved='predef::`&amp;.arg2'>arg2</ref> is an object with an <ref>lfun::``&amp;()</ref>, that + <p> Otherwise, if <ref resolved='predef::`&amp;.arg2'>arg2</ref> is an object with an <ref resolved='lfun::``&amp;'>lfun::``&amp;()</ref>, that    function is called with <ref resolved='predef::`&amp;.arg1'>arg1</ref> as argument, and its result is    returned.</p>   <p> Otherwise the result depends on the argument types:</p>   <mixed name='arg1'><group><type><int/></type><text><p>Bitwise and of <ref resolved='predef::`&amp;.arg1'>arg1</ref> and <ref resolved='predef::`&amp;.arg2'>arg2</ref>.</p>   </text></group><group><type><string/></type><text><p>The result is a string where each character is the bitwise    and of the characters in the same position in <ref resolved='predef::`&amp;.arg1'>arg1</ref> and    <ref resolved='predef::`&amp;.arg2'>arg2</ref>. The arguments must be strings of the same length.</p>   </text></group><group><type><or><array/><mapping/><multiset/></or></type><text><p>The result is like <ref resolved='predef::`&amp;.arg1'>arg1</ref> but only with the    elements/indices that match any in <ref resolved='predef::`&amp;.arg2'>arg2</ref> (according to    <ref resolved='predef::`&gt;'>`&gt;</ref>, <ref resolved='predef::`&lt;'>`&lt;</ref>, <ref resolved='predef::`=='>`==</ref> and, in the case of mappings,    <ref resolved='predef::hash_value'>hash_value</ref>).</p>   </text></group><group><type><or><type><mixed/></type><program/></or></type><text><p>Type intersection of <ref resolved='predef::`&amp;.arg1'>arg1</ref> and <ref resolved='predef::`&amp;.arg2'>arg2</ref>.</p>   </text></group></mixed><p>The function is not destructive on the arguments - the result is    always a new instance.</p>   </text></group><group><note/><text><p>If this operator is used with arrays or multisets containing objects -  which implement <ref>lfun::`==()</ref> but <b>not</b> <ref>lfun::`&gt;()</ref> and -  <ref>lfun::`&lt;()</ref>, the result will be undefined.</p> - </text></group><group><seealso/><text><p><ref resolved='predef::`|'>`|()</ref>, <ref>lfun::`&amp;()</ref>, <ref>lfun::``&amp;()</ref></p> +  which implement <ref resolved='lfun::`=='>lfun::`==()</ref> but <b>not</b> <ref resolved='lfun::`&gt;'>lfun::`&gt;()</ref> and +  <ref resolved='lfun::`&lt;'>lfun::`&lt;()</ref>, the result will be undefined.</p> + </text></group><group><seealso/><text><p><ref resolved='predef::`|'>`|()</ref>, <ref resolved='lfun::`&amp;'>lfun::`&amp;()</ref>, <ref resolved='lfun::``&amp;'>lfun::``&amp;()</ref></p>   </text></group></doc>   <method name='`&amp;'>   <arguments><argument name='arg1'><type><mixed/></type></argument></arguments>   <returntype><mixed/></returntype>   </method>   <method name='`&amp;'>   <arguments><argument name='arg1'><type><mixed/></type></argument><argument name='arg2'><type><mixed/></type></argument><argument name='extras'><type><varargs><mixed/></varargs></type></argument></arguments>   <returntype><mixed/></returntype>   </method>   <method name='`&amp;'>
autodoc.git/onepage.xml:7831:   <arguments><argument name='arg1'><type><multiset/></type></argument><argument name='arg2'><type><multiset/></type></argument></arguments>   <returntype><multiset/></returntype>   </method>   <method name='`&amp;'>   <arguments><argument name='arg1'><type><or><type><mixed/></type><program/></or></type></argument><argument name='arg2'><type><or><type><mixed/></type><program/></or></type></argument></arguments>   <returntype><type><mixed/></type></returntype>   </method>   </docgroup>   <docgroup homogen-type='method'><doc><text><p>Call a function.</p>   <p> Calls the function <ref resolved='predef::`().fun'>fun</ref> with the arguments specified by <ref resolved='predef::`().args'>args</ref>.</p> - </text><group><seealso/><text><p><ref>lfun::`()()</ref></p> + </text><group><seealso/><text><p><ref resolved='lfun::`()'>lfun::`()()</ref></p>   </text></group></doc>   <method name='`()'>   <arguments><argument name='fun'><type><function/></type></argument><argument name='args'><type><varargs><mixed/></varargs></type></argument></arguments>   <returntype><mixed/></returntype>   </method>   <method name='call_function'>   <arguments><argument name='fun'><type><function/></type></argument><argument name='args'><type><varargs><mixed/></varargs></type></argument></arguments>   <returntype><mixed/></returntype>   </method>   </docgroup>   <docgroup homogen-name='`*' homogen-type='method'><doc><text><p>Multiplication/repetition/implosion.</p>   <p> Every expression with the <expr>*</expr> operator becomes a call to    this function, i.e. <expr>a*b</expr> is the same as    <expr>predef::`*(a,b)</expr>. Longer <expr>*</expr> expressions are    normally optimized to one call, so e.g. <expr>a*b*c</expr> becomes    <expr>predef::`*(a,b,c)</expr>.</p>   </text><group><returns/><text><p>If there's a single argument, that argument will be returned.</p> - <p> If the first argument is an object that implements <ref>lfun::`*()</ref>, + <p> If the first argument is an object that implements <ref resolved='lfun::`*'>lfun::`*()</ref>,    that function will be called with the rest of the arguments.</p>   <p> If there are more than two arguments, the result will be    <expr>`*(`*(<ref resolved='predef::`*.arg1'>arg1</ref>, <ref resolved='predef::`*.arg2'>arg2</ref>), @<ref resolved='predef::`*.extras'>extras</ref>)</expr>.</p> - <p> If <ref resolved='predef::`*.arg2'>arg2</ref> is an object that implements <ref>lfun::``*()</ref>, that + <p> If <ref resolved='predef::`*.arg2'>arg2</ref> is an object that implements <ref resolved='lfun::``*'>lfun::``*()</ref>, that    function will be called with <ref resolved='predef::`*.arg1'>arg1</ref> as the single argument.</p>   <p> Otherwise the result will be as follows:</p>   <mixed name='arg1'><group><type><array/></type><text><mixed name='arg2'><group><type><or><int/><float/></or></type><text><p>The result will be <ref resolved='predef::`*.arg1'>arg1</ref> concatenated <ref resolved='predef::`*.arg2'>arg2</ref> times.</p>   </text></group><group><type><or><string/><array/></or></type><text><p>The result will be the elements of <ref resolved='predef::`*.arg1'>arg1</ref> concatenated with    <ref resolved='predef::`*.arg2'>arg2</ref> interspersed.</p>   </text></group></mixed></text></group><group><type><string/></type><text><p>The result will be <ref resolved='predef::`*.arg1'>arg1</ref> concatenated <ref resolved='predef::`*.arg2'>arg2</ref> times.</p>   </text></group><group><type><or><int/><float/></or></type><text><p>The result will be <expr><ref resolved='predef::`*.arg1'>arg1</ref> * <ref resolved='predef::`*.arg2'>arg2</ref></expr>, and will be a    float if either <ref resolved='predef::`*.arg1'>arg1</ref> or <ref resolved='predef::`*.arg2'>arg2</ref> is a float.</p>   </text></group></mixed>   </text></group><group><note/><text><p>In Pike 7.0 and earlier the multiplication order was unspecified.</p> - </text></group><group><seealso/><text><p><ref resolved='predef::`+'>`+()</ref>, <ref resolved='predef::`-'>`-()</ref>, <ref resolved='predef::`/'>`/()</ref>, <ref>lfun::`*()</ref>, <ref>lfun::``*()</ref></p> + </text></group><group><seealso/><text><p><ref resolved='predef::`+'>`+()</ref>, <ref resolved='predef::`-'>`-()</ref>, <ref resolved='predef::`/'>`/()</ref>, <ref resolved='lfun::`*'>lfun::`*()</ref>, <ref resolved='lfun::``*'>lfun::``*()</ref></p>   </text></group></doc>   <method name='`*'>   <arguments><argument name='arg1'><type><mixed/></type></argument></arguments>   <returntype><mixed/></returntype>   </method>   <method name='`*'>   <arguments><argument name='arg1'><type><object resolved='predef::`*'/></type></argument><argument name='arg2'><type><mixed/></type></argument><argument name='extras'><type><varargs><mixed/></varargs></type></argument></arguments>   <returntype><mixed/></returntype>   </method>   <method name='`*'>
autodoc.git/onepage.xml:7934:   </method>   </docgroup>   <docgroup homogen-name='`+' homogen-type='method'><doc><text><p>Addition/concatenation.</p>   <p> Every expression with the <expr>+</expr> operator becomes a call to    this function, i.e. <expr>a+b</expr> is the same as    <expr>predef::`+(a,b)</expr>. Longer <expr>+</expr> expressions are    normally optimized to one call, so e.g. <expr>a+b+c</expr> becomes    <expr>predef::`+(a,b,c)</expr>.</p>   </text><group><returns/><text><p>If there's a single argument, that argument is returned.</p>   <p> If <ref resolved='predef::`+.arg'>arg</ref> is an object with only one reference and an -  <ref>lfun::`+=()</ref>, that function is called with the rest of the +  <ref resolved='lfun::`+='>lfun::`+=()</ref>, that function is called with the rest of the    arguments, and its result is returned.</p> - <p> Otherwise, if <ref resolved='predef::`+.arg'>arg</ref> is an object with an <ref>lfun::`+()</ref>, that + <p> Otherwise, if <ref resolved='predef::`+.arg'>arg</ref> is an object with an <ref resolved='lfun::`+'>lfun::`+()</ref>, that    function is called with the rest of the arguments, and its    result is returned.</p>   <p> Otherwise, if any of the other arguments is an object that has -  an <ref>lfun::``+()</ref>, the first such function is called with the +  an <ref resolved='lfun::``+'>lfun::``+()</ref>, the first such function is called with the    arguments leading up to it, and <ref resolved='predef::`+'>`+()</ref> is then called    recursively with the result and the rest of the arguments.</p> - <p> Otherwise, if <ref resolved='predef::`+.arg'>arg</ref> is <ref>UNDEFINED</ref> and the other arguments are + <p> Otherwise, if <ref resolved='predef::`+.arg'>arg</ref> is <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> and the other arguments are    either arrays, mappings or multisets, the first argument is    ignored and the remaining are added together as described below.    This is useful primarily when appending to mapping values since    <expr>m[x] += ({foo})</expr> will work even if <expr>m[x]</expr> doesn't    exist yet.</p>   <p> Otherwise the result depends on the argument types:</p>   <mixed><group><type><or><int/><float/></or></type><text><p>The result is the sum of all the arguments. It's a float if    any argument is a float.</p>   </text></group><group><type><or><string/><int/><float/></or></type><text><p>If any argument is a string, all will be converted to    strings and concatenated in order to form the result.</p>
autodoc.git/onepage.xml:7967:    the other arguments. If the same index (according to    <ref resolved='predef::hash_value'>hash_value</ref> and <ref resolved='predef::`=='>`==</ref>) occur in several arguments, the    value from the last one is used.</p>   </text></group><group><type><multiset/></type><text><p>The result is like <ref resolved='predef::`+.arg'>arg</ref> but extended with the entries from    the other arguments. Subsequences with orderwise equal    indices (i.e. where <ref resolved='predef::`&lt;'>`&lt;</ref> returns false) are concatenated    into the result in argument order.</p>   </text></group></mixed><p>The function is not destructive on the arguments - the result is    always a new instance.</p>   </text></group><group><note/><text><p>In Pike 7.0 and earlier the addition order was unspecified.</p> - <p> The treatment of <ref>UNDEFINED</ref> was new + <p> The treatment of <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> was new    in Pike 7.0.</p> - </text></group><group><seealso/><text><p><ref resolved='predef::`-'>`-()</ref>, <ref>lfun::`+()</ref>, <ref>lfun::``+()</ref></p> + </text></group><group><seealso/><text><p><ref resolved='predef::`-'>`-()</ref>, <ref resolved='lfun::`+'>lfun::`+()</ref>, <ref resolved='lfun::``+'>lfun::``+()</ref></p>   </text></group></doc>   <method name='`+'>   <arguments><argument name='arg'><type><mixed/></type></argument></arguments>   <returntype><mixed/></returntype>   </method>   <method name='`+'>   <arguments><argument name='arg'><type><object resolved='predef::`+'/></type></argument><argument name='more'><type><varargs><mixed/></varargs></type></argument></arguments>   <returntype><mixed/></returntype>   </method>   <method name='`+'>
autodoc.git/onepage.xml:8012:   </method>   </docgroup>   <docgroup homogen-name='`-' homogen-type='method'><doc><text><p>Negation/subtraction/set difference.</p>   <p> Every expression with the <expr>-</expr> operator becomes a call to    this function, i.e. <expr>-a</expr> is the same as    <expr>predef::`-(a)</expr> and <expr>a-b</expr> is the same as    <expr>predef::`-(a,b)</expr>. Longer <expr>-</expr> expressions are    normally optimized to one call, so e.g. <expr>a-b-c</expr> becomes    <expr>predef::`-(a,b,c)</expr>.</p>   </text><group><returns/><text><p>If there's a single argument, that argument is returned negated. -  If <ref resolved='predef::`-.arg1'>arg1</ref> is an object with an <ref>lfun::`-()</ref>, that function is +  If <ref resolved='predef::`-.arg1'>arg1</ref> is an object with an <ref resolved='lfun::`-'>lfun::`-()</ref>, that function is    called without arguments, and its result is returned.</p>   <p> If there are more than two arguments the result is:    <expr>`-(`-(<ref resolved='predef::`-.arg1'>arg1</ref>, <ref resolved='predef::`-.arg2'>arg2</ref>), @<ref resolved='predef::`-.extras'>extras</ref>)</expr>.</p> - <p> Otherwise, if <ref resolved='predef::`-.arg1'>arg1</ref> is an object with an <ref>lfun::`-()</ref>, that + <p> Otherwise, if <ref resolved='predef::`-.arg1'>arg1</ref> is an object with an <ref resolved='lfun::`-'>lfun::`-()</ref>, that    function is called with <ref resolved='predef::`-.arg2'>arg2</ref> as argument, and its result is    returned.</p> - <p> Otherwise, if <ref resolved='predef::`-.arg2'>arg2</ref> is an object with an <ref>lfun::``-()</ref>, that + <p> Otherwise, if <ref resolved='predef::`-.arg2'>arg2</ref> is an object with an <ref resolved='lfun::``-'>lfun::``-()</ref>, that    function is called with <ref resolved='predef::`-.arg1'>arg1</ref> as argument, and its result is    returned.</p>   <p> Otherwise the result depends on the argument types:</p>   <mixed name='arg1'><group><type><or><int/><float/></or></type><text><p>The result is <expr><ref resolved='predef::`-.arg1'>arg1</ref> - <ref resolved='predef::`-.arg2'>arg2</ref></expr>, and is a float if    either <ref resolved='predef::`-.arg1'>arg1</ref> or <ref resolved='predef::`-.arg2'>arg2</ref> is a float.</p>   </text></group><group><type><string/></type><text><p>The result is <ref resolved='predef::`-.arg1'>arg1</ref> with all nonoverlapping occurrences of    the substring <ref resolved='predef::`-.arg2'>arg2</ref> removed. In cases with two overlapping    occurrences, the leftmost is removed.</p>   </text></group><group><type><or><array/><mapping/><multiset/></or></type><text><p>The result is like <ref resolved='predef::`-.arg1'>arg1</ref> but without the elements/indices    that match any in <ref resolved='predef::`-.arg2'>arg2</ref> (according to <ref resolved='predef::`&gt;'>`&gt;</ref>, <ref resolved='predef::`&lt;'>`&lt;</ref>, <ref resolved='predef::`=='>`==</ref>    and, in the case of mappings, <ref resolved='predef::hash_value'>hash_value</ref>).</p>   </text></group></mixed><p>The function is not destructive on the arguments - the result is    always a new instance.</p>   </text></group><group><note/><text><p>In Pike 7.0 and earlier the subtraction order was unspecified.</p>   </text></group><group><note/><text><p>If this operator is used with arrays or multisets containing objects -  which implement <ref>lfun::`==()</ref> but <b>not</b> <ref>lfun::`&gt;()</ref> and -  <ref>lfun::`&lt;()</ref>, the result will be undefined.</p> +  which implement <ref resolved='lfun::`=='>lfun::`==()</ref> but <b>not</b> <ref resolved='lfun::`&gt;'>lfun::`&gt;()</ref> and +  <ref resolved='lfun::`&lt;'>lfun::`&lt;()</ref>, the result will be undefined.</p>   </text></group><group><seealso/><text><p><ref resolved='predef::`+'>`+()</ref></p>   </text></group></doc>   <method name='`-'>   <arguments><argument name='arg1'><type><mixed/></type></argument></arguments>   <returntype><mixed/></returntype>   </method>   <method name='`-'>   <arguments><argument name='arg1'><type><mixed/></type></argument><argument name='arg2'><type><mixed/></type></argument><argument name='extras'><type><varargs><mixed/></varargs></type></argument></arguments>   <returntype><mixed/></returntype>   </method>
autodoc.git/onepage.xml:8099:   <returntype><multiset/></returntype>   </method>   </docgroup>   <docgroup homogen-name='`-&gt;' homogen-type='method'><doc><text><p>Arrow indexing.</p>   <p> Every non-lvalue expression with the <expr>-&gt;</expr> operator becomes    a call to this function. <expr>a-&gt;b</expr> is the same as    <expr>predef::`^(a,"b")</expr> where <expr>"b"</expr> is the symbol    <expr>b</expr> in string form.</p>   <p> This function behaves like <ref resolved='predef::`[]'>`[]</ref>, except that the index is    passed literally as a string instead of being evaluated.</p> - </text><group><returns/><text><p>If <ref resolved='predef::`-&gt;.arg'>arg</ref> is an object that implements <ref>lfun::`-&gt;()</ref>, that function + </text><group><returns/><text><p>If <ref resolved='predef::`-&gt;.arg'>arg</ref> is an object that implements <ref resolved='lfun::`-&gt;'>lfun::`-&gt;()</ref>, that function    will be called with <ref resolved='predef::`-&gt;.index'>index</ref> as the single argument.</p>   <p> Otherwise the result will be as follows:</p>   <mixed name='arg'><group><type><object resolved='predef::`-&gt;'/></type><text><p>The non-protected (ie public) symbol named <ref resolved='predef::`-&gt;.index'>index</ref> will be    looked up in <ref resolved='predef::`-&gt;.arg'>arg</ref>.</p>   </text></group><group><type><int/></type><text><p>The bignum function named <ref resolved='predef::`-&gt;.index'>index</ref> will be looked up in <ref resolved='predef::`-&gt;.arg'>arg</ref>.</p>   </text></group><group><type><array/></type><text><p>An array of all elements in <ref resolved='predef::`-&gt;.arg'>arg</ref> arrow indexed with <ref resolved='predef::`-&gt;.index'>index</ref>    will be returned.</p>   </text></group><group><type><mapping/></type><text><p>If <ref resolved='predef::`-&gt;.index'>index</ref> exists in <ref resolved='predef::`-&gt;.arg'>arg</ref> the corresponding value will be    returned. Otherwise <expr>UNDEFINED</expr> will be returned.</p>   </text></group><group><type><multiset/></type><text><p>If <ref resolved='predef::`-&gt;.index'>index</ref> exists in <ref resolved='predef::`-&gt;.arg'>arg</ref>, <expr>1</expr> will be returned.    Otherwise <expr>UNDEFINED</expr> will be returned.</p>   </text></group><group><type><program/></type><text><p>The non-protected (ie public) constant symbol <ref resolved='predef::`-&gt;.index'>index</ref> will    be looked up in <ref resolved='predef::`-&gt;.arg'>arg</ref>.</p>   </text></group></mixed>   </text></group><group><note/><text><p>In an expression <expr>a-&gt;b</expr>, the symbol <expr>b</expr> can be any    token that matches the identifier syntax - keywords are    disregarded in that context.</p>   </text></group><group><note/><text><p>An arrow indexing expression in an lvalue context, i.e. where    the index is being assigned a new value, uses <ref resolved='predef::`-&gt;='>`-&gt;=</ref> instead of    this function.</p> - </text></group><group><seealso/><text><p><ref resolved='predef::`[]'>`[]()</ref>, <ref>lfun::`-&gt;()</ref>, <ref resolved='predef::`-&gt;'>::`-&gt;()</ref>, <ref resolved='predef::`-&gt;='>`-&gt;=</ref></p> + </text></group><group><seealso/><text><p><ref resolved='predef::`[]'>`[]()</ref>, <ref resolved='lfun::`-&gt;'>lfun::`-&gt;()</ref>, <ref resolved='predef::`-&gt;'>::`-&gt;()</ref>, <ref resolved='predef::`-&gt;='>`-&gt;=</ref></p>   </text></group></doc>   <method name='`-&gt;'>   <arguments><argument name='arg'><type><object resolved='predef::`-&gt;'/></type></argument><argument name='index'><type><string/></type></argument></arguments>   <returntype><mixed/></returntype>   </method>   <method name='`-&gt;'>   <arguments><argument name='arg'><type><int/></type></argument><argument name='index'><type><string/></type></argument></arguments>   <returntype><mixed/></returntype>   </method>   <method name='`-&gt;'>
autodoc.git/onepage.xml:8154:   <returntype><mixed/></returntype>   </method>   </docgroup>   <docgroup homogen-name='`-&gt;=' homogen-type='method'><doc><text><p>Arrow index assignment.</p>   <p> Every lvalue expression with the <expr>-&gt;</expr> operator becomes a    call to this function, i.e. <expr>a-&gt;b=c</expr> is the same as    <expr>predef::`-&gt;=(a,"b",c)</expr> where <expr>"b"</expr> is the symbol    <expr>b</expr> in string form.</p>   <p> This function behaves like <ref resolved='predef::`[]='>`[]=</ref>, except that the index is    passed literally as a string instead of being evaluated.</p> - <p> If <ref resolved='predef::`-&gt;=.arg'>arg</ref> is an object that implements <ref>lfun::`-&gt;=()</ref>, that function + <p> If <ref resolved='predef::`-&gt;=.arg'>arg</ref> is an object that implements <ref resolved='lfun::`-&gt;='>lfun::`-&gt;=()</ref>, that function    will be called with <ref resolved='predef::`-&gt;=.index'>index</ref> and <ref resolved='predef::`-&gt;=.val'>val</ref> as the arguments.</p>   <mixed name='arg'><group><type><object resolved='predef::`-&gt;='/></type><text><p>The non-protected (ie public) variable named <ref resolved='predef::`-&gt;=.index'>index</ref> will    be looked up in <ref resolved='predef::`-&gt;=.arg'>arg</ref>, and assigned <ref resolved='predef::`-&gt;=.val'>val</ref>.</p>   </text></group><group><type><or><array/><mapping/></or></type><text><p>Index <ref resolved='predef::`-&gt;=.index'>index</ref> in <ref resolved='predef::`-&gt;=.arg'>arg</ref> will be assigned <ref resolved='predef::`-&gt;=.val'>val</ref>.</p>   </text></group><group><type><multiset/></type><text><p>If <ref resolved='predef::`-&gt;=.val'>val</ref> is <expr>0</expr> (zero), one occurrance of <ref resolved='predef::`-&gt;=.index'>index</ref> in    <ref resolved='predef::`-&gt;=.arg'>arg</ref> will be removed. Otherwise <ref resolved='predef::`-&gt;=.index'>index</ref> will be added    to <ref resolved='predef::`-&gt;=.arg'>arg</ref> if it is not already there.</p>   </text></group></mixed>   </text><group><returns/><text><p><ref resolved='predef::`-&gt;=.val'>val</ref> will be returned.</p>   </text></group><group><note/><text><p>In an expression <expr>a-&gt;b=c</expr>, the symbol <expr>b</expr> can be any    token that matches the identifier syntax - keywords are    disregarded in that context.</p>   </text></group><group><note/><text><p>An arrow indexing expression in a non-lvalue context, i.e. where    the index is being queried instead of assigned, uses <ref resolved='predef::`-&gt;'>`-&gt;</ref>    instead of this function.</p> - </text></group><group><seealso/><text><p><ref resolved='predef::`[]='>`[]=()</ref>, <ref>lfun::`-&gt;=()</ref>, <ref resolved='predef::`-&gt;'>`-&gt;</ref></p> + </text></group><group><seealso/><text><p><ref resolved='predef::`[]='>`[]=()</ref>, <ref resolved='lfun::`-&gt;='>lfun::`-&gt;=()</ref>, <ref resolved='predef::`-&gt;'>`-&gt;</ref></p>   </text></group></doc>   <method name='`-&gt;='>   <arguments><argument name='arg'><type><object resolved='predef::`-&gt;='/></type></argument><argument name='index'><type><string/></type></argument><argument name='val'><type><mixed/></type></argument></arguments>   <returntype><mixed/></returntype>   </method>   <method name='`-&gt;='>   <arguments><argument name='arg'><type><mapping/></type></argument><argument name='index'><type><string/></type></argument><argument name='val'><type><mixed/></type></argument></arguments>   <returntype><mixed/></returntype>   </method>   <method name='`-&gt;='>   <arguments><argument name='arg'><type><multiset/></type></argument><argument name='index'><type><string/></type></argument><argument name='val'><type><int><min>0</min><max>1</max></int></type></argument></arguments>   <returntype><int><min>0</min><max>1</max></int></returntype>   </method>   </docgroup>   <docgroup homogen-name='`/' homogen-type='method'><doc><text><p>Division/split.</p>   <p> Every expression with the <expr>/</expr> operator becomes a call to    this function, i.e. <expr>a/b</expr> is the same as    <expr>predef::`/(a,b)</expr>.</p>   </text><group><returns/><text><p>If there are more than two arguments, the result will be    <expr>`/(`/(<ref resolved='predef::`/.arg1'>arg1</ref>, <ref resolved='predef::`/.arg2'>arg2</ref>), @<ref resolved='predef::`/.extras'>extras</ref>)</expr>.</p> - <p> If <ref resolved='predef::`/.arg1'>arg1</ref> is an object that implements <ref>lfun::`/()</ref>, that + <p> If <ref resolved='predef::`/.arg1'>arg1</ref> is an object that implements <ref resolved='lfun::`/'>lfun::`/()</ref>, that    function will be called with <ref resolved='predef::`/.arg2'>arg2</ref> as the single argument.</p> - <p> If <ref resolved='predef::`/.arg2'>arg2</ref> is an object that implements <ref>lfun::``/()</ref>, that + <p> If <ref resolved='predef::`/.arg2'>arg2</ref> is an object that implements <ref resolved='lfun::``/'>lfun::``/()</ref>, that    function will be called with <ref resolved='predef::`/.arg1'>arg1</ref> as the single argument.</p>   <p> Otherwise the result will be as follows:</p>   <mixed name='arg1'><group><type><string/></type><text><mixed name='arg2'><group><type><or><int/><float/></or></type><text><p>The result will be and array of <ref resolved='predef::`/.arg1'>arg1</ref> split in segments    of length <ref resolved='predef::`/.arg2'>arg2</ref>. If <ref resolved='predef::`/.arg2'>arg2</ref> is negative the splitting    will start from the end of <ref resolved='predef::`/.arg1'>arg1</ref>.</p>   </text></group><group><type><string/></type><text><p>The result will be an array of <ref resolved='predef::`/.arg1'>arg1</ref> split at each    occurrence of <ref resolved='predef::`/.arg2'>arg2</ref>. Note that the segments that    matched against <ref resolved='predef::`/.arg2'>arg2</ref> will not be in the result.</p>   </text></group></mixed></text></group><group><type><array/></type><text><mixed name='arg2'><group><type><or><int/><float/></or></type><text><p>The result will be and array of <ref resolved='predef::`/.arg1'>arg1</ref> split in segments    of length <ref resolved='predef::`/.arg2'>arg2</ref>. If <ref resolved='predef::`/.arg2'>arg2</ref> is negative the splitting
autodoc.git/onepage.xml:8285:   </text></group></doc>   <method name='`&lt;'>   <arguments><argument name='arg1'><type><mixed/></type></argument><argument name='arg2'><type><mixed/></type></argument><argument name='extras'><type><varargs><mixed/></varargs></type></argument></arguments>   <returntype><int><min>0</min><max>1</max></int></returntype>   </method>   </docgroup>   <docgroup homogen-name='`&lt;&lt;' homogen-type='method'><doc><text><p>Left shift.</p>   <p> Every expression with the <expr>&lt;&lt;</expr> operator becomes a call to    this function, i.e. <expr>a&lt;&lt;b</expr> is the same as    <expr>predef::`&lt;&lt;(a,b)</expr>.</p> - <p> If <ref resolved='predef::`&lt;&lt;.arg1'>arg1</ref> is an object that implements <ref>lfun::`&lt;&lt;()</ref>, that + <p> If <ref resolved='predef::`&lt;&lt;.arg1'>arg1</ref> is an object that implements <ref resolved='lfun::`&lt;&lt;'>lfun::`&lt;&lt;()</ref>, that    function will be called with <ref resolved='predef::`&lt;&lt;.arg2'>arg2</ref> as the single argument.</p> - <p> If <ref resolved='predef::`&lt;&lt;.arg2'>arg2</ref> is an object that implements <ref>lfun::``&lt;&lt;()</ref>, that + <p> If <ref resolved='predef::`&lt;&lt;.arg2'>arg2</ref> is an object that implements <ref resolved='lfun::``&lt;&lt;'>lfun::``&lt;&lt;()</ref>, that    function will be called with <ref resolved='predef::`&lt;&lt;.arg1'>arg1</ref> as the single argument.</p>   <p> If <ref resolved='predef::`&lt;&lt;.arg1'>arg1</ref> is a float and <ref resolved='predef::`&lt;&lt;.arg2'>arg2</ref> is a non-negative integer,    <ref resolved='predef::`&lt;&lt;.arg1'>arg1</ref> will be multiplied by <expr>1&lt;&lt;<ref resolved='predef::`&lt;&lt;.arg2'>arg2</ref></expr>.</p>   <p> Otherwise <ref resolved='predef::`&lt;&lt;.arg1'>arg1</ref> will be shifted <ref resolved='predef::`&lt;&lt;.arg2'>arg2</ref> bits left.</p>   </text><group><seealso/><text><p><ref resolved='predef::`&gt;&gt;'>`&gt;&gt;()</ref></p>   </text></group></doc>   <method name='`&lt;&lt;'>   <arguments><argument name='arg1'><type><int/></type></argument><argument name='arg2'><type><int><min>0</min><max/></int></type></argument></arguments>   <returntype><int/></returntype>   </method>
autodoc.git/onepage.xml:8332:   <returntype><int><min>0</min><max>1</max></int></returntype>   </method>   </docgroup>   <docgroup homogen-name='`==' homogen-type='method'><doc><text><p>Equality test.</p>   <p> Every expression with the <expr>==</expr> operator becomes a call to    this function, i.e. <expr>a==b</expr> is the same as    <expr>predef::`==(a,b)</expr>.</p>   <p> If more than two arguments are given, each argument is compared    with the following one as described below, and the test is    successful iff all comparisons are successful.</p> - <p> If the first argument is an object with an <ref>lfun::`==()</ref>, that + <p> If the first argument is an object with an <ref resolved='lfun::`=='>lfun::`==()</ref>, that    function is called with the second as argument, unless the    second argument is the same as the first argument. The test is    successful iff its result is nonzero (according to <ref resolved='predef::`!'>`!</ref>).</p>   <p> Otherwise, if the second argument is an object with an -  <ref>lfun::`==()</ref>, that function is called with the first as +  <ref resolved='lfun::`=='>lfun::`==()</ref>, that function is called with the first as    argument, and the test is successful iff its result is nonzero    (according to <ref resolved='predef::`!'>`!</ref>).</p>   <p> Otherwise, if the arguments are of different types, the test is    unsuccessful. Function pointers to programs are automatically    converted to program pointers if necessary, though.</p>   <p> Otherwise the test depends on the type of the arguments:</p>   <mixed><group><type><int/></type><text><p>Successful iff the two integers are numerically equal.</p>   </text></group><group><type><float/></type><text><p>Successful iff the two floats are numerically equal and    not NaN.</p>   </text></group><group><type><string/></type><text><p>Successful iff the two strings are identical, character for
autodoc.git/onepage.xml:8397:   </text></group></doc>   <method name='`&gt;='>   <arguments><argument name='arg1'><type><mixed/></type></argument><argument name='arg2'><type><mixed/></type></argument><argument name='extras'><type><varargs><mixed/></varargs></type></argument></arguments>   <returntype><int><min>0</min><max>1</max></int></returntype>   </method>   </docgroup>   <docgroup homogen-name='`&gt;&gt;' homogen-type='method'><doc><text><p>Right shift.</p>   <p> Every expression with the <expr>&gt;&gt;</expr> operator becomes a call to    this function, i.e. <expr>a&gt;&gt;b</expr> is the same as    <expr>predef::`&gt;&gt;(a,b)</expr>.</p> - <p> If <ref resolved='predef::`&gt;&gt;.arg1'>arg1</ref> is an object that implements <ref>lfun::`&gt;&gt;()</ref>, that + <p> If <ref resolved='predef::`&gt;&gt;.arg1'>arg1</ref> is an object that implements <ref resolved='lfun::`&gt;&gt;'>lfun::`&gt;&gt;()</ref>, that    function will be called with <ref resolved='predef::`&gt;&gt;.arg2'>arg2</ref> as the single argument.</p> - <p> If <ref resolved='predef::`&gt;&gt;.arg2'>arg2</ref> is an object that implements <ref>lfun::``&gt;&gt;()</ref>, that + <p> If <ref resolved='predef::`&gt;&gt;.arg2'>arg2</ref> is an object that implements <ref resolved='lfun::``&gt;&gt;'>lfun::``&gt;&gt;()</ref>, that    function will be called with <ref resolved='predef::`&gt;&gt;.arg1'>arg1</ref> as the single argument.</p>   <p> If <ref resolved='predef::`&gt;&gt;.arg1'>arg1</ref> is a float and <ref resolved='predef::`&gt;&gt;.arg2'>arg2</ref> is a non-negative integer,    <ref resolved='predef::`&gt;&gt;.arg1'>arg1</ref> will be divided by <expr>1&lt;&lt;<ref resolved='predef::`&gt;&gt;.arg2'>arg2</ref></expr>.</p>   <p> Otherwise <ref resolved='predef::`&gt;&gt;.arg1'>arg1</ref> will be shifted <ref resolved='predef::`&gt;&gt;.arg2'>arg2</ref> bits right.</p>   </text><group><seealso/><text><p><ref resolved='predef::`&lt;&lt;'>`&lt;&lt;()</ref></p>   </text></group></doc>   <method name='`&gt;&gt;'>   <arguments><argument name='arg1'><type><int/></type></argument><argument name='arg2'><type><int><min>0</min><max/></int></type></argument></arguments>   <returntype><int/></returntype>   </method>
autodoc.git/onepage.xml:8461:   </text></group><group><item/><text><p>If the lower bound is less than or equal to the upper bound,    then the subrange is the inclusive range between them, i.e.    from and including the element at the lower bound and up to    and including the element at the upper bound.</p>   </text></group><group><item/><text><p>If the lower bound is greater than the upper bound then the    result is an empty subrange (without any error).</p>   </text></group></ul>   </text><group><returns/><text><p>The returned value depends on the type of <ref resolved='predef::`[..].arg'>arg</ref>:</p>   <mixed name='arg'><group><type><string/></type><text><p>A string with the characters in the range is returned.</p>   </text></group><group><type><array/></type><text><p>An array with the elements in the range is returned.</p> - </text></group><group><type><object resolved='predef::`[..]'/></type><text><p>If the object implements <ref>lfun::`[..]</ref>, that function is + </text></group><group><type><object resolved='predef::`[..]'/></type><text><p>If the object implements <ref resolved='lfun::`[..]'>lfun::`[..]</ref>, that function is    called with the four remaining arguments.</p>   <p> As a compatibility measure, if the object does not implement -  <ref>lfun::`[..]</ref> but <ref>lfun::`[]</ref> then the latter is called +  <ref resolved='lfun::`[..]'>lfun::`[..]</ref> but <ref resolved='lfun::`[]'>lfun::`[]</ref> then the latter is called    with the bounds transformed to normal from-the-beginning    indices in array-like fashion:</p>   <dl><group><item><p><expr>`[..] (a, i, Pike.INDEX_FROM_BEG, j, Pike.INDEX_FROM_BEG)</expr></p>   </item><text><p>Calls <expr>a-&gt;`[] (i, j)</expr></p>   </text></group><group><item><p><expr>`[..] (a, i, Pike.INDEX_FROM_BEG, j, Pike.INDEX_FROM_END)</expr></p>   </item><text><p>Calls <expr>a-&gt;`[] (i, a-&gt;_sizeof()-1-j)</expr></p>   </text></group><group><item><p><expr>`[..] (a, i, Pike.INDEX_FROM_BEG, 0, Pike.OPEN_BOUND)</expr></p>   </item><text><p>Calls <expr>a-&gt;`[] (i, <ref resolved='predef::Int.NATIVE_MAX'>Int.NATIVE_MAX</ref>)</expr></p>   </text></group><group><item><p><expr>`[..] (a, i, Pike.INDEX_FROM_END, j, Pike.INDEX_FROM_BEG)</expr></p>   </item><text><p>Calls <expr>a-&gt;`[] (a-&gt;_sizeof()-1-i, j)</expr></p>
autodoc.git/onepage.xml:8489:   </item><text><p>Calls <expr>a-&gt;`[] (a-&gt;_sizeof()-1-i, <ref resolved='predef::Int.NATIVE_MAX'>Int.NATIVE_MAX</ref>)</expr></p>   </text></group><group><item><p><expr>`[..] (a, 0, Pike.OPEN_BOUND, j, Pike.INDEX_FROM_BEG)</expr></p>   </item><text><p>Calls <expr>a-&gt;`[] (0, j)</expr></p>   </text></group><group><item><p><expr>`[..] (a, 0, Pike.OPEN_BOUND, j, Pike.INDEX_FROM_END)</expr></p>   </item><text><p>Calls <expr>a-&gt;`[] (0, a-&gt;_sizeof()-1-j)</expr></p>   </text></group><group><item><p><expr>`[..] (a, 0, Pike.OPEN_BOUND, 0, Pike.OPEN_BOUND)</expr></p>   </item><text><p>Calls <expr>a-&gt;`[] (0, <ref resolved='predef::Int.NATIVE_MAX'>Int.NATIVE_MAX</ref>)</expr></p>   </text></group></dl><p>Note that <ref resolved='predef::Int.NATIVE_MAX'>Int.NATIVE_MAX</ref> might be replaced with an even    larger integer in the future.</p>   </text></group></mixed> - </text></group><group><seealso/><text><p><ref>lfun::`[..]</ref>, <ref resolved='predef::`[]'>`[]</ref></p> + </text></group><group><seealso/><text><p><ref resolved='lfun::`[..]'>lfun::`[..]</ref>, <ref resolved='predef::`[]'>`[]</ref></p>   </text></group></doc>   <method name='`[..]'>   <arguments><argument name='arg'><type><object resolved='predef::`[..]'/></type></argument><argument name='start'><type><mixed/></type></argument><argument name='start_type'><type><int/></type></argument><argument name='end'><type><mixed/></type></argument><argument name='end_type'><type><int/></type></argument></arguments>   <returntype><mixed/></returntype>   </method>   <method name='`[..]'>   <arguments><argument name='arg'><type><string/></type></argument><argument name='start'><type><int/></type></argument><argument name='start_type'><type><int/></type></argument><argument name='end'><type><int/></type></argument><argument name='end_type'><type><int/></type></argument></arguments>   <returntype><string/></returntype>   </method>   <method name='`[..]'>   <arguments><argument name='arg'><type><array/></type></argument><argument name='start'><type><int/></type></argument><argument name='start_type'><type><int/></type></argument><argument name='end'><type><int/></type></argument><argument name='end_type'><type><int/></type></argument></arguments>   <returntype><array/></returntype>   </method>   </docgroup>   <docgroup homogen-name='`[]' homogen-type='method'><doc><text><p>Indexing.</p>   <p> This is the function form of expressions with the <expr>[]</expr>    operator, i.e. <expr>a[i]</expr> is the same as    <expr>predef::`[](a,i)</expr>.</p> - </text><group><returns/><text><p>If <ref resolved='predef::`[].arg'>arg</ref> is an object that implements <ref>lfun::`[]()</ref>, that + </text><group><returns/><text><p>If <ref resolved='predef::`[].arg'>arg</ref> is an object that implements <ref resolved='lfun::`[]'>lfun::`[]()</ref>, that    function is called with the <ref resolved='predef::`[].index'>index</ref> argument.</p>   <p> Otherwise, the action depends on the type of <ref resolved='predef::`[].arg'>arg</ref>:</p>   <mixed name='arg'><group><type><object resolved='predef::`[]'/></type><text><p>The non-protected (i.e. public) symbol named <ref resolved='predef::`[].index'>index</ref> is    looked up in <ref resolved='predef::`[].arg'>arg</ref>.</p>   </text></group><group><type><int/></type><text><p>The bignum function named <ref resolved='predef::`[].index'>index</ref> is looked up in <ref resolved='predef::`[].arg'>arg</ref>.    The bignum functions are the same as those in the <ref resolved='predef::Gmp.mpz'>Gmp.mpz</ref>    class.</p>   </text></group><group><type><string/></type><text><p>The character at index <ref resolved='predef::`[].index'>index</ref> in <ref resolved='predef::`[].arg'>arg</ref> is returned as an    integer. The first character in the string is at index    <expr>0</expr> and the highest allowed index is therefore
autodoc.git/onepage.xml:8543:   </text></group><group><type><program/></type><text><p>The non-protected (i.e. public) constant symbol <ref resolved='predef::`[].index'>index</ref> is    looked up in <ref resolved='predef::`[].arg'>arg</ref>.</p>   </text></group></mixed><p>As a compatibility measure, this function also performs range    operations if it's called with three arguments. In that case it    becomes equivalent to:</p>   <code><text><p><ref resolved='predef::`[..]'>`[..]</ref> (arg, start, <ref resolved='predef::Pike.INDEX_FROM_BEG'>Pike.INDEX_FROM_BEG</ref>, end, <ref resolved='predef::Pike.INDEX_FROM_BEG'>Pike.INDEX_FROM_BEG</ref>)</p>   </text></code><p>See <ref resolved='predef::`[..]'>`[..]</ref> for further details.</p>   </text></group><group><note/><text><p>An indexing expression in an lvalue context, i.e. where the    index is being assigned a new value, uses <ref resolved='predef::`[]='>`[]=</ref> instead of    this function.</p> - </text></group><group><seealso/><text><p><ref resolved='predef::`-&gt;'>`-&gt;()</ref>, <ref>lfun::`[]()</ref>, <ref resolved='predef::`[]='>`[]=</ref>, <ref resolved='predef::`[..]'>`[..]</ref></p> + </text></group><group><seealso/><text><p><ref resolved='predef::`-&gt;'>`-&gt;()</ref>, <ref resolved='lfun::`[]'>lfun::`[]()</ref>, <ref resolved='predef::`[]='>`[]=</ref>, <ref resolved='predef::`[..]'>`[..]</ref></p>   </text></group></doc>   <method name='`[]'>   <arguments><argument name='arg'><type><object resolved='predef::`[]'/></type></argument><argument name='index'><type><mixed/></type></argument></arguments>   <returntype><mixed/></returntype>   </method>   <method name='`[]'>   <arguments><argument name='arg'><type><object resolved='predef::`[]'/></type></argument><argument name='index'><type><string/></type></argument></arguments>   <returntype><mixed/></returntype>   </method>   <method name='`[]'>
autodoc.git/onepage.xml:8598:   </method>   <method name='`[]'>   <arguments><argument name='arg'><type><array/></type></argument><argument name='start'><type><int/></type></argument><argument name='end'><type><int/></type></argument></arguments>   <returntype><array/></returntype>   </method>   </docgroup>   <docgroup homogen-name='`[]=' homogen-type='method'><doc><text><p>Index assignment.</p>   <p> Every lvalue expression with the <expr>[]</expr> operator becomes a    call to this function, i.e. <expr>a[b]=c</expr> is the same as    <expr>predef::`[]=(a,b,c)</expr>.</p> - <p> If <ref resolved='predef::`[]=.arg'>arg</ref> is an object that implements <ref>lfun::`[]=()</ref>, that function + <p> If <ref resolved='predef::`[]=.arg'>arg</ref> is an object that implements <ref resolved='lfun::`[]='>lfun::`[]=()</ref>, that function    will be called with <ref resolved='predef::`[]=.index'>index</ref> and <ref resolved='predef::`[]=.val'>val</ref> as the arguments.</p>   <mixed name='arg'><group><type><object resolved='predef::`[]='/></type><text><p>The non-protected (ie public) variable named <ref resolved='predef::`[]=.index'>index</ref> will    be looked up in <ref resolved='predef::`[]=.arg'>arg</ref>, and assigned <ref resolved='predef::`[]=.val'>val</ref>.</p>   </text></group><group><type><or><array/><mapping/></or></type><text><p>Index <ref resolved='predef::`[]=.index'>index</ref> in <ref resolved='predef::`[]=.arg'>arg</ref> will be assigned <ref resolved='predef::`[]=.val'>val</ref>.</p>   </text></group><group><type><multiset/></type><text><p>If <ref resolved='predef::`[]=.val'>val</ref> is <expr>0</expr> (zero), one occurrance of <ref resolved='predef::`[]=.index'>index</ref> in    <ref resolved='predef::`[]=.arg'>arg</ref> will be removed. Otherwise <ref resolved='predef::`[]=.index'>index</ref> will be added    to <ref resolved='predef::`[]=.arg'>arg</ref> if it is not already there.</p>   </text></group></mixed>   </text><group><returns/><text><p><ref resolved='predef::`[]=.val'>val</ref> will be returned.</p>   </text></group><group><note/><text><p>An indexing expression in a non-lvalue context, i.e. where the    index is being queried instead of assigned, uses <ref resolved='predef::`[]'>`[]</ref> instead    of this function.</p> - </text></group><group><seealso/><text><p><ref resolved='predef::`-&gt;='>`-&gt;=()</ref>, <ref>lfun::`[]=()</ref>, <ref resolved='predef::`[]'>`[]</ref></p> + </text></group><group><seealso/><text><p><ref resolved='predef::`-&gt;='>`-&gt;=()</ref>, <ref resolved='lfun::`[]='>lfun::`[]=()</ref>, <ref resolved='predef::`[]'>`[]</ref></p>   </text></group></doc>   <method name='`[]='>   <arguments><argument name='arg'><type><object resolved='predef::`[]='/></type></argument><argument name='index'><type><mixed/></type></argument><argument name='val'><type><mixed/></type></argument></arguments>   <returntype><mixed/></returntype>   </method>   <method name='`[]='>   <arguments><argument name='arg'><type><object resolved='predef::`[]='/></type></argument><argument name='index'><type><string/></type></argument><argument name='val'><type><mixed/></type></argument></arguments>   <returntype><mixed/></returntype>   </method>   <method name='`[]='>
autodoc.git/onepage.xml:8641:   <returntype><int><min>0</min><max>1</max></int></returntype>   </method>   </docgroup>   <docgroup homogen-name='`^' homogen-type='method'><doc><text><p>Exclusive or.</p>   <p> Every expression with the <expr>^</expr> operator becomes a call to    this function, i.e. <expr>a^b</expr> is the same as    <expr>predef::`^(a,b)</expr>.</p>   </text><group><returns/><text><p>If there's a single argument, that argument is returned.</p>   <p> If there are more than two arguments, the result is:    <expr>`^(`^(<ref resolved='predef::`^.arg1'>arg1</ref>, <ref resolved='predef::`^.arg2'>arg2</ref>), @<ref resolved='predef::`^.extras'>extras</ref>)</expr>.</p> - <p> Otherwise, if <ref resolved='predef::`^.arg1'>arg1</ref> is an object with an <ref>lfun::`^()</ref>, that + <p> Otherwise, if <ref resolved='predef::`^.arg1'>arg1</ref> is an object with an <ref resolved='lfun::`^'>lfun::`^()</ref>, that    function is called with <ref resolved='predef::`^.arg2'>arg2</ref> as argument, and its result is    returned.</p> - <p> Otherwise, if <ref resolved='predef::`^.arg2'>arg2</ref> is an object with an <ref>lfun::``^()</ref>, that + <p> Otherwise, if <ref resolved='predef::`^.arg2'>arg2</ref> is an object with an <ref resolved='lfun::``^'>lfun::``^()</ref>, that    function is called with <ref resolved='predef::`^.arg1'>arg1</ref> as argument, and its result is    returned.</p>   <p> Otherwise the result depends on the argument types:</p>   <mixed name='arg1'><group><type><int/></type><text><p>Bitwise exclusive or of <ref resolved='predef::`^.arg1'>arg1</ref> and <ref resolved='predef::`^.arg2'>arg2</ref>.</p>   </text></group><group><type><string/></type><text><p>The result is a string where each character is the bitwise    exclusive or of the characters in the same position in    <ref resolved='predef::`^.arg1'>arg1</ref> and <ref resolved='predef::`^.arg2'>arg2</ref>. The arguments must be strings of the    same length.</p>   </text></group><group><type><array/></type><text><p>The result is an array with the elements in <ref resolved='predef::`^.arg1'>arg1</ref> that    doesn't occur in <ref resolved='predef::`^.arg2'>arg2</ref> concatenated with those in <ref resolved='predef::`^.arg2'>arg2</ref>
autodoc.git/onepage.xml:8675:   </text></group><group><type><multiset/></type><text><p>The result is like <ref resolved='predef::`^.arg1'>arg1</ref> but with the entries from <ref resolved='predef::`^.arg1'>arg1</ref>    and <ref resolved='predef::`^.arg2'>arg2</ref> that are different between them (according to    <ref resolved='predef::`&gt;'>`&gt;</ref>, <ref resolved='predef::`&lt;'>`&lt;</ref> and <ref resolved='predef::`=='>`==</ref>). Subsequences with orderwise equal    entries (i.e. where <ref resolved='predef::`&lt;'>`&lt;</ref> returns false) are handled just    like the array case above.</p>   </text></group><group><type><or><type><mixed/></type><program/></or></type><text><p>The result is a type computed like this:    <expr>(<ref resolved='predef::`^.arg1'>arg1</ref>&amp;~<ref resolved='predef::`^.arg2'>arg2</ref>)|(~<ref resolved='predef::`^.arg1'>arg1</ref>&amp;<ref resolved='predef::`^.arg2'>arg2</ref>)</expr>.</p>   </text></group></mixed><p>The function is not destructive on the arguments - the result is    always a new instance.</p>   </text></group><group><note/><text><p>If this operator is used with arrays or multisets containing objects -  which implement <ref>lfun::`==()</ref> but <b>not</b> <ref>lfun::`&gt;()</ref> and -  <ref>lfun::`&lt;()</ref>, the result will be undefined.</p> - </text></group><group><seealso/><text><p><ref resolved='predef::`&amp;'>`&amp;()</ref>, <ref resolved='predef::`|'>`|()</ref>, <ref>lfun::`^()</ref>, <ref>lfun::``^()</ref></p> +  which implement <ref resolved='lfun::`=='>lfun::`==()</ref> but <b>not</b> <ref resolved='lfun::`&gt;'>lfun::`&gt;()</ref> and +  <ref resolved='lfun::`&lt;'>lfun::`&lt;()</ref>, the result will be undefined.</p> + </text></group><group><seealso/><text><p><ref resolved='predef::`&amp;'>`&amp;()</ref>, <ref resolved='predef::`|'>`|()</ref>, <ref resolved='lfun::`^'>lfun::`^()</ref>, <ref resolved='lfun::``^'>lfun::``^()</ref></p>   </text></group></doc>   <method name='`^'>   <arguments><argument name='arg1'><type><mixed/></type></argument></arguments>   <returntype><mixed/></returntype>   </method>   <method name='`^'>   <arguments><argument name='arg1'><type><mixed/></type></argument><argument name='arg2'><type><mixed/></type></argument><argument name='extras'><type><varargs><mixed/></varargs></type></argument></arguments>   <returntype><mixed/></returntype>   </method>   <method name='`^'>
autodoc.git/onepage.xml:8727:   <returntype><type><mixed/></type></returntype>   </method>   </docgroup>   <docgroup homogen-name='`|' homogen-type='method'><doc><text><p>Bitwise or/union.</p>   <p> Every expression with the <expr>|</expr> operator becomes a call to    this function, i.e. <expr>a|b</expr> is the same as    <expr>predef::`|(a,b)</expr>.</p>   </text><group><returns/><text><p>If there's a single argument, that argument is returned.</p>   <p> If there are more than two arguments, the result is:    <expr>`|(`|(<ref resolved='predef::`|.arg1'>arg1</ref>, <ref resolved='predef::`|.arg2'>arg2</ref>), @<ref resolved='predef::`|.extras'>extras</ref>)</expr>.</p> - <p> Otherwise, if <ref resolved='predef::`|.arg1'>arg1</ref> is an object with an <ref>lfun::`|()</ref>, that + <p> Otherwise, if <ref resolved='predef::`|.arg1'>arg1</ref> is an object with an <ref resolved='lfun::`|'>lfun::`|()</ref>, that    function is called with <ref resolved='predef::`|.arg2'>arg2</ref> as argument, and its result is    returned.</p> - <p> Otherwise, if <ref resolved='predef::`|.arg2'>arg2</ref> is an object with an <ref>lfun::``|()</ref>, that + <p> Otherwise, if <ref resolved='predef::`|.arg2'>arg2</ref> is an object with an <ref resolved='lfun::``|'>lfun::``|()</ref>, that    function is called with <ref resolved='predef::`|.arg1'>arg1</ref> as argument, and its result is    returned.</p>   <p> Otherwise the result depends on the argument types:</p>   <mixed name='arg1'><group><type><int/></type><text><p>Bitwise or of <ref resolved='predef::`|.arg1'>arg1</ref> and <ref resolved='predef::`|.arg2'>arg2</ref>.</p>   </text></group><group><type><string/></type><text><p>The result is a string where each character is the bitwise    or of the characters in the same position in <ref resolved='predef::`|.arg1'>arg1</ref> and    <ref resolved='predef::`|.arg2'>arg2</ref>. The arguments must be strings of the same length.</p>   </text></group><group><type><array/></type><text><p>The result is an array with the elements in <ref resolved='predef::`|.arg1'>arg1</ref>    concatenated with those in <ref resolved='predef::`|.arg2'>arg2</ref> that doesn't occur in    <ref resolved='predef::`|.arg1'>arg1</ref> (according to <ref resolved='predef::`&gt;'>`&gt;</ref>, <ref resolved='predef::`&lt;'>`&lt;</ref>, <ref resolved='predef::`=='>`==</ref>). The order
autodoc.git/onepage.xml:8759:    and <ref resolved='predef::`=='>`==</ref>) occur in both, the value from <ref resolved='predef::`|.arg2'>arg2</ref> is used.</p>   </text></group><group><type><multiset/></type><text><p>The result is like <ref resolved='predef::`|.arg1'>arg1</ref> but extended with the entries in    <ref resolved='predef::`|.arg2'>arg2</ref> that doesn't already occur in <ref resolved='predef::`|.arg1'>arg1</ref> (according to    <ref resolved='predef::`&gt;'>`&gt;</ref>, <ref resolved='predef::`&lt;'>`&lt;</ref> and <ref resolved='predef::`=='>`==</ref>). Subsequences with orderwise equal    entries (i.e. where <ref resolved='predef::`&lt;'>`&lt;</ref> returns false) are handled just    like the array case above.</p>   </text></group><group><type><or><type><mixed/></type><program/></or></type><text><p>Type union of <ref resolved='predef::`|.arg1'>arg1</ref> and <ref resolved='predef::`|.arg2'>arg2</ref>.</p>   </text></group></mixed><p>The function is not destructive on the arguments - the result is    always a new instance.</p>   </text></group><group><note/><text><p>If this operator is used with arrays or multisets containing objects -  which implement <ref>lfun::`==()</ref> but <b>not</b> <ref>lfun::`&gt;()</ref> and -  <ref>lfun::`&lt;()</ref>, the result will be undefined.</p> - </text></group><group><seealso/><text><p><ref resolved='predef::`&amp;'>`&amp;()</ref>, <ref>lfun::`|()</ref>, <ref>lfun::``|()</ref></p> +  which implement <ref resolved='lfun::`=='>lfun::`==()</ref> but <b>not</b> <ref resolved='lfun::`&gt;'>lfun::`&gt;()</ref> and +  <ref resolved='lfun::`&lt;'>lfun::`&lt;()</ref>, the result will be undefined.</p> + </text></group><group><seealso/><text><p><ref resolved='predef::`&amp;'>`&amp;()</ref>, <ref resolved='lfun::`|'>lfun::`|()</ref>, <ref resolved='lfun::``|'>lfun::``|()</ref></p>   </text></group></doc>   <method name='`|'>   <arguments><argument name='arg1'><type><mixed/></type></argument></arguments>   <returntype><mixed/></returntype>   </method>   <method name='`|'>   <arguments><argument name='arg1'><type><mixed/></type></argument><argument name='arg2'><type><mixed/></type></argument><argument name='extras'><type><varargs><mixed/></varargs></type></argument></arguments>   <returntype><mixed/></returntype>   </method>   <method name='`|'>
autodoc.git/onepage.xml:8809:   <method name='`|'>   <arguments><argument name='arg1'><type><or><program/><type><mixed/></type></or></type></argument><argument name='arg2'><type><or><program/><type><mixed/></type></or></type></argument></arguments>   <returntype><type><mixed/></type></returntype>   </method>   </docgroup>   <docgroup homogen-name='`~' homogen-type='method'><doc><text><p>Complement/inversion.</p>   <p> Every expression with the <expr>~</expr> operator becomes a call to    this function, i.e. <expr>~a</expr> is the same as    <expr>predef::`~(a)</expr>.</p>   </text><group><returns/><text><p>The result will be as follows:</p> - <mixed name='arg'><group><type><object resolved='predef::`~'/></type><text><p>If <ref resolved='predef::`~.arg'>arg</ref> implements <ref>lfun::`~()</ref>, that function will be called.</p> + <mixed name='arg'><group><type><object resolved='predef::`~'/></type><text><p>If <ref resolved='predef::`~.arg'>arg</ref> implements <ref resolved='lfun::`~'>lfun::`~()</ref>, that function will be called.</p>   </text></group><group><type><int/></type><text><p>The bitwise inverse of <ref resolved='predef::`~.arg'>arg</ref> will be returned.</p>   </text></group><group><type><float/></type><text><p>The result will be <expr>-1.0 - <ref resolved='predef::`~.arg'>arg</ref></expr>.</p>   </text></group><group><type><or><type><mixed/></type><program/></or></type><text><p>The type inverse of <ref resolved='predef::`~.arg'>arg</ref> will be returned.</p>   </text></group><group><type><string/></type><text><p>If <ref resolved='predef::`~.arg'>arg</ref> only contains characters in the range 0 - 255 (8-bit),    a string containing the corresponding 8-bit inverses will be    returned.</p>   </text></group></mixed> - </text></group><group><seealso/><text><p><ref resolved='predef::`!'>`!()</ref>, <ref>lfun::`~()</ref></p> + </text></group><group><seealso/><text><p><ref resolved='predef::`!'>`!()</ref>, <ref resolved='lfun::`~'>lfun::`~()</ref></p>   </text></group></doc>   <method name='`~'>   <arguments><argument name='arg'><type><object resolved='predef::`~'/></type></argument></arguments>   <returntype><mixed/></returntype>   </method>   <method name='`~'>   <arguments><argument name='arg'><type><int/></type></argument></arguments>   <returntype><int/></returntype>   </method>   <method name='`~'>
autodoc.git/onepage.xml:8841:   <method name='`~'>   <arguments><argument name='arg'><type><or><type><mixed/></type><program/></or></type></argument></arguments>   <returntype><type><mixed/></type></returntype>   </method>   <method name='`~'>   <arguments><argument name='arg'><type><string/></type></argument></arguments>   <returntype><string/></returntype>   </method>   </docgroup>   <docgroup homogen-name='abs' homogen-type='method'><doc><text><p>Return the absolute value for <ref resolved='predef::abs.f'>f</ref>. If <ref resolved='predef::abs.f'>f</ref> is -  an object it must implement <ref>lfun::`&lt;</ref> and -  unary <ref>lfun::`-</ref>.</p> +  an object it must implement <ref resolved='lfun::`&lt;'>lfun::`&lt;</ref> and +  unary <ref resolved='lfun::`-'>lfun::`-</ref>.</p>   </text></doc>   <method name='abs'>   <arguments><argument name='f'><type><float/></type></argument></arguments>   <returntype><float/></returntype>   </method>   <method name='abs'>   <arguments><argument name='f'><type><int/></type></argument></arguments>   <returntype><int/></returntype>   </method>   <method name='abs'>
autodoc.git/onepage.xml:9041:   <method name='allocate'>   <arguments><argument name='size'><type><int/></type></argument></arguments>   <returntype><array/></returntype>   </method>   <method name='allocate'>   <arguments><argument name='size'><type><int/></type></argument><argument name='init'><type><mixed/></type></argument></arguments>   <returntype><array/></returntype>   </method>   </docgroup>   <docgroup homogen-name='annotations' homogen-type='method'><doc><text><p>Return an array with the annotations for all symbols in <ref resolved='predef::annotations.x'>x</ref>.</p> - </text><group><param name='x'/><text><mixed><group><type><object resolved='predef::annotations'/></type><text><p>For objects which define <ref>lfun::_annotations()</ref> that return value + </text><group><param name='x'/><text><mixed><group><type><object resolved='predef::annotations'/></type><text><p>For objects which define <ref resolved='lfun::_annotations'>lfun::_annotations()</ref> that return value    is used.</p>   <p> For other objects an array with annotations for all non-protected    symbols is returned.</p>   </text></group><group><type><program/></type><text><p>Returns an array with annotations for all non-protected    constant symbols.</p>   </text></group></mixed>   </text></group><group><param name='recurse'/><text><p>Include annotations recursively added via inherits.</p>   </text></group><group><returns/><text><p>The order of the resulting array is the same as that of <ref resolved='predef::indices'>indices()</ref>    for the same <ref resolved='predef::annotations.x'>x</ref>.</p>   </text></group><group><note/><text><p>This function was added in Pike 8.1.</p> - </text></group><group><seealso/><text><p><ref resolved='predef::indices'>indices()</ref>, <ref resolved='predef::values'>values()</ref>, <ref resolved='predef::types'>types()</ref>, <ref>lfun::_annotations()</ref>, + </text></group><group><seealso/><text><p><ref resolved='predef::indices'>indices()</ref>, <ref resolved='predef::values'>values()</ref>, <ref resolved='predef::types'>types()</ref>, <ref resolved='lfun::_annotations'>lfun::_annotations()</ref>,    <ref resolved='::_annotations'>::_annotations()</ref></p>   </text></group></doc>   <method name='annotations'>   <arguments><argument name='x'><type><or><object resolved='predef::annotations'/><program/><function/></or></type></argument><argument name='recurse'><type><or><int><min>0</min><max>1</max></int><void/></or></type></argument></arguments>   <returntype><array><valuetype><multiset><indextype><object>Pike.Annotation</object></indextype></multiset></valuetype></array></returntype>   </method>   </docgroup>   <docgroup homogen-name='array_sscanf' homogen-type='method'><doc><text><p>This function works just like <ref resolved='predef::sscanf'>sscanf()</ref>, but returns the matched    results in an array instead of assigning them to lvalues. This is often    useful for user-defined sscanf strings.</p>
autodoc.git/onepage.xml:9569:   <arguments><argument name='n'><type><int/></type></argument></arguments>   <returntype><array><valuetype><int/></valuetype></array></returntype>   </method>   <method name='enumerate'>   <arguments><argument name='n'><type><int/></type></argument><argument name='step'><type><or><void/><mixed/></or></type></argument><argument name='start'><type><or><void/><mixed/></or></type></argument><argument name='operator'><type><or><void/><function/></or></type></argument></arguments>   <returntype><array/></returntype>   </method>   </docgroup>   <docgroup homogen-name='equal' homogen-type='method'><doc><text><p>This function checks if the values <ref resolved='predef::equal.a'>a</ref> and <ref resolved='predef::equal.b'>b</ref> are equivalent.</p>   </text><group><returns/><text><p>If either of the values is an object the (normalized) result -  of calling <ref>lfun::_equal()</ref> will be returned.</p> +  of calling <ref resolved='lfun::_equal'>lfun::_equal()</ref> will be returned.</p>   <p> Returns <expr>1</expr> if both values are false (zero, destructed objects,    prototype functions, etc).</p>   <p> Returns <expr>0</expr> (zero) if the values have different types.</p>   <p> Otherwise depending on the type of the values:</p>   <mixed><group><type><int/></type><type><float/></type><type><string/></type><type><program/></type><text><p>Returns the same as <expr>a == b</expr>.</p>   </text></group><group><type><array/></type><type><mapping/></type><type><multiset/></type><type><object resolved='predef::equal'/></type><text><p>The contents of <ref resolved='predef::equal.a'>a</ref> and <ref resolved='predef::equal.b'>b</ref> are checked recursively, and    if all their contents are <ref resolved='predef::equal'>equal</ref> and in the same place,    they are considered equal.</p>   <p> Note that for objects this case is only reached if neither -  <ref resolved='predef::equal.a'>a</ref> nor <ref resolved='predef::equal.b'>b</ref> implements <ref>lfun::_equal()</ref>.</p> +  <ref resolved='predef::equal.a'>a</ref> nor <ref resolved='predef::equal.b'>b</ref> implements <ref resolved='lfun::_equal'>lfun::_equal()</ref>.</p>   </text></group><group><type><type><mixed/></type></type><text><p>Returns <expr>(a &lt;= b) &amp;&amp; (b &lt;= a)</expr>.</p>   </text></group></mixed>   </text></group><group><seealso/><text><p><ref resolved='predef::copy_value'>copy_value()</ref>, <ref resolved='predef::`=='>`==()</ref></p>   </text></group></doc>   <method name='equal'>   <arguments><argument name='a'><type><mixed/></type></argument><argument name='b'><type><mixed/></type></argument></arguments>   <returntype><int/></returntype>   </method>   </docgroup>   <docgroup homogen-name='errno' homogen-type='method'><doc><text><p>This function returns the system error from the last file operation.</p>
autodoc.git/onepage.xml:9736:    <ref resolved='predef::filter.fun'>fun</ref> accepted. <ref resolved='predef::filter.fun'>fun</ref> is applied in order to each element,    and that order is retained between the kept elements.</p>   <p> If <ref resolved='predef::filter.fun'>fun</ref> is an array, it should have the same length as    <ref resolved='predef::filter.arr'>arr</ref>. In this case, the elements in <ref resolved='predef::filter.arr'>arr</ref> are kept where    the corresponding positions in <ref resolved='predef::filter.fun'>fun</ref> are nonzero. Otherwise    <ref resolved='predef::filter.fun'>fun</ref> is used as described below.</p>   </text></group><group><item name='mapping'/><text><p>The values are filtered with <ref resolved='predef::filter.fun'>fun</ref>, and the index/value    pairs it accepts are kept in the returned mapping.</p>   </text></group><group><item name='program'/><text><p>The program is treated as a mapping containing the    identifiers that are indexable from it and their values.</p> - </text></group><group><item name='object'/><text><p>If there is a <ref>lfun::cast</ref> method in the object, it's called + </text></group><group><item name='object'/><text><p>If there is a <ref resolved='lfun::cast'>lfun::cast</ref> method in the object, it's called    to try to cast the object to an array, a mapping, or a    multiset, in that order, which is then filtered as described    above.</p>   </text></group></dl><p>Unless something else is mentioned above, <ref resolved='predef::filter.fun'>fun</ref> is used as    filter like this:</p>   <dl><group><item name='function'/><text><p><ref resolved='predef::filter.fun'>fun</ref> is called for each element. It gets the current    element as the first argument and <ref resolved='predef::filter.extra'>extra</ref> as the rest. The    element is kept if it returns true, otherwise it's filtered    out.</p>   </text></group><group><item name='object'/><text><p>The object is used as a function like above, i.e. the -  <ref>lfun::`()</ref> method in it is called.</p> +  <ref resolved='lfun::`()'>lfun::`()</ref> method in it is called.</p>   </text></group><group><item name='multiset'/><item name='mapping'/><text><p><ref resolved='predef::filter.fun'>fun</ref> is indexed with each element. The element is kept if    the result is nonzero, otherwise it's filtered out.</p>   </text></group><group><item name='"zero or left out"'/><text><p>Each element that is callable is called with <ref resolved='predef::filter.extra'>extra</ref> as    arguments. The element is kept if the result of the call is    nonzero, otherwise it's filtered out. Elements that aren't    callable are also filtered out.</p>   </text></group><group><item name='string'/><text><p>Each element is indexed with the given string. If the result    of that is zero then the element is filtered out, otherwise    the result is called with <ref resolved='predef::filter.extra'>extra</ref> as arguments. The element    is kept if the return value is nonzero, otherwise it's
autodoc.git/onepage.xml:9853:   <method name='functionp'>   <arguments><argument name='arg'><type><mixed/></type></argument></arguments>   <returntype><int/></returntype>   </method>   </docgroup>   <docgroup homogen-name='gc' homogen-type='method'><doc><text><p>Force garbage collection.</p>   </text><group><param name='quick'/><text><p>Perform a quick garbage collection on just this value,    which must have been made weak by <ref resolved='predef::set_weak_flag'>set_weak_flag()</ref>.    All values that only have a single reference from    <ref resolved='predef::gc.quick'>quick</ref> will then be freed.</p> - <p> When <ref resolved='predef::gc.quick'>quick</ref> hasn't been specified or is <ref>UNDEFINED</ref>, + <p> When <ref resolved='predef::gc.quick'>quick</ref> hasn't been specified or is <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref>,    this function checks all the memory for cyclic structures such    as arrays containing themselves and frees them if appropriate.    It also frees up destructed objects and things with only weak    references.</p>   <p> Normally there is no need to call this function since Pike will    call it by itself every now and then. (Pike will try to predict    when 20% of all arrays/object/programs in memory is 'garbage'    and call this routine then.)</p>   </text></group><group><returns/><text><p>The amount of garbage is returned. This is the number of arrays,    mappings, multisets, objects and programs that had no nonweak
autodoc.git/onepage.xml:9889:   </text><group><note/><text><p>This function should only be used during a call of <ref resolved='predef::compile'>compile()</ref>.</p>   </text></group><group><seealso/><text><p><ref resolved='predef::get_active_error_handler'>get_active_error_handler()</ref>, <ref resolved='predef::compile'>compile()</ref>,    <ref>master()-&gt;get_compilation_handler()</ref>, <ref resolved='predef::CompilationHandler'>CompilationHandler</ref></p>   </text></group></doc>   <method name='get_active_compilation_handler'>   <arguments/>   <returntype><object resolved='predef::CompilationHandler'>CompilationHandler</object></returntype>   </method>   </docgroup>   <docgroup homogen-name='get_active_compiler' homogen-type='method'><doc><text><p>Returns the most recent of the currently active pike compilers, -  or <ref>UNDEFINED</ref> if none is active.</p> +  or <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> if none is active.</p>   </text><group><note/><text><p>This function should only be used during a call of <ref resolved='predef::compile'>compile()</ref>.</p>   </text></group><group><seealso/><text><p><ref resolved='predef::get_active_error_handler'>get_active_error_handler()</ref>, <ref resolved='predef::compile'>compile()</ref>,    <ref>master()-&gt;get_compilation_handler()</ref>, <ref resolved='predef::CompilationHandler'>CompilationHandler</ref></p>   </text></group></doc>   <method name='get_active_compiler'>   <arguments/>   <returntype><object resolved='predef::CompilerEnvironment.PikeCompiler'>CompilerEnvironment.PikeCompiler</object></returntype>   </method>   </docgroup>   <docgroup homogen-name='get_active_error_handler' homogen-type='method'><doc><text><p>Returns the currently active compilation error handler
autodoc.git/onepage.xml:9971:    <ref resolved='predef::getgrnam'>getgrnam()</ref>    <ref resolved='predef::getpwuid'>getpwuid()</ref>    <ref resolved='predef::getpwnam'>getpwnam()</ref></p>   </text></group></doc>   <method name='get_groups_for_user'>   <arguments><argument name='user'><type><or><int/><string/></or></type></argument></arguments>   <returntype><array><valuetype><int/></valuetype></array></returntype>   </method>   </docgroup>   <docgroup homogen-name='get_iterator' homogen-type='method'><doc><text><p>Creates and returns a canonical iterator for <ref resolved='predef::get_iterator.data'>data</ref>.</p> - </text><group><returns/><text><mixed name='data'><group><type><object resolved='predef::get_iterator'/></type><text><p>If <ref resolved='predef::get_iterator.data'>data</ref> is an object with <ref>lfun::_get_iterator</ref> defined then + </text><group><returns/><text><mixed name='data'><group><type><object resolved='predef::get_iterator'/></type><text><p>If <ref resolved='predef::get_iterator.data'>data</ref> is an object with <ref resolved='lfun::_get_iterator'>lfun::_get_iterator</ref> defined then    it's called in it to create the iterator.</p> - <p> If <ref resolved='predef::get_iterator.data'>data</ref> is an object that lacks <ref>lfun::_get_iterator</ref> then + <p> If <ref resolved='predef::get_iterator.data'>data</ref> is an object that lacks <ref resolved='lfun::_get_iterator'>lfun::_get_iterator</ref> then    it's assumed to already be an iterator object, and is simply    returned.</p>   </text></group><group><type><array/></type><text><p>If <ref resolved='predef::get_iterator.data'>data</ref> is an array, an <ref resolved='predef::Array.Iterator'>Array.Iterator</ref> object will be    returned.</p>   </text></group><group><type><mapping/></type><text><p>If <ref resolved='predef::get_iterator.data'>data</ref> is a mapping, a <ref resolved='predef::Mapping.Iterator'>Mapping.Iterator</ref> object will be    returned</p>   </text></group><group><type><multiset/></type><text><p>If <ref resolved='predef::get_iterator.data'>data</ref> is a multiset, a <ref resolved='predef::Multiset.Iterator'>Multiset.Iterator</ref> object will be    returned</p>   </text></group><group><type><string/></type><text><p>If <ref resolved='predef::get_iterator.data'>data</ref> is a string, a <ref resolved='predef::String.Iterator'>String.Iterator</ref> object will be    returned</p>   </text></group></mixed>   </text></group><group><note/><text><p>This function is used by <ref>foreach</ref> to get an iterator for an    object.</p> - </text></group><group><seealso/><text><p><ref resolved='predef::Iterator'>Iterator</ref>, <ref>lfun::_get_iterator</ref></p> + </text></group><group><seealso/><text><p><ref resolved='predef::Iterator'>Iterator</ref>, <ref resolved='lfun::_get_iterator'>lfun::_get_iterator</ref></p>   </text></group></doc>   <method name='get_iterator'>   <arguments><argument name='data'><type><or><object resolved='predef::get_iterator'/><array/><mapping/><multiset/><string/></or></type></argument></arguments>   <returntype><object resolved='predef::Iterator'>Iterator</object></returntype>   </method>   </docgroup>   <docgroup homogen-name='get_profiling_info' homogen-type='method'><doc><text><p>Get profiling information.</p>   </text><group><returns/><text><p>Returns an array with two elements.</p>   <array><group><elem><type><int/></type><index>num_clones</index></elem><text><p>The first element is the number of times the program <ref resolved='predef::get_profiling_info.prog'>prog</ref> has been    instantiated.</p>
autodoc.git/onepage.xml:10290:   <returntype><int/></returntype>   </method>   <method name='has_index'>   <arguments><argument name='haystack'><type><or><mapping/><multiset/><object resolved='predef::has_index'/><program/></or></type></argument><argument name='index'><type><mixed/></type></argument></arguments>   <returntype><int/></returntype>   </method>   </docgroup>   <docgroup homogen-name='has_prefix' homogen-type='method'><doc><text><p>Returns <expr>1</expr> if the string <ref resolved='predef::has_prefix.s'>s</ref> starts with <ref resolved='predef::has_prefix.prefix'>prefix</ref>,    returns <expr>0</expr> (zero) otherwise.</p>   <p> When <ref resolved='predef::has_prefix.s'>s</ref> is an object, it needs to implement -  <ref>lfun::_sizeof()</ref> and <ref>lfun::`[]</ref>.</p> +  <ref resolved='lfun::_sizeof'>lfun::_sizeof()</ref> and <ref resolved='lfun::`[]'>lfun::`[]</ref>.</p>   </text><group><seealso/><text><p><ref resolved='predef::has_suffix'>has_suffix()</ref>, <ref resolved='predef::has_value'>has_value()</ref>, <ref resolved='predef::search'>search()</ref></p>   </text></group></doc>   <method name='has_prefix'>   <arguments><argument name='s'><type><or><string/><object resolved='predef::has_prefix'/></or></type></argument><argument name='prefix'><type><string/></type></argument></arguments>   <returntype><int/></returntype>   </method>   </docgroup>   <docgroup homogen-name='has_suffix' homogen-type='method'><doc><text><p>Returns <expr>1</expr> if the string <ref resolved='predef::has_suffix.s'>s</ref> ends with <ref resolved='predef::has_suffix.suffix'>suffix</ref>,    returns <expr>0</expr> (zero) otherwise.</p>   </text><group><seealso/><text><p><ref resolved='predef::has_prefix'>has_prefix()</ref>, <ref resolved='predef::has_value'>has_value()</ref>, <ref resolved='predef::search'>search()</ref></p>
autodoc.git/onepage.xml:10429:   <method name='hash_8_0'>   <arguments><argument name='s'><type><string/></type></argument><argument name='max'><type><int/></type></argument></arguments>   <returntype><int/></returntype>   </method>   </docgroup>   <docgroup homogen-name='hash_value' homogen-type='method'><doc><text><p>Return a hash value for the argument. It's an integer in the    native integer range.</p>   <p> The hash will be the same for the same value in the running    process only (the memory address is typically used as the basis    for the hash value).</p> - <p> If the value is an object with an <ref>lfun::__hash</ref>, that function + <p> If the value is an object with an <ref resolved='lfun::__hash'>lfun::__hash</ref>, that function    is called and its result returned.</p>   </text><group><note/><text><p>This is the hashing method used by mappings.</p> - </text></group><group><seealso/><text><p><ref>lfun::__hash()</ref></p> + </text></group><group><seealso/><text><p><ref resolved='lfun::__hash'>lfun::__hash()</ref></p>   </text></group></doc>   <method name='hash_value'>   <arguments><argument name='value'><type><mixed/></type></argument></arguments>   <returntype><int/></returntype>   </method>   </docgroup>               <docgroup homogen-name='' homogen-type='import'>   <import name=''><classname resolved='cpp::'>cpp::</classname></import>   </docgroup>   <docgroup homogen-name='indices' homogen-type='method'><doc><text><p>Return an array of all valid indices for the value <ref resolved='predef::indices.x'>x</ref>.</p>   </text><group><param name='x'/><text><mixed><group><type><string/></type><type><array/></type><text><p>For strings and arrays this is simply an array of ascending    numbers.</p>   </text></group><group><type><mapping/></type><type><multiset/></type><text><p>For mappings and multisets, the array might contain any value.</p> - </text></group><group><type><object resolved='predef::indices'/></type><text><p>For objects which define <ref>lfun::_indices()</ref> that return value + </text></group><group><type><object resolved='predef::indices'/></type><text><p>For objects which define <ref resolved='lfun::_indices'>lfun::_indices()</ref> that return value    is used.</p>   <p> For other objects an array with the names of all non-protected    symbols is returned.</p>   </text></group></mixed> - </text></group><group><seealso/><text><p><ref resolved='predef::values'>values()</ref>, <ref resolved='predef::types'>types()</ref>, <ref>lfun::_indices()</ref></p> + </text></group><group><seealso/><text><p><ref resolved='predef::values'>values()</ref>, <ref resolved='predef::types'>types()</ref>, <ref resolved='lfun::_indices'>lfun::_indices()</ref></p>   </text></group></doc>   <method name='indices'>   <arguments><argument name='x'><type><or><string/><array/><mapping/><multiset/><object resolved='predef::indices'/></or></type></argument></arguments>   <returntype><array/></returntype>   </method>   </docgroup>   <docgroup homogen-name='Connection' homogen-type='inherit'>   <inherit name='Connection'><classname resolved='predef::__builtin.Sql.Connection'>__builtin.Sql.Connection</classname></inherit>   </docgroup>   
autodoc.git/onepage.xml:10540:   <p> Note that the kill function is not available on platforms that do not    support signals. Some platforms may also have signals not listed here.</p>   </text></group><group><seealso/><text><p><ref resolved='predef::kill.signal'>signal()</ref>, <ref resolved='predef::signum'>signum()</ref>, <ref resolved='predef::signame'>signame()</ref>, <ref resolved='predef::fork'>fork()</ref></p>   </text></group></doc>   <method name='kill'>   <arguments><argument name='pid'><type><int/></type></argument><argument name='signal'><type><int/></type></argument></arguments>   <returntype><int><min>0</min><max>1</max></int></returntype>   </method>   </docgroup>   <docgroup homogen-name='limit' homogen-type='method'><doc><text><p>Limits the value <ref resolved='predef::limit.x'>x</ref> so that it's between <ref resolved='predef::limit.minval'>minval</ref> and <ref resolved='predef::limit.maxval'>maxval</ref>. -  If <ref resolved='predef::limit.x'>x</ref> is an object, it must implement the <ref>lfun::`&lt;</ref> method.</p> +  If <ref resolved='predef::limit.x'>x</ref> is an object, it must implement the <ref resolved='lfun::`&lt;'>lfun::`&lt;</ref> method.</p>   </text><group><seealso/><text><p><ref resolved='predef::max'>max()</ref> and <ref resolved='predef::min'>min()</ref></p>   </text></group></doc>   <method name='limit'>   <arguments><argument name='minval'><type><or><int/><float/><object resolved='predef::limit'/></or></type></argument><argument name='x'><type><or><int/><float/><object resolved='predef::limit'/></or></type></argument><argument name='maxval'><type><or><int/><float/><object resolved='predef::limit'/></or></type></argument></arguments>   <returntype><or><int/><float/><object resolved='predef::limit'/></or></returntype>   </method>   </docgroup>   <docgroup homogen-name='listxattr' homogen-type='method'><doc><text><p>Return an array of all extended attributes set on the file</p>   </text></doc>   <method name='listxattr'>
autodoc.git/onepage.xml:10636:   </text></group></doc>   <method name='m_add'>   <arguments><argument name='l'><type><or><multiset/><object resolved='predef::m_add'/></or></type></argument><argument name='val'><type><mixed/></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup>   <docgroup homogen-name='m_clear' homogen-type='method'><doc><text><p>Clear the contents of a mapping or multiset.</p>   <p> This function clears the content of the mapping    or multiset <ref resolved='predef::m_clear.map'>map</ref> so that it becomes empty.    This is an atomic operation.</p> - <p> If <ref resolved='predef::m_clear.map'>map</ref> is an object <ref>lfun::_m_clear()</ref> will be called + <p> If <ref resolved='predef::m_clear.map'>map</ref> is an object <ref resolved='lfun::_m_clear'>lfun::_m_clear()</ref> will be called    in it.</p>   </text><group><seealso/><text><p><ref resolved='predef::m_delete'>m_delete()</ref></p>   </text></group></doc>   <method name='m_clear'>   <arguments><argument name='map'><type><or><mapping/><multiset/><object resolved='predef::m_clear'/></or></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup> - <docgroup homogen-name='m_delete' homogen-type='method'><doc><text><p>If <ref resolved='predef::m_delete.map'>map</ref> is an object that implements <ref>lfun::_m_delete()</ref>, + <docgroup homogen-name='m_delete' homogen-type='method'><doc><text><p>If <ref resolved='predef::m_delete.map'>map</ref> is an object that implements <ref resolved='lfun::_m_delete'>lfun::_m_delete()</ref>,    that function will be called with <ref resolved='predef::m_delete.index'>index</ref> as its single argument.</p>   <p> Otherwise if <ref resolved='predef::m_delete.map'>map</ref> is a mapping or multiset the entry with    index <ref resolved='predef::m_delete.index'>index</ref> will be removed from <ref resolved='predef::m_delete.map'>map</ref> destructively.</p>   <p> If the mapping or multiset does not have an entry with    index <ref resolved='predef::m_delete.index'>index</ref>, nothing is done.</p>   </text><group><returns/><text><p>The value that was removed will be returned,    and <expr>UNDEFINED</expr> otherwise.</p>   </text></group><group><note/><text><p>Note that <ref resolved='predef::m_delete'>m_delete()</ref> changes <ref resolved='predef::m_delete.map'>map</ref> destructively.</p>   </text></group><group><seealso/><text><p><ref resolved='predef::mappingp'>mappingp()</ref></p>   </text></group></doc>
autodoc.git/onepage.xml:10670:   </docgroup>   <docgroup homogen-name='map' homogen-type='method'><doc><text><p>Applies <ref resolved='predef::map.fun'>fun</ref> to the elements in <ref resolved='predef::map.arr'>arr</ref> and collects the results.</p>   <p> <ref resolved='predef::map.arr'>arr</ref> is treated as a set of elements, as follows:</p>   <dl><group><item name='array'/><item name='multiset'/><item name='string'/><text><p><ref resolved='predef::map.fun'>fun</ref> is applied in order to each element. The results are    collected, also in order, to a value of the same type as    <ref resolved='predef::map.arr'>arr</ref>, which is returned.</p>   </text></group><group><item name='mapping'/><text><p><ref resolved='predef::map.fun'>fun</ref> is applied to the values, and each result is assigned    to the same index in a new mapping, which is returned.</p>   </text></group><group><item name='program'/><text><p>The program is treated as a mapping containing the    identifiers that are indexable from it and their values.</p> - </text></group><group><item name='object'/><text><p>If there is a <ref>lfun::cast</ref> method in the object, it's + </text></group><group><item name='object'/><text><p>If there is a <ref resolved='lfun::cast'>lfun::cast</ref> method in the object, it's    called to try to cast the object to an array, a mapping, or    a multiset, in that order, which is then handled as    described above.</p>   </text></group></dl><p><ref resolved='predef::map.fun'>fun</ref> is applied in different ways depending on its type:</p>   <dl><group><item name='function'/><text><p><ref resolved='predef::map.fun'>fun</ref> is called for each element. It gets the current    element as the first argument and <ref resolved='predef::map.extra'>extra</ref> as the rest. The    result of the call is collected.</p>   </text></group><group><item name='object'/><text><p><ref resolved='predef::map.fun'>fun</ref> is used as a function like above, i.e. the -  <ref>lfun::`()</ref> method in it is called.</p> +  <ref resolved='lfun::`()'>lfun::`()</ref> method in it is called.</p>   </text></group><group><item name='array'/><text><p>Each element of the <ref resolved='predef::map.fun'>fun</ref> array will be called for each    element of <ref resolved='predef::map.arr'>arr</ref>.</p>   </text></group><group><item name='multiset'/><item name='mapping'/><text><p><ref resolved='predef::map.fun'>fun</ref> is indexed with each element. The result of that is    collected.</p>   </text></group><group><item name='"zero or left out"'/><text><p>Each element that is callable is called with <ref resolved='predef::map.extra'>extra</ref> as    arguments. The result of the calls are collected. Elements    that aren't callable gets zero as result.</p>   </text></group><group><item name='string'/><text><p>Each element is indexed with the given string. If the result    of that is zero then a zero is collected, otherwise it's    called with <ref resolved='predef::map.extra'>extra</ref> as arguments and the result of that
autodoc.git/onepage.xml:10712:   <docgroup homogen-name='mappingp' homogen-type='method'><doc><text><p>Returns <expr>1</expr> if <ref resolved='predef::mappingp.arg'>arg</ref> is a mapping, <expr>0</expr> (zero) otherwise.</p>   </text><group><seealso/><text><p><ref resolved='predef::intp'>intp()</ref>, <ref resolved='predef::programp'>programp()</ref>, <ref resolved='predef::arrayp'>arrayp()</ref>, <ref resolved='predef::stringp'>stringp()</ref>, <ref resolved='predef::objectp'>objectp()</ref>,    <ref resolved='predef::multisetp'>multisetp()</ref>, <ref resolved='predef::floatp'>floatp()</ref>, <ref resolved='predef::functionp'>functionp()</ref></p>   </text></group></doc>   <method name='mappingp'>   <arguments><argument name='arg'><type><mixed/></type></argument></arguments>   <returntype><int/></returntype>   </method>   </docgroup>   <docgroup homogen-name='master' homogen-type='method'><doc><text><p>Return the current master object.</p> - </text><group><note/><text><p>May return <ref>UNDEFINED</ref> if no master has been loaded yet.</p> + </text><group><note/><text><p>May return <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> if no master has been loaded yet.</p>   </text></group><group><seealso/><text><p><ref resolved='predef::replace_master'>replace_master()</ref></p>   </text></group></doc>   <method name='master'>   <arguments/>   <returntype><object resolved='predef::master'/></returntype>   </method>   </docgroup>   <docgroup homogen-name='max' homogen-type='method'><doc><text><p>Returns the largest value among <ref resolved='predef::max.args'>args</ref>. Compared objects -  must implement the <ref>lfun::`&lt;</ref> method.</p> +  must implement the <ref resolved='lfun::`&lt;'>lfun::`&lt;</ref> method.</p>   </text><group><seealso/><text><p><ref resolved='predef::min'>min()</ref> and <ref resolved='predef::limit'>limit()</ref></p>   </text></group></doc>   <method name='max'>   <arguments><argument><type><or><int/><float/><object resolved='predef::max'/></or></type></argument><argument name='args'><type><varargs><or><int/><float/><object resolved='predef::max'/></or></varargs></type></argument></arguments>   <returntype><or><int/><float/><object resolved='predef::max'/></or></returntype>   </method>   <method name='max'>   <arguments><argument><type><string/></type></argument><argument name='args'><type><varargs><string/></varargs></type></argument></arguments>   <returntype><string/></returntype>   </method>   <method name='max'>   <arguments/>   <returntype><int><min>0</min><max>0</max></int></returntype>   </method>   </docgroup>      <docgroup homogen-name='min' homogen-type='method'><doc><text><p>Returns the smallest value among <ref resolved='predef::min.args'>args</ref>. Compared objects -  must implement the <ref>lfun::`&lt;</ref> method.</p> +  must implement the <ref resolved='lfun::`&lt;'>lfun::`&lt;</ref> method.</p>   </text><group><seealso/><text><p><ref resolved='predef::max'>max()</ref> and <ref resolved='predef::limit'>limit()</ref></p>   </text></group></doc>   <method name='min'>   <arguments><argument><type><or><int/><float/><object resolved='predef::min'/></or></type></argument><argument name='args'><type><varargs><or><int/><float/><object resolved='predef::min'/></or></varargs></type></argument></arguments>   <returntype><or><int/><float/><object resolved='predef::min'/></or></returntype>   </method>   <method name='min'>   <arguments><argument><type><string/></type></argument><argument name='args'><type><varargs><string/></varargs></type></argument></arguments>   <returntype><string/></returntype>   </method>
autodoc.git/onepage.xml:11141:   </docgroup>   <docgroup homogen-name='search' homogen-type='method'><doc><text><p>Search for <ref resolved='predef::search.needle'>needle</ref> in <ref resolved='predef::search.haystack'>haystack</ref>.</p>   </text><group><param name='haystack'/><text><p>Item to search in. This can be one of:</p>   <mixed><group><type><string/></type><text><p>When <ref resolved='predef::search.haystack'>haystack</ref> is a string <ref resolved='predef::search.needle'>needle</ref> must be a string or an int,    and the first occurrence of the string or int is returned.</p>   </text></group><group><type><array/></type><text><p>When <ref resolved='predef::search.haystack'>haystack</ref> is an array, <ref resolved='predef::search.needle'>needle</ref> is compared only to    one value at a time in <ref resolved='predef::search.haystack'>haystack</ref>.</p>   </text></group><group><type><mapping/></type><text><p>When <ref resolved='predef::search.haystack'>haystack</ref> is a mapping, <ref resolved='predef::search'>search()</ref> tries to find the index    connected to the data <ref resolved='predef::search.needle'>needle</ref>. That is, it tries to lookup the    mapping backwards.</p> - </text></group><group><type><object resolved='predef::search'/></type><text><p>When <ref resolved='predef::search.haystack'>haystack</ref> is an object implementing <ref>lfun::_search()</ref>, -  the result of calling <ref>lfun::_search()</ref> with <ref resolved='predef::search.needle'>needle</ref>, <ref resolved='predef::search.start'>start</ref> + </text></group><group><type><object resolved='predef::search'/></type><text><p>When <ref resolved='predef::search.haystack'>haystack</ref> is an object implementing <ref resolved='lfun::_search'>lfun::_search()</ref>, +  the result of calling <ref resolved='lfun::_search'>lfun::_search()</ref> with <ref resolved='predef::search.needle'>needle</ref>, <ref resolved='predef::search.start'>start</ref>    and any <ref resolved='predef::search.extra_args'>extra_args</ref> will be returned.</p> - <p> If <ref resolved='predef::search.haystack'>haystack</ref> is an object that doesn't implement <ref>lfun::_search()</ref> + <p> If <ref resolved='predef::search.haystack'>haystack</ref> is an object that doesn't implement <ref resolved='lfun::_search'>lfun::_search()</ref>    it is assumed to be an <ref resolved='predef::Iterator'>Iterator</ref>, and implement    <ref resolved='predef::Iterator.index'>Iterator()-&gt;index()</ref>, <ref resolved='predef::Iterator.value'>Iterator()-&gt;value()</ref>, and    <ref resolved='predef::Iterator.next'>Iterator()-&gt;next()</ref>. <ref resolved='predef::search'>search()</ref> will then start comparing    elements with <ref resolved='predef::`=='>`==()</ref> until a match with <ref resolved='predef::search.needle'>needle</ref> is found.    If <ref resolved='predef::search.needle'>needle</ref> is found <ref resolved='predef::search.haystack'>haystack</ref> will be advanced to the element,    and the iterator index will be returned. If <ref resolved='predef::search.needle'>needle</ref> is not    found, <ref resolved='predef::search.haystack'>haystack</ref> will be advanced to the end.</p>   </text></group></mixed>   </text></group><group><param name='start'/><text><p>If the optional argument <ref resolved='predef::search.start'>start</ref> is present search is started at    this position. This has no effect on mappings.</p>   </text></group><group><param name='end'/><text><p>If the optional argument <ref resolved='predef::search.end'>end</ref> is present, the search will terminate    at this position (exclusive) if not found earlier.</p>   </text></group><group><returns/><text><p>Returns the position of <ref resolved='predef::search.needle'>needle</ref> in <ref resolved='predef::search.haystack'>haystack</ref> if found.</p>   <p> If not found the returned value depends on the type of <ref resolved='predef::search.haystack'>haystack</ref>:</p>   <mixed><group><type><or><string/><array/></or></type><text><p><expr>-1</expr>.</p> - </text></group><group><type><or><mapping/><object resolved='predef::Iterator'>Iterator</object></or></type><text><p><ref>UNDEFINED</ref>.</p> - </text></group><group><type><object resolved='predef::search'/></type><text><p>The value returned by <ref>lfun::_search()</ref>.</p> + </text></group><group><type><or><mapping/><object resolved='predef::Iterator'>Iterator</object></or></type><text><p><ref resolved='predef::.UNDEFINED'>UNDEFINED</ref>.</p> + </text></group><group><type><object resolved='predef::search'/></type><text><p>The value returned by <ref resolved='lfun::_search'>lfun::_search()</ref>.</p>   </text></group></mixed>   </text></group><group><note/><text><p>If <ref resolved='predef::search.start'>start</ref> is supplied to an iterator object without an -  <ref>lfun::_search()</ref>, <ref resolved='predef::search.haystack'>haystack</ref> will need to implement +  <ref resolved='lfun::_search'>lfun::_search()</ref>, <ref resolved='predef::search.haystack'>haystack</ref> will need to implement    <ref resolved='predef::Iterator.set_index'>Iterator()-&gt;set_index()</ref>.</p> - </text></group><group><note/><text><p>For mappings and object <ref>UNDEFINED</ref> will be returned when not found. + </text></group><group><note/><text><p>For mappings and object <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> will be returned when not found.    In all other cases <expr>-1</expr> will be returned when not found.</p>   </text></group><group><seealso/><text><p><ref resolved='predef::indices'>indices()</ref>, <ref resolved='predef::values'>values()</ref>, <ref resolved='predef::zero_type'>zero_type()</ref>, <ref resolved='predef::has_value'>has_value()</ref>,    <ref resolved='predef::has_prefix'>has_prefix()</ref>, <ref resolved='predef::has_suffix'>has_suffix()</ref></p>   </text></group></doc>   <method name='search'>   <arguments><argument name='haystack'><type><string/></type></argument><argument name='needle'><type><or><string/><int/></or></type></argument><argument name='start'><type><or><int/><void/></or></type></argument><argument name='end'><type><or><int/><void/></or></type></argument></arguments>   <returntype><int/></returntype>   </method>   <method name='search'>   <arguments><argument name='haystack'><type><array/></type></argument><argument name='needle'><type><mixed/></type></argument><argument name='start'><type><or><int/><void/></or></type></argument><argument name='end'><type><or><int/><void/></or></type></argument></arguments>
autodoc.git/onepage.xml:11308:   <returntype><float/></returntype>   </method>   </docgroup>         <docgroup homogen-name='sizeof' homogen-type='method'><doc><text><p>Size query.</p>   </text><group><returns/><text><p>The result will be as follows:</p>   <mixed name='arg'><group><type><string/></type><text><p>The number of characters in <ref resolved='predef::sizeof.arg'>arg</ref> will be returned.</p>   </text></group><group><type><or><array/><multiset/></or></type><text><p>The number of elements in <ref resolved='predef::sizeof.arg'>arg</ref> will be returned.</p>   </text></group><group><type><mapping/></type><text><p>The number of key-value pairs in <ref resolved='predef::sizeof.arg'>arg</ref> will be returned.</p> - </text></group><group><type><object resolved='predef::sizeof'/></type><text><p>If <ref resolved='predef::sizeof.arg'>arg</ref> implements <ref>lfun::_sizeof()</ref>, that function will + </text></group><group><type><object resolved='predef::sizeof'/></type><text><p>If <ref resolved='predef::sizeof.arg'>arg</ref> implements <ref resolved='lfun::_sizeof'>lfun::_sizeof()</ref>, that function will    be called. Otherwise the number of non-protected (ie public)    symbols in <ref resolved='predef::sizeof.arg'>arg</ref> will be returned.</p>   </text></group></mixed> - </text></group><group><seealso/><text><p><ref>lfun::_sizeof()</ref></p> + </text></group><group><seealso/><text><p><ref resolved='lfun::_sizeof'>lfun::_sizeof()</ref></p>   </text></group></doc>   <method name='sizeof'>   <arguments><argument name='arg'><type><string/></type></argument></arguments>   <returntype><int/></returntype>   </method>   <method name='sizeof'>   <arguments><argument name='arg'><type><array/></type></argument></arguments>   <returntype><int/></returntype>   </method>   <method name='sizeof'>
autodoc.git/onepage.xml:11412:   </text></group><group><value>'/'</value><text><p>Column mode with rough line break (break at exactly field size    instead of between words). Can not be used together with <expr>'='</expr>.</p>   </text></group><group><value>'#'</value><text><p>Table mode, print a list of <expr>'\n'</expr> separated words    (top-to-bottom order).</p>   </text></group><group><value>'$'</value><text><p>Inverse table mode (left-to-right order).</p>   </text></group><group><value>'n'</value><value>':n'</value><text><p>(Where n is a number or *) field width specifier.</p>   </text></group><group><value>'.n'</value><text><p>Precision specifier.</p>   </text></group><group><value>';n'</value><text><p>Column width specifier.</p>   </text></group><group><value>'*'</value><text><p>If n is a <tt>*</tt> then next argument is used for precision/field    size. The argument may either be an integer, or a modifier mapping -  as received by <ref>lfun::_sprintf()</ref>:</p> +  as received by <ref resolved='lfun::_sprintf'>lfun::_sprintf()</ref>:</p>   <mapping><group><member><type><or><int/><void/></or></type><index>"precision"</index></member><text><p>Precision.</p>   </text></group><group><member><type><or><int><min>0</min><max/></int><void/></or></type><index>"width"</index></member><text><p>Field width.</p>   </text></group><group><member><type><or><int><min>0</min><max>1</max></int><void/></or></type><index>"flag_left"</index></member><text><p>Indicates that the output should be left-aligned.</p>   </text></group><group><member><type><or><int><min>0</min><max/></int><void/></or></type><index>"indent"</index></member><text><p>Indentation level in <tt>%O</tt>-mode.</p>   </text></group></mapping></text></group><group><value>"'"</value><text><p>Set a pad string. <tt>'</tt> cannot be a part of the pad string (yet).</p>   </text></group><group><value>'~'</value><text><p>Get pad string from argument list.</p>   </text></group><group><value>'&lt;'</value><text><p>Use same argument again.</p>   </text></group><group><value>'^'</value><text><p>Repeat this on every line produced.</p>   </text></group><group><value>'@'</value><text><p>Repeat this format for each element in the argument array.</p>   </text></group><group><value>'&gt;'</value><text><p>Put the string at the bottom end of column instead of top.</p>
autodoc.git/onepage.xml:11454:   </text></group><group><value>'E'</value><text><p>Like <tt>%e</tt>, but uses uppercase <tt>E</tt> for exponent.</p>   </text></group><group><value>'F'</value><text><p>Binary IEEE representation of float (<tt>%4F</tt> gives    single precision, <tt>%8F</tt> gives double precision)    in network (big endian) byte order. To get little endian    byte order, negate the field size.</p>   </text></group><group><value>'s'</value><text><p>String.</p>   </text></group><group><value>'q'</value><text><p>Quoted string. Escapes all control and non-8-bit characters,    as well as the quote characters <tt>'\\'</tt> and <tt>'\"'</tt>.</p>   </text></group><group><value>'O'</value><text><p>Any value, debug style. Do not rely on the exact formatting;    how the result looks can vary depending on locale, phase of -  the moon or anything else the <ref>lfun::_sprintf()</ref> method +  the moon or anything else the <ref resolved='lfun::_sprintf'>lfun::_sprintf()</ref> method    implementor wanted for debugging.</p>   </text></group><group><value>'p'</value><text><p>Hexadecimal representation of the memory address of the object.    Integers and floats have no address, and are printed as themselves.</p>   </text></group><group><value>'H'</value><text><p>Binary Hollerith string. Equivalent to <expr>sprintf("%c%s",    strlen(str), str)</expr>. Arguments (such as width etc) adjust the    length-part of the format. Requires 8-bit strings.</p>   </text></group><group><value>'n'</value><text><p>No argument. Same as <expr>"%s"</expr> with an empty string as argument.    Note: Does take an argument array (but ignores its content)    if the modifier <expr>'@'</expr> is active.</p>   </text></group><group><value>'t'</value><text><p>Type of the argument.</p>   </text></group><group><value>'{'</value><value>'}'</value><text><p>Perform the enclosed format for every element of the argument array.</p>   </text></group></int><p>Most modifiers and operators are combinable in any fashion, but some    combinations may render strange results.</p> - <p> If an argument is an object that implements <ref>lfun::_sprintf()</ref>, that + <p> If an argument is an object that implements <ref resolved='lfun::_sprintf'>lfun::_sprintf()</ref>, that    callback will be called with the operator as the first argument, and    the current modifiers as the second. The callback is expected to return    a string.</p>   </text><group><note/><text><p>sprintf-style formatting is applied by many formatting functions, such    <ref resolved='predef::write'>write()</ref> and <ref resolved='predef::werror'>werror()</ref>. It is also possible to get sprintf-style    compile-time argument checking by using the type-attributes    <ref resolved='predef::.sprintf_format'>sprintf_format</ref> or <ref resolved='predef::.strict_sprintf_format'>strict_sprintf_format</ref> in combination    with <ref resolved='predef::.sprintf_args'>sprintf_args</ref>.</p>   </text></group><group><note/><text><p>The <expr>'q'</expr> operator was added in Pike 7.7.</p>   </text></group><group><note/><text><p>Support for specifying modifiers via a mapping was added in Pike 7.8.
autodoc.git/onepage.xml:11580:    &gt; write("%[0]d, %[0]x, %[0]X, %[0]o, %[0]c\n", 75);    75, 4b, 4B, 113, K    (13) Result: 19    &gt; write("%|*s\n",screen_width, "THE END");    THE END    (14) Result: 71    &gt; write("%|*s\n", ([ "width":screen_width ]), "ALTERNATIVE END");    ALTERNATIVE END    (15) Result: 71</p>   </text></code> - </text></group><group><seealso/><text><p><ref>lfun::_sprintf()</ref>, <ref resolved='predef::.strict_sprintf_format'>strict_sprintf_format</ref>, <ref resolved='predef::.sprintf_format'>sprintf_format</ref>, + </text></group><group><seealso/><text><p><ref resolved='lfun::_sprintf'>lfun::_sprintf()</ref>, <ref resolved='predef::.strict_sprintf_format'>strict_sprintf_format</ref>, <ref resolved='predef::.sprintf_format'>sprintf_format</ref>,    <ref resolved='predef::.sprintf_args'>sprintf_args</ref>, <ref resolved='predef::String.__HAVE_SPRINTF_STAR_MAPPING__'>String.__HAVE_SPRINTF_STAR_MAPPING__</ref>,    <ref resolved='predef::String.__HAVE_SPRINTF_NEGATIVE_F__'>String.__HAVE_SPRINTF_NEGATIVE_F__</ref>.</p>   </text></group></doc>   <method name='sprintf'>   <arguments><argument name='format'><type><object resolved='predef::.strict_sprintf_format'>strict_sprintf_format</object></type></argument><argument name='args'><type><varargs><object resolved='predef::.sprintf_args'>sprintf_args</object></varargs></type></argument></arguments>   <returntype><string/></returntype>   </method>   </docgroup>   <docgroup homogen-name='sprintf_args' homogen-type='constant'><doc><text><p>Type constant used for typing extra arguments that are    sent to <ref resolved='predef::sprintf'>sprintf()</ref>.</p>
autodoc.git/onepage.xml:11956:   </method>   </docgroup>   <docgroup homogen-name='tanh' homogen-type='method'><doc><text><p>Returns the hyperbolic tangent value for <ref resolved='predef::tanh.f'>f</ref>.</p>   </text><group><seealso/><text><p><ref resolved='predef::atanh'>atanh()</ref>, <ref resolved='predef::sinh'>sinh()</ref>, <ref resolved='predef::cosh'>cosh()</ref></p>   </text></group></doc>   <method name='tanh'>   <arguments><argument name='f'><type><or><int/><float/></or></type></argument></arguments>   <returntype><float/></returntype>   </method>   </docgroup> + <docgroup homogen-name='this' homogen-type='constant'><doc><text><p>Builtin read only variable that evaluates to the current object.</p> + </text><group><seealso/><text><p><ref resolved='predef::.this_program'>this_program</ref>, <ref resolved='predef::this_object'>this_object()</ref></p> + </text></group></doc> + <constant name='this'/> + </docgroup> + <docgroup homogen-name='this_function' homogen-type='constant'><doc><text><p>Builtin constant that evaluates to the current function.</p> + </text><group><seealso/><text><p><ref resolved='predef::.this'>this</ref>, <ref resolved='predef::this_object'>this_object()</ref></p> + </text></group></doc> + <constant name='this_function'/> + </docgroup>   <docgroup homogen-name='this_object' homogen-type='method'><doc><text><p>Returns the object we are currently evaluating in.</p>   </text><group><param name='level'/><text><p><ref resolved='predef::this_object.level'>level</ref> may be used to access the object of a surrounding    class: The object at level 0 is the current object, the object    at level 1 is the one belonging to the class that surrounds    the class that the object comes from, and so on.</p>   </text></group><group><note/><text><p>As opposed to a qualified <expr>this</expr> reference such as    <expr>global::this</expr>, this function doesn't always access the    objects belonging to the lexically surrounding classes. If the    class containing the call has been inherited then the objects    surrounding the inheriting class are accessed.</p>   </text></group></doc>   <method name='this_object'>   <arguments><argument name='level'><type><or><void/><int/></or></type></argument></arguments>   <returntype><object resolved='predef::this_object'/></returntype>   </method>   </docgroup> -  + <docgroup homogen-name='this_program' homogen-type='constant'><doc><text><p>Builtin constant that evaluates to the current program.</p> + </text><group><seealso/><text><p><ref resolved='predef::.this'>this</ref>, <ref resolved='predef::this_object'>this_object()</ref></p> + </text></group></doc> + <constant name='this_program'/> + </docgroup>   <docgroup homogen-name='throw' homogen-type='method'><doc><text><p>Throw <ref resolved='predef::throw.value'>value</ref> to a waiting <ref>catch</ref>.</p>   <p> If no <ref>catch</ref> is waiting the global error handling will send the    value to <ref>master()-&gt;handle_error()</ref>.</p>   <p> If you throw an array with where the first index contains an error    message and the second index is a backtrace, (the output from    <ref resolved='predef::backtrace'>backtrace()</ref>) then it will be treated exactly like a real error    by overlying functions.</p>   </text><group><seealso/><text><p><ref>catch</ref></p>   </text></group></doc>   <method name='throw'>
autodoc.git/onepage.xml:12055:   <arguments><argument name='level'><type><int/></type></argument><argument name='facility'><type><or><void/><string/></or></type></argument><argument name='all_threads'><type><or><void/><int/></or></type></argument></arguments>   <returntype><int/></returntype>   </method>   </docgroup>         <docgroup homogen-name='types' homogen-type='method'><doc><text><p>Return an array with the types of all valid indices for the value <ref resolved='predef::types.x'>x</ref>.</p>   </text><group><param name='x'/><text><mixed><group><type><string/></type><text><p>For strings this is simply an array with <tt>int</tt></p>   </text></group><group><type><array/></type><type><mapping/></type><type><multiset/></type><text><p>For arrays, mappings and multisets this is simply    an array with <tt>mixed</tt>.</p> - </text></group><group><type><object resolved='predef::types'/></type><text><p>For objects which define <ref>lfun::_types()</ref> that return value + </text></group><group><type><object resolved='predef::types'/></type><text><p>For objects which define <ref resolved='lfun::_types'>lfun::_types()</ref> that return value    is used.</p>   <p> For other objects an array with type types for all non-protected    symbols is returned.</p>   </text></group></mixed>   </text></group><group><note/><text><p>This function was added in Pike 7.9.</p> - </text></group><group><seealso/><text><p><ref resolved='predef::indices'>indices()</ref>, <ref resolved='predef::values'>values()</ref>, <ref>lfun::_types()</ref></p> + </text></group><group><seealso/><text><p><ref resolved='predef::indices'>indices()</ref>, <ref resolved='predef::values'>values()</ref>, <ref resolved='lfun::_types'>lfun::_types()</ref></p>   </text></group></doc>   <method name='types'>   <arguments><argument name='x'><type><or><string/><array/><mapping/><multiset/><object resolved='predef::types'/></or></type></argument></arguments>   <returntype><array><valuetype><type><mixed/></type></valuetype></array></returntype>   </method>   </docgroup>   <docgroup homogen-name='ualarm' homogen-type='method'><doc><text><p>Set an alarm clock for delivery of a signal.</p>   <p> <ref resolved='predef::alarm'>alarm()</ref> arranges for a SIGALRM signal to be delivered to the    process in <ref resolved='predef::ualarm.useconds'>useconds</ref> microseconds.</p>   <p> If <ref resolved='predef::ualarm.useconds'>useconds</ref> is <expr>0</expr> (zero), no new alarm will be scheduled.</p>
autodoc.git/onepage.xml:12180:   </method>   </docgroup>   <docgroup homogen-name='values' homogen-type='method'><doc><text><p>Return an array of all possible values from indexing the value    <ref resolved='predef::values.x'>x</ref>.</p>   </text><group><param name='x'/><text><mixed><group><type><string/></type><text><p>For strings an array of int with the ISO10646 codes of the    characters in the string is returned.</p>   </text></group><group><type><multiset/></type><text><p>For a multiset an array filled with ones (<expr>1</expr>) is    returned.</p>   </text></group><group><type><array/></type><text><p>For arrays a single-level copy of <ref resolved='predef::values.x'>x</ref> is returned.</p>   </text></group><group><type><mapping/></type><text><p>For mappings the array may contain any value.</p> - </text></group><group><type><object resolved='predef::values'/></type><text><p>For objects which define <ref>lfun::_values()</ref> that return value + </text></group><group><type><object resolved='predef::values'/></type><text><p>For objects which define <ref resolved='lfun::_values'>lfun::_values()</ref> that return value    is used.</p>   <p> For other objects an array with the values of all non-protected    symbols is returned.</p>   </text></group></mixed> - </text></group><group><seealso/><text><p><ref resolved='predef::indices'>indices()</ref>, <ref resolved='predef::types'>types()</ref>, <ref>lfun::_values()</ref></p> + </text></group><group><seealso/><text><p><ref resolved='predef::indices'>indices()</ref>, <ref resolved='predef::types'>types()</ref>, <ref resolved='lfun::_values'>lfun::_values()</ref></p>   </text></group></doc>   <method name='values'>   <arguments><argument name='x'><type><or><string/><array/><mapping/><multiset/><object resolved='predef::values'/></or></type></argument></arguments>   <returntype><array/></returntype>   </method>   </docgroup>      <docgroup homogen-name='version' homogen-type='method'><doc><text><p>Report the version of Pike. Does the same as</p>   <code><text><p>sprintf("Pike v%d.%d release %d", __REAL_VERSION__,    __REAL_MINOR__, __REAL_BUILD__);</p>
autodoc.git/onepage.xml:13146:   </docgroup>   <docgroup homogen-name='cast' homogen-type='method'><doc><text><p>Cast callback. Supports only cast to mapping and    behaves as the inverse of create().</p>   </text></doc>   <method name='cast'>   <arguments><argument name='type'><type><string/></type></argument></arguments>   <returntype><mapping/></returntype>   </method>   </docgroup>   <docgroup homogen-name='common_prefix' homogen-type='method'><doc><text><p>Returns the common prefix of all keys. -  If the tree has no elements, <ref>UNDEFINED</ref> is returned.</p> +  If the tree has no elements, <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> is returned.</p>   </text></doc>   <method name='common_prefix'>   <arguments/>   <returntype><or><string/><int/></or></returntype>   </method>   </docgroup>   <docgroup homogen-name='copy' homogen-type='method'><doc><text><p>Create a copy of the tree.</p>   </text></doc>   <method name='copy'>   <arguments/>
autodoc.git/onepage.xml:13629:   </docgroup>   <docgroup homogen-name='cast' homogen-type='method'><doc><text><p>Cast callback. Supports only cast to mapping and    behaves as the inverse of create().</p>   </text></doc>   <method name='cast'>   <arguments><argument name='type'><type><string/></type></argument></arguments>   <returntype><mapping/></returntype>   </method>   </docgroup>   <docgroup homogen-name='common_prefix' homogen-type='method'><doc><text><p>Returns the common prefix of all keys. -  If the tree has no elements, <ref>UNDEFINED</ref> is returned.</p> +  If the tree has no elements, <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> is returned.</p>   </text></doc>   <method name='common_prefix'>   <arguments/>   <returntype><or><string/><int/></or></returntype>   </method>   </docgroup>   <docgroup homogen-name='copy' homogen-type='method'><doc><text><p>Create a copy of the tree.</p>   </text></doc>   <method name='copy'>   <arguments/>
autodoc.git/onepage.xml:13777:    <expr>UNDEFINED</expr> otherwise.</p>   </text></group><group><seealso/><text><p><ref resolved='predef::ADT.Heap.peek'>peek()</ref>, <ref resolved='predef::ADT.Heap.low_pop'>low_pop()</ref>, <ref resolved='predef::ADT.Heap.pop'>pop()</ref></p>   </text></group></doc>   <method name='low_peek'>   <arguments/>   <returntype><object resolved='predef::ADT.Heap.Element'>Element</object></returntype>   </method>   </docgroup>   <docgroup homogen-name='low_pop' homogen-type='method'><doc><text><p>Removes and returns the <ref resolved='predef::ADT.Heap.Element'>Element</ref> on top of the heap,    which also is the smallest value in the heap.</p> - </text><group><returns/><text><p>Returns <ref>UNDEFINED</ref> if the heap is empty.</p> + </text><group><returns/><text><p>Returns <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> if the heap is empty.</p>   </text></group><group><seealso/><text><p><ref resolved='predef::ADT.Heap.pop'>pop()</ref>, <ref resolved='predef::ADT.Heap.peek'>peek()</ref>, <ref resolved='predef::ADT.Heap.push'>push()</ref>, <ref resolved='predef::ADT.Heap.remove'>remove()</ref></p>   </text></group></doc>   <method name='low_pop'>   <arguments/>   <returntype><object resolved='predef::ADT.Heap.Element'>Element</object></returntype>   </method>   </docgroup>   <docgroup homogen-name='peek' homogen-type='method'><doc><text><p>Returns the item on top of the heap (which is also the smallest value    in the heap) without removing it.</p>   </text><group><returns/><text><p>Returns the smallest value on the heap if any, and
autodoc.git/onepage.xml:14363:   <docgroup homogen-name='adjust_weight' homogen-type='method'><doc><text><p>Adjust the weight value <ref resolved='predef::ADT.Scheduler.adjust_weight.new_weight'>new_weight</ref> of the <ref resolved='predef::ADT.Scheduler.Consumer'>Consumer</ref> <ref resolved='predef::ADT.Scheduler.adjust_weight.c'>c</ref> in the    scheduling table.</p>   </text></doc>   <method name='adjust_weight'>   <arguments><argument name='c'><type><object resolved='predef::ADT.Scheduler.Consumer'>Consumer</object></type></argument><argument name='new_weight'><type><int/></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup>   <docgroup homogen-name='get' homogen-type='method'><doc><text><p>Returns the next <ref resolved='predef::ADT.Scheduler.Consumer'>Consumer</ref> to consume some of the resource.</p>   </text><group><returns/><text><p>Returns a <ref resolved='predef::ADT.Scheduler.Consumer'>Consumer</ref> if there are any active <ref>Consumers</ref> -  and <ref>UNDEFINED</ref> otherwise.</p> +  and <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> otherwise.</p>   </text></group><group><note/><text><p>The same <ref resolved='predef::ADT.Scheduler.Consumer'>Consumer</ref> will be returned until it has either    consumed some of the resource, been removed or another    <ref resolved='predef::ADT.Scheduler.Consumer'>Consumer</ref> with lower priority has been added.</p>   </text></group></doc>   <method name='get'>   <arguments/>   <returntype><object resolved='predef::ADT.Scheduler.Consumer'>Consumer</object></returntype>   </method>   </docgroup>   <docgroup homogen-name='' homogen-type='import'>
autodoc.git/onepage.xml:16631:   <arguments><argument name='matrix'><type><array><valuetype><array/></valuetype></array></type></argument></arguments>   <returntype><array><valuetype><array/></valuetype></array></returntype>   </method>   </docgroup>   <docgroup homogen-name='uniq' homogen-type='method'><doc><text><p>Remove elements that are duplicates.</p>   </text><group><returns/><text><p>This function returns an copy of the array <ref resolved='predef::Array.uniq.a'>a</ref> with all    duplicate values removed. The order of the values is kept in the    result; it's always the first of several equal elements that is    kept.</p>   </text></group><group><note/><text><p>Elements are compared with <ref resolved='predef::`=='>`==</ref>. They are also hashed (see -  <ref>lfun::__hash</ref> for further details if the array contains +  <ref resolved='lfun::__hash'>lfun::__hash</ref> for further details if the array contains    objects).</p>   </text></group></doc>   <method name='uniq'>   <arguments><argument name='a'><type><array/></type></argument></arguments>   <returntype><array/></returntype>   </method>   </docgroup>   <docgroup homogen-name='uniq2' homogen-type='method'><doc><text><p>Perform the same action as the Unix uniq command on an array,    that is, fold consecutive occurrences of the same element into    a single element of the result array:</p>
autodoc.git/onepage.xml:17481:   <docgroup homogen-name='create' homogen-type='method'><doc><text><p>Creates a new cache object. Required are a storage manager, and an    expiration policy object.</p>   </text></doc>   <method name='create'>   <arguments><argument name='storage_mgr'><type><object resolved='predef::Cache.Storage.Base'>Cache.Storage.Base</object></type></argument><argument name='policy_mgr'><type><object resolved='predef::Cache.Policy.Base'>Cache.Policy.Base</object></type></argument><argument name='cleanup_cycle_delay'><type><or><void/><int/></or></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup>   <docgroup homogen-name='delete' homogen-type='method'><doc><text><p>Forcibly removes some key.    If the 'hard' parameter is supplied and true, deleted objects will also -  have their <ref>lfun::_destruct</ref> method called upon removal by some +  have their <ref resolved='lfun::_destruct'>lfun::_destruct</ref> method called upon removal by some    backends (i.e. memory)</p>   </text></doc>   <method name='delete'>   <arguments><argument name='key'><type><string/></type></argument><argument name='hard'><type><or><void/><int><min>0</min><max>1</max></int></or></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup>   <docgroup homogen-name='' homogen-type='import'>   <import name=''><classname resolved='predef::'>predef::</classname></import>   </docgroup>
autodoc.git/onepage.xml:22204:    used. The error handler object can thus be used to block certain    functionality (eg to restrict the number of available functions).</p>   </text><group><seealso/><text><p><ref>master()-&gt;get_compilation_handler()</ref>, <ref resolved='predef::get_active_error_handler'>get_active_error_handler()</ref>,    <ref resolved='predef::get_active_compilation_handler'>get_active_compilation_handler()</ref>, <ref resolved='predef::compile'>compile()</ref></p>   </text></group></doc>   <docgroup homogen-name='compile_error' homogen-type='method'><doc><text><p>Called by <ref resolved='predef::compile'>compile()</ref> and <ref resolved='predef::cpp'>cpp()</ref> when they encounter    errors in the code they compile.</p>   </text><group><param name='filename'/><text><p>File where the error was detected.</p>   </text></group><group><param name='line'/><text><p>Line where the error was detected.</p>   </text></group><group><param name='msg'/><text><p>Description of error.</p> - </text></group><group><seealso/><text><p><ref>compile_warning()</ref>.</p> + </text></group><group><seealso/><text><p><ref resolved='predef::CompilationHandler.compile_warning'>compile_warning()</ref>.</p>   </text></group></doc>   <method name='compile_error'>   <arguments><argument name='filename'><type><string/></type></argument><argument name='line'><type><int/></type></argument><argument name='msg'><type><string/></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup>   <docgroup homogen-name='compile_exception' homogen-type='method'><doc><text><p>Called by <ref resolved='predef::compile'>compile()</ref> and <ref resolved='predef::cpp'>cpp()</ref> if they trigger    exceptions.</p>   </text></doc>   <method name='compile_exception'>   <arguments><argument name='exception'><type><mixed/></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup> -  + <docgroup homogen-name='compile_warning' homogen-type='method'><doc><text><p>Called by <ref resolved='predef::compile'>compile()</ref> to report warnings.</p> + </text><group><param name='filename'/><text><p>File which triggered the warning.</p> + </text></group><group><param name='line'/><text><p>Line which triggered the warning.</p> + </text></group><group><param name='msg'/><text><p>Warning message.</p> + </text></group><group><seealso/><text><p><ref resolved='predef::CompilationHandler.compile_error'>compile_error()</ref></p> + </text></group></doc> + <method name='compile_warning'> + <arguments><argument name='filename'><type><string/></type></argument><argument name='line'><type><int/></type></argument><argument name='msg'><type><string/></type></argument></arguments> + <returntype><void/></returntype> + </method> + </docgroup> + <docgroup homogen-name='get_default_module' homogen-type='method'><doc><text><p>Returns the default module from which global symbols will +  be fetched.</p> + </text><group><returns/><text><p>Returns the default module, or <expr>0</expr> (zero).</p> + <p> If <expr>0</expr> (zero) is returned the compiler use the mapping +  returned by <ref resolved='predef::all_constants'>all_constants()</ref> as fallback.</p> + </text></group><group><seealso/><text><p><ref resolved='predef::CompilationHandler.get_predefines'>get_predefines()</ref></p> + </text></group></doc> + <method name='get_default_module'> + <arguments/> + <returntype><or><mapping><indextype><string/></indextype><valuetype><mixed/></valuetype></mapping><object resolved='predef::CompilationHandler.get_default_module'/></or></returntype> + </method> + </docgroup>   <docgroup homogen-name='get_predefines' homogen-type='method'><doc><text><p>Called by <ref resolved='predef::cpp'>cpp()</ref> to get the set of global symbols.</p>   </text><group><returns/><text><p>Returns a mapping from symbol name to symbol value.    Returns zero on failure.</p> - </text></group><group><seealso/><text><p><ref resolved='predef::CompilationHandler.resolv'>resolv()</ref>, <ref>get_default_module()</ref></p> + </text></group><group><seealso/><text><p><ref resolved='predef::CompilationHandler.resolv'>resolv()</ref>, <ref resolved='predef::CompilationHandler.get_default_module'>get_default_module()</ref></p>   </text></group></doc>   <method name='get_predefines'>   <arguments/>   <returntype><mapping><indextype><string/></indextype><valuetype><mixed/></valuetype></mapping></returntype>   </method>   </docgroup>   <docgroup homogen-name='handle_import' homogen-type='method'><doc><text><p>Called by <ref resolved='predef::compile'>compile()</ref> and <ref resolved='predef::cpp'>cpp()</ref> to handle import    directives specifying specific paths.</p> - </text><group><returns/><text><p>Returns the resolved value, or <ref>UNDEFINED</ref> on failure.</p> + </text><group><returns/><text><p>Returns the resolved value, or <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> on failure.</p>   </text></group></doc>   <method name='handle_import'>   <arguments><argument name='path'><type><string/></type></argument><argument name='filename'><type><string/></type></argument><argument name='handler'><type><object resolved='predef::CompilationHandler'>CompilationHandler</object></type></argument></arguments>   <returntype><mixed/></returntype>   </method>   </docgroup>   <docgroup homogen-name='handle_include' homogen-type='method'><doc><text><p>Called by <ref resolved='predef::cpp'>cpp()</ref> to resolv <expr>#include</expr> and <expr>#string</expr>    directives.</p>   </text><group><param name='header_file'/><text><p>File that was requested for inclusion.</p>   </text></group><group><param name='current_file'/><text><p>File where the directive was found.</p>
autodoc.git/onepage.xml:22268:    and <expr>0</expr> (zero) on failure.</p>   </text></group><group><seealso/><text><p><ref resolved='predef::CompilationHandler.handle_include'>handle_include()</ref></p>   </text></group></doc>   <method name='read_include'>   <arguments><argument name='filename'><type><string/></type></argument></arguments>   <returntype><string/></returntype>   </method>   </docgroup>   <docgroup homogen-name='resolv' homogen-type='method'><doc><text><p>Called by <ref resolved='predef::compile'>compile()</ref> and <ref resolved='predef::cpp'>cpp()</ref> to resolv    module references.</p> - </text><group><returns/><text><p>Returns the resolved value, or <ref>UNDEFINED</ref> on failure.</p> + </text><group><returns/><text><p>Returns the resolved value, or <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> on failure.</p>   </text></group><group><seealso/><text><p><ref resolved='predef::CompilationHandler.get_predefines'>get_predefines()</ref></p>   </text></group></doc>   <method name='resolv'>   <arguments><argument name='symbol'><type><string/></type></argument><argument name='filename'><type><string/></type></argument><argument name='handler'><type><object resolved='predef::CompilationHandler'>CompilationHandler</object></type></argument></arguments>   <returntype><mixed/></returntype>   </method>   </docgroup>   </class>   <class name='CompilerEnvironment'>   <modifiers><protected/></modifiers>
autodoc.git/onepage.xml:22635:   <docgroup homogen-name='resolv' homogen-type='method'>   <method name='resolv'>   <arguments><argument name='sym'><type><string/></type></argument></arguments>   <returntype><mixed/></returntype>   </method>   </docgroup>   <docgroup homogen-name='resolv' homogen-type='method'><doc><text><p>Attempt to resolve a symbol.</p>   <p> The default implementation calls <ref resolved='predef::CompilerEnvironment.resolv'>CompilerEnvironment()-&gt;resolv()</ref>    in the parent object, with the remaining arguments taken from the    current <ref resolved='predef::CompilerEnvironment.CPP'>CPP</ref> context.</p> - </text><group><returns/><text><p>Returns the value of <ref resolved='predef::CompilerEnvironment.CPP.resolv.sym'>sym</ref> if found, and <ref>UNDEFINED</ref> if not.</p> + </text><group><returns/><text><p>Returns the value of <ref resolved='predef::CompilerEnvironment.CPP.resolv.sym'>sym</ref> if found, and <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> if not.</p>   </text></group></doc>   <method name='resolv'>   <arguments><argument name='sym'><type><string/></type></argument></arguments>   <returntype><mixed/></returntype>   </method>   </docgroup>   </class>   <class name='PikeCompiler'>   <docgroup homogen-name='apply_handler' homogen-type='method'>   <method name='apply_handler'><modifiers><protected/></modifiers>
autodoc.git/onepage.xml:22893:   <returntype><void/></returntype>   </method>   </docgroup>   <docgroup homogen-name='filter' homogen-type='method'><doc><text><p>This specifies a callback that is only called on success, and    allows you to selectively alter the future into a failure.</p>   </text><group><param name='fun'/><text><p>Function to be called. The first argument will be the    <b>success</b> result of <b>this</b> <ref resolved='predef::Concurrent.Future'>Future</ref>.    If the return value is <expr>true</expr>, the future succeeds with    the original success result.    If the return value is <expr>false</expr>, the future fails with -  an <ref>UNDEFINED</ref> result.</p> +  an <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> result.</p>   </text></group><group><param name='extra'/><text><p>Any extra context needed for    <expr>fun</expr>. They will be provided    as arguments two and onwards when the callback is called.</p>   </text></group><group><returns/><text><p>The new <ref resolved='predef::Concurrent.Future'>Future</ref>.</p>   </text></group><group><seealso/><text><p><ref resolved='predef::Concurrent.Future.transform'>transform()</ref></p>   </text></group></doc>   <method name='filter'>   <arguments><argument name='fun'><type><function><argtype><mixed/></argtype><argtype><varargs><mixed/></varargs></argtype><returntype><int><min>0</min><max>1</max></int></returntype></function></type></argument><argument name='extra'><type><varargs><mixed/></varargs></type></argument></arguments>   <returntype><object resolved='predef::Concurrent.Future'>this_program</object></returntype>   </method>
autodoc.git/onepage.xml:26392:   <arguments/>   <returntype><void/></returntype>   </method>   </docgroup>   <docgroup homogen-name='size_object' homogen-type='method'><doc><text><p>Return the aproximate size of the object, in bytes.    This might not work very well for native objects</p>   <p> The function tries to estimate the memory usage of variables    belonging to the object.</p>   <p> It will not, however, include the size of objects assigned to    variables in the object.</p> - <p> If the object has a <ref>lfun::_size_object()</ref> it will be called + <p> If the object has a <ref resolved='lfun::_size_object'>lfun::_size_object()</ref> it will be called    without arguments, and the return value will be added to the final    size. It is primarily intended to be used by C-objects that    allocate memory that is not normally visible to pike.</p> - </text><group><seealso/><text><p><ref>lfun::_size_object()</ref>, <ref resolved='predef::sizeof'>sizeof()</ref></p> + </text><group><seealso/><text><p><ref resolved='lfun::_size_object'>lfun::_size_object()</ref>, <ref resolved='predef::sizeof'>sizeof()</ref></p>   </text></group></doc>   <method name='size_object'>   <arguments><argument name='o'><type><object resolved='predef::Debug.size_object'/></type></argument></arguments>   <returntype><int/></returntype>   </method>   </docgroup>   <docgroup homogen-name='verify_internals' homogen-type='method'><doc><text><p>Perform sanity checks.</p>   <p> This function goes through most of the internal Pike structures and    generates a fatal error if one of them is found to be out of order.    It is only used for debugging.</p>
autodoc.git/onepage.xml:26761:   <doc><text><p>Codec used by <ref resolved='predef::encode_value'>encode_value()</ref> to encode objects, functions and    programs. Its purpose is to look up some kind of identifier for    them, so they can be mapped back to the corresponding instance    by <ref resolved='predef::decode_value'>decode_value()</ref>, rather than creating a new copy.</p>   </text></doc>   <docgroup homogen-name='nameof' homogen-type='method'><doc><text><p>Called by <ref resolved='predef::encode_value'>encode_value()</ref> to encode objects, functions and programs.</p>   </text><group><returns/><text><p>Returns something encodable on success, typically a string.    The returned value will be passed to the corresponding    <ref>objectof()</ref>, <ref>functionof()</ref> or <ref>programof()</ref> by    <ref resolved='predef::decode_value'>decode_value()</ref>.</p> - <p> If it returns <ref>UNDEFINED</ref> then <ref resolved='predef::encode_value'>encode_value</ref> starts to encode + <p> If it returns <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> then <ref resolved='predef::encode_value'>encode_value</ref> starts to encode    the thing recursively, so that <ref resolved='predef::decode_value'>decode_value</ref> later will    rebuild a copy.</p>   </text></group><group><note/><text><p><ref resolved='predef::encode_value'>encode_value()</ref> has fallbacks for some classes of objects,    functions and programs.</p>   </text></group><group><seealso/><text><p><ref resolved='predef::Decoder.objectof'>Decoder.objectof()</ref>, <ref resolved='predef::Decoder.functionof'>Decoder.functionof()</ref>,    <ref resolved='predef::Decoder.objectof'>Decoder.objectof()</ref></p>   </text></group></doc>   <method name='nameof'>   <arguments><argument name='x'><type><or><object resolved='predef::Encoder.nameof'/><function/><program/></or></type></argument></arguments>   <returntype><mixed/></returntype>
autodoc.git/onepage.xml:27505:   </text></group></int>   </text></group><group><param name='seconds'/><text><p>Number of seconds from now to run next scan. Defaults to    half of the remaining interval.</p>   </text></group></doc>   <method name='bump'>   <arguments><argument name='flags'><type><or><object resolved='predef::Filesystem.Monitor.basic.MonitorFlags'>MonitorFlags</object><void/></or></type></argument><argument name='seconds'><type><or><int/><void/></or></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup>   <docgroup homogen-name='call_callback' homogen-type='method'><doc><text><p>Call a notification callback.</p> - </text><group><param name='cb'/><text><p>Callback to call or <ref>UNDEFINED</ref> for no operation.</p> + </text><group><param name='cb'/><text><p>Callback to call or <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> for no operation.</p>   </text></group><group><param name='path'/><text><p>Path to notify on.</p>   </text></group><group><param name='st'/><text><p>Stat for the <ref resolved='predef::Filesystem.Monitor.basic.Monitor.call_callback.path'>path</ref>.</p>   </text></group></doc>   <method name='call_callback'><modifiers><protected/></modifiers>   <arguments><argument name='cb'><type><function><argtype><string/></argtype><argtype><or><object resolved='predef::Stdio.Stat'>Stdio.Stat</object><void/></or></argtype><returntype><void/></returntype></function></type></argument><argument name='path'><type><string/></type></argument><argument name='st'><type><or><object resolved='predef::Stdio.Stat'>Stdio.Stat</object><void/></or></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup>   <docgroup homogen-name='check' homogen-type='method'><doc><text><p>Check for changes.</p>   </text><group><param name='flags'/><text><int><group><value>0</value><text><p>Don't recurse.</p>
autodoc.git/onepage.xml:27860:   <p> Called by <ref resolved='predef::Filesystem.Monitor.basic.Monitor.check'>check()</ref> and <ref resolved='predef::Filesystem.Monitor.basic.check_monitor'>check_monitor()</ref>.</p>   </text></group><group><note/><text><p>If there is a <ref resolved='predef::Filesystem.Monitor.basic.data_changed'>data_changed()</ref> callback, it may supersede this    callback if the file content also has changed.</p>   </text></group></doc>   <method name='attr_changed'><modifiers><protected/></modifiers>   <arguments><argument name='path'><type><string/></type></argument><argument name='st'><type><object resolved='predef::Stdio.Stat'>Stdio.Stat</object></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup>   <docgroup homogen-name='call_callback' homogen-type='method'><doc><text><p>Call a notification callback and handle symlink expansion.</p> - </text><group><param name='cb'/><text><p>Callback to call or <ref>UNDEFINED</ref> for no operation.</p> + </text><group><param name='cb'/><text><p>Callback to call or <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> for no operation.</p>   </text></group><group><param name='extras'/><text><p>Extra arguments after the <ref resolved='predef::Filesystem.Monitor.symlinks.DefaultMonitor.call_callback.path'>path</ref> argument to <ref resolved='predef::Filesystem.Monitor.symlinks.DefaultMonitor.call_callback.cb'>cb</ref>.</p>   </text></group></doc>   <method name='call_callback'><modifiers><protected/></modifiers>   <arguments><argument name='cb'><type><function><argtype><string/></argtype><argtype><varargs><mixed/></varargs></argtype><returntype><void/></returntype></function></type></argument><argument name='path'><type><string/></type></argument><argument name='st'><type><or><object resolved='predef::Stdio.Stat'>Stdio.Stat</object><void/></or></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup>   <docgroup homogen-name='check_for_release' homogen-type='method'><doc><text><p>Check if this monitor should be removed automatically.</p>   </text></doc>   <method name='check_for_release'>
autodoc.git/onepage.xml:27929:   <method name='file_exists'><modifiers><protected/></modifiers>   <arguments><argument name='path'><type><string/></type></argument><argument name='st'><type><object resolved='predef::Stdio.Stat'>Stdio.Stat</object></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup>   <docgroup homogen-name='DefaultMonitor' homogen-type='inherit'><doc><text><p>Based on <ref resolved='predef::Filesystem.Monitor.basic.DefaultMonitor'>Filesystem.Monitor.basic.DefaultMonitor</ref>.</p>   </text></doc>   <inherit name='DefaultMonitor'><classname resolved='predef::Filesystem.Monitor.basic.DefaultMonitor'>basic::DefaultMonitor</classname></inherit>   </docgroup>   <docgroup homogen-name='low_call_callback' homogen-type='method'><doc><text><p>Call a notification callback and handle symlink expansion.</p> - </text><group><param name='cb'/><text><p>Callback to call or <ref>UNDEFINED</ref> for no operation.</p> + </text><group><param name='cb'/><text><p>Callback to call or <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> for no operation.</p>   </text></group><group><param name='state'/><text><p>State mapping to avoid multiple notification and infinite loops.    Call with an empty mapping.</p>   </text></group><group><param name='symlinks'/><text><p>Symlinks that have not been expanded yet.</p>   </text></group><group><param name='path'/><text><p>Path to notify on.</p>   </text></group><group><param name='extras'/><text><p>Extra arguments to <ref resolved='predef::Filesystem.Monitor.symlinks.DefaultMonitor.low_call_callback.cb'>cb</ref>.</p>   </text></group><group><param name='symlink'/><text><p>Symbolic link that must have been followed for the    callback to be called.</p>   </text></group></doc>   <method name='low_call_callback'>   <arguments><argument name='cb'><type><function><argtype><string/></argtype><argtype><varargs><mixed/></varargs></argtype><returntype><void/></returntype></function></type></argument><argument name='state'><type><mapping><indextype><string/></indextype><valuetype><int/></valuetype></mapping></type></argument><argument name='symlink_targets'><type><mapping><indextype><string/></indextype><valuetype><string/></valuetype></mapping></type></argument><argument name='path'><type><string/></type></argument><argument name='st'><type><or><object resolved='predef::Stdio.Stat'>Stdio.Stat</object><void/></or></type></argument><argument name='symlink'><type><or><string/><void/></or></type></argument></arguments>
autodoc.git/onepage.xml:28542:   </docgroup>   </module>   <module name='Function'>   <docgroup homogen-name='Y' homogen-type='method'><doc><text><p>The dreaded fixpoint combinator "Y".</p>   <p> The Y combinator is useful when writing recursive lambdas. It    converts a lambda that expects a self-reference as its first argument    into one which can be called without this argument.</p>   </text><group><example/><text><p>This example creates a lambda that computes the faculty function.</p>   <code><text><p>Function.Y(lambda(function f, int n) { return n&gt;1? n*f(n-1) : 1; })</p>   </text></code> - </text></group><group><seealso/><text><p><ref>this_function</ref></p> + </text></group><group><seealso/><text><p><ref resolved='predef::.this_function'>this_function</ref></p>   </text></group></doc>   <method name='Y'>   <arguments><argument name='f'><type><function/></type></argument></arguments>   <returntype><function/></returntype>   </method>   </docgroup>   <docgroup homogen-name='call_callback' homogen-type='method'><doc><text><p>Call a callback function, but send throws from the callback    function (ie, errors) to master()-&gt;handle_error.    Also accepts if f is zero (0) without error.</p>   </text><group><example/><text><code><text><p>Functions.call_callback(the_callback,some,arguments);</p>
autodoc.git/onepage.xml:72565:   <arguments/>   <returntype><void/></returntype>   </method>   </docgroup>   <docgroup homogen-name='filemodify' homogen-type='method'><doc><text><p>Create or modify a file.</p>   </text><group><param name='mode'/><text><p>Mode for the file. See the <tt>MODE_*</tt> constants.</p>   </text></group><group><param name='path'/><text><p>Path to the file relative to the repository root.</p>   </text></group><group><param name='dataref'/><text><p>Reference to the data for the file. One of:</p>   <mixed><group><type><string/></type><text><p>A mark reference set by a prior <ref resolved='predef::Git.Export.blob'>blob</ref> command or    a full 40-byte SHA-1 of an existing Git blob.</p> - </text></group><group><type><zero/></type><text><p>Left out, <ref>UNDEFINED</ref> or <expr>"inline"</expr> in which + </text></group><group><type><zero/></type><text><p>Left out, <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> or <expr>"inline"</expr> in which    case the <ref resolved='predef::Git.Export.filemodify'>filemodify</ref> command must be followed by    a <ref>data</ref> command.</p>   </text></group></mixed>   </text></group></doc>   <method name='filemodify'>   <arguments><argument name='mode'><type><int/></type></argument><argument name='path'><type><string/></type></argument><argument name='dataref'><type><or><string/><void/></or></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup>   <docgroup homogen-name='filerename' homogen-type='method'><doc><text><p>Rename a file or directory.</p>
autodoc.git/onepage.xml:72600:   <method name='ls'>   <arguments><argument name='path'><type><string/></type></argument><argument name='dataref'><type><or><string/><void/></or></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup>   <docgroup homogen-name='notemodify' homogen-type='method'><doc><text><p>Annotate a commit.</p>   </text><group><param name='commit'/><text><p>Commit to annotate.</p>   </text></group><group><param name='dataref'/><text><p>Reference to the data for the annotation. One of:</p>   <mixed><group><type><string/></type><text><p>A mark reference set by a prior <ref resolved='predef::Git.Export.blob'>blob</ref> command or    a full 40-byte SHA-1 of an existing Git blob.</p> - </text></group><group><type><zero/></type><text><p>Left out, <ref>UNDEFINED</ref> or <expr>"inline"</expr> in which + </text></group><group><type><zero/></type><text><p>Left out, <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> or <expr>"inline"</expr> in which    case the <ref resolved='predef::Git.Export.notemodify'>notemodify</ref> command must be followed by    a <ref>data</ref> command.</p>   </text></group></mixed><p>Note that this command is typically only used when    a commit on a ref under <expr>"refs/notes/"</expr> is active.</p>   </text></group></doc>   <method name='notemodify'>   <arguments><argument name='commit'><type><string/></type></argument><argument name='dataref'><type><or><string/><void/></or></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup>
autodoc.git/onepage.xml:74289:   </text></group><group><returns/><text><p>Returns an array of headers. Cf <ref resolved='predef::HPack.Context.decode_header'>decode_header()</ref>.</p>   </text></group><group><seealso/><text><p><ref resolved='predef::HPack.Context.decode_header'>decode_header()</ref>, <ref resolved='predef::HPack.Context.encode'>encode()</ref></p>   </text></group></doc>   <method name='decode'>   <arguments><argument name='buf'><type><object resolved='predef::Stdio.Buffer'>Stdio.Buffer</object></type></argument></arguments>   <returntype><array><valuetype><array><valuetype><or><string><min>0</min><max>255</max></string><object resolved='predef::HPack.HPackFlags'>HPackFlags</object></or></valuetype></array></valuetype></array></returntype>   </method>   </docgroup>   <docgroup homogen-name='decode_header' homogen-type='method'><doc><text><p>Decode a single HPack header.</p>   </text><group><param name='buf'/><text><p>Input buffer.</p> - </text></group><group><returns/><text><p>Returns <ref>UNDEFINED</ref> on empty buffer. + </text></group><group><returns/><text><p>Returns <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> on empty buffer.    Returns an array with a header and value otherwise:</p>   <array><group><elem><type><string><min>0</min><max>255</max></string></type><index>0</index></elem><text><p>Name of the header. Under normal circumstances this is    always lower-case, but no check is currently performed.</p>   </text></group><group><elem><type><string><min>0</min><max>255</max></string></type><index>1</index></elem><text><p>Value of the header.</p>   </text></group><group><elem><type><or><object resolved='predef::HPack.HPackFlags'>HPackFlags</object><void/></or></type><index>2</index></elem><text><p>Optional encoding flags. Only set for fields having    <ref resolved='predef::HPack.HPackFlags.HEADER_NEVER_INDEXED'>HEADER_NEVER_INDEXED</ref>.</p>   </text></group></array><p>The elements in the array are in the same order and compatible    with the arguments to <ref resolved='predef::HPack.Context.encode_header'>encode_header()</ref>.</p>   </text></group><group><throws/><text><p>Throws on encoding errors.</p>   </text></group><group><note/><text><p>The returned array MUST NOT be modified.</p>
autodoc.git/onepage.xml:74373:   <docgroup homogen-name='evict_dynamic_headers' homogen-type='method'><doc><text><p>Evict dynamic headers until <ref resolved='predef::HPack.Context.dynamic_size'>dynamic_size</ref> goes below    <ref resolved='predef::HPack.Context.dynamic_max_size'>dynamic_max_size</ref>.</p>   </text></doc>   <method name='evict_dynamic_headers'><modifiers><protected/></modifiers>   <arguments/>   <returntype><void/></returntype>   </method>   </docgroup>   <docgroup homogen-name='get_indexed_header' homogen-type='method'><doc><text><p>Lookup a known header.</p>   </text><group><param name='index'/><text><p>Encoding key for the header to retrieve.</p> - </text></group><group><returns/><text><p>Returns <ref>UNDEFINED</ref> on unknown header. + </text></group><group><returns/><text><p>Returns <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> on unknown header.    Returns an array with a header and value otherwise:</p>   <array><group><elem><type><string><min>0</min><max>255</max></string></type><index>0</index></elem><text><p>Name of the header. Under normal circumstances this is    always lower-case, but no check is currently performed.</p>   </text></group><group><elem><type><string><min>0</min><max>255</max></string></type><index>1</index></elem><text><p>Value of the header.</p>   </text></group></array>   </text></group><group><seealso/><text><p><ref resolved='predef::HPack.Context.add_header'>add_header()</ref></p>   </text></group></doc>   <method name='get_indexed_header'>   <arguments><argument name='index'><type><int><min>1</min><max/></int></type></argument></arguments>   <returntype><array><valuetype><string><min>0</min><max>255</max></string></valuetype></array></returntype>
autodoc.git/onepage.xml:85718:   <doc><text><p>This is the interface for iterator objects. They implement an    interface to a collection or stream of data items and a cursor    that can be used to iterate over and examine individual items in    the data set.</p>   <p> Iterators are typically created to access a data set in some    specific object, array, mapping, multiset or string. An object can    have several iterators that access different data sets in it, or    the same in different ways. E.g. strings have both an iterator for    access char-by-char (<ref resolved='predef::String.Iterator'>String.Iterator</ref>), and another for access    over splitted substrings (<ref resolved='predef::String.SplitIterator'>String.SplitIterator</ref>). -  <ref>lfun::_get_iterator</ref> may be defined in an object to get an +  <ref resolved='lfun::_get_iterator'>lfun::_get_iterator</ref> may be defined in an object to get an    instance of the canonical iterator type for it. It's used by e.g.    <ref>foreach</ref> to iterate over objects conveniently.</p>   <p> It's not an error to advance an iterator past the beginning or end    of the data set; <ref resolved='predef::Iterator.`!'>`!()</ref> will only return true then, and <ref resolved='predef::Iterator.index'>index</ref> -  and <ref resolved='predef::Iterator.value'>value</ref> will return <ref>UNDEFINED</ref>. An iterator in that state +  and <ref resolved='predef::Iterator.value'>value</ref> will return <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref>. An iterator in that state    need not keep track of positions, so it's undefined what happens    if it's "moved back" into the set of items.</p>   <p> Backward movement for iterators is optional. It's supported if and    only if <ref resolved='predef::Iterator.`-'>`-()</ref> is defined, but even then it's undefined how far    back the iterator can move. Therefore iterators may support only a    limited amount of backward movement, e.g. when they access a    stream through a limited buffer. If such an iterator is moved back    past the limit then it'll behave as if it's pointing entirely    outside the data set (see above).</p>   <p> An iterator that doesn't support backward movement at all should    throw an error if it's attempted.</p> - </text><group><seealso/><text><p><ref resolved='predef::get_iterator'>predef::get_iterator</ref>, <ref>lfun::_get_iterator</ref>, + </text><group><seealso/><text><p><ref resolved='predef::get_iterator'>predef::get_iterator</ref>, <ref resolved='lfun::_get_iterator'>lfun::_get_iterator</ref>,    <ref resolved='predef::Array.Iterator'>Array.Iterator</ref>, <ref resolved='predef::Mapping.Iterator'>Mapping.Iterator</ref>, <ref resolved='predef::Multiset.Iterator'>Multiset.Iterator</ref>,    <ref resolved='predef::String.Iterator'>String.Iterator</ref>, <ref resolved='predef::String.SplitIterator'>String.SplitIterator</ref>.</p>   </text></group></doc>   <docgroup homogen-name='_random' homogen-type='method'><doc><text><p>If this function is defined then it sets the iterator to point    to a random item in the accessible set. The random distribution    should be rectangular within that set, and the pseudorandom    sequence provided by <ref resolved='predef::Iterator._random.random'>random</ref> should be used.</p>   </text></doc>   <method name='_random'><modifiers><optional/></modifiers>   <arguments><argument name='random_string'><type><function/></type></argument><argument name='random'><type><function/></type></argument></arguments>
autodoc.git/onepage.xml:85844:   </text></group><group><note/><text><p>It's not enough to set the iterator to the earliest accessible    item. If the iterator doesn't support backing up to the    original start position then this function should not be    implemented.</p>   </text></group></doc>   <method name='first'><modifiers><optional/></modifiers>   <arguments/>   <returntype><int><min>0</min><max>1</max></int></returntype>   </method>   </docgroup> - <docgroup homogen-name='index' homogen-type='method'><doc><text><p>Returns the current index, or <ref>UNDEFINED</ref> if the iterator + <docgroup homogen-name='index' homogen-type='method'><doc><text><p>Returns the current index, or <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> if the iterator    doesn't point to any item.</p>   <p> If there's no obvious index set then the index is the current    position in the data set, counting from <expr>0</expr> (zero).</p>   </text></doc>   <method name='index'>   <arguments/>   <returntype><mixed/></returntype>   </method>   </docgroup>   <docgroup homogen-name='next' homogen-type='method'><doc><text><p>If this function is defined it should advance the iterator one
autodoc.git/onepage.xml:85878:   <docgroup homogen-name='set_index' homogen-type='method'><doc><text><p>If this function is defined it should set the iterator at    the specified index.</p>   </text><group><note/><text><p>It should be possible to set the index at the end of    the iterator.</p>   </text></group></doc>   <method name='set_index'><modifiers><optional/></modifiers>   <arguments><argument name='index'><type><zero/></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup> - <docgroup homogen-name='value' homogen-type='method'><doc><text><p>Returns the current value, or <ref>UNDEFINED</ref> if the iterator + <docgroup homogen-name='value' homogen-type='method'><doc><text><p>Returns the current value, or <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> if the iterator    doesn't point to any item.</p>   </text></doc>   <method name='value'>   <arguments/>   <returntype><mixed/></returntype>   </method>   </docgroup>   </class>      
autodoc.git/onepage.xml:88358:   </text></group><group><returns/><text><p>The a description of the path.</p>   </text></group><group><note/><text><p>The returned description will end with a proper indexing method    currently either <expr>"."</expr> or <expr>"-&gt;"</expr>.</p>   </text></group></doc>   <method name='describe_module'>   <arguments><argument name='mod'><type><or><object resolved='predef::MasterObject.describe_module'/><program/></or></type></argument><argument name='ret_obj'><type><or><array><valuetype><object resolved='predef::MasterObject.describe_module'/></valuetype></array><void/></or></type></argument></arguments>   <returntype><string/></returntype>   </method>   </docgroup>   <docgroup homogen-name='describe_object' homogen-type='method'><doc><text><p>Function called by <expr>sprintf("%O")</expr> for objects that don't -  have an <ref>lfun::_sprintf()</ref>, or have one that returns <expr>UNDEFINED</expr>.</p> +  have an <ref resolved='lfun::_sprintf'>lfun::_sprintf()</ref>, or have one that returns <expr>UNDEFINED</expr>.</p>   </text></doc>   <method name='describe_object'>   <arguments><argument name='o'><type><object resolved='predef::MasterObject.describe_object'/></type></argument></arguments>   <returntype><string/></returntype>   </method>   </docgroup>   <docgroup homogen-name='describe_program' homogen-type='method'><doc><text><p>Function called by <expr>sprintf("%O")</expr> for programs.</p>   </text></doc>   <method name='describe_program'>   <arguments><argument name='p'><type><or><program/><function/></or></type></argument></arguments>
autodoc.git/onepage.xml:88681:    to <ref resolved='predef::Stdio.stderr'>Stdio.stderr</ref>.</p>   </text></group><group><note/><text><p>This function runs in a signal handler context, and should thus    avoid handling of mutexes, etc.</p>   </text></group><group><seealso/><text><p><ref>get_thread_quanta()</ref>, <ref>set_thread_quanta()</ref></p>   </text></group></doc>   <method name='thread_quanta_exceeded'>   <arguments><argument name='thread'><type><object resolved='predef::Thread.Thread'>Thread.Thread</object></type></argument><argument name='ns'><type><int/></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup> + <docgroup homogen-name='unregister' homogen-type='method'><doc><text><p>Unregister a program that was only partially compiled.</p> + <p> Called by <ref resolved='predef::compile'>compile()</ref> to clean up references to partially compiled +  programs.</p> + </text><group><param name='p'/><text><p>Partially compiled program that should no longer be referenced.</p> + </text></group><group><fixme/><text><p>Shouldn't this function be in the compilation handler?</p> + </text></group></doc> + <method name='unregister'> + <arguments><argument name='p'><type><program/></type></argument></arguments> + <returntype><void/></returntype> + </method> + </docgroup>   <docgroup homogen-name='want_warnings' homogen-type='variable'><doc><text><p>If not zero compilation warnings will be written out on stderr.</p>   </text></doc>   <variable name='want_warnings'><type><int/></type></variable>   </docgroup>   <class name='Codec'>   <doc><text><p><ref resolved='predef::MasterObject.Encoder'>Encoder</ref> and <ref resolved='predef::MasterObject.Decoder'>Decoder</ref> rolled into one. This is for mainly    compatibility; there's typically no use combining encoding and    decoding into the same object.</p>   </text></doc>   <docgroup homogen-name='create' homogen-type='method'><doc><text><p>The optional argument is the thing to encode; it's passed on to
autodoc.git/onepage.xml:88862:   <p> This function performs the reverse operation of <ref resolved='predef::MasterObject.CompatResolver.add_program_path'>add_program_path()</ref>.</p>   </text><group><seealso/><text><p><ref resolved='predef::MasterObject.CompatResolver.add_program_path'>add_program_path()</ref></p>   </text></group></doc>   <method name='remove_program_path'>   <arguments><argument name='tmp'><type><string/></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup>   <docgroup homogen-name='resolv' homogen-type='method'><doc><text><p>Resolve the <ref resolved='predef::MasterObject.CompatResolver.resolv.identifier'>identifier</ref> expression.</p>   </text><group><returns/><text><p>Returns the value of the <ref resolved='predef::MasterObject.CompatResolver.resolv.identifier'>identifier</ref> if it exists, -  and <ref>UNDEFINED</ref> otherwise.</p> +  and <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> otherwise.</p>   </text></group></doc>   <method name='resolv'>   <arguments><argument name='identifier'><type><string/></type></argument><argument name='current_file'><type><or><string/><void/></or></type></argument><argument name='current_handler'><type><or><object resolved='predef::MasterObject.CompatResolver.resolv'/><void/></or></type></argument><argument name='current_compat_handler'><type><or><object resolved='predef::MasterObject.CompatResolver.resolv'/><void/></or></type></argument></arguments>   <returntype><mixed/></returntype>   </method>   </docgroup>   <docgroup homogen-name='resolv_base' homogen-type='method'><doc><text><p>Look up <ref resolved='predef::MasterObject.CompatResolver.resolv_base.identifier'>identifier</ref> in the root module.</p>   </text></doc>   <method name='resolv_base'>   <arguments><argument name='identifier'><type><string/></type></argument><argument name='current_file'><type><or><string/><void/></or></type></argument><argument name='current_handler'><type><or><object resolved='predef::MasterObject.CompatResolver.resolv_base'/><void/></or></type></argument><argument name='current_compat_handler'><type><or><object resolved='predef::MasterObject.CompatResolver.resolv_base'/><void/></or></type></argument></arguments>   <returntype><mixed/></returntype>   </method>   </docgroup>   <docgroup homogen-name='resolv_or_error' homogen-type='method'><doc><text><p>Same as <ref resolved='predef::MasterObject.CompatResolver.resolv'>resolv</ref>, but throws an error instead of returning -  <ref>UNDEFINED</ref> if the resolv failed.</p> +  <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> if the resolv failed.</p>   </text></doc>   <method name='resolv_or_error'>   <arguments><argument name='identifier'><type><string/></type></argument><argument name='current_file'><type><or><string/><void/></or></type></argument><argument name='current_handler'><type><or><void/><object resolved='predef::MasterObject.CompatResolver.resolv_or_error'/></or></type></argument></arguments>   <returntype><mixed/></returntype>   </method>   </docgroup>   <docgroup homogen-name='root_module' homogen-type='variable'><doc><text><p>Join node of the root modules for this resolver.</p>   </text></doc>   <variable name='root_module'><type><object resolved='predef::MasterObject.joinnode'>joinnode</object></type></variable>   </docgroup>
autodoc.git/onepage.xml:88908:   <method name='create'><modifiers><protected/></modifiers>   <arguments><argument name='fname'><type><or><void/><string/></or></type></argument><argument name='mkobj'><type><or><void/><int/></or></type></argument><argument name='handler'><type><or><void/><object resolved='predef::MasterObject.Decoder.create'/></or></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup>   <docgroup homogen-name='decode_object' homogen-type='method'><doc><text><p>Restore the state of an encoded object.</p>   </text><group><param name='o'/><text><p>Object to modify.</p>   </text></group><group><param name='data'/><text><p>State information from <ref>Encoder()-&gt;encode_object()</ref>.</p>   <p> The default implementation calls <expr>o-&gt;_decode(data)</expr>    if the object has an <expr>_decode()</expr>, otherwise if -  <ref resolved='predef::MasterObject.Decoder.decode_object.data'>data</ref> is an array, returns it to indicate that <ref>lfun::create()</ref> +  <ref resolved='predef::MasterObject.Decoder.decode_object.data'>data</ref> is an array, returns it to indicate that <ref resolved='lfun::create'>lfun::create()</ref>    should be called.</p> - </text></group><group><note/><text><p>This function is called <b>before</b> <ref>lfun::create()</ref> -  in the object has been called, but after <ref>lfun::__INIT()</ref> + </text></group><group><note/><text><p>This function is called <b>before</b> <ref resolved='lfun::create'>lfun::create()</ref> +  in the object has been called, but after <ref resolved='lfun::__INIT'>lfun::__INIT()</ref>    has been called.</p>   </text></group><group><returns/><text><p>Returns an array to indicate to the caller that -  <ref>lfun::create()</ref> should be called with the elements +  <ref resolved='lfun::create'>lfun::create()</ref> should be called with the elements    of the array as arguments.</p> - <p> Returns <expr>0</expr> (zero) to inhibit calling of <ref>lfun::create()</ref>.</p> + <p> Returns <expr>0</expr> (zero) to inhibit calling of <ref resolved='lfun::create'>lfun::create()</ref>.</p>   </text></group><group><seealso/><text><p><ref>Encoder()-&gt;encode_object()</ref></p>   </text></group></doc>   <method name='decode_object'>   <arguments><argument name='o'><type><object resolved='predef::MasterObject.Decoder.decode_object'/></type></argument><argument name='data'><type><mixed/></type></argument></arguments>   <returntype><array><valuetype><mixed/></valuetype></array></returntype>   </method>   </docgroup>   <docgroup homogen-type='variable'>   <variable name='fname'><type><or><void/><string/></or></type></variable>   <variable name='mkobj'><type><or><void/><int/></or></type></variable>
autodoc.git/onepage.xml:90496:   </text></group><group><param name='table_refs'/><text><p>Optional other tables to join into the SELECT. This is inserted    between "FROM <ref resolved='predef::Mysql.SqlTable.table'>table</ref>" and "WHERE".</p>   </text></group><group><param name='rest'/><text><p>Optional clauses that follows after the WHERE clause, e.g. ORDER    BY, GROUP BY, and LIMIT. It may be given as an array to use    bindings or <expr>sprintf</expr>-style formatting - see    <ref resolved='predef::Mysql.SqlTable.handle_argspec'>handle_argspec</ref> for details.</p>   </text></group><group><param name='select_flags'/><text><p>Flags for the SELECT statement. If this string is given, it is    simply inserted directly after the "SELECT" keyword.</p>   </text></group><group><returns/><text><p>Returns an array with the values in the selected column. If a    property is retrieved and some rows don't have the wanted property -  then <ref>UNDEFINED</ref> is put into those elements.</p> +  then <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> is put into those elements.</p>   </text></group><group><seealso/><text><p><ref resolved='predef::Mysql.SqlTable.select'>select</ref>, <ref resolved='predef::Mysql.SqlTable.get'>get</ref>, <ref resolved='predef::Mysql.SqlTable.get_multi'>get_multi</ref></p>   </text></group></doc>   <method name='select1'>   <arguments><argument name='select_expr'><type><or><string/><array/></or></type></argument><argument name='where'><type><or><string/><array/></or></type></argument><argument name='table_refs'><type><or><void/><string/></or></type></argument><argument name='rest'><type><or><void/><string/><array/></or></type></argument><argument name='select_flags'><type><or><void/><string/></or></type></argument></arguments>   <returntype><array/></returntype>   </method>   </docgroup>   <docgroup homogen-name='table' homogen-type='variable'><doc><text><p>The table to query or change. Do not change.</p>   </text></doc>   <variable name='table'><type><string/></type></variable>
autodoc.git/onepage.xml:93919:   <arguments><argument name='curve'><type><int><min>0</min><max/></int></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup>   <docgroup homogen-name='ECC_Curve' homogen-type='inherit'>   <inherit name='ECC_Curve'><classname resolved='predef::__builtin.Nettle.ECC_Curve'>__builtin.Nettle.ECC_Curve</classname></inherit>   </docgroup>   <docgroup homogen-name='jose_name' homogen-type='method'><doc><text><p>Returns the name of the curve according to JOSE    (<rfc>7518:6.2.1.1</rfc>).</p>   </text><group><returns/><text><p>Returns the JOSE name for supported curves, -  and <ref>UNDEFINED</ref> otherwise.</p> +  and <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> otherwise.</p>   </text></group><group><seealso/><text><p><ref resolved='predef::Nettle.ECC_Curve.name'>name()</ref></p>   </text></group></doc>   <method name='jose_name'>   <arguments/>   <returntype><string><min>0</min><max>127</max></string></returntype>   </method>   </docgroup>   <docgroup homogen-name='name' homogen-type='method'><doc><text><p>Returns the name of the curve.</p>   </text><group><seealso/><text><p><ref resolved='predef::Nettle.ECC_Curve.jose_name'>jose_name()</ref></p>   </text></group></doc>
autodoc.git/onepage.xml:95093:   </text><group><seealso/><text><p><ref resolved='predef::Nettle.Yarrow.create'>create</ref></p>   </text></group></doc>   <method name='update'>   <arguments><argument name='data'><type><string><min>0</min><max>255</max></string></type></argument><argument name='source'><type><int/></type></argument><argument name='entropy'><type><int/></type></argument></arguments>   <returntype><int><min>0</min><max>1</max></int></returntype>   </method>   </docgroup>   </class>   </module>   <module name='Object'> - <docgroup homogen-type='constant'><doc><text><p>Flags passed to <ref>lfun::_destruct</ref>.</p> + <docgroup homogen-type='constant'><doc><text><p>Flags passed to <ref resolved='lfun::_destruct'>lfun::_destruct</ref>.</p>   </text><group><note/><text><p><ref resolved='predef::Object.DESTRUCT_EXPLICIT'>Object.DESTRUCT_EXPLICIT</ref> is <expr>0</expr> and    <ref resolved='predef::Object.DESTRUCT_CLEANUP'>Object.DESTRUCT_CLEANUP</ref> is <expr>1</expr> for compatibility.</p>   </text></group></doc>   <constant name='DESTRUCT_EXPLICIT'/>   <constant name='DESTRUCT_NO_REFS'/>   <constant name='DESTRUCT_GC'/>   <constant name='DESTRUCT_CLEANUP'/>   </docgroup>   <docgroup homogen-name='' homogen-type='import'>   <import name=''><classname resolved='predef::'>predef::</classname></import>
autodoc.git/onepage.xml:98896:   <returntype><void/></returntype>   </method>   </docgroup>   <docgroup homogen-name='get_element_by_id' homogen-type='method'><doc><text><p>Find the element with the specified id.</p>   </text><group><param name='id'/><text><p>The XML id of the node to search for.</p>   </text></group><group><param name='force'/><text><p>Force a regeneration of the id lookup cache.    Needed the first time after the node tree has been    modified by adding or removing element nodes, or    by changing the id attribute of an element node.</p>   </text></group><group><returns/><text><p>Returns the element node with the specified id -  if any. Returns <ref>UNDEFINED</ref> otherwise.</p> +  if any. Returns <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> otherwise.</p>   </text></group><group><seealso/><text><p><ref resolved='predef::Parser.XML.Tree.RootNode.flush_node_id_cache'>flush_node_id_cache</ref></p>   </text></group></doc>   <method name='get_element_by_id'>   <arguments><argument name='id'><type><string/></type></argument><argument name='force'><type><or><int/><void/></or></type></argument></arguments>   <returntype><object resolved='predef::Parser.XML.Tree.ElementNode'>ElementNode</object></returntype>   </method>   </docgroup>   <docgroup homogen-name='Node' homogen-type='inherit'>   <inherit name='Node'><classname resolved='predef::Parser.XML.Tree.Node'>Node</classname></inherit>   </docgroup>
autodoc.git/onepage.xml:99057:   <returntype><void/></returntype>   </method>   </docgroup>   <docgroup homogen-name='get_element_by_id' homogen-type='method'><doc><text><p>Find the element with the specified id.</p>   </text><group><param name='id'/><text><p>The XML id of the node to search for.</p>   </text></group><group><param name='force'/><text><p>Force a regeneration of the id lookup cache.    Needed the first time after the node tree has been    modified by adding or removing element nodes, or    by changing the id attribute of an element node.</p>   </text></group><group><returns/><text><p>Returns the element node with the specified id -  if any. Returns <ref>UNDEFINED</ref> otherwise.</p> +  if any. Returns <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> otherwise.</p>   </text></group><group><seealso/><text><p><ref resolved='predef::Parser.XML.Tree.SimpleRootNode.flush_node_id_cache'>flush_node_id_cache</ref></p>   </text></group></doc>   <method name='get_element_by_id'>   <arguments><argument name='id'><type><string/></type></argument><argument name='force'><type><or><int/><void/></or></type></argument></arguments>   <returntype><object resolved='predef::Parser.XML.Tree.SimpleElementNode'>SimpleElementNode</object></returntype>   </method>   </docgroup>   <docgroup homogen-name='SimpleNode' homogen-type='inherit'>   <inherit name='SimpleNode'><classname resolved='predef::Parser.XML.Tree.SimpleNode'>SimpleNode</classname></inherit>   </docgroup>
autodoc.git/onepage.xml:99473:   </module>   </module>   </module>   <module name='Pike'>   <docgroup homogen-name='Backend' homogen-type='constant'><doc><text><p>The class of the <ref resolved='predef::Pike.DefaultBackend'>DefaultBackend</ref>.</p>   <p> Typically something that has inherited <ref resolved='predef::Pike.__Backend'>__Backend</ref>.</p>   </text><group><seealso/><text><p><ref resolved='predef::Pike.__Backend'>__Backend</ref>, <ref resolved='predef::Pike.DefaultBackend'>DefaultBackend</ref></p>   </text></group></doc>   <constant name='Backend'><modifiers><local/></modifiers></constant>   </docgroup> - <docgroup homogen-type='constant'><doc><text><p>Used with <ref resolved='predef::`[..]'>predef::`[..]</ref> and <ref>lfun::`[..]</ref> to specify how the + <docgroup homogen-type='constant'><doc><text><p>Used with <ref resolved='predef::`[..]'>predef::`[..]</ref> and <ref resolved='lfun::`[..]'>lfun::`[..]</ref> to specify how the    corresponding index maps to an upper or lower range bound:</p>   <dl><group><item name='INDEX_FROM_BEG'/><text><p>The index is relative to the beginning of the string or array    (or any other sequence implemented through an object).    Sequences typically start at zero.</p>   </text></group><group><item name='INDEX_FROM_END'/><text><p>The index is relative to the end of the sequence. In strings    and arrays, the last element is at zero, the one before that    at one, etc.</p>   </text></group><group><item name='OPEN_BOUND'/><text><p>The range is open in the corresponding direction. The index is    irrelevant in this case.</p>   </text></group></dl>
autodoc.git/onepage.xml:111412:   </docgroup>   <docgroup homogen-name='random' homogen-type='method'><doc><text><p>This function returns a random number in the range    <expr>0 .. <ref resolved='predef::RandomInterface.random.max'>max</ref>-1</expr>.</p>   </text><group><seealso/><text><p><ref resolved='predef::Random'>Random</ref></p>   </text></group></doc>   <method name='random'>   <arguments><argument name='max'><type><int/></type></argument></arguments>   <returntype><int/></returntype>   </method>   </docgroup> - <docgroup homogen-name='random' homogen-type='method'><doc><text><p>If random is called with an object, <ref>lfun::_random</ref> will be + <docgroup homogen-name='random' homogen-type='method'><doc><text><p>If random is called with an object, <ref resolved='lfun::_random'>lfun::_random</ref> will be    called in the object.</p>   </text><group><throws/><text><p>Throws an exception if the object doesn't have a _random method.</p> - </text></group><group><seealso/><text><p><ref>lfun::_random()</ref></p> + </text></group><group><seealso/><text><p><ref resolved='lfun::_random'>lfun::_random()</ref></p>   </text></group></doc>   <method name='random'>   <arguments><argument name='o'><type><object resolved='predef::RandomInterface.random'/></type></argument></arguments>   <returntype><mixed/></returntype>   </method>   </docgroup>   <docgroup homogen-name='random' homogen-type='method'><doc><text><p>Returns a random element from <ref resolved='predef::RandomInterface.random.x'>x</ref>.</p>   </text><group><throws/><text><p>Throws an exception if the array or multiset is empty.</p>   </text></group></doc>   <method name='random'>
autodoc.git/onepage.xml:113816:   </docgroup>   </class>   <class name='Surface'>   <doc><text><p>Surface's represent areas of "graphical" memory, memory that can    be drawn to. The video framebuffer is returned as a    <ref resolved='predef::SDL.Surface'>SDL.Surface</ref> by <ref resolved='predef::SDL.set_video_mode'>SDL.set_video_mode()</ref> and    <ref resolved='predef::SDL.get_video_surface'>SDL.get_video_surface()</ref>.</p>   </text></doc>   <docgroup homogen-name='blit' homogen-type='method'><doc><text><p>Perform a blit from this surface to the <ref resolved='predef::SDL.Surface.blit.dst'>dst</ref> surface.</p>   </text><group><param name='dst'/><text><p>Destination <ref resolved='predef::SDL.Surface'>Surface</ref> for the blit.</p> - </text></group><group><param name='srcrect'/><text><p>Optional source <ref resolved='predef::SDL.Rect'>Rect</ref>. If <ref>UNDEFINED</ref> the entire source <ref resolved='predef::SDL.Surface'>Surface</ref> + </text></group><group><param name='srcrect'/><text><p>Optional source <ref resolved='predef::SDL.Rect'>Rect</ref>. If <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> the entire source <ref resolved='predef::SDL.Surface'>Surface</ref>    will be copied.</p>   </text></group><group><param name='dstrect'/><text><p>Optional destination <ref resolved='predef::SDL.Rect'>Rect</ref>. Only the position fields -  <tt>x</tt> and <tt>y</tt> values are used. If <ref>UNDEFINED</ref> the +  <tt>x</tt> and <tt>y</tt> values are used. If <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> the    blit will be performed to position <tt>0, 0</tt>.</p>   </text></group></doc>   <method name='blit'>   <arguments><argument name='dst'><type><object resolved='predef::SDL.Surface'>SDL.Surface</object></type></argument><argument name='srcrect'><type><or><object resolved='predef::SDL.Rect'>SDL.Rect</object><void/></or></type></argument><argument name='dstrect'><type><or><object resolved='predef::SDL.Rect'>SDL.Rect</object><void/></or></type></argument></arguments>   <returntype><object resolved='predef::SDL.Surface.blit'/></returntype>   </method>   </docgroup>   <docgroup homogen-name='clip_rect' homogen-type='variable'><doc><text><p>This is the clipping rectangle as set by <ref resolved='predef::SDL.Surface.set_clip_rect'>set_clip_rect()</ref>.</p>   </text></doc>   <variable name='clip_rect'><type><object resolved='predef::SDL.Rect'>SDL.Rect</object></type></variable>
autodoc.git/onepage.xml:114773:   </docgroup>   <docgroup homogen-name='KeyExchange' homogen-type='inherit'>   <inherit name='KeyExchange'><classname resolved='predef::SSL.Cipher.KeyExchange'>KeyExchange</classname></inherit>   </docgroup>   <docgroup homogen-name='parameters' homogen-type='variable'><doc><text><p>Finite field Diffie-Hellman parameters.</p>   </text></doc>   <variable name='parameters'><type><object resolved='predef::Crypto.DH.Parameters'>Crypto.DH.Parameters</object></type></variable>   </docgroup>   <docgroup homogen-name='set_other' homogen-type='method'><doc><text><p>Set the value received from the peer.</p>   </text><group><returns/><text><p>Returns <expr>1</expr> if <ref resolved='predef::SSL.Cipher.KeyExchangeDHE.set_other.o'>o</ref> is valid for the set <ref resolved='predef::SSL.Cipher.KeyExchangeDHE.parameters'>parameters</ref>.</p> - <p> Otherwise returns <ref>UNDEFINED</ref>.</p> + <p> Otherwise returns <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref>.</p>   </text></group></doc>   <method name='set_other'><modifiers><protected/></modifiers>   <arguments><argument name='o'><type><object>Gmp.smpz</object></type></argument></arguments>   <returntype><int><min>0</min><max>1</max></int></returntype>   </method>   </docgroup>   </class>   <class name='KeyExchangeDHEPSK'>   <doc><text><p>Key exchange for <ref resolved='predef::SSL.Constants.KeyExchangeType.KE_dhe_psk'>KE_dhe_psk</ref>.</p>   </text></doc>
autodoc.git/onepage.xml:116021:   </docgroup>   <docgroup homogen-name='filter_weak_suites' homogen-type='method'><doc><text><p>Filter cipher suites from <ref resolved='predef::SSL.Context.preferred_suites'>preferred_suites</ref> that don't have a    key with an effective length of at least <ref resolved='predef::SSL.Context.filter_weak_suites.min_keylength'>min_keylength</ref> bits.</p>   </text></doc>   <method name='filter_weak_suites'>   <arguments><argument name='min_keylength'><type><int/></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup>   <docgroup homogen-name='find_cert_domain' homogen-type='method'><doc><text><p>Look up a suitable set of certificates for the specified domain. -  <ref>UNDEFINED</ref> if no certificate was found. Called only by the +  <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> if no certificate was found. Called only by the    Server.</p>   </text></doc>   <method name='find_cert_domain'>   <arguments><argument name='domain'><type><string><min>0</min><max>255</max></string></type></argument></arguments>   <returntype><array><valuetype><object resolved='predef::SSL.Constants.CertificatePair'>CertificatePair</object></valuetype></array></returntype>   </method>   </docgroup>   <docgroup homogen-name='find_cert_issuer' homogen-type='method'><doc><text><p>Look up a suitable set of certificates for the specified issuer.    <ref>UNDEFIEND</ref> if no certificate was found. Called only by the    ClientConnection as a response to a certificate request.</p>
autodoc.git/onepage.xml:116783:    will be returned after any already received data.</p>   </text></group><group><param name='out'/><text><p>Output buffer. If this buffer is non-empty, its contents    will be sent after any data already queued for sending.</p>   </text></group><group><seealso/><text><p><ref resolved='predef::SSL.File.query_buffer_mode'>query_buffer_mode()</ref></p>   </text></group></doc>   <method name='set_buffer_mode'>   <arguments><argument name='in'><type><or><object resolved='predef::Stdio.Buffer'>Stdio.Buffer</object><int><min>0</min><max>0</max></int></or></type></argument><argument name='out'><type><or><object resolved='predef::Stdio.Buffer'>Stdio.Buffer</object><int><min>0</min><max>0</max></int></or></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup> - <docgroup homogen-name='set_callbacks' homogen-type='method'><doc><text><p>Installs all the specified callbacks at once. Use <ref>UNDEFINED</ref> + <docgroup homogen-name='set_callbacks' homogen-type='method'><doc><text><p>Installs all the specified callbacks at once. Use <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref>    to keep the current setting for a callback.</p>   <p> Like <ref resolved='predef::SSL.File.set_nonblocking'>set_nonblocking</ref>, the callbacks are installed atomically.    As opposed to <ref resolved='predef::SSL.File.set_nonblocking'>set_nonblocking</ref>, this function does not do    anything with the stream, and it doesn't even have to be open.</p>   </text><group><bugs/><text><p><ref resolved='predef::SSL.File.set_callbacks.read_oob'>read_oob</ref> and <ref resolved='predef::SSL.File.set_callbacks.write_oob'>write_oob</ref> are currently ignored.</p>   </text></group><group><seealso/><text><p><ref resolved='predef::SSL.File.set_read_callback'>set_read_callback</ref>, <ref resolved='predef::SSL.File.set_write_callback'>set_write_callback</ref>,    <ref resolved='predef::SSL.File.set_close_callback'>set_close_callback</ref>, <ref resolved='predef::SSL.File.set_accept_callback'>set_accept_callback</ref>, <ref resolved='predef::SSL.File.query_callbacks'>query_callbacks</ref></p>   </text></group></doc>   <method name='set_callbacks'>   <arguments><argument name='read'><type><or><void/><object resolved='predef::Stdio.read_callback_t'>Stdio.read_callback_t</object></or></type></argument><argument name='write'><type><or><void/><object resolved='predef::Stdio.write_callback_t'>Stdio.write_callback_t</object></or></type></argument><argument name='close'><type><or><void/><function><argtype><mixed/></argtype><returntype><int/></returntype></function></or></type></argument><argument name='read_oob'><type><or><void/><function><argtype><mixed/></argtype><argtype><string/></argtype><returntype><int/></returntype></function></or></type></argument><argument name='write_oob'><type><or><void/><function><argtype><mixed/></argtype><returntype><int/></returntype></function></or></type></argument><argument name='accept'><type><or><void/><function><argtype><or><void/><mixed/></or></argtype><returntype><int/></returntype></function></or></type></argument></arguments>
autodoc.git/onepage.xml:119270:   <code><text><p>SET character_set_client=<ref resolved='predef::Sql.mysql.big_query.charset'>charset</ref></p>   </text></code><p>is sent to the server first, then <ref resolved='predef::Sql.mysql.big_query.query'>query</ref> is sent as-is, and then    the connection charset is restored again (if necessary).</p>   <p> Primarily useful with <ref resolved='predef::Sql.mysql.big_query.charset'>charset</ref> set to <expr>"latin1"</expr> if    unicode encode mode (see <ref resolved='predef::Sql.mysql.set_unicode_encode_mode'>set_unicode_encode_mode</ref>) is enabled    (the default) and you have some large queries (typically blob    inserts) where you want to avoid the query parsing overhead.</p>   </text></group><group><returns/><text><p>A <ref resolved='predef::Mysql.mysql.Result'>Result</ref> object is returned if the query is of a    kind that returns a result. Zero is returned otherwise.</p>   <p> The individual fields are returned as strings except for <tt>NULL</tt>, -  which is returned as <ref>UNDEFINED</ref>.</p> +  which is returned as <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref>.</p>   </text></group><group><seealso/><text><p><ref>Sql.big_query()</ref>, <ref resolved='predef::Sql.mysql.big_typed_query'>big_typed_query()</ref>, <ref resolved='predef::Sql.mysql.streaming_query'>streaming_query()</ref></p>   </text></group></doc>   <method name='big_query'><modifiers><variant/></modifiers>   <arguments><argument name='query'><type><string/></type></argument><argument name='bindings'><type><or><mapping><indextype><or><string/><int/></or></indextype><valuetype><mixed/></valuetype></mapping><void/></or></type></argument><argument name='charset'><type><or><void/><string/></or></type></argument></arguments>   <returntype><object resolved='predef::Mysql.mysql.Result'>Result</object></returntype>   </method>   </docgroup>   <docgroup homogen-name='big_typed_query' homogen-type='method'><doc><text><p>Makes a typed SQL query.</p>   <p> This function sends the SQL query <ref resolved='predef::Sql.mysql.big_typed_query.query'>query</ref> to the MySQL server and    returns a result object in typed mode, which means that the types
autodoc.git/onepage.xml:123877:   <variable name='curve_lookup'><modifiers><protected/></modifiers><type><mapping><indextype><string/></indextype><valuetype><object resolved='predef::Crypto.ECC.Curve'>Crypto.ECC.Curve</object></valuetype></mapping></type></variable>   </docgroup>   <docgroup homogen-name='' homogen-type='import'>   <import name=''><classname resolved='predef::'>predef::</classname></import>   </docgroup>   <docgroup homogen-name='Types' homogen-type='import'>   <import name='Types'><classname resolved='predef::Standards.ASN1.Types'>Standards.ASN1.Types</classname></import>   </docgroup>   <docgroup homogen-name='parse_ec_parameters' homogen-type='method'><doc><text><p>Get the ECC curve corresponding to an ASN.1 DER encoded    named curve identifier.</p> - </text><group><returns/><text><p>Returns <ref>UNDEFINED</ref> if the curve is unsupported.</p> + </text><group><returns/><text><p>Returns <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> if the curve is unsupported.</p>   </text></group></doc>   <method name='parse_ec_parameters'>   <arguments><argument name='ec_parameters'><type><string/></type></argument></arguments>   <returntype><object resolved='predef::Crypto.ECC.Curve'>Crypto.ECC.Curve</object></returntype>   </method>   </docgroup>   <docgroup homogen-name='parse_ec_parameters' homogen-type='method'>   <method name='parse_ec_parameters'><modifiers><variant/></modifiers>   <arguments><argument name='named_curve'><type><or><object resolved='predef::Standards.ASN1.Types.Identifier'>Standards.ASN1.Types.Identifier</object><void/></or></type></argument></arguments>   <returntype><object resolved='predef::Crypto.ECC.Curve'>Crypto.ECC.Curve</object></returntype>
autodoc.git/onepage.xml:124929:    extension. <rfc>3280:4.2.1.2</rfc>.</p>   </text></doc>   <variable name='ext_subjectKeyIdentifier'><type><string/></type></variable>   </docgroup>   <docgroup homogen-name='extensions' homogen-type='variable'><doc><group><note/><text><p>optional</p>   </text></group><group><note/><text><p>Read only</p>   </text></group></doc>   <variable name='extensions'><type><mapping><indextype><object resolved='predef::Standards.ASN1.Types.Identifier'>Identifier</object></indextype><valuetype><object resolved='predef::Object'>Object</object></valuetype></mapping></type></variable>   </docgroup>   <docgroup homogen-name='hash' homogen-type='variable'><doc><text><p>Algorithm hash if known and supported. -  Otherwise <ref>UNDEFINED</ref>.</p> +  Otherwise <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref>.</p>   </text><group><note/><text><p>Read only</p>   </text></group></doc>   <variable name='hash'><type><object resolved='predef::Crypto.Hash'>Crypto.Hash</object></type></variable>   </docgroup>   <docgroup homogen-name='Sequence' homogen-type='inherit'>   <inherit name='Sequence'><classname resolved='predef::Standards.ASN1.Types.Sequence'>Sequence</classname></inherit>   </docgroup>   <docgroup homogen-name='init' homogen-type='method'><doc><text><p>Populates the object from a certificate decoded into an ASN.1    Object. Returns the object on success, otherwise <expr>0</expr>. You    probably want to call <ref resolved='predef::Standards.X509.decode_certificate'>decode_certificate</ref> or even
autodoc.git/onepage.xml:125638:   </method>   </docgroup>   <docgroup homogen-name='_search' homogen-type='method'><doc><text><p>Search forward from the indicated <ref resolved='predef::Stdio.Buffer._search.start'>start</ref> position for the specified    <ref resolved='predef::Stdio.Buffer._search.character'>character</ref>.</p>   </text><group><param name='character'/><text><p>Character to search for.</p>   </text></group><group><param name='start'/><text><p>Start position relative to the current read position of the buffer.</p>   <p> Negative <ref resolved='predef::Stdio.Buffer._search.start'>start</ref> values are supported and indicate positions    prior to the current read position.</p>   </text></group><group><param name='end'/><text><p>Don't search past this position of the buffer.</p>   </text></group><group><returns/><text><p>Returns the first found position of <ref resolved='predef::Stdio.Buffer._search.character'>character</ref> relative to the -  current read position of the buffer on success, and <ref>UNDEFINED</ref> +  current read position of the buffer on success, and <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref>    on not found. The read position is not advanced.</p> - </text></group><group><seealso/><text><p><ref resolved='predef::Stdio.Buffer.read_cstring'>read_cstring()</ref>, <ref resolved='predef::search'>search()</ref>, <ref>lfun::_search()</ref></p> + </text></group><group><seealso/><text><p><ref resolved='predef::Stdio.Buffer.read_cstring'>read_cstring()</ref>, <ref resolved='predef::search'>search()</ref>, <ref resolved='lfun::_search'>lfun::_search()</ref></p>   </text></group></doc>   <method name='_search'><modifiers><protected/></modifiers>   <arguments><argument name='character'><type><int><min>0</min><max>255</max></int></type></argument><argument name='start'><type><or><int/><void/></or></type></argument><argument name='end'><type><or><int/><void/></or></type></argument></arguments>   <returntype><int><min>-1</min><max/></int></returntype>   </method>   </docgroup>   <docgroup homogen-name='_search' homogen-type='method'><doc><text><p>Search forward from the indicated <ref resolved='predef::Stdio.Buffer._search.start'>start</ref> position for the specified    <ref resolved='predef::Stdio.Buffer._search.substring'>substring</ref>.</p>   </text><group><param name='substring'/><text><p>Substring to search for.</p>   </text></group><group><param name='start'/><text><p>Start position relative to the current read position of the buffer.</p>   <p> Negative <ref resolved='predef::Stdio.Buffer._search.start'>start</ref> values are supported and indicate positions    prior to the current read position.</p>   </text></group><group><param name='end'/><text><p>Don't search past this position of the buffer.</p>   </text></group><group><returns/><text><p>Returns the first found position of <ref resolved='predef::Stdio.Buffer._search.substring'>substring</ref> relative to the -  current read position of the buffer on success, and <ref>UNDEFINED</ref> +  current read position of the buffer on success, and <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref>    on not found. The read position is not advanced.</p> - </text></group><group><seealso/><text><p><ref resolved='predef::Stdio.Buffer.read_cstring'>read_cstring()</ref>, <ref resolved='predef::search'>search()</ref>, <ref>lfun::_search()</ref></p> + </text></group><group><seealso/><text><p><ref resolved='predef::Stdio.Buffer.read_cstring'>read_cstring()</ref>, <ref resolved='predef::search'>search()</ref>, <ref resolved='lfun::_search'>lfun::_search()</ref></p>   </text></group></doc>   <method name='_search'><modifiers><protected/></modifiers>   <arguments><argument name='substring'><type><string><min>0</min><max>255</max></string></type></argument><argument name='start'><type><or><int/><void/></or></type></argument><argument name='end'><type><or><int/><void/></or></type></argument></arguments>   <returntype><int><min>-1</min><max/></int></returntype>   </method>   </docgroup>   <docgroup homogen-name='_sizeof' homogen-type='method'><doc><text><p>Returns the buffer size, in bytes.    This is how much you can read from the buffer until it runs out of data.</p>   </text></doc>   <method name='_sizeof'>
autodoc.git/onepage.xml:128373:    re-occuring again).</p>   <p> This will work with buffered output mode as well, but simply    adding more data to the output buffer will work as well.</p>   </text></group><group><seealso/><text><p><ref resolved='predef::Stdio.File.query_buffer_mode'>query_buffer_mode()</ref></p>   </text></group></doc>   <method name='set_buffer_mode'>   <arguments><argument name='in'><type><or><object resolved='predef::Stdio.Buffer'>Stdio.Buffer</object><int><min>0</min><max>0</max></int></or></type></argument><argument name='out'><type><or><object resolved='predef::Stdio.Buffer'>Stdio.Buffer</object><int><min>0</min><max>0</max></int></or></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup> - <docgroup homogen-name='set_callbacks' homogen-type='method'><doc><text><p>Installs all the specified callbacks at once. Use <ref>UNDEFINED</ref> + <docgroup homogen-name='set_callbacks' homogen-type='method'><doc><text><p>Installs all the specified callbacks at once. Use <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref>    to keep the current setting for a callback.</p>   <p> Like <ref resolved='predef::Stdio.File.set_nonblocking'>set_nonblocking</ref>, the callbacks are installed atomically.    As opposed to <ref resolved='predef::Stdio.File.set_nonblocking'>set_nonblocking</ref>, this function does not do    anything with the stream, and it doesn't even have to be open.</p>   </text><group><seealso/><text><p><ref resolved='predef::Stdio.File.set_read_callback'>set_read_callback</ref>, <ref resolved='predef::Stdio.File.set_write_callback'>set_write_callback</ref>,    <ref resolved='predef::Stdio.File.set_read_oob_callback'>set_read_oob_callback</ref>, <ref resolved='predef::Stdio.File.set_write_oob_callback'>set_write_oob_callback</ref>,    <ref resolved='predef::Stdio.File.set_close_callback'>set_close_callback</ref>, <ref resolved='predef::Stdio.File.query_callbacks'>query_callbacks</ref></p>   </text></group></doc>   <method name='set_callbacks'>   <arguments><argument name='read_cb'><type><or><object resolved='predef::Stdio.read_callback_t'>read_callback_t</object><void/></or></type></argument><argument name='write_cb'><type><or><object resolved='predef::Stdio.write_callback_t'>write_callback_t</object><void/></or></type></argument><argument name='close_cb'><type><or><void/><function><argtype><mixed/></argtype><returntype><int/></returntype></function></or></type></argument><argument name='read_oob_cb'><type><or><void/><function><argtype><mixed/></argtype><argtype><string/></argtype><returntype><int/></returntype></function></or></type></argument><argument name='write_oob_cb'><type><or><void/><function><argtype><mixed/></argtype><returntype><int/></returntype></function></or></type></argument></arguments>
autodoc.git/onepage.xml:130297:   <method name='create'>   <arguments><argument name='headers'><type><array><valuetype><string/></valuetype></array></type></argument><argument name='from'><type><object resolved='predef::Stdio.sendfile.create'/></type></argument><argument name='offset'><type><int/></type></argument><argument name='len'><type><int/></type></argument><argument name='trailers'><type><array><valuetype><string/></valuetype></array></type></argument><argument name='to'><type><object resolved='predef::Stdio.sendfile.create'/></type></argument><argument name='callback'><type><function/></type></argument><argument name='args'><type><varargs><mixed/></varargs></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup>   </class>   </module>   <module name='String'>   <docgroup homogen-name='__HAVE_SPRINTF_NEGATIVE_F__' homogen-type='constant'><doc><text><p>Presence of this symbol indicates that <ref resolved='predef::sprintf'>sprintf()</ref> supports    little endian output for the <tt>'F'</tt>-format specifier.</p> - </text><group><seealso/><text><p><ref resolved='predef::sprintf'>sprintf()</ref>, <ref>lfun::_sprintf()</ref></p> + </text><group><seealso/><text><p><ref resolved='predef::sprintf'>sprintf()</ref>, <ref resolved='lfun::_sprintf'>lfun::_sprintf()</ref></p>   </text></group></doc>   <constant name='__HAVE_SPRINTF_NEGATIVE_F__'><type><int/></type></constant>   </docgroup>   <docgroup homogen-name='__HAVE_SPRINTF_STAR_MAPPING__' homogen-type='constant'><doc><text><p>Presence of this symbol indicates that <ref resolved='predef::sprintf'>sprintf()</ref> supports    mappings for the <tt>'*'</tt>-modifier syntax.</p> - </text><group><seealso/><text><p><ref resolved='predef::sprintf'>sprintf()</ref>, <ref>lfun::_sprintf()</ref></p> + </text><group><seealso/><text><p><ref resolved='predef::sprintf'>sprintf()</ref>, <ref resolved='lfun::_sprintf'>lfun::_sprintf()</ref></p>   </text></group></doc>   <constant name='__HAVE_SPRINTF_STAR_MAPPING__'><type><int/></type></constant>   </docgroup>   <docgroup homogen-name='capitalize' homogen-type='method'><doc><text><p>Convert the first character in <ref resolved='predef::String.capitalize.str'>str</ref> to upper case, and return the    new string.</p>   </text><group><seealso/><text><p><ref resolved='predef::lower_case'>lower_case()</ref>, <ref resolved='predef::upper_case'>upper_case()</ref></p>   </text></group></doc>   <method name='capitalize'>   <arguments><argument name='str'><type><string/></type></argument></arguments>   <returntype><string/></returntype>
autodoc.git/onepage.xml:130574:    strings together, or very large strings.</p>   </text><group><example/><text><p>For the fastest possible operation, write your code like this:</p>   <code><text><p>String.Buffer b = String.Buffer( );</p>   <p> function add = b-&gt;add;</p>   <p> .. call add several times in code ...</p>   <p> string result = b-&gt;get(); // also clears the buffer</p>   </text></code></text></group></doc>   <docgroup homogen-name='_search' homogen-type='method'><doc><text><p>Search for a <ref resolved='predef::String.Buffer._search.character'>character</ref> in the buffer, starting the scan    from <ref resolved='predef::String.Buffer._search.start'>start</ref> and ending at <ref resolved='predef::String.Buffer._search.end'>end</ref> (inclusive).</p>   </text><group><returns/><text><p>Returns to position in the buffer where the character was found -  on success, and <ref>UNDEFINED</ref> on failure.</p> - </text></group><group><seealso/><text><p><ref resolved='predef::Stdio.Buffer._search'>Stdio.Buffer()-&gt;_search()</ref>, <ref resolved='predef::search'>search()</ref>, <ref>lfun::_search()</ref></p> +  on success, and <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> on failure.</p> + </text></group><group><seealso/><text><p><ref resolved='predef::Stdio.Buffer._search'>Stdio.Buffer()-&gt;_search()</ref>, <ref resolved='predef::search'>search()</ref>, <ref resolved='lfun::_search'>lfun::_search()</ref></p>   </text></group></doc>   <method name='_search'>   <arguments><argument name='character'><type><int/></type></argument><argument name='start'><type><or><int/><void/></or></type></argument><argument name='end'><type><or><int/><void/></or></type></argument></arguments>   <returntype><int><min>0</min><max/></int></returntype>   </method>   </docgroup>   <docgroup homogen-name='_search' homogen-type='method'><doc><text><p>Search for a <ref resolved='predef::String.Buffer._search.substring'>substring</ref> in the buffer, starting the scan    from <ref resolved='predef::String.Buffer._search.start'>start</ref> and ending at <ref resolved='predef::String.Buffer._search.end'>end</ref> (inclusive).</p>   </text><group><returns/><text><p>Returns to position in the buffer where the substring was found -  on success, and <ref>UNDEFINED</ref> on failure.</p> - </text></group><group><seealso/><text><p><ref resolved='predef::Stdio.Buffer._search'>Stdio.Buffer()-&gt;_search()</ref>, <ref resolved='predef::search'>search()</ref>, <ref>lfun::_search()</ref></p> +  on success, and <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> on failure.</p> + </text></group><group><seealso/><text><p><ref resolved='predef::Stdio.Buffer._search'>Stdio.Buffer()-&gt;_search()</ref>, <ref resolved='predef::search'>search()</ref>, <ref resolved='lfun::_search'>lfun::_search()</ref></p>   </text></group></doc>   <method name='_search'>   <arguments><argument name='substring'><type><string/></type></argument><argument name='start'><type><or><int/><void/></or></type></argument><argument name='end'><type><or><int/><void/></or></type></argument></arguments>   <returntype><int><min>0</min><max/></int></returntype>   </method>   </docgroup>   <docgroup homogen-name='_sizeof' homogen-type='method'><doc><text><p>Returns the size of the buffer.</p>   </text></doc>   <method name='_sizeof'>   <arguments/>
autodoc.git/onepage.xml:133380:   <docgroup homogen-name='size' homogen-type='method'><doc><text><p>This function returns the number of elements currently in the fifo.</p>   </text><group><seealso/><text><p><ref resolved='predef::Thread.Fifo.read'>read()</ref>, <ref resolved='predef::Thread.Fifo.write'>write()</ref></p>   </text></group></doc>   <method name='size'>   <arguments/>   <returntype><int/></returntype>   </method>   </docgroup>   <docgroup homogen-name='try_read' homogen-type='method'><doc><text><p>This function retrieves a value from the fifo if there is any    there. Values will be returned in the order they were written. -  If there are no values present in the fifo then <ref>UNDEFINED</ref> +  If there are no values present in the fifo then <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref>    will be returned.</p>   </text><group><seealso/><text><p><ref resolved='predef::Thread.Fifo.read'>read()</ref></p>   </text></group></doc>   <method name='try_read'>   <arguments/>   <returntype><mixed/></returntype>   </method>   </docgroup>   <docgroup homogen-name='try_read_array' homogen-type='method'><doc><text><p>This function returns all values in the fifo as an array but    doesn't wait if there are no values there. The values in the
autodoc.git/onepage.xml:133634:   <docgroup homogen-name='size' homogen-type='method'><doc><text><p>This function returns the number of elements currently in the queue.</p>   </text><group><seealso/><text><p><ref resolved='predef::Thread.Queue.read'>read()</ref>, <ref resolved='predef::Thread.Queue.write'>write()</ref></p>   </text></group></doc>   <method name='size'>   <arguments/>   <returntype><int/></returntype>   </method>   </docgroup>   <docgroup homogen-name='try_read' homogen-type='method'><doc><text><p>This function retrieves a value from the queue if there is any    there. Values will be returned in the order they were written. -  If there are no values present in the fifo then <ref>UNDEFINED</ref> +  If there are no values present in the fifo then <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref>    will be returned.</p>   </text><group><seealso/><text><p><ref resolved='predef::Thread.Queue.write'>write()</ref></p>   </text></group></doc>   <method name='try_read'>   <arguments/>   <returntype><mixed/></returntype>   </method>   </docgroup>   <docgroup homogen-name='try_read_array' homogen-type='method'><doc><text><p>This function returns all values in the queue as an array but    doesn't wait if there are no values there. The values in the
autodoc.git/onepage.xml:137104:    different from the empty string). Pike natively uses the integer 0    (zero) for this, but since 0 also is a real integer it is    sometimes necessary to have a different value for null, and then    this object is preferably used.</p>   <p> This object is false in a boolean context. It does not cast to    anything, and it is not equal to anything else but other instances    of <ref resolved='predef::Val.Null'>Null</ref> (which should be avoided).</p>   <p> This object is used by the <ref resolved='predef::Sql'>Sql</ref> module to represent SQL NULL,    and it is used by <ref>Protocols.JSON</ref> to represent the JSON literal    <expr>null</expr>.</p> - </text><group><note/><text><p>Do not confuse the null value with <ref>UNDEFINED</ref>. Although -  <ref>UNDEFINED</ref> often is used to represent the lack of a real value, + </text><group><note/><text><p>Do not confuse the null value with <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref>. Although +  <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> often is used to represent the lack of a real value,    and it can be told apart from an ordinary zero integer with some    effort, it is transient in nature (for instance, it automatically    becomes an ordinary zero when inserted in a mapping). That makes    it unsuitable for use as a reliable null value.</p>   </text></group><group><note/><text><p>The correct way to programmatically recognize <ref resolved='predef::Val.null'>Val.null</ref> is    something like</p>   <code><text><p>if (objectp(something) &amp;&amp; ([object]something)-&gt;is_val_null) ...</p>   </text></code><p>That way it's possible for other code to replace it with an    extended class, or create their own variants which needs to behave    like <ref resolved='predef::Val.null'>Val.null</ref>.</p>
autodoc.git/onepage.xml:137624:   </text></doc>   <constant name='is_val_true'><type><int/></type></constant>   </docgroup>   </class>   </module>   <module name='Web'>   <doc><text><p>Modules implementing various web standards.</p>   </text></doc>   <docgroup homogen-name='decode_jwk' homogen-type='method'><doc><text><p>Decode a JSON Web Key (JWK).</p>   </text><group><returns/><text><p>Returns an initialized <ref resolved='predef::Crypto.Sign.State'>Crypto.Sign.State</ref> or <ref resolved='predef::Nettle.MAC.State'>Crypto.MAC.State</ref> -  on success and <ref>UNDEFINED</ref> on failure.</p> +  on success and <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> on failure.</p>   </text></group></doc>   <method name='decode_jwk'>   <arguments><argument name='jwk'><type><mapping><indextype><string><min>0</min><max>127</max></string></indextype><valuetype><string><min>0</min><max>127</max></string></valuetype></mapping></type></argument></arguments>   <returntype><or><object resolved='predef::Crypto.Sign.State'>Crypto.Sign.State</object><object resolved='predef::Nettle.MAC.State'>Crypto.MAC.State</object></or></returntype>   </method>   </docgroup>   <docgroup homogen-name='decode_jwk' homogen-type='method'><doc><text><p>Decode a JSON Web Key (JWK).</p>   </text><group><returns/><text><p>Returns an initialized <ref resolved='predef::Crypto.Sign.State'>Crypto.Sign.State</ref> or <ref resolved='predef::Nettle.MAC.State'>Crypto.MAC.State</ref> -  on success and <ref>UNDEFINED</ref> on failure.</p> +  on success and <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> on failure.</p>   </text></group></doc>   <method name='decode_jwk'><modifiers><variant/></modifiers>   <arguments><argument name='jwk'><type><string><min>0</min><max>255</max></string></type></argument></arguments>   <returntype><or><object resolved='predef::Crypto.Sign.State'>Crypto.Sign.State</object><object resolved='predef::Nettle.MAC.State'>Crypto.MAC.State</object></or></returntype>   </method>   </docgroup>   <docgroup homogen-name='decode_jwk_set' homogen-type='method'><doc><text><p>Decode a JSON Web Key (JWK) Set.</p>   </text><group><seealso/><text><p><rfc>7517:5</rfc>, <ref resolved='predef::Web.decode_jwk'>decode_jwk()</ref></p>   </text></group></doc>   <method name='decode_jwk_set'>
autodoc.git/onepage.xml:143798:   </class>   </class>   <class name='ECC_Curve'>   <doc><text><p>Base class for Elliptic Curve Definitions.</p>   </text><group><seealso/><text><p><ref resolved='predef::Crypto.ECC.Curve'>Crypto.ECC.Curve</ref>, <ref resolved='predef::Nettle.ECC_Curve'>Nettle.ECC_Curve</ref></p>   </text></group></doc>   <docgroup homogen-name='' homogen-type='import'>   <import name=''><classname resolved='predef::'>predef::</classname></import>   </docgroup>   <docgroup homogen-name='jose_name' homogen-type='method'><doc><text><p>Return the JOSE name of the Curve (if any).</p> - </text><group><returns/><text><p>The default implementation returns <ref>UNDEFINED</ref>.</p> + </text><group><returns/><text><p>The default implementation returns <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref>.</p>   </text></group></doc>   <method name='jose_name'>   <arguments/>   <returntype><string><min>0</min><max>127</max></string></returntype>   </method>   </docgroup>   <docgroup homogen-name='name' homogen-type='method'><doc><text><p>Return the name of the Curve.</p>   </text></doc>   <method name='name'><modifiers><extern/></modifiers>   <arguments/>
autodoc.git/onepage.xml:145794:   </docgroup>   <docgroup homogen-name='`[]=' homogen-type='method'><doc><text><p>String assign index operator.</p>   </text></doc>   <method name='`[]='>   <arguments><argument name='i'><type><int/></type></argument><argument name='j'><type><int/></type></argument></arguments>   <returntype><int/></returntype>   </method>   </docgroup>   </class>   </namespace> - <namespace name='lfun'> - <docgroup homogen-name='_sqrt' homogen-type='method'><doc><text><p>Called by sqrt when the square root of an object is requested.</p> - </text><group><note/><text><p>_sqrt is not a real lfun, so it must not be defined as static.</p> - </text></group><group><seealso/><text><p><ref resolved='predef::sqrt'>predef::sqrt()</ref></p> - </text></group></doc> - <method name='_sqrt'> - <arguments/> - <returntype><mixed/></returntype> - </method> - </docgroup> - </namespace></autodoc> + </autodoc>      </chapter>    <chapter number='4' title='Pike AutoDoc markup'>      <section number='1' title='Syntax'>      <subsection number='1' title='Line orientation'>      <p>The markup is line oriented. If you need to write a line which is very   long, it can be broken into several lines. A trailing <tt>@</tt> on the line