autodoc.git / traditional_manual / chapter_21.html

version» Context lines:

autodoc.git/traditional_manual/chapter_21.html:6:   <dd class='body--doc'><p>Pike has a builtin C-style preprocessor. It works similar to the    ANSI-C preprocessor but has a few extra features. These and the    default set of preprocessor macros are described here.</p>   <p> The preprocessor is usually accessed via    <code>MasterObject-&gt;compile_file()</code> or <code>MasterObject-&gt;compile_string()</code>,    but may be accessed directly by calling <code>cpp()</code>.</p>   </dd>   <dt class='head--doc'>See also</dt>   <dd class='body--doc'><p><code>compile()</code>, <code>cpp()</code>, <code>CompilerEnvironment.CPP</code></p>   </dd></dl></dd></dl><dl><dt><h2 class='header'>Namespace <b class='ms datatype'>predef::</b></h2> - </dt><dd><dl class='group--doc'> - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>This is the default namespace and contains lots of global symbols.</p> - </dd></dl> + </dt><dd>      <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Constant</span>   <span class='homogen--name'><b>FUSE_MAJOR_VERSION</b></span><br>   <span class='homogen--type'>Constant</span>   <span class='homogen--name'><b>FUSE_MINOR_VERSION</b></span><br>   </dt>   <dd><p><code><code class='datatype'>constant</code> <code class='constant'>FUSE_MAJOR_VERSION</code></code><br>   <code><code class='datatype'>constant</code> <code class='constant'>FUSE_MINOR_VERSION</code></code></p></dd>
autodoc.git/traditional_manual/chapter_21.html:592:    compiled programs.</p>   </dd>   <dt class='head--doc'>See also</dt>   <dd class='body--doc'><p><code>all_constants()</code></p>   </dd></dl>         <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>add_include_path</b></span> - </dt> - <dd><p><code><code class='datatype'>void</code> <b><span class='method'>add_include_path</span>(</b><code class='datatype'>string</code> <code class='argument'>tmp</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Add a directory to search for include files.</p> - <p> This is the same as the command line option <tt>-I</tt>.</p> - </dd> - <dt class='head--doc'>Note</dt> - <dd class='body--doc'><p>Note that the added directory will only be searched when using -  &lt; &gt; to quote the included file.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>remove_include_path()</code></p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>add_module_path</b></span> - </dt> - <dd><p><code><code class='datatype'>void</code> <b><span class='method'>add_module_path</span>(</b><code class='datatype'>string</code> <code class='argument'>path</code>, <code class='datatype'>string</code>|<code class='datatype'>void</code> <code class='argument'>subpath</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Add a directory to search for modules.</p> - <p> This is the same as the command line option <tt>-M</tt>.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>remove_module_path()</code></p> - </dd> - <dt class='head--doc'><span id='p-path'></span>Parameter <code class='parameter'>path</code></dt> - <dd></dd><dd class='body--doc'><p>a string containing a path to search for Pike modules. May be a -  directory, or a path to a ZIP archive. If a ZIP archive path is -  provided, modules will be loaded from a directory, "modules" within -  the ZIP archive (see the subpath argument).</p> - </dd> - <dt class='head--doc'><span id='p-subpath'></span>Parameter <code class='parameter'>subpath</code></dt> - <dd></dd><dd class='body--doc'><p>if path is a ZIP archive, this argument will determine the path within -  the archive to be searched.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>add_program_path</b></span> - </dt> - <dd><p><code><code class='datatype'>void</code> <b><span class='method'>add_program_path</span>(</b><code class='datatype'>string</code> <code class='argument'>tmp</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Add a directory to search for programs.</p> - <p> This is the same as the command line option <tt>-P</tt>.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>remove_program_path()</code></p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> +    <span class='homogen--name'><b>aggregate</b></span>   </dt>   <dd><p><code><code class='datatype'>array</code> <b><span class='method'>aggregate</span>(</b><code class='datatype'>mixed</code> ... <code class='argument'>elements</code><b>)</b></code></p></dd>      <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Construct an array with the arguments as indices.</p>   <p> This function could be written in Pike as:</p>   <pre><code><span class='type'>array</span> aggregate<span class='delim'>(</span><span class='type'>mixed</span> ... elems<span class='delim'>)</span> <span class='delim'>{</span> <span class='lang'>return</span> elems<span class='delim'>;</span> <span class='delim'>}</span>   </code></pre>   </dd>
autodoc.git/traditional_manual/chapter_21.html:1062:   </dd>   <dt class='head--doc'>See also</dt>   <dd class='body--doc'><p><code>compile_string()</code>, <code>compile_file()</code>, <code>cpp()</code>, <code>master()</code>,    <code>CompilationHandler</code>, <code>DefaultCompilerEnvironment</code></p>   </dd></dl>         <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>compile</b></span> - </dt> - <dd><p><code><code class='modifier'>protected</code> <code class='datatype'>program</code> <b><span class='method'>compile</span>(</b><code class='datatype'>string</code> <code class='argument'>source</code>, <code class='datatype'>object</code>|<code class='datatype'>void</code> <code class='argument'>handler</code>, <code class='datatype'>int</code>|<code class='datatype'>void</code> <code class='argument'>major</code>, <code class='datatype'>int</code>|<code class='datatype'>void</code> <code class='argument'>minor</code>, <code class='datatype'>program</code>|<code class='datatype'>void</code> <code class='argument'>target</code>, <code class='datatype'>object</code>|<code class='datatype'>void</code> <code class='argument'>placeholder</code><b>)</b></code></p></dd> - </dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>compile_file</b></span> - </dt> - <dd><p><code><code class='datatype'>program</code> <b><span class='method'>compile_file</span>(</b><code class='datatype'>string</code> <code class='argument'>filename</code>, <code class='datatype'>object</code>|<code class='datatype'>void</code> <code class='argument'>handler</code>, <code class='datatype'>void</code>|<code class='datatype'>program</code> <code class='argument'>p</code>, <code class='datatype'>void</code>|<code class='datatype'>object</code> <code class='argument'>o</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Compile the Pike code contained in the file <code>filename</code> into a program.</p> - <p> This function will compile the file <code>filename</code> to a Pike program that can -  later be instantiated. It is the same as doing -  <code class='expr'><code>compile_string</code>(<code>Stdio.read_file</code>(<code>filename</code>),&nbsp;<code>filename</code>)</code>.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>compile()</code>, <code>compile_string()</code>, <code>cpp()</code></p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>compile_string</b></span> - </dt> - <dd><p><code><code class='datatype'>program</code> <b><span class='method'>compile_string</span>(</b><code class='datatype'>string</code> <code class='argument'>source</code>, <code class='datatype'>void</code>|<code class='datatype'>string</code> <code class='argument'>filename</code>, <code class='datatype'>object</code>|<code class='datatype'>void</code> <code class='argument'>handler</code>, <code class='datatype'>void</code>|<code class='datatype'>program</code> <code class='argument'>p</code>, <code class='datatype'>void</code>|<code class='datatype'>object</code> <code class='argument'>o</code>, <code class='datatype'>void</code>|<code class='datatype'>int</code> <code class='argument'>_show_if_constant_errors</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Compile the Pike code in the string <code>source</code> into a program. -  If <code>filename</code> is not specified, it will default to <code class='expr'>"-"</code>.</p> - <p> Functionally equal to <code class='expr'><code>compile</code>(<code>cpp</code>(<code>source</code>,&nbsp;<code>filename</code>))</code>.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>compile()</code>, <code>cpp()</code>, <code>compile_file()</code></p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> +    <span class='homogen--name'><b>copy_value</b></span>   </dt>   <dd><p><code><code class='datatype'>mixed</code> <b><span class='method'>copy_value</span>(</b><code class='datatype'>mixed</code> <code class='argument'>value</code><b>)</b></code></p></dd>      <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Copy a value recursively.</p>   <p> If the result value is changed destructively (only possible for    multisets, arrays and mappings) the copied value will not be changed.</p>   <p> The resulting value will always be equal to the copied (as tested with    the function <code>equal()</code>), but they may not the the same value (as tested
autodoc.git/traditional_manual/chapter_21.html:1203:   </table>   </dd>   <dt class='head--doc'>See also</dt>   <dd class='body--doc'><p><code>compile()</code></p>   </dd></dl>         <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>cpp</b></span> - </dt> - <dd><p><code><code class='modifier'>protected</code> <code class='datatype'>string</code> <b><span class='method'>cpp</span>(</b><code class='datatype'>string</code> <code class='argument'>data</code>, <code class='datatype'>mapping</code>|<code class='datatype'>string</code>|<code class='datatype'>void</code> <code class='argument'>current_file</code>, <code class='datatype'>int</code>|<code class='datatype'>string</code>|<code class='datatype'>void</code> <code class='argument'>charset</code>, <code class='datatype'>object</code>|<code class='datatype'>void</code> <code class='argument'>handler</code>, <code class='datatype'>void</code>|<code class='datatype'>int</code> <code class='argument'>compat_major</code>, <code class='datatype'>void</code>|<code class='datatype'>int</code> <code class='argument'>compat_minor</code>, <code class='datatype'>void</code>|<code class='datatype'>int</code> <code class='argument'>picky_cpp</code><b>)</b></code></p></dd> - </dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> +    <span class='homogen--name'><b>ctime</b></span>   </dt>   <dd><p><code><code class='datatype'>string</code> <b><span class='method'>ctime</span>(</b><code class='datatype'>int</code> <code class='argument'>timestamp</code><b>)</b></code></p></dd>      <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Convert the output from a previous call to <code>time()</code> into a readable    string containing the current year, month, day and time.</p>   <p> Like <code>localtime</code>, this function might throw an error if the    ctime(2) call failed on the system. It's platform dependent what    time ranges that function can handle, e.g. Windows doesn't handle
autodoc.git/traditional_manual/chapter_21.html:1284:   <dd><p><code><code class='datatype'>int(0..)</code> <b><span class='method'>depth</span>(</b><b>)</b></code></p></dd>      <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Calculate the depth of the tree.</p>   </dd></dl>         <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>describe_backtrace</b></span> - </dt> - <dd><p><code><code class='datatype'>string</code> <b><span class='method'>describe_backtrace</span>(</b><code class='datatype'>mixed</code> <code class='argument'>trace</code>, <code class='datatype'>void</code>|<code class='datatype'>int</code> <code class='argument'>linewidth</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Return a readable message that describes where the backtrace -  <code>trace</code> was made (by <code>backtrace</code>).</p> - <p> It may also be an error object or array (typically caught by a -  <code>catch</code>), in which case the error message also is included in the -  description.</p> - <p> Pass <code>linewidth</code> -1 to disable wrapping of the output.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>backtrace()</code>, <code>describe_error()</code>, <code>catch()</code>, <code>throw()</code></p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>describe_error</b></span> - </dt> - <dd><p><code><code class='datatype'>string</code> <b><span class='method'>describe_error</span>(</b><code class='datatype'>mixed</code> <code class='argument'>err</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Return the error message from an error object or array (typically -  caught by a <code>catch</code>). The type of the error is checked, hence -  <code>err</code> is declared as <code class='expr'>mixed</code> and not <code class='expr'>object|array</code>.</p> - <p> If an error message couldn't be obtained, a fallback message -  describing the failure is returned. No errors due to incorrectness -  in <code>err</code> are thrown.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>describe_backtrace()</code>, <code>get_backtrace</code></p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> +    <span class='homogen--name'><b>destruct</b></span>   </dt>   <dd><p><code><code class='datatype'>bool</code> <b><span class='method'>destruct</span>(</b><code class='datatype'>void</code>|<code class='datatype'>object</code> <code class='argument'>o</code><b>)</b></code></p></dd>      <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Mark an object as destructed.</p>   <p> Calls <code class='expr'>o-&gt;_destruct()</code>, and then clears all variables in the    object. If no argument is given, the current object is destructed.</p>   <p> All pointers and function pointers to this object will become zero.    The destructed object will be freed from memory as soon as possible.</p>
autodoc.git/traditional_manual/chapter_21.html:1472:   </td></tr>   </table>   </dd>   <dt class='head--doc'>See also</dt>   <dd class='body--doc'><p><code>copy_value()</code>, <code>`==()</code></p>   </dd></dl>         <hr />   <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>error</b></span> - </dt> - <dd><p><code><code class='datatype'>void</code> <b><span class='method'>error</span>(</b><code class='object unresolved'>sprintf_format</code> <code class='argument'>f</code>, <code class='object unresolved'>sprintf_args</code> ... <code class='argument'>args</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Throws an error. A more readable version of the code -  <code class='expr'>throw(&nbsp;({&nbsp;sprintf(f,&nbsp;@args),&nbsp;backtrace()&nbsp;})&nbsp;)</code>.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> +    <dt class='head--type'><span class='homogen--type'>Constant</span>   <span class='homogen--name'><b>is_gssapi_error</b></span><br>   <span class='homogen--type'>Constant</span>   <span class='homogen--name'><b>error_type</b></span><br>   </dt>   <dd><p><code><code class='datatype'>constant</code> <code class='datatype'>int</code> <code class='constant'>is_gssapi_error</code></code><br>   <code><code class='datatype'>constant</code> <code class='datatype'>string</code> <code class='constant'>error_type</code></code></p></dd>      <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Object recognition constants.</p>
autodoc.git/traditional_manual/chapter_21.html:1743:    which can cause more things to be freed or allocated.</p>   </dd>   <dt class='head--doc'>See also</dt>   <dd class='body--doc'><p><code>Pike.gc_parameters</code>, <code>Debug.gc_status</code></p>   </dd></dl>         <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>get_active_compilation_handler</b></span> - </dt> - <dd><p><code><code class='object unresolved'>CompilationHandler</code> <b><span class='method'>get_active_compilation_handler</span>(</b><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Returns the currently active compilation compatibility handler, or -  <tt>0</tt> (zero) if none is active.</p> - </dd> - <dt class='head--doc'>Note</dt> - <dd class='body--doc'><p>This function should only be used during a call of <code>compile()</code>.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>get_active_error_handler()</code>, <code>compile()</code>, -  <code>master()-&gt;get_compilation_handler()</code>, <code>CompilationHandler</code></p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> +    <span class='homogen--name'><b>get_active_compiler</b></span>   </dt>   <dd><p><code><code class='object unresolved'>CompilerEnvironment.PikeCompiler</code> <b><span class='method'>get_active_compiler</span>(</b><b>)</b></code></p></dd>      <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Returns the most recent of the currently active pike compilers,    or <code>UNDEFINED</code> if none is active.</p>   </dd>   <dt class='head--doc'>Note</dt>   <dd class='body--doc'><p>This function should only be used during a call of <code>compile()</code>.</p>   </dd>   <dt class='head--doc'>See also</dt>   <dd class='body--doc'><p><code>get_active_error_handler()</code>, <code>compile()</code>,    <code>master()-&gt;get_compilation_handler()</code>, <code>CompilationHandler</code></p>   </dd></dl>         <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>get_active_error_handler</b></span> - </dt> - <dd><p><code><code class='object unresolved'>CompilationHandler</code> <b><span class='method'>get_active_error_handler</span>(</b><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Returns the currently active compilation error handler -  (second argument to <code>compile()</code>), or <tt>0</tt> (zero) if none -  is active.</p> - </dd> - <dt class='head--doc'>Note</dt> - <dd class='body--doc'><p>This function should only be used during a call of <code>compile()</code>.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>get_active_compilation_handler()</code>, <code>compile()</code>, <code>CompilationHandler</code></p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> +    <span class='homogen--name'><b>get_all_groups</b></span>   </dt>   <dd><p><code><code class='datatype'>array</code>(<code class='datatype'>array</code>(<code class='datatype'>int</code>|<code class='datatype'>string</code>|<code class='datatype'>array</code>(<code class='datatype'>string</code>))) <b><span class='method'>get_all_groups</span>(</b><b>)</b></code></p></dd>      <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Returns an array of arrays with all groups in the system groups source.    Each element in the returned array has the same structure as in    <code>getgrent</code> function.</p>   </dd>   <dt class='head--doc'>Note</dt>
autodoc.git/traditional_manual/chapter_21.html:1850:   <dt class='head--doc'>See also</dt>   <dd class='body--doc'><p><code>getpwent()</code>    <code>getpwnam()</code>    <code>getpwuid()</code></p>   </dd></dl>         <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>get_backtrace</b></span> - </dt> - <dd><p><code><code class='datatype'>array</code> <b><span class='method'>get_backtrace</span>(</b><code class='datatype'>object</code>|<code class='datatype'>array</code> <code class='argument'>err</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Return the backtrace array from an error object or array -  (typically caught by a <code>catch</code>), or zero if there is none. Errors -  are thrown on if there are problems retrieving the backtrace.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>describe_backtrace()</code>, <code>describe_error()</code></p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> +    <span class='homogen--name'><b>get_groups_for_user</b></span>   </dt>   <dd><p><code><code class='datatype'>array</code>(<code class='datatype'>int</code>) <b><span class='method'>get_groups_for_user</span>(</b><code class='datatype'>int</code>|<code class='datatype'>string</code> <code class='argument'>user</code><b>)</b></code></p></dd>      <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Gets all groups which a given user is a member of.</p>   </dd>   <dt class='head--doc'><span id='p-user'></span>Parameter <code class='parameter'>user</code></dt>   <dd></dd><dd class='body--doc'><p>UID or loginname of the user</p>   </dd>
autodoc.git/traditional_manual/chapter_21.html:1935:    object.</p>   </dd>   <dt class='head--doc'>See also</dt>   <dd class='body--doc'><p><code>Iterator</code>, <code>lfun::_get_iterator</code></p>   </dd></dl>         <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>getenv</b></span> - </dt> - <dd><p><code><code class='datatype'>mapping</code>(<code class='datatype'>string</code>:<code class='datatype'>string</code>) <b><span class='method'>getenv</span>(</b><code class='datatype'>void</code>|<code class='datatype'>int</code> <code class='argument'>force_update</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Queries the environment variables.</p> - </dd> - <dt class='head--doc'><span id='p-force_update'></span>Parameter <code class='parameter'>force_update</code></dt> - <dd></dd><dd class='body--doc'><p>A cached copy of the real environment is kept to make this -  function quicker. If the optional flag <code>force_update</code> is nonzero -  then the real environment is queried and the cache is updated from -  it. That can be necessary if the environment changes through other -  means than <code>putenv</code>, typically from a C-level library.</p> - </dd> - <dt class='head--doc'>Returns</dt> - <dd class='body--doc'><p>Returns the whole environment as a mapping. Destructive -  operations on the mapping will not affect the internal -  environment representation.</p> - <p> Variable names and values cannot be wide strings nor contain -  <code class='expr'>'\0'</code> characters. Variable names also cannot contain -  <code class='expr'>'='</code> characters.</p> - </dd> - <dt class='head--doc'>Note</dt> - <dd class='body--doc'><p>On NT the environment variable name is case insensitive.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>putenv()</code></p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>getenv</b></span> - </dt> - <dd><p><code><code class='datatype'>string</code> <b><span class='method'>getenv</span>(</b><code class='datatype'>string</code> <code class='argument'>varname</code>, <code class='datatype'>void</code>|<code class='datatype'>int</code> <code class='argument'>force_update</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Query the value of a specific environment variable.</p> - </dd> - <dt class='head--doc'><span id='p-varname'></span>Parameter <code class='parameter'>varname</code></dt> - <dd></dd><dd class='body--doc'><p>Environment variable to query.</p> - </dd> - <dt class='head--doc'><span id='p-force_update'></span>Parameter <code class='parameter'>force_update</code></dt> - <dd></dd><dd class='body--doc'><p>A cached copy of the real environment is kept to make this -  function quicker. If the optional flag <code>force_update</code> is nonzero -  then the real environment is queried and the cache is updated from -  it. That can be necessary if the environment changes through other -  means than <code>putenv</code>, typically from a C-level library.</p> - </dd> - <dt class='head--doc'>Returns</dt> - <dd class='body--doc'><p>Returns the value of the environment variable <code>varname</code> -  if it exists, and <code class='expr'>0</code> (zero) otherwise.</p> - <p> Variable names and values cannot be wide strings nor contain -  <code class='expr'>'\0'</code> characters. Variable names also cannot contain -  <code class='expr'>'='</code> characters.</p> - </dd> - <dt class='head--doc'>Note</dt> - <dd class='body--doc'><p>On NT the environment variable name is case insensitive.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>putenv()</code></p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> +    <span class='homogen--name'><b>getgrgid</b></span>   </dt>   <dd><p><code><code class='datatype'>array</code>(<code class='datatype'>int</code>|<code class='datatype'>string</code>|<code class='datatype'>array</code>(<code class='datatype'>string</code>)) <b><span class='method'>getgrgid</span>(</b><code class='datatype'>int</code> <code class='argument'>gid</code><b>)</b></code></p></dd>      <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Get the group entry for the group with the id <code>gid</code> using the systemfunction    <tt>getgrid(3)</tt>.</p>   </dd>   <dt class='head--doc'><span id='p-gid'></span>Parameter <code class='parameter'>gid</code></dt>   <dd></dd><dd class='body--doc'><p>The id of the group</p>
autodoc.git/traditional_manual/chapter_21.html:2556:   <dt class='head--doc'>Note</dt>   <dd class='body--doc'><p>This is the hashing method used by mappings.</p>   </dd>   <dt class='head--doc'>See also</dt>   <dd class='body--doc'><p><code>lfun::__hash()</code></p>   </dd></dl>         <hr />   <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>is_absolute_path</b></span> - </dt> - <dd><p><code><code class='datatype'>int</code> <b><span class='method'>is_absolute_path</span>(</b><code class='datatype'>string</code> <code class='argument'>p</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Check if a path <code>p</code> is fully qualified (ie not relative).</p> - </dd> - <dt class='head--doc'>Returns</dt> - <dd class='body--doc'><p>Returns 1 if the path is absolute, 0 otherwise.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> +    <dt class='head--type'><span class='homogen--type'>Constant</span>   <span class='homogen--name'><b>is_sql_null</b></span>   </dt>   <dd><p><code><code class='datatype'>constant</code> <code class='datatype'>int</code> <code class='constant'>is_sql_null</code></code></p></dd>      <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>SQL Null marker.</p>   </dd>   <dt class='head--doc'>Deprecated</dt>   <dd class='body--doc'><p>Replaced by <code>is_val_null</code>.</p>
autodoc.git/traditional_manual/chapter_21.html:3115:    and into the future).</p>   </dd>   <dt class='head--doc'>See also</dt>   <dd class='body--doc'><p><code>time()</code>, <code>ctime()</code>, <code>localtime()</code>, <code>gmtime()</code>, <code>strftime()</code></p>   </dd></dl>         <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>normalize_path</b></span> - </dt> - <dd><p><code><code class='datatype'>string</code> <b><span class='method'>normalize_path</span>(</b><code class='datatype'>string</code> <code class='argument'>path</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Replaces "\" with "/" if runing on MS Windows. It is -  adviced to use <code>System.normalize_path</code> instead.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> +    <span class='homogen--name'><b>nth</b></span>   </dt>   <dd><p><code><code class='datatype'>mixed</code> <b><span class='method'>nth</span>(</b><code class='datatype'>int(0..)</code> <code class='argument'>n</code><b>)</b></code></p></dd>      <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Get the <code class='expr'>n</code>th entry in order.</p>   </dd>   <dt class='head--doc'>Returns</dt>   <dd class='body--doc'><p>An array <code class='expr'>({&nbsp;key,&nbsp;value&nbsp;})</code>.</p>   </dd></dl>
autodoc.git/traditional_manual/chapter_21.html:3198:    <code>x</code> as argument.</p>   </dd>   <dt class='head--doc'>See also</dt>   <dd class='body--doc'><p><code>exp()</code>, <code>log()</code></p>   </dd></dl>         <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>putenv</b></span> - </dt> - <dd><p><code><code class='datatype'>void</code> <b><span class='method'>putenv</span>(</b><code class='datatype'>string</code> <code class='argument'>varname</code>, <code class='datatype'>void</code>|<code class='datatype'>string</code> <code class='argument'>value</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Sets the environment variable <code>varname</code> to <code>value</code>.</p> - <p> If <code>value</code> is omitted or zero, the environment variable -  <code>varname</code> is removed.</p> - <p> <code>varname</code> and <code>value</code> cannot be wide strings nor contain -  <code class='expr'>'\0'</code> characters. <code>varname</code> also cannot contain -  <code class='expr'>'='</code> characters.</p> - </dd> - <dt class='head--doc'>Note</dt> - <dd class='body--doc'><p>On NT the environment variable name is case insensitive.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>getenv()</code></p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> +    <span class='homogen--name'><b>query_num_arg</b></span>   </dt>   <dd><p><code><code class='datatype'>int</code> <b><span class='method'>query_num_arg</span>(</b><b>)</b></code></p></dd>      <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Returns the number of arguments given when the previous function was    called.</p>   <p> This is useful for functions that take a variable number of arguments.</p>   </dd>   <dt class='head--doc'>See also</dt>   <dd class='body--doc'><p><code>call_function()</code></p>   </dd></dl>         <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>random</b></span> - </dt> - <dd><p><code><code class='datatype'>array</code> <b><span class='method'>random</span>(</b><code class='datatype'>mapping</code> <code class='argument'>m</code><b>)</b></code><br> - <code><code class='datatype'>float</code> <b><span class='method'>random</span>(</b><code class='datatype'>float</code> <code class='argument'>max</code><b>)</b></code><br> - <code><code class='datatype'>int</code> <b><span class='method'>random</span>(</b><code class='datatype'>int</code> <code class='argument'>max</code><b>)</b></code><br> - <code><code class='datatype'>mixed</code> <b><span class='method'>random</span>(</b><code class='datatype'>object</code> <code class='argument'>o</code><b>)</b></code><br> - <code><code class='datatype'>mixed</code> <b><span class='method'>random</span>(</b><code class='datatype'>array</code>|<code class='datatype'>multiset</code> <code class='argument'>x</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Get a random value generated by the default <code>RandomSystem</code>.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>RandomSystem()-&gt;random()</code>, <code>random_string()</code></p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> +    <span class='homogen--name'><b>random_seed</b></span>   </dt>   <dd><p><code><code class='datatype'>void</code> <b><span class='method'>random_seed</span>(</b><code class='datatype'>int</code> <code class='argument'>seed</code><b>)</b></code></p></dd>      <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>This function sets the initial value for the random generator.</p>   </dd>   <dt class='head--doc'>See also</dt>   <dd class='body--doc'><p><code>random()</code></p>   </dd>   <dt class='head--doc'>Deprecated</dt>   <dd class='body--doc'><p><code>Random.Deterministic</code></p>   </dd></dl>         <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>random_string</b></span> - </dt> - <dd><p><code><code class='datatype'>string</code> <b><span class='method'>random_string</span>(</b><code class='datatype'>int</code> <code class='argument'>len</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Get a string of random characters <code class='expr'>0..255</code> with the length <code>len</code> -  from the default <code>RandomSystem</code>.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>RandomSystem()-&gt;random_string()</code>, <code>random()</code></p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>remove_include_path</b></span> - </dt> - <dd><p><code><code class='datatype'>void</code> <b><span class='method'>remove_include_path</span>(</b><code class='datatype'>string</code> <code class='argument'>tmp</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Remove a directory to search for include files.</p> - <p> This function performs the reverse operation of <code>add_include_path()</code>.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>add_include_path()</code></p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>remove_module_path</b></span> - </dt> - <dd><p><code><code class='datatype'>void</code> <b><span class='method'>remove_module_path</span>(</b><code class='datatype'>string</code> <code class='argument'>tmp</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Remove a directory to search for modules.</p> - <p> This function performs the reverse operation of <code>add_module_path()</code>.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>add_module_path()</code></p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>remove_program_path</b></span> - </dt> - <dd><p><code><code class='datatype'>void</code> <b><span class='method'>remove_program_path</span>(</b><code class='datatype'>string</code> <code class='argument'>tmp</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Remove a directory to search for programs.</p> - <p> This function performs the reverse operation of <code>add_program_path()</code>.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>add_program_path()</code></p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> +    <span class='homogen--name'><b>removexattr</b></span>   </dt>   <dd><p><code><code class='datatype'>void</code> <b><span class='method'>removexattr</span>(</b><code class='datatype'>string</code> <code class='argument'>file</code>, <code class='datatype'>string</code> <code class='argument'>attr</code>, <code class='datatype'>void</code>|<code class='datatype'>bool</code> <code class='argument'>symlink</code><b>)</b></code></p></dd>      <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Remove the specified extended attribute.</p>   </dd></dl>         <hr />
autodoc.git/traditional_manual/chapter_21.html:5070:   <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Report the version of Pike. Does the same as</p>   <pre><code>sprintf<span class='delim'>(</span><span class='string'>"Pike v%d.%d release %d"</span><span class='delim'>,</span> <span class='const'>__REAL_VERSION__</span><span class='delim'>,</span>    <span class='const'>__REAL_MINOR__</span><span class='delim'>,</span> <span class='const'>__REAL_BUILD__</span><span class='delim'>)</span><span class='delim'>;</span>   </code></pre>   </dd>   <dt class='head--doc'>See also</dt>   <dd class='body--doc'><p><code>__VERSION__</code>, <code>__MINOR__</code>, <code>__BUILD__</code>,    <code>__REAL_VERSION__</code>, <code>__REAL_MINOR__</code>, <code>__REAL_BUILD__</code>,</p>   </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>werror</b></span> - </dt> - <dd><p><code><code class='datatype'>int</code> <b><span class='method'>werror</span>(</b><code class='datatype'>string</code> <code class='argument'>fmt</code>, <code class='datatype'>mixed</code> ... <code class='argument'>args</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Writes a string on stderr. Works just like <code>Stdio.File.write</code> -  on <code>Stdio.stderr</code>.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>write</b></span> - </dt> - <dd><p><code><code class='datatype'>int</code> <b><span class='method'>write</span>(</b><code class='datatype'>string</code> <code class='argument'>fmt</code>, <code class='datatype'>mixed</code> ... <code class='argument'>args</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Writes a string on stdout. Works just like <code>Stdio.File.write</code> -  on <code>Stdio.stdout</code>.</p> - </dd></dl> - <dl><dt><h2 class='header'>Enum <b class='ms datatype'>bool</b></h2> + <dl><dt><h2 class='header'>Class <b class='ms datatype'>Codec</b></h2>   </dt><dd><dl class='group--doc'>   <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Boolean datatype.</p> - </dd></dl> -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Constant</span> - <span class='homogen--name'><b>false</b></span><br> - <span class='homogen--type'>Constant</span> - <span class='homogen--name'><b>true</b></span><br> - </dt> - <dd><p><code><code class='datatype'>constant</code> <code class='constant'>false</code></code><br> - <code><code class='datatype'>constant</code> <code class='constant'>true</code></code></p></dd> - </dl> - </dd></dl><dl><dt><h2 class='header'>Class <b class='ms datatype'>Codec</b></h2> - </dt><dd><dl class='group--doc'> - <dt class='head--doc'>Description</dt> +    <dd class='body--doc'><p>An <code>Encoder</code> and a <code>Decoder</code> lumped into a single instance which    can be used for both encoding and decoding.</p>   </dd></dl>      <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Inherit</span>   <span class='homogen--name'><b>Decoder</b></span>   </dt>   <dd><p><code><span class='datatype'>inherit Decoder</span> : <span class='inherit'>Decoder</span></code></p></dd>
autodoc.git/traditional_manual/chapter_21.html:5360:   </dd>   <dt class='head--doc'>Returns</dt>   <dd class='body--doc'><p>Returns the resolved value, or <code>UNDEFINED</code> on failure.</p>   </dd>   <dt class='head--doc'>See also</dt>   <dd class='body--doc'><p><code>get_predefines()</code></p>   </dd></dl>   </dd></dl><dl><dt><h2 class='header'>Class <b class='ms datatype'>CompilerEnvironment</b></h2>   </dt><dd><dl class='group--doc'>   <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p><code>predef::CompilerEnvironment</code> that supports handlers.</p> - <p>The compiler environment.</p> + <dd class='body--doc'><p>The compiler environment.</p>   <p> By inheriting this class and overloading the functions,    it is possible to make a custom Pike compiler.</p>   </dd>   <dt class='head--doc'>Note</dt>   <dd class='body--doc'><p>Prior to Pike 7.8 this sort of customization has to be done    either via custom master objects, or via <code>CompilationHandler</code>s.</p>   </dd>   <dt class='head--doc'>See also</dt>   <dd class='body--doc'><p><code>CompilationHandler</code>, <code>MasterObject</code>, <code>master()</code>, <code>replace_master()</code></p>   </dd></dl>      <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>compile</b></span>   </dt> - <dd><p><code><code class='datatype'>program</code> <b><span class='method'>compile</span>(</b><code class='datatype'>string</code> <code class='argument'>source</code>, <code class='datatype'>object</code>|<code class='datatype'>void</code> <code class='argument'>handler</code>, <code class='datatype'>int</code>|<code class='datatype'>void</code> <code class='argument'>major</code>, <code class='datatype'>int</code>|<code class='datatype'>void</code> <code class='argument'>minor</code>, <code class='datatype'>program</code>|<code class='datatype'>void</code> <code class='argument'>target</code>, <code class='datatype'>object</code>|<code class='datatype'>void</code> <code class='argument'>placeholder</code><b>)</b></code></p></dd> - </dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>compile</b></span> - </dt> +    <dd><p><code><code class='datatype'>program</code> <b><span class='method'>compile</span>(</b><code class='datatype'>string</code> <code class='argument'>source</code>, <code class='object unresolved'>CompilationHandler</code>|<code class='datatype'>void</code> <code class='argument'>handler</code>, <code class='datatype'>int</code>|<code class='datatype'>void</code> <code class='argument'>major</code>, <code class='datatype'>int</code>|<code class='datatype'>void</code> <code class='argument'>minor</code>, <code class='datatype'>program</code>|<code class='datatype'>void</code> <code class='argument'>target</code>, <code class='datatype'>object</code>|<code class='datatype'>void</code> <code class='argument'>placeholder</code><b>)</b></code></p></dd>      <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Compile a string to a program.</p>   <p> This function takes a piece of Pike code as a string and    compiles it into a clonable program.</p>   <p> The optional argument <code>handler</code> is used to specify an alternative    error handler. If it is not specified the current master object will    be used.</p>   <p> The optional arguments <code>major</code> and <code>minor</code> are used to tell the
autodoc.git/traditional_manual/chapter_21.html:5423:   </dd>   <dt class='head--doc'>See also</dt>   <dd class='body--doc'><p><code>compile_string()</code>, <code>compile_file()</code>, <code>cpp()</code>, <code>master()</code>,    <code>CompilationHandler</code></p>   </dd></dl>         <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>compile_exception</b></span> - </dt> - <dd><p><code><code class='datatype'>int</code> <b><span class='method'>compile_exception</span>(</b><code class='datatype'>mixed</code> <code class='argument'>err</code><b>)</b></code></p></dd> - </dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>format_exception</b></span> - </dt> - <dd><p><code><code class='datatype'>string</code> <b><span class='method'>format_exception</span>(</b><code class='datatype'>mixed</code> <code class='argument'>err</code><b>)</b></code></p></dd> - </dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> +    <span class='homogen--name'><b>get_compilation_handler</b></span>   </dt>   <dd><p><code><code class='datatype'>object</code> <b><span class='method'>get_compilation_handler</span>(</b><code class='datatype'>int</code> <code class='argument'>major</code>, <code class='datatype'>int</code> <code class='argument'>minor</code><b>)</b></code></p></dd>      <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Get compatibility handler for Pike <code>major</code>.<code>minor</code>.</p>   <p> The default implementation calls the corresponding    function in the master object.</p>   </dd>   <dt class='head--doc'>Note</dt>
autodoc.git/traditional_manual/chapter_21.html:5508:    in the master object.</p>   </dd>   <dt class='head--doc'>See also</dt>   <dd class='body--doc'><p><code>MasterObject()-&gt;handle_import()</code>.</p>   </dd></dl>         <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>handle_import</b></span> - </dt> - <dd><p><code><code class='datatype'>program</code> <b><span class='method'>handle_import</span>(</b><code class='datatype'>string</code> <code class='argument'>module</code>, <code class='datatype'>string</code> <code class='argument'>current_file</code>, <code class='datatype'>object</code>|<code class='datatype'>void</code> <code class='argument'>handler</code>, <code class='datatype'>object</code>|<code class='datatype'>void</code> <code class='argument'>compat_handler</code><b>)</b></code></p></dd> - </dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> +    <span class='homogen--name'><b>handle_inherit</b></span>   </dt>   <dd><p><code><code class='datatype'>program</code> <b><span class='method'>handle_inherit</span>(</b><code class='datatype'>string</code> <code class='argument'>inh</code>, <code class='datatype'>string</code> <code class='argument'>current_file</code>, <code class='datatype'>object</code>|<code class='datatype'>void</code> <code class='argument'>handler</code><b>)</b></code></p></dd>      <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Look up an inherit <code>inh</code>.</p>   <p> The default implementation calls the corresponding function    in the master object.</p>   </dd>   <dt class='head--doc'>See also</dt>   <dd class='body--doc'><p><code>MasterObject()-&gt;handle_inherit()</code>.</p>   </dd></dl>         <hr />   <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>handle_inherit</b></span> - </dt> - <dd><p><code><code class='datatype'>program</code> <b><span class='method'>handle_inherit</span>(</b><code class='datatype'>string</code> <code class='argument'>inh</code>, <code class='datatype'>string</code> <code class='argument'>current_file</code>, <code class='datatype'>object</code>|<code class='datatype'>void</code> <code class='argument'>handler</code>, <code class='datatype'>object</code>|<code class='datatype'>void</code> <code class='argument'>compat_handler</code><b>)</b></code></p></dd> - </dl> -  -  - <hr /> - <dl class='group--doc'> +    <dt class='head--type'><span class='homogen--type'>Inherit</span> - <span class='homogen--name'><b>OrigCompilerEnvironment</b></span> - </dt> - <dd><p><code><span class='datatype'>inherit predef::CompilerEnvironment</span> : <span class='inherit'>OrigCompilerEnvironment</span></code></p></dd> - </dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Inherit</span> +    <span class='homogen--name'><b>Reporter</b></span>   </dt>   <dd><p><code><span class='datatype'>inherit Reporter</span> : <span class='inherit'>Reporter</span></code></p></dd>      <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Implements the <code>Reporter</code> API.</p>   </dd>   <dt class='head--doc'>See also</dt>   <dd class='body--doc'><p><code>Reporter()-&gt;report()</code>, <code>Reporter()-&gt;SeverityLevel</code></p>   </dd></dl>         <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>resolv</b></span>   </dt>   <dd><p><code><code class='datatype'>mixed</code> <b><span class='method'>resolv</span>(</b><code class='datatype'>string</code> <code class='argument'>identifier</code>, <code class='datatype'>string</code> <code class='argument'>filename</code>, <code class='datatype'>object</code>|<code class='datatype'>void</code> <code class='argument'>handler</code>, <code class='datatype'>object</code>|<code class='datatype'>void</code> <code class='argument'>compat_handler</code><b>)</b></code></p></dd> - </dl> +     -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>resolv</b></span> - </dt> - <dd><p><code><code class='datatype'>mixed</code> <b><span class='method'>resolv</span>(</b><code class='datatype'>string</code> <code class='argument'>identifier</code>, <code class='datatype'>string</code> <code class='argument'>filename</code>, <code class='datatype'>object</code>|<code class='datatype'>void</code> <code class='argument'>handler</code>, <code class='datatype'>object</code>|<code class='datatype'>void</code> <code class='argument'>compat_handler</code><b>)</b></code></p></dd> -  +    <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Look up <code>identifier</code> in the current context.</p>   <p> The default implementation calls the corresponding    function in the handlers (if any), falling back to    the master object.</p>   </dd>   <dt class='head--doc'>Returns</dt>   <dd class='body--doc'><p>Returns the value of the <code>identifier</code> if found, and    <code>UNDEFINED</code> if not.</p>   </dd></dl>
autodoc.git/traditional_manual/chapter_21.html:5602:   <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>The state for an instance of the preprocessor.</p>   </dd>   <dt class='head--doc'>See also</dt>   <dd class='body--doc'><p><code>predef::cpp()</code></p>   </dd></dl>      <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>apply_handler</b></span> - </dt> - <dd><p><code><code class='modifier'>protected</code> <code class='datatype'>mixed</code> <b><span class='method'>apply_handler</span>(</b><code class='datatype'>string</code> <code class='argument'>fun</code>, <code class='datatype'>mixed</code> ... <code class='argument'>args</code><b>)</b></code></p></dd> - </dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> +    <span class='homogen--name'><b>change_cpp_compatibility</b></span>   </dt>   <dd><p><code><code class='datatype'>void</code> <b><span class='method'>change_cpp_compatibility</span>(</b><code class='datatype'>int</code> <code class='argument'>major</code>, <code class='datatype'>int</code> <code class='argument'>minor</code><b>)</b></code></p></dd> - </dl> +     -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>change_cpp_compatibility</b></span> - </dt> - <dd><p><code><code class='datatype'>void</code> <b><span class='method'>change_cpp_compatibility</span>(</b><code class='datatype'>int</code> <code class='argument'>major</code>, <code class='datatype'>int</code> <code class='argument'>minor</code><b>)</b></code></p></dd> -  +    <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Change the pike compatibility level for this preprocessor    to the specified version of Pike.</p>   </dd>   <dt class='head--doc'><span id='p-major'></span>Parameter <code class='parameter'>major</code></dt>   <dd></dd><dd class='body--doc'><p>Major version of Pike to attempt to be compatible with.    Specifying a major version of <code class='expr'>-1</code> is a short hand    for specifying <code>__REAL_MAJOR__</code> and <code>__REAL_MINOR__</code>.</p>   </dd>   <dt class='head--doc'><span id='p-minor'></span>Parameter <code class='parameter'>minor</code></dt>
autodoc.git/traditional_manual/chapter_21.html:5663:   <p> It is recomended to call this function when the <code>CPP</code> object    is no longer to be used.</p>   </dd>   <dt class='head--doc'>See also</dt>   <dd class='body--doc'><p><code>define_macro()</code></p>   </dd></dl>         <hr />   <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Variable</span> - <span class='homogen--name'><b>handler</b></span><br> - <span class='homogen--type'>Variable</span> - <span class='homogen--name'><b>compat_handler</b></span><br> - </dt> - <dd><p><code><code class='datatype'>object</code> CompilerEnvironment.CPP.<b><span class='variable'>handler</span></b></code><br> - <code><code class='datatype'>object</code> CompilerEnvironment.CPP.<b><span class='variable'>compat_handler</span></b></code></p></dd> - </dl> -  -  - <hr /> - <dl class='group--doc'> +    <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>compile_exception</b></span> - </dt> - <dd><p><code><code class='datatype'>int</code> <b><span class='method'>compile_exception</span>(</b><code class='datatype'>mixed</code> <code class='argument'>err</code><b>)</b></code></p></dd> - </dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> +    <span class='homogen--name'><b>cpp_error</b></span>   </dt>   <dd><p><code><code class='datatype'>void</code> <b><span class='method'>cpp_error</span>(</b><code class='object unresolved'>sprintf_format</code> <code class='argument'>msg</code>, <code class='object unresolved'>sprintf_args</code> ... <code class='argument'>arguments</code><b>)</b></code></p></dd>      <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Convenience function for reporting a cpp error at    the current position.</p>   <p> This function calls <code>report()</code> with the same arguments,    but prefixed with suitable defaults.</p>   </dd>
autodoc.git/traditional_manual/chapter_21.html:5734:   <tr><td><code><code class='key'>"compat_minor"</code> : <code class='datatype'>int</code></code></td><td><p>Sets the minor pike version used for compat handling.</p>   </td></tr>   <tr><td><code><code class='key'>"picky_cpp"</code> : <code class='datatype'>int</code></code></td><td><p>Generate more warnings.</p>   </td></tr>   <tr><td><code><code class='key'>"keep_comments"</code> : <code class='datatype'>int</code></code></td><td><p>This option keeps <code>cpp()</code> from removing comments.    Useful in combination with the prefix feature below.</p>   </td></tr>   <tr><td><code><code class='key'>"prefix"</code> : <code class='datatype'>string</code></code></td><td><p>If a prefix is given, only prefixed directives will be    processed. For example, if the prefix is <code class='expr'>"foo"</code>, then    <code class='expr'>#foo_ifdef&nbsp;COND</code> and <code class='expr'>foo___LINE__</code> would be -  processed, <code class='expr'>#ifdef&nbsp;COND</code> and <code class='expr'>__LINE__</code> -  would not.</p> - </td></tr> - </table> - </dd> - <dt class='head--doc'><span id='p-current_file'></span>Parameter <code class='parameter'>current_file</code></dt> - <dd></dd><dd class='body--doc'><p>If the <code>current_file</code> argument has not been specified, -  it will default to <code class='expr'>"-"</code>.</p> - </dd> - <dt class='head--doc'><span id='p-charset'></span>Parameter <code class='parameter'>charset</code></dt> - <dd></dd><dd class='body--doc'><p>Turn on automatic character set detection if <code class='expr'>1</code>, otherwise -  specifies the character set used by the input. -  Defaults to <code class='expr'>"ISO-10646"</code>.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>compile()</code></p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>create</b></span> - </dt> - <dd><p><code><span class='object'>CompilerEnvironment.CPP</span> <span class='class'>CompilerEnvironment.CPP</span><b>(</b><code class='datatype'>string</code>|<code class='datatype'>void</code> <code class='argument'>current_file</code>, <code class='datatype'>int</code>|<code class='datatype'>string</code>|<code class='datatype'>void</code> <code class='argument'>charset</code>, <code class='datatype'>object</code>|<code class='datatype'>void</code> <code class='argument'>handler</code>, <code class='datatype'>void</code>|<code class='datatype'>int</code> <code class='argument'>compat_major</code>, <code class='datatype'>void</code>|<code class='datatype'>int</code> <code class='argument'>compat_minor</code>, <code class='datatype'>void</code>|<code class='datatype'>int</code> <code class='argument'>picky_cpp</code><b>)</b></code><br> - <code><span class='object'>CompilerEnvironment.CPP</span> <span class='class'>CompilerEnvironment.CPP</span><b>(</b><code class='datatype'>mapping</code>(<code class='datatype'>string</code>:<code class='datatype'>mixed</code>) <code class='argument'>options</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Initialize the preprocessor.</p> - </dd> - <dt class='head--doc'><span id='p-options'></span>Parameter <code class='parameter'>options</code></dt> - <dd></dd><dd class='body--doc'><p>If the first argument is a mapping, no other arguments may follow. -  Instead, they have to be given as members of the mapping (if wanted). -  The following members are then recognized:</p> - <table class='box'><tr><td><code><code class='key'>"current_file"</code> : <code class='datatype'>string</code></code></td><td><p>Name of the current file. It is used for generating -  #line directives and for locating include files.</p> - </td></tr> - <tr><td><code><code class='key'>"charset"</code> : <code class='datatype'>int</code>|<code class='datatype'>string</code></code></td><td><p>Charset to use when processing <code class='expr'>data</code>.</p> - </td></tr> - <tr><td><code><code class='key'>"handler"</code> : <code class='datatype'>object</code></code></td><td><p>Compilation handler.</p> - </td></tr> - <tr><td><code><code class='key'>"compat_major"</code> : <code class='datatype'>int</code></code></td><td><p>Sets the major pike version used for compat handling.</p> - </td></tr> - <tr><td><code><code class='key'>"compat_minor"</code> : <code class='datatype'>int</code></code></td><td><p>Sets the minor pike version used for compat handling.</p> - </td></tr> - <tr><td><code><code class='key'>"picky_cpp"</code> : <code class='datatype'>int</code></code></td><td><p>Generate more warnings.</p> - </td></tr> - <tr><td><code><code class='key'>"keep_comments"</code> : <code class='datatype'>int</code></code></td><td><p>This option keeps <code>cpp()</code> from removing comments. -  Useful in combination with the prefix feature below.</p> - </td></tr> - <tr><td><code><code class='key'>"prefix"</code> : <code class='datatype'>string</code></code></td><td><p>If a prefix is given, only prefixed directives will be -  processed. For example, if the prefix is <code class='expr'>"foo"</code>, then -  <code class='expr'>#foo_ifdef&nbsp;COND</code> and <code class='expr'>foo___LINE__</code> would be +     processed, <code class='expr'>#ifdef&nbsp;COND</code> and <code class='expr'>__LINE__</code> would not.</p>   </td></tr>   <tr><td><code><code class='key'>"predefines"</code> : <code class='datatype'>mapping</code>(<code class='datatype'>string</code>:<code class='datatype'>mixed</code>)</code></td><td><p>Mapping of predefined macros in addition to those    returned by <code>CPP()-&gt;get_predefines()</code>.</p>   </td></tr>   </table>   </dd>   <dt class='head--doc'><span id='p-current_file'></span>Parameter <code class='parameter'>current_file</code></dt>   <dd></dd><dd class='body--doc'><p>If the <code>current_file</code> argument has not been specified,    it will default to <code class='expr'>"-"</code>.</p>
autodoc.git/traditional_manual/chapter_21.html:5902:   <dd class='body--doc'><p><code>define_macro()</code>, <code>define_ansi_macros()</code></p>   </dd></dl>         <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>format_exception</b></span>   </dt>   <dd><p><code><code class='datatype'>string</code> <b><span class='method'>format_exception</span>(</b><code class='datatype'>mixed</code> <code class='argument'>err</code><b>)</b></code></p></dd> - </dl> +     -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>format_exception</b></span> - </dt> - <dd><p><code><code class='datatype'>string</code> <b><span class='method'>format_exception</span>(</b><code class='datatype'>mixed</code> <code class='argument'>err</code><b>)</b></code></p></dd> -  +    <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Format an exception caught by cpp as a    suitable cpp error message.</p>   </dd>   <dt class='head--doc'><span id='p-err'></span>Parameter <code class='parameter'>err</code></dt>   <dd></dd><dd class='body--doc'><p>Caught value.</p>   </dd>   <dt class='head--doc'>Returns</dt>   <dd class='body--doc'><p>Returns one of:</p>   <table class='box'><tr><td><code><code class='datatype'>zero</code></code></td><td><p>Generate a cpp error using the default format (ie call
autodoc.git/traditional_manual/chapter_21.html:5935:   <tr><td><code><code class='datatype'>string</code></code></td><td><p>Cpp error message to <code>report()</code>. The empty string    supresses the cpp error.</p>   </td></tr>   </table><p>The default implementation just returns <code class='expr'>0</code>.</p>   </dd></dl>         <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>get_compilation_handler</b></span> - </dt> - <dd><p><code><code class='datatype'>object</code> <b><span class='method'>get_compilation_handler</span>(</b><code class='datatype'>int</code> <code class='argument'>major</code>, <code class='datatype'>int</code> <code class='argument'>minor</code><b>)</b></code></p></dd> - </dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> +    <span class='homogen--name'><b>get_predefines</b></span>   </dt>   <dd><p><code><code class='datatype'>mapping</code>(<code class='datatype'>string</code>:<code class='datatype'>string</code>|<code class='datatype'>function</code>(:<code class='datatype void'>void</code>)|<code class='datatype'>object</code>) <b><span class='method'>get_predefines</span>(</b><b>)</b></code></p></dd> - </dl> +     -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>get_predefines</b></span> - </dt> - <dd><p><code><code class='datatype'>mapping</code>(<code class='datatype'>string</code>:<code class='datatype'>string</code>|<code class='datatype'>function</code>(:<code class='datatype void'>void</code>)|<code class='datatype'>object</code>) <b><span class='method'>get_predefines</span>(</b><b>)</b></code></p></dd> -  +    <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Get the predefined macros for this preprocessor.</p>   <p> This function is called by <code>init_pike_cpp()</code> to    retrieve the set of macros to define at initialization.</p>   <p> The default implementation returns the internal set of    predefined macros unless <code>_take_over_initial_predefines()</code>    has been called, in which case it instead calls the    corresponding function in the master.</p>   </dd>   <dt class='head--doc'>Note</dt>
autodoc.git/traditional_manual/chapter_21.html:5979:   </dd>   <dt class='head--doc'>See also</dt>   <dd class='body--doc'><p><code>init_pike_cpp()</code>, <code>define_multiple_macros()</code>,    <code>_take_over_initial_predefines()</code></p>   </dd></dl>         <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>handle_include</b></span> - </dt> - <dd><p><code><code class='datatype'>string</code> <b><span class='method'>handle_include</span>(</b><code class='datatype'>string</code> <code class='argument'>header_file</code>, <code class='datatype'>string</code> <code class='argument'>current_file</code>, <code class='datatype'>bool</code> <code class='argument'>is_local_ref</code><b>)</b></code></p></dd> - </dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Inherit</span> - <span class='homogen--name'><b>this_program</b></span> - </dt> - <dd><p><code><span class='datatype'>inherit ::this_program</span> : <span class='inherit'>this_program</span></code></p></dd> - </dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> +    <span class='homogen--name'><b>init_pike_cpp</b></span>   </dt>   <dd><p><code><code class='datatype'>void</code> <b><span class='method'>init_pike_cpp</span>(</b><b>)</b></code></p></dd>      <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Convenience function for initializing the preprocessor    to Pike defaults.</p>   <p> The default implementation is essentially:</p>   <pre><code><span class='delim'>{</span>    define_ansi_macros<span class='delim'>(</span><span class='delim'>)</span><span class='delim'>;</span>    define_pike_macros<span class='delim'>(</span><span class='delim'>)</span><span class='delim'>;</span>    define_multiple_macros<span class='delim'>(</span>get_predefines<span class='delim'>(</span><span class='delim'>)</span><span class='delim'>)</span><span class='delim'>;</span>    <span class='delim'>}</span>   </code></pre></dd></dl>         <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>read_include</b></span> - </dt> - <dd><p><code><code class='datatype'>string</code> <b><span class='method'>read_include</span>(</b><code class='datatype'>string</code> <code class='argument'>filename</code><b>)</b></code></p></dd> - </dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> +    <span class='homogen--name'><b>report</b></span>   </dt> - <dd><p><code><code class='datatype'>void</code> <b><span class='method'>report</span>(</b><code class='object unresolved'>SeverityLevel</code> <code class='argument'>severity</code>, <code class='datatype'>string</code> <code class='argument'>filename</code>, <code class='datatype'>int(1..)</code> <code class='argument'>linenumber</code>, <code class='datatype'>string</code> <code class='argument'>subsystem</code>, <code class='object unresolved'>sprintf_format</code> <code class='argument'>message</code>, <code class='object unresolved'>sprintf_args</code> ... <code class='argument'>extra_args</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Report a diagnostic from the preprocessor.</p> - </dd> - <dt class='head--doc'><span id='p-severity'></span>Parameter <code class='parameter'>severity</code></dt> - <dd></dd><dd class='body--doc'><p>The severity of the diagnostic.</p> - </dd> - <dt class='head--doc'><span id='p-filename'></span>Parameter <code class='parameter'>filename</code></dt> - <dd></dd> - <dt class='head--doc'><span id='p-linenumber'></span>Parameter <code class='parameter'>linenumber</code></dt> - <dd></dd><dd class='body--doc'><p>Location which triggered the diagnostic.</p> - </dd> - <dt class='head--doc'><span id='p-subsystem'></span>Parameter <code class='parameter'>subsystem</code></dt> - <dd></dd><dd class='body--doc'><p>Typically <code class='expr'>"cpp"</code>.</p> - </dd> - <dt class='head--doc'><span id='p-message'></span>Parameter <code class='parameter'>message</code></dt> - <dd></dd><dd class='body--doc'><p>String with the diagnostic message, with optional -  <code>sprintf()</code>-style formatting (if any <code>extra_args</code>).</p> - </dd> - <dt class='head--doc'><span id='p-extra_args'></span>Parameter <code class='parameter'>extra_args</code></dt> - <dd></dd><dd class='body--doc'><p>Extra arguments to <code>sprintf()</code>.</p> - <p> The default implementation does the following:</p> - <ul> - <li><p>If there's a handler which implements <code>Reporter()-&gt;report()</code>, -  call it with the same arguments.</p> - </li><li><p>Otherwise if there's a handler which implements -  <code>compile_warning()</code> or <code>compile_error()</code> that matches -  <code>severity</code>, call it with suitable arguments.</p> - </li><li><p>Otherwise if there's a compat handler, use it in the same -  manner as the handler.</p> - </li><li><p>Otherwise fall back to calling <code>::report()</code> with the -  same arguments.</p> - </li></ul> - </dd> - <dt class='head--doc'>Note</dt> - <dd class='body--doc'><p>In Pike 8.0 and earlier <code>MasterObject()-&gt;report()</code> was not called.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>Reporter()-&gt;report()</code></p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>report</b></span> - </dt> +    <dd><p><code><code class='datatype'>void</code> <b><span class='method'>report</span>(</b><code class='object unresolved'>SeverityLevel</code> <code class='argument'>severity</code>, <code class='datatype'>string</code> <code class='argument'>filename</code>, <code class='datatype'>int(1..)</code> <code class='argument'>linenumber</code>, <code class='datatype'>string</code> <code class='argument'>subsystem</code>, <code class='datatype'>string</code> <code class='argument'>message</code>, <code class='datatype'>mixed</code> ... <code class='argument'>extra_args</code><b>)</b></code></p></dd>      <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Report a diagnostic from the preprocessor.</p>   </dd>   <dt class='head--doc'><span id='p-severity'></span>Parameter <code class='parameter'>severity</code></dt>   <dd></dd><dd class='body--doc'><p>The severity of the diagnostic.</p>   </dd>   <dt class='head--doc'><span id='p-filename'></span>Parameter <code class='parameter'>filename</code></dt>   <dd></dd>
autodoc.git/traditional_manual/chapter_21.html:6112:   <dd class='body--doc'><p><code>Reporter()-&gt;report()</code>, <code>cpp_error()</code></p>   </dd></dl>         <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>resolv</b></span>   </dt>   <dd><p><code><code class='datatype'>mixed</code> <b><span class='method'>resolv</span>(</b><code class='datatype'>string</code> <code class='argument'>sym</code><b>)</b></code></p></dd> - </dl> +     -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>resolv</b></span> - </dt> - <dd><p><code><code class='datatype'>mixed</code> <b><span class='method'>resolv</span>(</b><code class='datatype'>string</code> <code class='argument'>sym</code><b>)</b></code></p></dd> -  +    <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Attempt to resolve a symbol.</p>   <p> The default implementation calls <code>CompilerEnvironment()-&gt;resolv()</code>    in the parent object, with the remaining arguments taken from the    current <code>CPP</code> context.</p>   </dd>   <dt class='head--doc'>Returns</dt>   <dd class='body--doc'><p>Returns the value of <code>sym</code> if found, and <code>UNDEFINED</code> if not.</p>   </dd></dl>   </dd></dl><dl><dt><h2 class='header'>Class <b class='ms datatype'>CompilerEnvironment.PikeCompiler</b></h2>
autodoc.git/traditional_manual/chapter_21.html:6182:   <p> Returns <tt>UNDEFINED</tt> otherwise (this is not an error indication).</p>   </dd>   <dt class='head--doc'>See also</dt>   <dd class='body--doc'><p><code>pop_type_attribute()</code>, <code>push_type_attribute()</code></p>   </dd></dl>         <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>apply_handler</b></span> - </dt> - <dd><p><code><code class='modifier'>protected</code> <code class='datatype'>mixed</code> <b><span class='method'>apply_handler</span>(</b><code class='datatype'>string</code> <code class='argument'>fun</code>, <code class='datatype'>mixed</code> ... <code class='argument'>args</code><b>)</b></code></p></dd> - </dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> +    <span class='homogen--name'><b>apply_type_attribute</b></span>   </dt>   <dd><p><code><code class='datatype'>bool</code> <b><span class='method'>apply_type_attribute</span>(</b><code class='datatype'>string</code> <code class='argument'>attribute</code>, <code class='type'>type</code> <code class='argument'>a</code>, <code class='type'>type</code>|<code class='datatype'>void</code> <code class='argument'>b</code><b>)</b></code></p></dd>      <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Type attribute handler.</p>   </dd>   <dt class='head--doc'><span id='p-attribute'></span>Parameter <code class='parameter'>attribute</code></dt>   <dd></dd><dd class='body--doc'><p>Attribute that <code>a</code> had.</p>   </dd>
autodoc.git/traditional_manual/chapter_21.html:6230:   <dd class='body--doc'><p><code>pop_type_attribute()</code>, <code>push_type_attribute()</code></p>   </dd></dl>         <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>change_compiler_compatibility</b></span>   </dt>   <dd><p><code><code class='datatype'>void</code> <b><span class='method'>change_compiler_compatibility</span>(</b><code class='datatype'>int</code> <code class='argument'>major</code>, <code class='datatype'>int</code> <code class='argument'>minor</code><b>)</b></code></p></dd> - </dl> +     -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>change_compiler_compatibility</b></span> - </dt> - <dd><p><code><code class='datatype'>void</code> <b><span class='method'>change_compiler_compatibility</span>(</b><code class='datatype'>int</code> <code class='argument'>major</code>, <code class='datatype'>int</code> <code class='argument'>minor</code><b>)</b></code></p></dd> -  +    <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Change compiler to attempt to be compatible with Pike <code>major</code>.<code>minor</code>.</p>   </dd></dl>         <hr />   <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Variable</span> - <span class='homogen--name'><b>handler</b></span><br> - <span class='homogen--type'>Variable</span> - <span class='homogen--name'><b>compat_handler</b></span><br> - </dt> - <dd><p><code><code class='datatype'>object</code> CompilerEnvironment.PikeCompiler.<b><span class='variable'>handler</span></b></code><br> - <code><code class='datatype'>object</code> CompilerEnvironment.PikeCompiler.<b><span class='variable'>compat_handler</span></b></code></p></dd> - </dl> -  -  - <hr /> - <dl class='group--doc'> +    <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>compile</b></span>   </dt>   <dd><p><code><code class='datatype'>program</code> <b><span class='method'>compile</span>(</b><b>)</b></code></p></dd>      <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Compile the current source into a program.</p>   <p> This function compiles the current Pike source code    into a clonable program.</p>   </dd>
autodoc.git/traditional_manual/chapter_21.html:6332:    object will be destructed.</p>   </dd>   <dt class='head--doc'>See also</dt>   <dd class='body--doc'><p><code>compile_string()</code>, <code>compile_file()</code>, <code>cpp()</code>, <code>master()</code>,    <code>CompilationHandler</code></p>   </dd></dl>         <hr />   <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>create</b></span> - </dt> - <dd><p><code><span class='object'>CompilerEnvironment.PikeCompiler</span> <span class='class'>CompilerEnvironment.PikeCompiler</span><b>(</b><code class='datatype'>string</code>|<code class='datatype'>void</code> <code class='argument'>source</code>, <code class='datatype'>object</code>|<code class='datatype'>void</code> <code class='argument'>handler</code>, <code class='datatype'>int</code>|<code class='datatype'>void</code> <code class='argument'>major</code>, <code class='datatype'>int</code>|<code class='datatype'>void</code> <code class='argument'>minor</code>, <code class='datatype'>program</code>|<code class='datatype'>void</code> <code class='argument'>target</code>, <code class='datatype'>object</code>|<code class='datatype'>void</code> <code class='argument'>placeholder</code><b>)</b></code></p></dd> - </dl> -  -  - <hr /> - <dl class='group--doc'> +    <dt class='head--type'><span class='homogen--type'>Variable</span>   <span class='homogen--name'><b>current_file</b></span>   </dt>   <dd><p><code><code class='datatype'>string</code> CompilerEnvironment.PikeCompiler.<b><span class='variable'>current_file</span></b></code></p></dd>      <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>The name of the file currently being compiled (during an active    compilation).</p>   </dd></dl>   
autodoc.git/traditional_manual/chapter_21.html:6370:   <dd class='body--doc'><p>The current line number (during an active compilation).</p>   </dd></dl>         <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>get_compilation_handler</b></span>   </dt>   <dd><p><code><code class='datatype'>object</code> <b><span class='method'>get_compilation_handler</span>(</b><code class='datatype'>int</code> <code class='argument'>major</code>, <code class='datatype'>int</code> <code class='argument'>minor</code><b>)</b></code></p></dd> - </dl> +     -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>get_compilation_handler</b></span> - </dt> - <dd><p><code><code class='datatype'>object</code> <b><span class='method'>get_compilation_handler</span>(</b><code class='datatype'>int</code> <code class='argument'>major</code>, <code class='datatype'>int</code> <code class='argument'>minor</code><b>)</b></code></p></dd> -  +    <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Get compatibility handler for Pike <code>major</code>.<code>minor</code>.</p>   </dd>   <dt class='head--doc'>Note</dt>   <dd class='body--doc'><p>This function is called by <code>change_compiler_compatibility()</code>.</p>   </dd></dl>         <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>get_default_module</b></span>   </dt>   <dd><p><code><code class='datatype'>mapping</code>(<code class='datatype'>string</code>:<code class='datatype'>mixed</code>)|<code class='datatype'>object</code> <b><span class='method'>get_default_module</span>(</b><b>)</b></code></p></dd> - </dl> +     -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>get_default_module</b></span> - </dt> - <dd><p><code><code class='datatype'>mapping</code>(<code class='datatype'>string</code>:<code class='datatype'>mixed</code>)|<code class='datatype'>object</code> <b><span class='method'>get_default_module</span>(</b><b>)</b></code></p></dd> -  +    <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Get the default module for the current compatibility level    (ie typically the value returned by <code>predef::all_constants()</code>).</p>   <p> The default implementation calls the corresponding function    in the current handler, the current compatibility handler    or in the parent <code>CompilerEnvironment</code> in that order.</p>   </dd>   <dt class='head--doc'>Returns</dt>   <dd class='body--doc'><table class='box'><tr><td><code><code class='datatype'>mapping</code>(<code class='datatype'>string</code>:<code class='datatype'>mixed</code>)|<code class='datatype'>object</code></code></td><td><p>Constant table to use.</p>   </td></tr>
autodoc.git/traditional_manual/chapter_21.html:6429:   <dd class='body--doc'><p>This function is called by <code>change_compiler_compatibility()</code>.</p>   </dd></dl>         <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>handle_import</b></span>   </dt>   <dd><p><code><code class='datatype'>program</code> <b><span class='method'>handle_import</span>(</b><code class='datatype'>string</code> <code class='argument'>module</code><b>)</b></code></p></dd> - </dl> +     -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>handle_import</b></span> - </dt> - <dd><p><code><code class='datatype'>program</code> <b><span class='method'>handle_import</span>(</b><code class='datatype'>string</code> <code class='argument'>module</code><b>)</b></code></p></dd> -  +    <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Look up an import <code>module</code>.</p>   </dd></dl>         <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>handle_inherit</b></span>   </dt>   <dd><p><code><code class='datatype'>program</code> <b><span class='method'>handle_inherit</span>(</b><code class='datatype'>string</code> <code class='argument'>inh</code><b>)</b></code></p></dd> - </dl> +     -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>handle_inherit</b></span> - </dt> - <dd><p><code><code class='datatype'>program</code> <b><span class='method'>handle_inherit</span>(</b><code class='datatype'>string</code> <code class='argument'>inh</code><b>)</b></code></p></dd> -  +    <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Look up an inherit <code>inh</code> in the current program.</p>   </dd></dl>         <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>index_type_attribute</b></span>   </dt>
autodoc.git/traditional_manual/chapter_21.html:6492:    (ie <code class='expr'>__attribute__(attribute,&nbsp;a)[i]</code>), and    <code class='expr'>0</code> (zero) otherwise.</p>   </dd>   <dt class='head--doc'>See also</dt>   <dd class='body--doc'><p><code>pop_type_attribute()</code>, <code>push_type_attribute()</code></p>   </dd></dl>         <hr />   <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Inherit</span> - <span class='homogen--name'><b>this_program</b></span> - </dt> - <dd><p><code><span class='datatype'>inherit ::this_program</span> : <span class='inherit'>this_program</span></code></p></dd> - </dl> -  -  - <hr /> - <dl class='group--doc'> +    <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>pop_type_attribute</b></span>   </dt>   <dd><p><code><code class='datatype'>bool</code> <b><span class='method'>pop_type_attribute</span>(</b><code class='datatype'>string</code> <code class='argument'>attribute</code>, <code class='type'>type</code> <code class='argument'>a</code>, <code class='type'>type</code> <code class='argument'>b</code><b>)</b></code></p></dd>      <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Type attribute handler.</p>   <p> Called during type checking when <code class='expr'>a&nbsp;&lt;=&nbsp;b</code> and    <code>a</code> had the type attribute <code>attribute</code> before the    comparison.</p>
autodoc.git/traditional_manual/chapter_21.html:6555:   <dd class='body--doc'><p><code>pop_type_attribute()</code>, <code>index_type_attribute()</code></p>   </dd></dl>         <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>report</b></span>   </dt>   <dd><p><code><code class='datatype'>void</code> <b><span class='method'>report</span>(</b><code class='object unresolved'>SeverityLevel</code> <code class='argument'>severity</code>, <code class='datatype'>string</code> <code class='argument'>filename</code>, <code class='datatype'>int</code> <code class='argument'>linenumber</code>, <code class='datatype'>string</code> <code class='argument'>subsystem</code>, <code class='datatype'>string</code> <code class='argument'>message</code>, <code class='datatype'>mixed</code> ... <code class='argument'>extra_args</code><b>)</b></code></p></dd> - </dl> +     -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>report</b></span> - </dt> - <dd><p><code><code class='datatype'>void</code> <b><span class='method'>report</span>(</b><code class='object unresolved'>SeverityLevel</code> <code class='argument'>severity</code>, <code class='datatype'>string</code> <code class='argument'>filename</code>, <code class='datatype'>int</code> <code class='argument'>linenumber</code>, <code class='datatype'>string</code> <code class='argument'>subsystem</code>, <code class='datatype'>string</code> <code class='argument'>message</code>, <code class='datatype'>mixed</code> ... <code class='argument'>extra_args</code><b>)</b></code></p></dd> -  +    <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Report a diagnostic from the compiler.</p>   <p> The default implementation attempts to call the first    corresponding function in the active handlers in priority order:</p>   <ol>   <li><p>Call handler-&gt;report().</p>   </li><li><p>Call handler-&gt;compile_warning() or handler-&gt;compile_error()    depending on <code>severity</code>.</p>   </li><li><p>Call compat-&gt;report().</p>   </li><li><p>Call compat-&gt;compile_warning() or compat-&gt;compile_error()
autodoc.git/traditional_manual/chapter_21.html:6609:   <dd class='body--doc'><p><code>CompilerEnvironment()-&gt;report()</code></p>   </dd></dl>         <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>resolv</b></span>   </dt>   <dd><p><code><code class='datatype'>mixed</code> <b><span class='method'>resolv</span>(</b><code class='datatype'>string</code> <code class='argument'>identifier</code><b>)</b></code></p></dd> - </dl> +     -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>resolv</b></span> - </dt> - <dd><p><code><code class='datatype'>mixed</code> <b><span class='method'>resolv</span>(</b><code class='datatype'>string</code> <code class='argument'>identifier</code><b>)</b></code></p></dd> -  +    <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Resolve the symbol <code>identifier</code>.</p>   <p> The default implementation calls <code>CompilerEnvironment()-&gt;resolv()</code>    in the parent object, with the remaining arguments taken from the    current <code>PikeCompiler</code> context.</p>   </dd>   <dt class='head--doc'>Returns</dt>   <dd class='body--doc'><p>Returns the value of <code>sym</code> if found, and <code>UNDEFINED</code> if not.</p>   </dd></dl>   
autodoc.git/traditional_manual/chapter_21.html:7080:   <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>value</b></span>   </dt>   <dd><p><code><code class='datatype'>mixed</code> <b><span class='method'>value</span>(</b><b>)</b></code></p></dd>      <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Returns the current value, or <code>UNDEFINED</code> if the iterator    doesn't point to any item.</p>   </dd></dl>   </dd></dl><dl><dt><h2 class='header'>Class <b class='ms datatype'>MasterObject</b></h2> - </dt><dd><dl class='group--doc'> - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Master control program for Pike.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>predef::master()</code>, <code>predef::replace_master()</code></p> - </dd></dl> + </dt><dd>      <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Variable</span>   <span class='homogen--name'><b>Decoder</b></span>   </dt>   <dd><p><code><code class='datatype'>program</code> MasterObject.<b><span class='variable'>Decoder</span></b></code></p></dd>      <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>This program in the master is cloned and used as codec by
autodoc.git/traditional_manual/chapter_21.html:7129:    function.</p>   </dd>   <dt class='head--doc'>See also</dt>   <dd class='body--doc'><p><code>Encoder</code>, <code>Pike.Encoder</code></p>   </dd></dl>         <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>_main</b></span> - </dt> - <dd><p><code><code class='datatype'>void</code> <b><span class='method'>_main</span>(</b><code class='datatype'>array</code>(<code class='datatype'>string(8bit)</code>) <code class='argument'>orig_argv</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>This function is called when all the driver is done with all setup -  of modules, efuns, tables etc. etc. and is ready to start executing -  _real_ programs. It receives the arguments not meant for the driver.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Variable</span> - <span class='homogen--name'><b>_pike_file_name</b></span><br> - <span class='homogen--type'>Variable</span> - <span class='homogen--name'><b>_master_file_name</b></span><br> - </dt> - <dd><p><code><code class='datatype'>string</code> MasterObject.<b><span class='variable'>_pike_file_name</span></b></code><br> - <code><code class='datatype'>string</code> MasterObject.<b><span class='variable'>_master_file_name</span></b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>These are useful if you want to start other Pike processes -  with the same options as this one was started with.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>add_filesystem_handler</b></span> - </dt> - <dd><p><code><code class='datatype'>mixed</code> <b><span class='method'>add_filesystem_handler</span>(</b><code class='datatype'>string</code> <code class='argument'>mountpoint</code>, <code class='datatype'>object</code> <code class='argument'>filesystem</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>mount a filesystem handler to be used by the resolver. on its own does noting, -  but may be used with <code>add_module_path</code> and friends to enable modules to be loaded -  from Filesystem objects.</p> - </dd> - <dt class='head--doc'><span id='p-mountpoint'></span>Parameter <code class='parameter'>mountpoint</code></dt> - <dd></dd><dd class='body--doc'><p>the location in the filesystem to mount the handler</p> - </dd> - <dt class='head--doc'><span id='p-filesystem'></span>Parameter <code class='parameter'>filesystem</code></dt> - <dd></dd><dd class='body--doc'><p>a filesystem object that will handle requests for the given mountpoint.</p> - </dd> - <dt class='head--doc'>Example</dt> - <dd class='example'><pre><p>master()-&gt;add_filesystem_handler("/foo/bar.zip", Filesystem.Zip("/foo/bar.zip")); -  master()-&gt;add_module_path("/foo/bar.zip/lib");</p> - </pre></dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>find_handler_for_path()</code></p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>asyncp</b></span> - </dt> - <dd><p><code><code class='datatype'>bool</code> <b><span class='method'>asyncp</span>(</b><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Returns 1 if we're in async-mode, e.g. if the main method has -  returned a negative number.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>backend_thread</b></span> - </dt> - <dd><p><code><code class='datatype'>object</code> <b><span class='method'>backend_thread</span>(</b><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>The backend_thread() function is useful to determine if you are -  the backend thread - important when doing async/sync protocols. -  This method is only available if thread_create is present.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Constant</span> - <span class='homogen--name'><b>bt_max_string_len</b></span> - </dt> - <dd><p><code><code class='datatype'>constant</code> <code class='datatype'>int</code> MasterObject.<code class='constant'>bt_max_string_len</code></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>This constant contains the maximum length of a function entry in a -  backtrace. Defaults to 200 if no BT_MAX_STRING_LEN define has been -  given.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> +    <span class='homogen--name'><b>cast_to_object</b></span>   </dt> - <dd><p><code><code class='datatype'>object</code> <b><span class='method'>cast_to_object</span>(</b><code class='datatype'>string</code> <code class='argument'>oname</code>, <code class='datatype'>string</code> <code class='argument'>current_file</code>, <code class='datatype'>object</code>|<code class='datatype'>void</code> <code class='argument'>current_handler</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>This function is called when the drivers wants to cast a string -  to an object because of an implict or explicit cast. This function -  may also receive more arguments in the future.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>cast_to_object</b></span> - </dt> +    <dd><p><code><code class='datatype'>object</code> <b><span class='method'>cast_to_object</span>(</b><code class='datatype'>string</code> <code class='argument'>str</code>, <code class='datatype'>string</code>|<code class='datatype'>void</code> <code class='argument'>current_file</code><b>)</b></code></p></dd>      <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Called by the Pike runtime to cast strings to objects.</p>   </dd>   <dt class='head--doc'><span id='p-str'></span>Parameter <code class='parameter'>str</code></dt>   <dd></dd><dd class='body--doc'><p>String to cast to object.</p>   </dd>   <dt class='head--doc'><span id='p-current_file'></span>Parameter <code class='parameter'>current_file</code></dt>   <dd></dd><dd class='body--doc'><p>Filename of the file that attempts to perform the cast.</p>
autodoc.git/traditional_manual/chapter_21.html:7267:   <dt class='head--doc'>See also</dt>   <dd class='body--doc'><p><code>cast_to_program()</code></p>   </dd></dl>         <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>cast_to_program</b></span>   </dt> - <dd><p><code><code class='datatype'>program</code> <b><span class='method'>cast_to_program</span>(</b><code class='datatype'>string</code> <code class='argument'>pname</code>, <code class='datatype'>string</code> <code class='argument'>current_file</code>, <code class='datatype'>object</code>|<code class='datatype'>void</code> <code class='argument'>handler</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>This function is called when the driver wants to cast a string -  to a program, this might be because of an explicit cast, an inherit -  or a implict cast. In the future it might receive more arguments, -  to aid the master finding the right program.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>cast_to_program</b></span> - </dt> +    <dd><p><code><code class='datatype'>program</code> <b><span class='method'>cast_to_program</span>(</b><code class='datatype'>string</code> <code class='argument'>str</code>, <code class='datatype'>string</code>|<code class='datatype'>void</code> <code class='argument'>current_file</code><b>)</b></code></p></dd>      <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Called by the Pike runtime to cast strings to programs.</p>   </dd>   <dt class='head--doc'><span id='p-str'></span>Parameter <code class='parameter'>str</code></dt>   <dd></dd><dd class='body--doc'><p>String to cast to object.</p>   </dd>   <dt class='head--doc'><span id='p-current_file'></span>Parameter <code class='parameter'>current_file</code></dt>   <dd></dd><dd class='body--doc'><p>Filename of the file that attempts to perform the cast.</p>
autodoc.git/traditional_manual/chapter_21.html:7303:   <dt class='head--doc'>Returns</dt>   <dd class='body--doc'><p>Returns the resulting program.</p>   </dd>   <dt class='head--doc'>See also</dt>   <dd class='body--doc'><p><code>cast_to_object()</code></p>   </dd></dl>         <hr />   <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Variable</span> - <span class='homogen--name'><b>cflags</b></span> - </dt> - <dd><p><code><code class='datatype'>string</code> MasterObject.<b><span class='variable'>cflags</span></b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Flags suitable for use when compiling Pike C modules</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Variable</span> - <span class='homogen--name'><b>compat_major</b></span> - </dt> - <dd><p><code><code class='datatype'>int</code> MasterObject.<b><span class='variable'>compat_major</span></b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Major pike version to emulate.</p> - <p> This is typically set via the option <code class='expr'>"-V"</code>.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>compat_minor</code></p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Variable</span> - <span class='homogen--name'><b>compat_minor</b></span> - </dt> - <dd><p><code><code class='datatype'>int</code> MasterObject.<b><span class='variable'>compat_minor</span></b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Minor pike version to emulate.</p> - <p> This is typically set via the option <code class='expr'>"-V"</code>.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>compat_major</code></p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> +    <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>compile_error</b></span> - </dt> - <dd><p><code><code class='datatype'>void</code> <b><span class='method'>compile_error</span>(</b><code class='datatype'>string</code> <code class='argument'>file</code>, <code class='datatype'>int</code> <code class='argument'>line</code>, <code class='datatype'>string</code> <code class='argument'>err</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>This function is called whenever a compile error occurs. <code>line</code> -  is zero for errors that aren't associated with any specific line. -  <code>err</code> is not newline terminated.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>compile_warning()</code>, <code>compile_exception()</code>, -  <code>get_inhibit_compile_errors()</code>, <code>set_inhibit_compile_errors()</code>,</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>compile_exception</b></span> - </dt> - <dd><p><code><code class='datatype'>int</code> <b><span class='method'>compile_exception</span>(</b><code class='datatype'>array</code>|<code class='datatype'>object</code> <code class='argument'>trace</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>This function is called when an exception is caught during -  compilation. Its message is also reported to <code>compile_error</code> if -  this function returns zero.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>compile_error()</code>, <code>compile_warning()</code>, -  <code>get_inhibit_compile_errors()</code>, <code>set_inhibit_compile_errors()</code>,</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>compile_warning</b></span> - </dt> - <dd><p><code><code class='datatype'>void</code> <b><span class='method'>compile_warning</span>(</b><code class='datatype'>string</code> <code class='argument'>file</code>, <code class='datatype'>int</code> <code class='argument'>line</code>, <code class='datatype'>string</code> <code class='argument'>err</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>This function is called whenever a compile warning occurs. <code>line</code> -  is zero for warnings that aren't associated with any specific -  line. <code>err</code> is not newline terminated.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>compile_error()</code>, <code>compile_exception()</code>, -  <code>get_inhibit_compile_errors()</code>, <code>set_inhibit_compile_errors()</code>,</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Variable</span> - <span class='homogen--name'><b>currentversion</b></span> - </dt> - <dd><p><code><code class='object unresolved'>Version</code> MasterObject.<b><span class='variable'>currentversion</span></b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Version information about the current Pike version.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> +    <span class='homogen--name'><b>decode_charset</b></span>   </dt> - <dd><p><code><code class='datatype'>string</code> <b><span class='method'>decode_charset</span>(</b><code class='datatype'>string</code> <code class='argument'>data</code>, <code class='datatype'>string</code> <code class='argument'>charset</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>This function is called by cpp() when it wants to do -  character code conversion.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>decode_charset</b></span> - </dt> +    <dd><p><code><code class='datatype'>string</code> <b><span class='method'>decode_charset</span>(</b><code class='datatype'>string</code> <code class='argument'>raw</code>, <code class='datatype'>string</code> <code class='argument'>charset</code><b>)</b></code></p></dd>      <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Convert <code>raw</code> from encoding <code>charset</code> to UNICODE.</p>   <p> This function is called by <code>cpp()</code> when it encounters    <code class='expr'>#charset</code> directives.</p>   </dd>   <dt class='head--doc'><span id='p-raw'></span>Parameter <code class='parameter'>raw</code></dt>   <dd></dd><dd class='body--doc'><p>String to convert.</p>   </dd>
autodoc.git/traditional_manual/chapter_21.html:7486:    with <code>add_constant()</code>.</p>   </dd>   <dt class='head--doc'>See also</dt>   <dd class='body--doc'><p><code>predef::describe_backtrace()</code></p>   </dd></dl>         <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>describe_function</b></span> - </dt> - <dd><p><code><code class='datatype'>string</code> <b><span class='method'>describe_function</span>(</b><code class='datatype'>function</code>(:<code class='datatype void'>void</code>) <code class='argument'>f</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Function called by <code>describe_backtrace()</code> to describe -  functions in the backtrace.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>describe_module</b></span> - </dt> - <dd><p><code><code class='datatype'>string</code> <b><span class='method'>describe_module</span>(</b><code class='datatype'>object</code>|<code class='datatype'>program</code> <code class='argument'>mod</code>, <code class='datatype'>array</code>(<code class='datatype'>object</code>)|<code class='datatype'>void</code> <code class='argument'>ret_obj</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Describe the path to the module <code>mod</code>.</p> - </dd> - <dt class='head--doc'><span id='p-mod'></span>Parameter <code class='parameter'>mod</code></dt> - <dd></dd><dd class='body--doc'><p>If <code>mod</code> is a program, attempt to describe the path -  to a clone of <code>mod</code>.</p> - </dd> - <dt class='head--doc'><span id='p-ret_obj'></span>Parameter <code class='parameter'>ret_obj</code></dt> - <dd></dd><dd class='body--doc'><p>If an instance of <code>mod</code> is found, it will be returned -  by changing element <code class='expr'>0</code> of <code>ret_obj</code>.</p> - </dd> - <dt class='head--doc'>Returns</dt> - <dd class='body--doc'><p>The a description of the path.</p> - </dd> - <dt class='head--doc'>Note</dt> - <dd class='body--doc'><p>The returned description will end with a proper indexing method -  currently either <code class='expr'>"."</code> or <code class='expr'>"-&gt;"</code>.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>describe_object</b></span> - </dt> - <dd><p><code><code class='datatype'>string</code> <b><span class='method'>describe_object</span>(</b><code class='datatype'>object</code> <code class='argument'>o</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Function called by <code class='expr'>sprintf("%O")</code> for objects that don't -  have an <code>lfun::_sprintf()</code>, or have one that returns <code class='expr'>UNDEFINED</code>.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>describe_program</b></span> - </dt> - <dd><p><code><code class='datatype'>string</code> <b><span class='method'>describe_program</span>(</b><code class='datatype'>program</code>|<code class='datatype'>function</code>(:<code class='datatype void'>void</code>) <code class='argument'>p</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Function called by <code class='expr'>sprintf("%O")</code> for programs.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Variable</span> - <span class='homogen--name'><b>doc_prefix</b></span> - </dt> - <dd><p><code><code class='datatype'>string</code> MasterObject.<b><span class='variable'>doc_prefix</span></b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Prefix for autodoc files.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Variable</span> - <span class='homogen--name'><b>programs</b></span><br> - <span class='homogen--type'>Variable</span> - <span class='homogen--name'><b>documentation</b></span><br> - <span class='homogen--type'>Variable</span> - <span class='homogen--name'><b>source_cache</b></span><br> - </dt> - <dd><p><code><code class='datatype'>mapping</code>(<code class='datatype'>string</code>:<code class='datatype'>program</code>|<code class='object unresolved'>NoValue</code>) MasterObject.<b><span class='variable'>programs</span></b></code><br> - <code><code class='datatype'>mapping</code>(<code class='datatype'>program</code>:<code class='datatype'>object</code>) MasterObject.<b><span class='variable'>documentation</span></b></code><br> - <code><code class='datatype'>mapping</code>(<code class='datatype'>program</code>:<code class='datatype'>string</code>) MasterObject.<b><span class='variable'>source_cache</span></b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Mapping containing the cache of currently compiled files.</p> - <p> This mapping currently has the following structure:</p> - <table class='box'><tr><td><code><code class='key'>filename</code> : <code class='datatype'>program</code></code></td></tr> - </table><p>The filename path separator is / on both NT and UNIX.</p> - </dd> - <dt class='head--doc'>Note</dt> - <dd class='body--doc'><p>Special cases: The current master program is available under the -  name <code class='expr'>"/master"</code>, and the program containing the <code>main</code> -  function under <code class='expr'>"/main"</code>.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>enable_source_cache</b></span> - </dt> - <dd><p><code><code class='datatype'>void</code> <b><span class='method'>enable_source_cache</span>(</b><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Enable caching of sources from compile_string()</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>fc_reverse_lookup</b></span> - </dt> - <dd><p><code><code class='datatype'>string</code> <b><span class='method'>fc_reverse_lookup</span>(</b><code class='datatype'>object</code> <code class='argument'>obj</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Returns the path for <code>obj</code> in <code>fc</code>, if it got any.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>find_handler_for_path</b></span> - </dt> - <dd><p><code><code class='datatype'>string</code> <b><span class='method'>find_handler_for_path</span>(</b><code class='datatype'>string</code> <code class='argument'>file</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Return the mountpoint for the filesystem handler handling the -  <code>file</code> (if any).</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>add_filesystem_handler()</code></p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>get_compat_master</b></span> - </dt> - <dd><p><code><code class='datatype'>object</code> <b><span class='method'>get_compat_master</span>(</b><code class='datatype'>int</code> <code class='argument'>major</code>, <code class='datatype'>int</code> <code class='argument'>minor</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Return a master object compatible with the specified version of Pike.</p> - <p> This function is used to implement the various compatibility versions -  of <code>master()</code>.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>get_compilation_handler()</code>, <code>master()</code></p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> +    <span class='homogen--name'><b>get_compilation_handler</b></span>   </dt>   <dd><p><code><code class='object unresolved'>CompilationHandler</code> <b><span class='method'>get_compilation_handler</span>(</b><code class='datatype'>int</code> <code class='argument'>major</code>, <code class='datatype'>int</code> <code class='argument'>minor</code><b>)</b></code></p></dd>      <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Get compilation handler for simulation of Pike v<code>major</code>.<code>minor</code>.</p>   <p> This function is called by <code>cpp()</code> when it encounters    <code class='expr'>#pike</code> directives.</p>   </dd>   <dt class='head--doc'><span id='p-major'></span>Parameter <code class='parameter'>major</code></dt>
autodoc.git/traditional_manual/chapter_21.html:7669:   <dd></dd><dd class='body--doc'><p>Minor version.</p>   </dd>   <dt class='head--doc'>Returns</dt>   <dd class='body--doc'><p>Returns a compilation handler for Pike &gt;= <code>major</code>.<code>minor</code>.</p>   </dd></dl>         <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>get_inhibit_compile_errors</b></span> - </dt> - <dd><p><code><code class='datatype'>mixed</code> <b><span class='method'>get_inhibit_compile_errors</span>(</b><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Get the current compile error, warning and exception behaviour.</p> - <p> See <code>set_inhibit_compile_errors()</code> for details.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>set_inhibit_compile_errors()</code></p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>get_precompiled_mtime</b></span> - </dt> - <dd><p><code><code class='datatype'>int</code> <b><span class='method'>get_precompiled_mtime</span>(</b><code class='datatype'>string</code> <code class='argument'>id</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Given an identifier returned by query_precompiled_names, returns -  the mtime of the precompiled entry. Returns -1 if there is no -  entry.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>handle_attribute</b></span> - </dt> - <dd><p><code><code class='modifier'>optional</code> <code class='datatype'>bool</code> <b><span class='method'>handle_attribute</span>(</b><code class='datatype'>mixed</code> <code class='argument'>value</code>, <code class='datatype'>string</code> <code class='argument'>attribute</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>This function is called in runtime check_types mode (<tt>-rt</tt>), -  when encountering a soft cast to an attributed type.</p> - </dd> - <dt class='head--doc'><span id='p-value'></span>Parameter <code class='parameter'>value</code></dt> - <dd></dd><dd class='body--doc'><p>Value that is about to receive the attribute.</p> - </dd> - <dt class='head--doc'><span id='p-attribute'></span>Parameter <code class='parameter'>attribute</code></dt> - <dd></dd><dd class='body--doc'><p>Type attribute to validate.</p> - </dd> - <dt class='head--doc'>Returns</dt> - <dd class='body--doc'><p>Returns one of:</p> - <table class='box'><tr><td><code><code class='key'>1</code></code></td><td><p>If the attribute is valid for the value.</p> - </td></tr> - <tr><td><code><code class='key'>0</code></code></td><td><p>If the attribute is not valid for the value.</p> - </td></tr> - <tr><td><code><code class='key'>UNDEFINED</code></code></td><td><p>If the attribute is unsupported.</p> - </td></tr> - </table><p>The default master implements validation of the <code class='expr'>"utf8"</code> -  attribute.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> +    <span class='homogen--name'><b>handle_error</b></span>   </dt>   <dd><p><code><code class='datatype'>void</code> <b><span class='method'>handle_error</span>(</b><code class='datatype'>mixed</code> <code class='argument'>exception</code><b>)</b></code></p></dd>      <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Called by the Pike runtime if an exception isn't caught.</p>   </dd>   <dt class='head--doc'><span id='p-exception'></span>Parameter <code class='parameter'>exception</code></dt>   <dd></dd><dd class='body--doc'><p>Value that was <code>throw()</code>'n.</p>   </dd>   <dt class='head--doc'>See also</dt>   <dd class='body--doc'><p><code>describe_backtrace()</code></p>   </dd></dl>         <hr />   <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>handle_error</b></span> - </dt> - <dd><p><code><code class='datatype'>void</code> <b><span class='method'>handle_error</span>(</b><code class='datatype'>array</code>|<code class='datatype'>object</code> <code class='argument'>trace</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>This function is called when an error occurs that is not caught -  with catch().</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>handle_inherit</b></span> - </dt> - <dd><p><code><code class='datatype'>program</code> <b><span class='method'>handle_inherit</span>(</b><code class='datatype'>string</code> <code class='argument'>pname</code>, <code class='datatype'>string</code> <code class='argument'>current_file</code>, <code class='datatype'>object</code>|<code class='datatype'>void</code> <code class='argument'>handler</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>This function is called whenever a inherit is called for. -  It is supposed to return the program to inherit. -  The first argument is the argument given to inherit, and the second -  is the file name of the program currently compiling. Note that the -  file name can be changed with #line, or set by compile_string, so -  it can not be 100% trusted to be a filename. -  previous_object(), can be virtually anything in this function, as it -  is called from the compiler.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Variable</span> - <span class='homogen--name'><b>include_prefix</b></span> - </dt> - <dd><p><code><code class='datatype'>string</code> MasterObject.<b><span class='variable'>include_prefix</span></b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Prefix for Pike-related C header files.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> +    <dt class='head--type'><span class='homogen--type'>Inherit</span> - <span class='homogen--name'><b>Codec</b></span> - </dt> - <dd><p><code><span class='datatype'>inherit Codec</span> : <span class='inherit'>Codec</span></code></p></dd> - </dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Inherit</span> - <span class='homogen--name'><b>CompatResolver</b></span> - </dt> - <dd><p><code><span class='datatype'>inherit CompatResolver</span> : <span class='inherit'>CompatResolver</span></code></p></dd> - </dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Inherit</span> +    <span class='homogen--name'><b>CompilationHandler</b></span>   </dt>   <dd><p><code><span class='datatype'>inherit CompilationHandler</span> : <span class='inherit'>CompilationHandler</span></code></p></dd>      <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>The master object acts as fallback compilation handler for    <code>compile()</code> and <code>cpp()</code>.</p>   </dd></dl>         <hr />   <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Inherit</span> - <span class='homogen--name'><b>Pike_8_0_master</b></span> - </dt> - <dd><p><code><span class='datatype'><code class='modifier'>protected</code> inherit Pike_8_0_master</span> : <span class='inherit'>Pike_8_0_master</span></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Namespaces for compat masters.</p> - <p> This inherit is used to provide compatibility namespaces -  for <code>get_compat_master()</code>.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>get_compat_master()</code></p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Variable</span> - <span class='homogen--name'><b>is_pike_master</b></span> - </dt> - <dd><p><code><code class='datatype'>int</code> MasterObject.<b><span class='variable'>is_pike_master</span></b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>This integer variable should exist in any object that aspires to be -  the master. It gets set to 1 when the master is installed, and is -  therefore set in any object that is or has been the master. That -  makes the Encoder class encode references to the master and all -  ex-masters as references to the current master object.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Variable</span> - <span class='homogen--name'><b>ldflags</b></span> - </dt> - <dd><p><code><code class='datatype'>string</code> MasterObject.<b><span class='variable'>ldflags</span></b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Flags suitable for use when linking Pike C modules</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> +    <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>master_read_file</b></span> - </dt> - <dd><p><code><code class='datatype'>string</code> <b><span class='method'>master_read_file</span>(</b><code class='datatype'>string</code> <code class='argument'>file</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Read a file from the master filesystem.</p> - <p> The master filesystem defaults to the system filesystem, -  but additional mountpoints may be added via -  <code>add_filesystem_handler()</code>.</p> - <p> All file I/O performed by the <code>MasterObject</code> is performed -  via this function and its related functions.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>add_filesystem_handler()</code>, <code>find_handler_for_path()</code>, -  <code>master_get_dir()</code>, <code>master_file_stat()</code></p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>module_defined</b></span> - </dt> - <dd><p><code><code class='datatype'>array</code>(<code class='datatype'>string</code>) <b><span class='method'>module_defined</span>(</b><code class='datatype'>object</code>|<code class='datatype'>program</code> <code class='argument'>mod</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Find the files in which <code>mod</code> is defined, as they may be hidden away in -  joinnodes and dirnodes</p> - </dd> - <dt class='head--doc'><span id='p-mod'></span>Parameter <code class='parameter'>mod</code></dt> - <dd></dd><dd class='body--doc'><p>The module we are looking for.</p> - </dd> - <dt class='head--doc'>Returns</dt> - <dd class='body--doc'><p>An array of strings with filenames. -  (one for each file in a joinnode, or just one otherwise)</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>objects_reverse_lookup</b></span> - </dt> - <dd><p><code><code class='datatype'>program</code> <b><span class='method'>objects_reverse_lookup</span>(</b><code class='datatype'>object</code> <code class='argument'>obj</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Returns the program for <code>obj</code>, if known to the master.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Constant</span> - <span class='homogen--name'><b>out_of_date_warning</b></span> - </dt> - <dd><p><code><code class='datatype'>constant</code> <code class='datatype'>int</code> MasterObject.<code class='constant'>out_of_date_warning</code></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Should Pike complain about out of date compiled files. -  1 means yes and 0 means no. Controlled by the OUT_OF_DATE_WARNING -  define.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>program_path_to_name</b></span> - </dt> - <dd><p><code><code class='datatype'>string</code> <b><span class='method'>program_path_to_name</span>(</b><code class='datatype'>string</code> <code class='argument'>path</code>, <code class='datatype'>void</code>|<code class='datatype'>string</code> <code class='argument'>module_prefix</code>, <code class='datatype'>void</code>|<code class='datatype'>string</code> <code class='argument'>module_suffix</code>, <code class='datatype'>void</code>|<code class='datatype'>string</code> <code class='argument'>object_suffix</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Converts a module path on the form <code class='expr'>"Foo.pmod/Bar.pmod"</code> or -  <code class='expr'>"/path/to/pike/lib/modules/Foo.pmod/Bar.pmod"</code> to a module -  identifier on the form <code class='expr'>"Foo.Bar"</code>.</p> - <p> If <code>module_prefix</code> or <code>module_suffix</code> are given, they are -  prepended and appended, respectively, to the returned string if -  it's a module file (i.e. ends with <code class='expr'>".pmod"</code> or -  <code class='expr'>".so"</code>). If <code>object_suffix</code> is given, it's appended to the -  returned string if it's an object file (i.e. ends with -  <code class='expr'>".pike"</code>).</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>programs_reverse_lookup</b></span> - </dt> - <dd><p><code><code class='datatype'>string</code> <b><span class='method'>programs_reverse_lookup</span>(</b><code class='datatype'>program</code> <code class='argument'>prog</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Returns the path for <code>prog</code> in <code>programs</code>, if it got any.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>query_precompiled_names</b></span> - </dt> - <dd><p><code><code class='datatype'>array</code>(<code class='datatype'>string</code>) <b><span class='method'>query_precompiled_names</span>(</b><code class='datatype'>string</code> <code class='argument'>fname</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Returns identifiers (e.g. file names) of potentially precompiled -  files in priority order.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>read_precompiled</b></span> - </dt> - <dd><p><code><code class='datatype'>string</code> <b><span class='method'>read_precompiled</span>(</b><code class='datatype'>string</code> <code class='argument'>id</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Given an identifier returned by query_precompiled_names, returns -  the precompiled entry. Can assume the entry exists.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> +    <span class='homogen--name'><b>runtime_warning</b></span>   </dt>   <dd><p><code><code class='datatype'>void</code> <b><span class='method'>runtime_warning</span>(</b><code class='datatype'>string</code> <code class='argument'>subsystem</code>, <code class='datatype'>string</code> <code class='argument'>msg</code>, <code class='datatype'>mixed</code>|<code class='datatype'>void</code> <code class='argument'>data</code><b>)</b></code></p></dd>      <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Called by the Pike runtime to warn about data inconsistencies.</p>   </dd>   <dt class='head--doc'><span id='p-subsystem'></span>Parameter <code class='parameter'>subsystem</code></dt>   <dd></dd><dd class='body--doc'><p>Runtime subsystem where the warning was generated.    Currently the following subsystems may call this function:</p>
autodoc.git/traditional_manual/chapter_21.html:8024:   </table>   </dd>   <dt class='head--doc'><span id='p-data'></span>Parameter <code class='parameter'>data</code></dt>   <dd></dd><dd class='body--doc'><p>Optional data that further describes the warning specified by <code>msg</code>.</p>   </dd></dl>         <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>runtime_warning</b></span> - </dt> - <dd><p><code><code class='datatype'>void</code> <b><span class='method'>runtime_warning</span>(</b><code class='datatype'>string</code> <code class='argument'>where</code>, <code class='datatype'>string</code> <code class='argument'>what</code>, <code class='datatype'>mixed</code> ... <code class='argument'>args</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Called for every runtime warning. The first argument identifies -  where the warning comes from, the second identifies the specific -  message, and the rest depends on that. See code below for currently -  implemented warnings.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>set_inhibit_compile_errors</b></span> - </dt> - <dd><p><code><code class='datatype'>void</code> <b><span class='method'>set_inhibit_compile_errors</span>(</b><code class='datatype'>mixed</code> <code class='argument'>behaviour</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Set the compile error, warning and exception behaviour.</p> - </dd> - <dt class='head--doc'><span id='p-behaviour'></span>Parameter <code class='parameter'>behaviour</code></dt> - <dd></dd><dd class='body--doc'><p>The desired behaviour. One of:</p> - <table class='box'><tr><td><code><code class='datatype'>int(0..0)</code></code></td><td><p>Output compilation errors and warnings to <tt>stderr</tt>. -  This is the default behaviour.</p> - </td></tr> - <tr><td><code><code class='datatype'>int(1..1)</code></code></td><td><p>Inhibit output of compilator diagnostics.</p> - </td></tr> - <tr><td><code><code class='datatype'>function</code>(<code class='datatype'>string</code>, <code class='datatype'>int</code>, <code class='datatype'>string</code>:<code class='datatype'>void</code>)</code></td><td><p>Function to call for compilation errors. Compilation -  warnings and exceptions are inhibited.</p> - <p> The function will be called with the same arguments -  as those passed to <code>compile_error()</code>.</p> - </td></tr> - <tr><td><code><code class='object unresolved'>CompilationHandler</code></code></td><td><p>Compilation handler to use for diagnostics.</p> - </td></tr> - </table> - </dd> - <dt class='head--doc'>Note</dt> - <dd class='body--doc'><p>Note that the behaviour is thread local, and is not copied -  to new threads when they are created.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>get_inhibit_compile_errors()</code></p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>show_doc</b></span> - </dt> - <dd><p><code><code class='datatype'>object</code> <b><span class='method'>show_doc</span>(</b><code class='datatype'>program</code>|<code class='datatype'>object</code>|<code class='datatype'>function</code>(:<code class='datatype void'>void</code>) <code class='argument'>obj</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Show documentation for the item <code>obj</code></p> - </dd> - <dt class='head--doc'><span id='p-obj'></span>Parameter <code class='parameter'>obj</code></dt> - <dd></dd><dd class='body--doc'><p>The object for which the documentation should be shown</p> - </dd> - <dt class='head--doc'>Returns</dt> - <dd class='body--doc'><p>an AutoDoc object</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Variable</span> - <span class='homogen--name'><b>show_if_constant_errors</b></span> - </dt> - <dd><p><code><code class='datatype'>int</code> MasterObject.<b><span class='variable'>show_if_constant_errors</span></b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Show compilation warnings from compilation of <code>cpp()</code> -  <code class='expr'>#if&nbsp;constant()</code> expressions.</p> - <p> This is typically set via the option <code class='expr'>"--picky-cpp"</code>.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> +    <span class='homogen--name'><b>thread_quanta_exceeded</b></span>   </dt>   <dd><p><code><code class='datatype'>void</code> <b><span class='method'>thread_quanta_exceeded</span>(</b><code class='object unresolved'>Thread.Thread</code> <code class='argument'>thread</code>, <code class='datatype'>int</code> <code class='argument'>ns</code><b>)</b></code></p></dd>      <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Function called when a thread has exceeded the thread quanta.</p>   </dd>   <dt class='head--doc'><span id='p-thread'></span>Parameter <code class='parameter'>thread</code></dt>   <dd></dd><dd class='body--doc'><p>Thread that exceeded the thread quanta.</p>   </dd>
autodoc.git/traditional_manual/chapter_21.html:8148:   <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Unregister a program that was only partially compiled.</p>   <p> Called by <code>compile()</code> to clean up references to partially compiled    programs.</p>   </dd>   <dt class='head--doc'><span id='p-p'></span>Parameter <code class='parameter'>p</code></dt>   <dd></dd><dd class='body--doc'><p>Partially compiled program that should no longer be referenced.</p>   </dd><dt class='head--fixme'>FIXME</dt>   <dd class='body--fixme'><p>Shouldn't this function be in the compilation handler?</p>   </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Variable</span> - <span class='homogen--name'><b>want_warnings</b></span> - </dt> - <dd><p><code><code class='datatype'>int</code> MasterObject.<b><span class='variable'>want_warnings</span></b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>If not zero compilation warnings will be written out on stderr.</p> - </dd></dl> - <dl><dt><h2 class='header'>Class <b class='ms datatype'>MasterObject.Codec</b></h2> - </dt><dd><dl class='group--doc'> - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p><code>Encoder</code> and <code>Decoder</code> rolled into one. This is for mainly -  compatibility; there's typically no use combining encoding and -  decoding into the same object.</p> - </dd></dl> -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>create</b></span> - </dt> - <dd><p><code><span class='object'>MasterObject.Codec</span> <span class='class'>MasterObject.Codec</span><b>(</b><code class='datatype'>void</code>|<code class='datatype'>mixed</code> <code class='argument'>encoded</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>The optional argument is the thing to encode; it's passed on to -  <code>Encoder</code>.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Inherit</span> - <span class='homogen--name'><b>Decoder</b></span> - </dt> - <dd><p><code><span class='datatype'>inherit Decoder</span> : <span class='inherit'>Decoder</span></code></p></dd> - </dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Inherit</span> - <span class='homogen--name'><b>Encoder</b></span> - </dt> - <dd><p><code><span class='datatype'>inherit Encoder</span> : <span class='inherit'>Encoder</span></code></p></dd> - </dl> - </dd></dl><dl><dt><h2 class='header'>Class <b class='ms datatype'>MasterObject.CompatResolver</b></h2> - </dt><dd><dl class='group--doc'> - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Resolver of symbols not located in the program being compiled.</p> - </dd></dl> -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>add_include_path</b></span> - </dt> - <dd><p><code><code class='datatype'>void</code> <b><span class='method'>add_include_path</span>(</b><code class='datatype'>string</code> <code class='argument'>tmp</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Add a directory to search for include files.</p> - <p> This is the same as the command line option <tt>-I</tt>.</p> - </dd> - <dt class='head--doc'>Note</dt> - <dd class='body--doc'><p>Note that the added directory will only be searched when using -  &lt; &gt; to quote the included file.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>remove_include_path()</code></p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>add_module_path</b></span> - </dt> - <dd><p><code><code class='datatype'>void</code> <b><span class='method'>add_module_path</span>(</b><code class='datatype'>string</code> <code class='argument'>path</code>, <code class='datatype'>string</code>|<code class='datatype'>void</code> <code class='argument'>subpath</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Add a directory to search for modules.</p> - <p> This is the same as the command line option <tt>-M</tt>.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>remove_module_path()</code></p> - </dd> - <dt class='head--doc'><span id='p-path'></span>Parameter <code class='parameter'>path</code></dt> - <dd></dd><dd class='body--doc'><p>a string containing a path to search for Pike modules. May be a -  directory, or a path to a ZIP archive. If a ZIP archive path is -  provided, modules will be loaded from a directory, "modules" within -  the ZIP archive (see the subpath argument).</p> - </dd> - <dt class='head--doc'><span id='p-subpath'></span>Parameter <code class='parameter'>subpath</code></dt> - <dd></dd><dd class='body--doc'><p>if path is a ZIP archive, this argument will determine the path within -  the archive to be searched.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>add_predefine</b></span> - </dt> - <dd><p><code><code class='datatype'>void</code> <b><span class='method'>add_predefine</span>(</b><code class='datatype'>string</code> <code class='argument'>name</code>, <code class='datatype'>mixed</code> <code class='argument'>value</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Add a define (without arguments) which will be implicitly -  defined in <code>cpp</code> calls.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>add_program_path</b></span> - </dt> - <dd><p><code><code class='datatype'>void</code> <b><span class='method'>add_program_path</span>(</b><code class='datatype'>string</code> <code class='argument'>tmp</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Add a directory to search for programs.</p> - <p> This is the same as the command line option <tt>-P</tt>.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>remove_program_path()</code></p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>create</b></span> - </dt> - <dd><p><code><span class='object'>MasterObject.CompatResolver</span> <span class='class'>MasterObject.CompatResolver</span><b>(</b><code class='datatype'>mixed</code> <code class='argument'>version</code>, <code class='object unresolved'>CompatResolver</code>|<code class='datatype'>void</code> <code class='argument'>fallback_resolver</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>The CompatResolver is initialized with a value that can be -  casted into a "%d.%d" string, e.g. a version object.</p> - <p> It can also optionally be initialized with a fallback resolver.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Variable</span> - <span class='homogen--name'><b>fallback_resolver</b></span> - </dt> - <dd><p><code><code class='object unresolved'>CompatResolver</code> MasterObject.CompatResolver.<b><span class='variable'>fallback_resolver</span></b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>If we fail to resolv, try the fallback.</p> - <p> Typical configuration: -  <pre>0.6-&gt;7.0-&gt;7.2-&gt; ... -&gt;master</pre></p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>get_default_module</b></span> - </dt> - <dd><p><code><code class='datatype'>mapping</code> <b><span class='method'>get_default_module</span>(</b><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Return the default module for the <code>CompatResolver</code>.</p> - <p> This is the mapping that corresponds to the <code>predef::</code> -  name space for the compatibility level, and is the -  value returned by <code>all_constants()</code> for the same.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>get_predefines</b></span> - </dt> - <dd><p><code><code class='datatype'>mapping</code> <b><span class='method'>get_predefines</span>(</b><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Returns a mapping with the current predefines.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>handle_include</b></span> - </dt> - <dd><p><code><code class='datatype'>string</code> <b><span class='method'>handle_include</span>(</b><code class='datatype'>string</code> <code class='argument'>f</code>, <code class='datatype'>string</code> <code class='argument'>current_file</code>, <code class='datatype'>int</code> <code class='argument'>local_include</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>This function is called whenever an #include directive is -  encountered. It receives the argument for #include and should -  return the file name of the file to include.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>read_include()</code></p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Variable</span> - <span class='homogen--name'><b>handler_root_modules</b></span> - </dt> - <dd><p><code><code class='datatype'>mapping</code>(<code class='datatype'>object</code>:<code class='object unresolved'>joinnode</code>) MasterObject.CompatResolver.<b><span class='variable'>handler_root_modules</span></b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Lookup from handler module to corresponding root_module.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>instantiate_static_modules</b></span> - </dt> - <dd><p><code><code class='modifier'>protected</code> <code class='datatype'>mapping</code>(<code class='datatype'>string</code>:<code class='datatype'>mixed</code>) <b><span class='method'>instantiate_static_modules</span>(</b><code class='datatype'>object</code>|<code class='datatype'>mapping</code> <code class='argument'>static_modules</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Instantiate static modules in the same way that dynamic modules -  are instantiated.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Variable</span> - <span class='homogen--name'><b>pike_include_path</b></span> - </dt> - <dd><p><code><code class='datatype'>array</code>(<code class='datatype'>string</code>) MasterObject.CompatResolver.<b><span class='variable'>pike_include_path</span></b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>The complete include search path</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Variable</span> - <span class='homogen--name'><b>pike_module_path</b></span> - </dt> - <dd><p><code><code class='datatype'>array</code>(<code class='datatype'>string</code>) MasterObject.CompatResolver.<b><span class='variable'>pike_module_path</span></b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>The complete module search path</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Variable</span> - <span class='homogen--name'><b>pike_program_path</b></span> - </dt> - <dd><p><code><code class='datatype'>array</code>(<code class='datatype'>string</code>) MasterObject.CompatResolver.<b><span class='variable'>pike_program_path</span></b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>The complete program search path</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>read_include</b></span> - </dt> - <dd><p><code><code class='datatype'>string</code> <b><span class='method'>read_include</span>(</b><code class='datatype'>string</code> <code class='argument'>f</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Read the file specified by <code>handle_include()</code>.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>handle_include()</code></p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>remove_include_path</b></span> - </dt> - <dd><p><code><code class='datatype'>void</code> <b><span class='method'>remove_include_path</span>(</b><code class='datatype'>string</code> <code class='argument'>tmp</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Remove a directory to search for include files.</p> - <p> This function performs the reverse operation of <code>add_include_path()</code>.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>add_include_path()</code></p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>remove_module_path</b></span> - </dt> - <dd><p><code><code class='datatype'>void</code> <b><span class='method'>remove_module_path</span>(</b><code class='datatype'>string</code> <code class='argument'>tmp</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Remove a directory to search for modules.</p> - <p> This function performs the reverse operation of <code>add_module_path()</code>.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>add_module_path()</code></p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>remove_predefine</b></span> - </dt> - <dd><p><code><code class='datatype'>void</code> <b><span class='method'>remove_predefine</span>(</b><code class='datatype'>string</code> <code class='argument'>name</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Remove a define from the set that are implicitly defined in -  <code>cpp</code> calls.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>remove_program_path</b></span> - </dt> - <dd><p><code><code class='datatype'>void</code> <b><span class='method'>remove_program_path</span>(</b><code class='datatype'>string</code> <code class='argument'>tmp</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Remove a directory to search for programs.</p> - <p> This function performs the reverse operation of <code>add_program_path()</code>.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>add_program_path()</code></p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>resolv</b></span> - </dt> - <dd><p><code><code class='datatype'>mixed</code> <b><span class='method'>resolv</span>(</b><code class='datatype'>string</code> <code class='argument'>identifier</code>, <code class='datatype'>string</code>|<code class='datatype'>void</code> <code class='argument'>current_file</code>, <code class='datatype'>object</code>|<code class='datatype'>void</code> <code class='argument'>current_handler</code>, <code class='datatype'>object</code>|<code class='datatype'>void</code> <code class='argument'>current_compat_handler</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Resolve the <code>identifier</code> expression.</p> - </dd> - <dt class='head--doc'>Returns</dt> - <dd class='body--doc'><p>Returns the value of the <code>identifier</code> if it exists, -  and <code>UNDEFINED</code> otherwise.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>resolv_base</b></span> - </dt> - <dd><p><code><code class='datatype'>mixed</code> <b><span class='method'>resolv_base</span>(</b><code class='datatype'>string</code> <code class='argument'>identifier</code>, <code class='datatype'>string</code>|<code class='datatype'>void</code> <code class='argument'>current_file</code>, <code class='datatype'>object</code>|<code class='datatype'>void</code> <code class='argument'>current_handler</code>, <code class='datatype'>object</code>|<code class='datatype'>void</code> <code class='argument'>current_compat_handler</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Look up <code>identifier</code> in the root module.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>resolv_or_error</b></span> - </dt> - <dd><p><code><code class='datatype'>mixed</code> <b><span class='method'>resolv_or_error</span>(</b><code class='datatype'>string</code> <code class='argument'>identifier</code>, <code class='datatype'>string</code>|<code class='datatype'>void</code> <code class='argument'>current_file</code>, <code class='datatype'>void</code>|<code class='datatype'>object</code> <code class='argument'>current_handler</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Same as <code>resolv</code>, but throws an error instead of returning -  <code>UNDEFINED</code> if the resolv failed.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Variable</span> - <span class='homogen--name'><b>root_module</b></span> - </dt> - <dd><p><code><code class='object unresolved'>joinnode</code> MasterObject.CompatResolver.<b><span class='variable'>root_module</span></b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Join node of the root modules for this resolver.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Variable</span> - <span class='homogen--name'><b>system_module_path</b></span> - </dt> - <dd><p><code><code class='datatype'>array</code>(<code class='datatype'>string</code>) MasterObject.CompatResolver.<b><span class='variable'>system_module_path</span></b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>The pike system module path, not including any set by the user.</p> - </dd></dl> - </dd></dl><dl><dt><h2 class='header'>Class <b class='ms datatype'>MasterObject.Decoder</b></h2> - </dt><dd><dl class='group--doc'> - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Codec for use with <code>decode_value</code>. This is the decoder -  corresponding to <code>Encoder</code>. See that one for more details.</p> - </dd></dl> -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>create</b></span> - </dt> - <dd><p><code><span class='object'>MasterObject.Decoder</span> <span class='class'>MasterObject.Decoder</span><b>(</b><code class='datatype'>void</code>|<code class='datatype'>string</code> <code class='argument'>fname</code>, <code class='datatype'>void</code>|<code class='datatype'>int</code> <code class='argument'>mkobj</code>, <code class='datatype'>void</code>|<code class='datatype'>object</code> <code class='argument'>handler</code><b>)</b></code></p></dd> - </dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>decode_object</b></span> - </dt> - <dd><p><code><code class='datatype'>array</code>(<code class='datatype'>mixed</code>) <b><span class='method'>decode_object</span>(</b><code class='datatype'>object</code> <code class='argument'>o</code>, <code class='datatype'>mixed</code> <code class='argument'>data</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Restore the state of an encoded object.</p> - </dd> - <dt class='head--doc'><span id='p-o'></span>Parameter <code class='parameter'>o</code></dt> - <dd></dd><dd class='body--doc'><p>Object to modify.</p> - </dd> - <dt class='head--doc'><span id='p-data'></span>Parameter <code class='parameter'>data</code></dt> - <dd></dd><dd class='body--doc'><p>State information from <code>Encoder()-&gt;encode_object()</code>.</p> - <p> The default implementation calls <code class='expr'>o-&gt;_decode(data)</code> -  if the object has an <code class='expr'>_decode()</code>, otherwise if -  <code>data</code> is an array, returns it to indicate that <code>lfun::create()</code> -  should be called.</p> - </dd> - <dt class='head--doc'>Note</dt> - <dd class='body--doc'><p>This function is called <b>before</b> <code>lfun::create()</code> -  in the object has been called, but after <code>lfun::__INIT()</code> -  has been called.</p> - </dd> - <dt class='head--doc'>Returns</dt> - <dd class='body--doc'><p>Returns an array to indicate to the caller that -  <code>lfun::create()</code> should be called with the elements -  of the array as arguments.</p> - <p> Returns <code class='expr'>0</code> (zero) to inhibit calling of <code>lfun::create()</code>.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>Encoder()-&gt;encode_object()</code></p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Variable</span> - <span class='homogen--name'><b>fname</b></span><br> - <span class='homogen--type'>Variable</span> - <span class='homogen--name'><b>mkobj</b></span><br> - <span class='homogen--type'>Variable</span> - <span class='homogen--name'><b>handler</b></span><br> - </dt> - <dd><p><code><code class='datatype'>void</code>|<code class='datatype'>string</code> MasterObject.Decoder.<b><span class='variable'>fname</span></b></code><br> - <code><code class='datatype'>void</code>|<code class='datatype'>int</code> MasterObject.Decoder.<b><span class='variable'>mkobj</span></b></code><br> - <code><code class='datatype'>void</code>|<code class='datatype'>object</code> MasterObject.Decoder.<b><span class='variable'>handler</span></b></code></p></dd> - </dl> - </dd></dl><dl><dt><h2 class='header'>Class <b class='ms datatype'>MasterObject.Describer</b></h2> - </dt><dd><dl class='group--doc'> - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Class used by <code>describe_backtrace()</code> to describe values in backtraces.</p> - </dd></dl> -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Inherit</span> - <span class='homogen--name'><b>DestructImmediate</b></span> - </dt> - <dd><p><code><span class='datatype'>inherit _static_modules.Builtin.DestructImmediate</span> : <span class='inherit'>DestructImmediate</span></code></p></dd> - </dl> - </dd></dl><dl><dt><h2 class='header'>Class <b class='ms datatype'>MasterObject.Encoder</b></h2> - </dt><dd><dl class='group--doc'> - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Codec for use with <code>encode_value</code>. It understands all the -  standard references to builtin functions, pike modules, and the -  main program script.</p> - <p> The format of the produced identifiers are documented here to -  allow extension of this class:</p> - <p> The produced names are either strings or arrays. The string -  variant specifies the thing to look up according to the first -  character:</p> - <p> 'c' Look up in all_constants(). -  's' Look up in _static_modules. -  'r' Look up with resolv(). -  'p' Look up in programs. -  'o' Look up in programs, then look up the result in objects. -  'f' Look up in fc.</p> - <p> In the array format, the first element is a string as above and -  the rest specify a series of things to do with the result:</p> - <p> A string Look up this string in the result. -  'm' Get module object in dirnode. -  'p' Do object_program(result).</p> - <p> All lowercase letters and the symbols ':', '/' and '.' are -  reserved for internal use in both cases where characters are used -  above.</p> - </dd></dl> -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>create</b></span> - </dt> - <dd><p><code><span class='object'>MasterObject.Encoder</span> <span class='class'>MasterObject.Encoder</span><b>(</b><code class='datatype'>void</code>|<code class='datatype'>mixed</code> <code class='argument'>encoded</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Creates an encoder instance. If <code>encoded</code> is specified, it's -  encoded instead of being reverse resolved to a name. That's -  necessary to encode programs.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>nameof</b></span> - </dt> - <dd><p><code><code class='datatype'>string</code>|<code class='datatype'>array</code> <b><span class='method'>nameof</span>(</b><code class='datatype'>mixed</code> <code class='argument'>what</code>, <code class='datatype'>void</code>|<code class='datatype'>array</code>(<code class='datatype'>object</code>) <code class='argument'>module_object</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>When <code>module_object</code> is set and the name would end with an -  <code class='expr'>object_program</code> step (i.e. <code class='expr'>'p'</code>), then drop that -  step so that the name corresponds to the object instead. -  <code class='expr'><code>module_object</code>[0]</code> will receive the found object.</p> - </dd></dl> - </dd></dl><dl><dt><h2 class='header'>Class <b class='ms datatype'>MasterObject.Pike_7_8_master</b></h2> - </dt><dd><dl class='group--doc'> - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Pike 7.8 master compatibility interface.</p> - <p> Most of the interface is implemented via mixin, -  or overloading by more recent masters.</p> - <p> This interface is used for compatibility with -  Pike 7.8.</p> - </dd> - <dt class='head--doc'>Deprecated</dt> - <dd class='body--doc'><p>Replaced by <code>predef::MasterObject</code>.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>get_compat_master()</code>, <code>master()</code>, <code>predef::MasterObject</code></p> - </dd></dl></dd></dl><dl><dt><h2 class='header'>Class <b class='ms datatype'>MasterObject.Pike_8_0_master</b></h2> - </dt><dd><dl class='group--doc'> - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Pike 8.0 master compatibility interface.</p> - <p> Most of the interface is implemented via mixin, -  or overloading by more recent masters.</p> - <p> This interface is used for compatibility with -  Pike 8.0.</p> - </dd> - <dt class='head--doc'>Deprecated</dt> - <dd class='body--doc'><p>Replaced by <code>predef::MasterObject</code>.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>get_compat_master()</code>, <code>master()</code>, <code>predef::MasterObject</code></p> - </dd></dl> -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Inherit</span> - <span class='homogen--name'><b>Pike_7_8_master</b></span> - </dt> - <dd><p><code><span class='datatype'>inherit Pike_7_8_master</span> : <span class='inherit'>Pike_7_8_master</span></code></p></dd> - </dl> - </dd></dl><dl><dt><h2 class='header'>Class <b class='ms datatype'>MasterObject.Version</b></h2> - </dt><dd><dl class='group--doc'> - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Contains version information about a Pike version.</p> - </dd></dl> -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>`&lt;</b></span><br> - <span class='homogen--type'>Method</span> - <span class='homogen--name'><b>`&gt;</b></span><br> - <span class='homogen--type'>Method</span> - <span class='homogen--name'><b>`==</b></span><br> - <span class='homogen--type'>Method</span> - <span class='homogen--name'><b>__hash</b></span><br> - </dt> - <dd><p><code><code class='datatype'>int</code> res = <code class='class'>MasterObject.Version()</code>&#32;&lt;&#32;<code class='class'>v</code></code><br> - <code><code class='datatype'>int</code> res = <code class='class'>MasterObject.Version()</code>&#32;&gt;&#32;<code class='class'>v</code></code><br> - <code><code class='datatype'>int</code> res = <code class='class'>MasterObject.Version()</code>&#32;==&#32;<code class='class'>v</code></code><br> - <code><code class='datatype'>int</code> <b><span class='method'>hash_value</span>(</b> <span class='class'>MasterObject.Version</span> <span class='argument'>arg</span> <b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Methods define so that version objects -  can be compared and ordered.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>cast</b></span> - </dt> - <dd><p><code><b>(</b><span class='datatype'>int</span><b>)</b><span class='class'>MasterObject.Version</span>()<br><b>(</b><span class='datatype'>float</span><b>)</b><span class='class'>MasterObject.Version</span>()<br><b>(</b><span class='datatype'>string</span><b>)</b><span class='class'>MasterObject.Version</span>()<br><b>(</b><span class='datatype'>array</span><b>)</b><span class='class'>MasterObject.Version</span>()<br><b>(</b><span class='datatype'>mapping</span><b>)</b><span class='class'>MasterObject.Version</span>()<br><b>(</b><span class='datatype'>multiset</span><b>)</b><span class='class'>MasterObject.Version</span>()</code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>The version object can be casted into a string.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>create</b></span> - </dt> - <dd><p><code><span class='object'>MasterObject.Version</span> <span class='class'>MasterObject.Version</span><b>(</b><code class='datatype'>int</code> <code class='argument'>major</code>, <code class='datatype'>int</code> <code class='argument'>minor</code><b>)</b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Set the version in the object.</p> - </dd></dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Variable</span> - <span class='homogen--name'><b>major</b></span><br> - <span class='homogen--type'>Variable</span> - <span class='homogen--name'><b>minor</b></span><br> - </dt> - <dd><p><code><code class='datatype'>int</code> MasterObject.Version.<b><span class='variable'>major</span></b></code><br> - <code><code class='datatype'>int</code> MasterObject.Version.<b><span class='variable'>minor</span></b></code></p></dd> -  - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>The major and minor parts of the version.</p> - </dd></dl> - </dd></dl><dl><dt><h2 class='header'>Class <b class='ms datatype'>MasterObject.dirnode</b></h2> - </dt><dd><dl class='group--doc'> - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Module node representing a single directory.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>joinnode</code></p> - </dd></dl> -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Variable</span> - <span class='homogen--name'><b>dirname</b></span><br> - <span class='homogen--type'>Variable</span> - <span class='homogen--name'><b>compilation_handler</b></span><br> - <span class='homogen--type'>Variable</span> - <span class='homogen--name'><b>name</b></span><br> - </dt> - <dd><p><code><code class='datatype'>string</code> MasterObject.dirnode.<b><span class='variable'>dirname</span></b></code><br> - <code><code class='datatype'>object</code>|<code class='datatype'>void</code> MasterObject.dirnode.<b><span class='variable'>compilation_handler</span></b></code><br> - <code><code class='datatype'>string</code>|<code class='datatype'>void</code> MasterObject.dirnode.<b><span class='variable'>name</span></b></code></p></dd> - </dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>create</b></span> - </dt> - <dd><p><code><span class='object'>MasterObject.dirnode</span> <span class='class'>MasterObject.dirnode</span><b>(</b><code class='datatype'>string</code> <code class='argument'>dirname</code>, <code class='datatype'>object</code>|<code class='datatype'>void</code> <code class='argument'>compilation_handler</code>, <code class='datatype'>string</code>|<code class='datatype'>void</code> <code class='argument'>name</code><b>)</b></code></p></dd> - </dl> - </dd></dl><dl><dt><h2 class='header'>Class <b class='ms datatype'>MasterObject.joinnode</b></h2> - </dt><dd><dl class='group--doc'> - <dt class='head--doc'>Description</dt> - <dd class='body--doc'><p>Module node holding possibly multiple directories, -  and optionally falling back to another level.</p> - </dd> - <dt class='head--doc'>See also</dt> - <dd class='body--doc'><p><code>dirnode</code></p> - </dd></dl> -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Variable</span> - <span class='homogen--name'><b>joined_modules</b></span><br> - <span class='homogen--type'>Variable</span> - <span class='homogen--name'><b>compilation_handler</b></span><br> - <span class='homogen--type'>Variable</span> - <span class='homogen--name'><b>fallback_module</b></span><br> - <span class='homogen--type'>Variable</span> - <span class='homogen--name'><b>name</b></span><br> - </dt> - <dd><p><code><code class='datatype'>array</code>(<code class='datatype'>object</code>|<code class='datatype'>mapping</code>) MasterObject.joinnode.<b><span class='variable'>joined_modules</span></b></code><br> - <code><code class='datatype'>object</code>|<code class='datatype'>void</code> MasterObject.joinnode.<b><span class='variable'>compilation_handler</span></b></code><br> - <code><code class='object unresolved'>joinnode</code>|<code class='datatype'>mapping</code>(<code class='datatype'>mixed</code>:<code class='datatype'>int(0..0)</code>)|<code class='datatype'>void</code> MasterObject.joinnode.<b><span class='variable'>fallback_module</span></b></code><br> - <code><code class='datatype'>string</code>|<code class='datatype'>void</code> MasterObject.joinnode.<b><span class='variable'>name</span></b></code></p></dd> - </dl> -  -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Method</span> - <span class='homogen--name'><b>create</b></span> - </dt> - <dd><p><code><span class='object'>MasterObject.joinnode</span> <span class='class'>MasterObject.joinnode</span><b>(</b><code class='datatype'>array</code>(<code class='datatype'>object</code>|<code class='datatype'>mapping</code>) <code class='argument'>joined_modules</code>, <code class='datatype'>object</code>|<code class='datatype'>void</code> <code class='argument'>compilation_handler</code>, <code class='object unresolved'>joinnode</code>|<code class='datatype'>mapping</code>(<code class='datatype'>mixed</code>:<code class='datatype'>int(0..0)</code>)|<code class='datatype'>void</code> <code class='argument'>fallback_module</code>, <code class='datatype'>string</code>|<code class='datatype'>void</code> <code class='argument'>name</code><b>)</b></code></p></dd> - </dl> - </dd></dl></dd></dl><dl><dt><h2 class='header'>Class <b class='ms datatype'>RandomInterface</b></h2> + </dd></dl><dl><dt><h2 class='header'>Class <b class='ms datatype'>RandomInterface</b></h2>   </dt><dd>      <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>random</b></span>   </dt>   <dd><p><code><code class='datatype'>array</code> <b><span class='method'>random</span>(</b><code class='datatype'>mapping</code> <code class='argument'>m</code><b>)</b></code></p></dd>      <dt class='head--doc'>Description</dt>
autodoc.git/traditional_manual/chapter_21.html:9057:   <span class='homogen--type'>Constant</span>   <span class='homogen--name'><b>ERROR</b></span><br>   <span class='homogen--type'>Constant</span>   <span class='homogen--name'><b>FATAL</b></span><br>   </dt>   <dd><p><code><code class='datatype'>constant</code> Reporter.<code class='constant'>NOTICE</code></code><br>   <code><code class='datatype'>constant</code> Reporter.<code class='constant'>WARNING</code></code><br>   <code><code class='datatype'>constant</code> Reporter.<code class='constant'>ERROR</code></code><br>   <code><code class='datatype'>constant</code> Reporter.<code class='constant'>FATAL</code></code></p></dd>   </dl> - </dd></dl></dd></dl><dl><dt><h2 class='header'>Class <b class='ms datatype'>__dirnode</b></h2> + </dd></dl></dd></dl><dl><dt><h2 class='header'>Class <b class='ms datatype'>mklibpike</b></h2>   </dt><dd>      <hr />   <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Inherit</span> - <span class='homogen--name'><b>dirnode</b></span> - </dt> - <dd><p><code><span class='datatype'>inherit MasterObject.dirnode</span> : <span class='inherit'>dirnode</span></code></p></dd> - </dl> - </dd></dl><dl><dt><h2 class='header'>Class <b class='ms datatype'>__joinnode</b></h2> - </dt><dd> -  - <hr /> - <dl class='group--doc'> - <dt class='head--type'><span class='homogen--type'>Inherit</span> - <span class='homogen--name'><b>joinnode</b></span> - </dt> - <dd><p><code><span class='datatype'>inherit MasterObject.joinnode</span> : <span class='inherit'>joinnode</span></code></p></dd> - </dl> - </dd></dl><dl><dt><h2 class='header'>Class <b class='ms datatype'>mklibpike</b></h2> - </dt><dd> -  - <hr /> - <dl class='group--doc'> +    <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>parse</b></span>   </dt>   <dd><p><code><code class='datatype'>mapping</code>(<code class='datatype'>string</code>:<code class='datatype'>array</code>(<code class='datatype'>array</code>(<code class='object unresolved'>Parser.C.Token</code>))) <b><span class='method'>parse</span>(</b><code class='datatype'>array</code>(<code class='object unresolved'>Parser.C.Token</code>) <code class='argument'>tokens</code><b>)</b></code></p></dd>      <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>Returns a mapping from symbol to a tuple of return type and parameters.</p>   </dd></dl>   <dl><dt><h2 class='header'>Class <b class='ms datatype'>mklibpike.C_Include_Handler</b></h2>   </dt><dd>
autodoc.git/traditional_manual/chapter_21.html:27227:    be used as such.</p>   </dd>   <dt class='head--doc'>See also</dt>   <dd class='body--doc'><p><code>MIME.encode_crypt64()</code></p>   </dd></dl>         <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> + <span class='homogen--name'><b>decode_headerfield_params</b></span> + </dt> + <dd><p><code><code class='datatype'>array</code>(<code class='object unresolved'>ADT.OrderedMapping</code>) <b><span class='method'>decode_headerfield_params</span>(</b><code class='datatype'>string</code> <code class='argument'>s</code><b>)</b></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Decodes the given string as a key-value parameter cascade +  according to e.g. <b><a href='http://pike.lysator.liu.se/rfc7239.xml#4'>RFC 7239 section 4</a></b>.</p> + </dd> + <dt class='head--doc'>Note</dt> + <dd class='body--doc'><p>This function will decode all conforming inputs, but it will also +  be forgiving when presented with non-conforming inputs.</p> + </dd> + <dt class='head--doc'>See also</dt> + <dd class='body--doc'><p><code>encode_headerfield_params</code></p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>decode_qp</b></span>   </dt>   <dd><p><code><code class='datatype'>string</code> <b><span class='method'>decode_qp</span>(</b><code class='datatype'>string</code> <code class='argument'>encoded_data</code><b>)</b></code></p></dd>      <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>This function decodes data encoded using the <tt>quoted-printable</tt>    (a.k.a. quoted-unreadable) transfer encoding.</p>   </dd>   <dt class='head--doc'>See also</dt>   <dd class='body--doc'><p><code>MIME.encode_qp()</code>, <code>MIME.decode()</code></p>
autodoc.git/traditional_manual/chapter_21.html:27520:    be used as such.</p>   </dd>   <dt class='head--doc'>See also</dt>   <dd class='body--doc'><p><code>MIME.decode_crypt64()</code></p>   </dd></dl>         <hr />   <dl class='group--doc'>   <dt class='head--type'><span class='homogen--type'>Method</span> + <span class='homogen--name'><b>encode_headerfield_params</b></span> + </dt> + <dd><p><code><code class='datatype'>string</code> <b><span class='method'>encode_headerfield_params</span>(</b><code class='datatype'>array</code>(<code class='datatype'>mapping</code>(<code class='datatype'>string</code>:<code class='datatype'>string</code>)|<code class='object unresolved'>ADT.OrderedMapping</code>) <code class='argument'>params</code><b>)</b></code></p></dd> +  + <dt class='head--doc'>Description</dt> + <dd class='body--doc'><p>Encodes the given key-value parameters as a string +  according to e.g. <b><a href='http://pike.lysator.liu.se/rfc7239.xml#4'>RFC 7239 section 4</a></b>.</p> + </dd> + <dt class='head--doc'>See also</dt> + <dd class='body--doc'><p><code>decode_headerfield_params</code></p> + </dd></dl> +  +  + <hr /> + <dl class='group--doc'> + <dt class='head--type'><span class='homogen--type'>Method</span>   <span class='homogen--name'><b>encode_qp</b></span>   </dt>   <dd><p><code><code class='datatype'>string</code> <b><span class='method'>encode_qp</span>(</b><code class='datatype'>string</code> <code class='argument'>data</code>, <code class='datatype'>void</code>|<code class='datatype'>int</code> <code class='argument'>no_linebreaks</code><b>)</b></code></p></dd>      <dt class='head--doc'>Description</dt>   <dd class='body--doc'><p>This function encodes data using the <tt>quoted-printable</tt>    (a.k.a. quoted-unreadable) transfer encoding.</p>   <p> If a nonzero value is passed as <code>no_linebreaks</code>, the result    string will not contain any linebreaks.</p>   </dd>