autodoc.git / traditional.xml

version» Context lines:

autodoc.git/traditional.xml:1:   <?xml version='1.0' encoding='utf-8'?> - <manual time-stamp='2018-08-17' version='Pike v8.1.13'> + <manual time-stamp='2018-08-31' version='Pike v8.1.13'>    <dir name='./traditional_manual'>    <file name='./traditional_manual/index.html'>    <chapter title='Table of Contents' unnumbered='1'>    <dl><dt><url href='index.html'>Table of Contents</url></dt>   <dt><url href='chapter_1.html'>1. Introduction</url></dt>   <dd><url href='chapter_1.html#1'>1.1. Overview</url></dd>   <dd><url href='chapter_1.html#2'>1.2. The history of Pike</url></dd>   <dd><url href='chapter_1.html#3'>1.3. A comparison with other languages</url></dd>   <dd><url href='chapter_1.html#4'>1.4. What is Pike</url></dd>   <dd><url href='chapter_1.html#5'>1.5. Pike License</url></dd>
autodoc.git/traditional.xml:3884:      <section number='4' title='Preprocessor Directives'>      <p>All of the preprocessor directives except the string-related   (<tt>#string</tt> and <tt>#""</tt>) should have the hash character   (<tt>#</tt>) as the first character of the line. Even though it is currently   allowed to be indented, it is likely that this will generate warnings or errors   in the future. Note that it is however allowed to put white-space between the   hash character and the rest of the directive to create indentation in code.</p>    - <autodoc hidden='1'><namespace hidden='1' name='cpp'><docgroup homogen-name='#!' homogen-type='directive'><doc><text><p>All lines beginning with <ref resolved='cpp::'>#!</ref> will be regarded as comments, -  to enable shell integration. It is recommended that Pike applications -  begin with the line <tt>"#! /usr/bin/env pike"</tt> for maximum cross -  platform compatibility.</p> - </text></doc> - <directive name='#!'/> - </docgroup></namespace></autodoc> + <!--<insert-move entity="cpp::.#!" />-->    - <autodoc hidden='1'><namespace hidden='1' name='cpp'><docgroup homogen-type='directive'><doc><text><p>A hash character followed by a number or by the string -  <tt>"line"</tt> and a number will make the preprocessor line counter -  set this number as the line number for the next line and adjust the -  following lines accordingly.</p> - <p> All error messages from Pike will use these line numbers.</p> - <p> Optionally the number may be followed by a file name, e.g. -  <tt>#line 1 "/home/pike/program.pike.in"</tt>. Then this -  filename will be used instead of the current file for error -  messages.</p> - </text></doc> - <directive name='#line'/> - <directive name='#&lt;integer&gt;'/> - </docgroup></namespace></autodoc> + <!--<insert-move entity="cpp::.#line" />-->    - <autodoc hidden='1'><namespace hidden='1' name='cpp'><docgroup homogen-name='#""' homogen-type='directive'><doc><text><p>If a string literal is opened with <tt>#"</tt> newlines in the -  string will end up in the string literal, instead of triggering a -  <tt>"newline in string"</tt> error.</p> - </text><group><note/><text><p>Newlines will be converted to <tt>\n</tt> characters in the string -  even if the newlines in the file are something else.</p> - <p> This preprocessor directive may appear anywhere a string may -  appear.</p> - </text></group><group><seealso/><text><p><ref resolved='cpp::'>#string</ref></p> - </text></group></doc> - <directive name='#""'/> - </docgroup></namespace></autodoc> + <!--<insert-move entity="cpp::.#""" />-->    - <autodoc hidden='1'><namespace hidden='1' name='cpp'><docgroup homogen-type='directive'><doc><text><p>If a string literal is opened with <tt>#(</tt> all subsequent -  characters until the closing <tt>#)</tt> will be treated as -  literals, including newlines, <tt>\</tt>, <tt>"</tt> and <tt>'</tt>.</p> - <p> There are three different pairs of start/end tokens for this -  type of literals, #( and #), #[ and #], and #{ and #}.</p> - </text><group><example/><text><p><expr>#["\n\'##]</expr> is equivalent to <expr>"\"\\n\\'#"</expr>.</p> - </text></group></doc> - <directive name='#(#)'/> - <directive name='#[#]'/> - <directive name='#{#}'/> - </docgroup></namespace></autodoc> + <!--<insert-move entity="cpp::.#(#)" />-->    - <autodoc hidden='1'><namespace hidden='1' name='cpp'><docgroup homogen-name='#string' homogen-type='directive'><doc><text><p>The preprocessor directive <ref resolved='cpp::'>#string</ref> will load the file in the -  string that follows and insert its contents as a string. This -  preprocessor directive may appear anywhere a string may appear.</p> - </text><group><example/><text><code><text><p>do_something(#string "the_file.wks");</p> - </text></code> - </text></group><group><seealso/><text><p><ref resolved='cpp::'>#include</ref></p> - </text></group></doc> - <directive name='#string'/> - </docgroup></namespace></autodoc> + <!--<insert-move entity="cpp::.#string" />-->    - <autodoc hidden='1'><namespace hidden='1' name='cpp'><docgroup homogen-name='#include' homogen-type='directive'><doc><text><p><ref resolved='cpp::'>#include</ref> is used to insert the contents of another file into -  the processed file at the place of the include directive.</p> - <p> Files can be referenced either by absolute or relative path from the -  source file, or searched for in the include paths.</p> - <p> To include a file with absolute or relative path, use double quotes, -  e.g. <tt>#include "constants.pike"</tt> or <tt>#include "../debug.h"</tt>.</p> - <p> To include from the include paths, use less than and greater than, -  e.g. <tt>#include &lt;profiling.h&gt;</tt>.</p> - <p> It is also possible to include a file whose path is defined in a -  preprocessor macro, e.g. <tt>#include USER_SETTINGS</tt>.</p> - </text></doc> - <directive name='#include'/> - </docgroup></namespace></autodoc> + <!--<insert-move entity="cpp::.#include" />-->    - <autodoc hidden='1'><namespace hidden='1' name='cpp'><docgroup homogen-name='#if' homogen-type='directive'><doc><text><p>The <ref resolved='cpp::'>#if</ref> directive can evaluate simple expressions and, if -  the expression is evaluates to true, "activate" the code block that -  follows. The code block ends when an <ref resolved='cpp::'>#endif</ref>, <ref resolved='cpp::'>#else</ref>, -  <ref resolved='cpp::'>#elseif</ref> or <ref resolved='cpp::'>#elif</ref> block is encountered at the same -  nesting depth.</p> - <p> The <ref resolved='cpp::'>#if</ref> expressions may include defines, integer, string -  and float constants, <tt>?:</tt>, <tt>||</tt> and <tt>&amp;&amp;</tt> operations, -  <tt>~</tt>, <tt>^</tt>, <tt>!</tt>, <tt>|</tt> and <tt>&amp;</tt> operations, -  <tt>&lt;</tt>, <tt>&gt;</tt>, <tt>&lt;=</tt>, <tt>&gt;=</tt>, <tt>==</tt> and <tt>!=</tt> operations, -  <tt>+</tt>, <tt>-</tt>, <tt>*</tt>, <tt>/</tt>, <tt>&lt;&lt;</tt> and <tt>&gt;&gt;</tt> operations -  and paranthesis.</p> - <p> Strings may also be indexed with the <tt>[]</tt> index operator. -  Finally there are three special "functions" available in <ref resolved='cpp::'>#if</ref> -  expressions; <ref resolved='cpp::defined'>defined()</ref>, <ref resolved='cpp::efun'>efun()</ref> and <ref resolved='cpp::constant'>constant()</ref>.</p> - </text><group><seealso/><text><p><ref resolved='cpp::'>#ifdef</ref>, <ref resolved='cpp::'>#ifndef</ref>, <ref resolved='cpp::'>#elif</ref>, <ref resolved='cpp::'>#else</ref>, <ref resolved='cpp::'>#endif</ref>, -  <ref resolved='cpp::defined'>defined()</ref>, <ref resolved='cpp::constant'>constant()</ref>, <ref resolved='cpp::efun'>efun()</ref></p> - </text></group></doc> - <directive name='#if'/> - </docgroup></namespace></autodoc> + <!--<insert-move entity="cpp::.#if" />-->    - <autodoc hidden='1'><namespace hidden='1' name='cpp'><docgroup homogen-name='#ifdef' homogen-type='directive'><doc><text><p>Check whether an identifier is a macro.</p> - <p> The directive</p> - <p> <tt>#ifdef <i>&lt;identifier&gt;</i></tt></p> - <p> is equivalent to</p> - <p> <tt>#if <ref resolved='cpp::defined'>defined</ref>(<i>&lt;identifier&gt;</i>)</tt></p> - </text><group><seealso/><text><p><ref resolved='cpp::'>#if</ref>, <ref resolved='cpp::'>#ifndef</ref>, <ref resolved='cpp::defined'>defined</ref></p> - </text></group></doc> - <directive name='#ifdef'/> - </docgroup></namespace></autodoc> + <!--<insert-move entity="cpp::.#ifdef" />-->    - <autodoc hidden='1'><namespace hidden='1' name='cpp'><docgroup homogen-name='#ifndef' homogen-type='directive'><doc><text><p>Check whether an identifier is not a macro.</p> - <p> This is the inverse of <ref resolved='cpp::'>#ifdef</ref>.</p> - <p> The directive</p> - <p> <tt>#ifndef <i>&lt;identifier&gt;</i></tt></p> - <p> is equivalent to</p> - <p> <tt>#if !<ref resolved='cpp::defined'>defined</ref>(<i>&lt;identifier&gt;</i>)</tt></p> - </text><group><seealso/><text><p><ref resolved='cpp::'>#if</ref>, <ref resolved='cpp::'>#ifdef</ref>, <ref resolved='cpp::defined'>defined</ref></p> - </text></group></doc> - <directive name='#ifndef'/> - </docgroup></namespace></autodoc> + <!--<insert-move entity="cpp::.#ifndef" />-->    - <autodoc hidden='1'><namespace hidden='1' name='cpp'><docgroup homogen-name='#endif' homogen-type='directive'><doc><text><p>End a block opened with <ref resolved='cpp::'>#if</ref>, <ref resolved='cpp::'>#ifdef</ref>, <ref resolved='cpp::'>#ifndef</ref>, -  <ref resolved='cpp::'>#else</ref>, <ref resolved='cpp::'>#elseif</ref> or <ref resolved='cpp::'>#elif</ref>.</p> - </text><group><example/><text><code><text><p>#ifdef DEBUG -  do_debug_stuff(); -  #endif // DEBUG</p> - </text></code></text></group></doc> - <directive name='#endif'/> - </docgroup></namespace></autodoc> + <!--<insert-move entity="cpp::.#endif" />-->    - <autodoc hidden='1'><namespace hidden='1' name='cpp'><docgroup homogen-name='#else' homogen-type='directive'><doc><text><p>This directive is used to divide the current code block into another -  code block with inverse activation.</p> - </text><group><example/><text><code><text><p>#ifdef FAST_ALGORITHM -  do_fast_algorithm(); -  #elif defined(EXPERIMENTAL_ALGORITHM) -  do_experimental_algorithm(); -  #else -  do_default_algorithm(); -  #endif</p> - </text></code></text></group></doc> - <directive name='#else'/> - </docgroup></namespace></autodoc> + <!--<insert-move entity="cpp::.#else" />-->    - <autodoc hidden='1'><namespace hidden='1' name='cpp'><docgroup homogen-type='directive'><doc><text><p>These work as a combined <ref resolved='cpp::'>#else</ref> and <ref resolved='cpp::'>#if</ref> without -  adding an extra level of nesting.</p> - </text><group><example/><text><p>The following two are equivalent:</p> - <code><text><p>#ifdef A -  // Code for A. -  #else -  #ifdef B -  // Code for B. -  #else -  #ifdef C -  // Code for C. -  #else -  // Code for D. -  #endif -  #endif -  #endif</p> - </text></code><p>And</p> - <code><text><p>#ifdef A -  // Code for A. -  #elif defined(B) -  // Code for B. -  #elseif defined(C) -  // Code for C. -  #else -  // Code for D. -  #endif</p> - </text></code> - </text></group><group><seealso/><text><p><ref resolved='cpp::'>#if</ref>, <ref resolved='cpp::'>#ifdef</ref>, <ref resolved='cpp::'>#else</ref>, <ref resolved='cpp::defined'>defined()</ref>, <ref resolved='cpp::constant'>constant()</ref></p> - </text></group></doc> - <directive name='#elif'/> - <directive name='#elseif'/> - </docgroup></namespace></autodoc> + <!--<insert-move entity="cpp::.#elif" />-->    - <autodoc hidden='1'><namespace hidden='1' name='cpp'><docgroup homogen-name='#define' homogen-type='directive'><doc><text><p>This directive is used to define or redefine a cpp macro.</p> - <p> The simplest way to use define is to write</p> - <code><text><p>#define <b><i>&lt;identifier&gt;</i></b> <i>&lt;replacement string&gt;</i></p> - </text></code><p>which will cause all subsequent occurances of <tt><b><i>&lt;identifier</i></b></tt> -  to be replaced with the <tt><i>&lt;replacement string&gt;</i></tt>.</p> - <p> Define also has the capability to use arguments, thus a line like</p> - <code><text><p>#define <b><i>&lt;identifier&gt;</i></b>(arg1, arg2) <i>&lt;replacement string&gt;</i></p> - </text></code><p>would cause <tt><b><i>&lt;identifer&gt;</i></b></tt> to be a macro. All occurances of -  '<tt><b><i>&lt;identifier&gt;</i></b>(something1,something2d)</tt>' would be replaced -  with the <tt><i>&lt;replacement string&gt;</i></tt>. -  And in the <tt><i>&lt;replacement string&gt;</i></tt>, <tt>arg1</tt> and <tt>arg2</tt> -  will be replaced with <tt>something1</tt> and <tt>something2</tt>.</p> - </text></doc> - <directive name='#define'/> - </docgroup></namespace></autodoc> + <!--<insert-move entity="cpp::.#define" />-->    - <autodoc hidden='1'><namespace hidden='1' name='cpp'><docgroup homogen-type='directive'><doc><text><p>This removes the effect of a <ref resolved='cpp::'>#define</ref>, all subsequent occurances of -  the undefined identifier will not be replaced by anything.</p> - </text><group><note/><text><p>Note that when undefining a macro, you just give the identifer, -  not the arguments.</p> - </text></group><group><example/><text><p>// Strip debug -  #define werror(X ...) 0 -  #include "/home/someone/experimental/stuff.h" -  #undef werror</p> - </text></group><group><seealso/><text><p><ref resolved='cpp::'>#define</ref>, <ref resolved='cpp::defined'>defined()</ref></p> - </text></group></doc> - <directive name='#undef'/> - <directive name='#undefine'/> - </docgroup></namespace></autodoc> + <!--<insert-move entity="cpp::.#undef" />-->    - <autodoc hidden='1'><namespace hidden='1' name='cpp'><docgroup homogen-name='#charset' homogen-type='directive'><doc><text><p>Inform the preprocessor about which charset the file is encoded -  with. The Charset module is called with this string to decode -  the remainder of the file.</p> - </text></doc> - <directive name='#charset'/> - </docgroup></namespace></autodoc> + <!--<insert-move entity="cpp::.#charset" />-->    - <autodoc hidden='1'><namespace hidden='1' name='cpp'><docgroup homogen-name='#pike' homogen-type='directive'><doc><text><p>Set the Pike compiler backward compatibility level.</p> - <p> This tells the compiler which version of Pike it should -  attempt to emulate from this point on in the current -  compilation unit.</p> - <p> This is typically used to "quick-fix" old code to work -  with more recent versions of Pike.</p> - </text><group><example/><text><code><text><p>// This code was written for Pike 7.2, and depends on -  // the old behaviour for <expr>7.2::dirname()</expr>. -  #pike 7.2</p> - <p> // ... Code that uses <ref>dirname()</ref> ...</p> - </text></code><p>This directive is also needed for Pike modules that -  have been installed globally, and might be used by -  a Pike that has been started with the <tt>-V</tt> flag.</p> - </text></group><group><example/><text><code><text><p>// Pike modules that are bundled with Pike are -  // typically written for the same version of Pike. -  #pike __REAL_VERSION__</p> - </text></code></text></group></doc> - <directive name='#pike'/> - </docgroup></namespace></autodoc> + <!--<insert-move entity="cpp::.#pike" />-->    - <autodoc hidden='1'><namespace hidden='1' name='cpp'><docgroup homogen-name='#pragma' homogen-type='directive'><doc><text><p>This is a generic directive for flags to the compiler.</p> - <p> These are some of the flags that are available:</p> - <string><group><value>"all_inline"</value><text><p>This is the same as adding the modifier <tt>inline</tt> -  to all functions that follow.</p> - </text></group><group><value>"all_final"</value><text><p>Instructs the compiler to mark all symbols as <tt>final</tt>.</p> - </text></group><group><value>"deprecation_warnings"</value><text><p>Enable warnings for use of deprecated symbols (default).</p> - </text></group><group><value>"no_deprecation_warnings"</value><text><p>Disable warnings for use of deprecated symbols. This is -  typically used in code that implements the deprecated -  symbols.</p> - </text></group><group><value>"save_parent"</value><text><p>Cause nested classes to save a reference to their -  surrounding class even if not strictly needed.</p> - </text></group><group><value>"dont_save_parent"</value><text><p>Inverse of <tt>"save_parent"</tt>. This is needed to override -  if the global symbol <ref>predef::__pragma_save_parent__</ref> -  has been set.</p> - </text></group><group><value>"strict_types"</value><text><p>Enable warnings for all cases where the compiler -  isn't certain that the types are correct.</p> - </text></group><group><value>"disassemble"</value><text><p>Enable disassembly output for the code being compiled. -  Note that this option essentially has a function-level -  scope, so enabling it for just a few lines is usually -  a noop. This is similar to <ref>Debug.assembler_debug()</ref> -  level <expr>3</expr>.</p> - </text></group><group><value>"no_disassemble"</value><text><p>Disable disassembly output (default).</p> - </text></group></string></text></doc> - <directive name='#pragma'/> - </docgroup></namespace></autodoc> + <!--<insert-move entity="cpp::.#pragma" />-->    - <autodoc hidden='1'><namespace hidden='1' name='cpp'><docgroup homogen-name='#require' homogen-type='directive'><doc><text><p>If the directive evaluates to false, the source file will be -  considered to have failed dependencies, and will not be found by -  the resolver. In practical terms the <ref>cpp()</ref> call will return -  zero.</p> - </text><group><seealso/><text><p><ref resolved='cpp::'>#if</ref></p> - </text></group></doc> - <directive name='#require'/> - </docgroup></namespace></autodoc> + <!--<insert-move entity="cpp::.#require" />-->    - <autodoc hidden='1'><namespace hidden='1' name='cpp'><docgroup homogen-name='#warning' homogen-type='directive'><doc><text><p>Generate a warning during preprocessing.</p> - <p> This directive causes a cpp warning, it can be used to notify -  the user that certain functions are missing and similar things.</p> - </text><group><example/><text><code><text><p>#if !constant(Yp) -  #warning Support for NIS not available. Some features may not work. -  #endif</p> - </text></code> - </text></group><group><seealso/><text><p><ref resolved='cpp::'>#error</ref></p> - </text></group></doc> - <directive name='#warning'/> - </docgroup></namespace></autodoc> + <!--<insert-move entity="cpp::.#warning" />-->    - <autodoc hidden='1'><namespace hidden='1' name='cpp'><docgroup homogen-name='#error' homogen-type='directive'><doc><text><p>Throw an error during preprocessing.</p> - <p> This directive causes a cpp error. It can be used to notify -  the user that certain functions are missing and similar things.</p> - </text><group><note/><text><p>Note that this directive will cause <ref>cpp()</ref> to throw -  an error at the end of preprocessing, which will cause -  any compilation to fail.</p> - </text></group><group><example/><text><code><text><p>#if !constant(Yp) -  #error Support for NIS not available. -  #endif</p> - </text></code> - </text></group><group><seealso/><text><p><ref resolved='cpp::'>#warning</ref></p> - </text></group></doc> - <directive name='#error'/> - </docgroup></namespace></autodoc> + <!--<insert-move entity="cpp::.#error" />-->      </section>      <section number='5' title='Predefined defines'> -  <autodoc hidden='1'><namespace hidden='1' name='cpp'><docgroup homogen-name='__VERSION__' homogen-type='constant'><doc><text><p>This define contains the current Pike version as a float. If -  another Pike version is emulated, this define is updated -  accordingly.</p> - </text><group><seealso/><text><p><ref resolved='cpp::.__REAL_VERSION__'>__REAL_VERSION__</ref></p> - </text></group></doc> - <constant name='__VERSION__'/> - </docgroup></namespace></autodoc> -  <autodoc hidden='1'><namespace hidden='1' name='cpp'><docgroup homogen-name='__MAJOR__' homogen-type='constant'><doc><text><p>This define contains the major part of the current Pike version, -  represented as an integer. If another Pike version is emulated, -  this define is updated accordingly.</p> - </text><group><seealso/><text><p><ref resolved='cpp::.__REAL_MAJOR__'>__REAL_MAJOR__</ref></p> - </text></group></doc> - <constant name='__MAJOR__'/> - </docgroup></namespace></autodoc> -  <autodoc hidden='1'><namespace hidden='1' name='cpp'><docgroup homogen-name='__MINOR__' homogen-type='constant'><doc><text><p>This define contains the minor part of the current Pike version, -  represented as an integer. If another Pike version is emulated, -  this define is updated accordingly.</p> - </text><group><seealso/><text><p><ref resolved='cpp::.__REAL_MINOR__'>__REAL_MINOR__</ref></p> - </text></group></doc> - <constant name='__MINOR__'/> - </docgroup></namespace></autodoc> -  <autodoc hidden='1'><namespace hidden='1' name='cpp'><docgroup homogen-name='__BUILD__' homogen-type='constant'><doc><text><p>This constant contains the build number of the current Pike version, -  represented as an integer. If another Pike version is emulated, -  this constant remains unaltered.</p> - </text><group><seealso/><text><p><ref resolved='cpp::.__REAL_MINOR__'>__REAL_MINOR__</ref></p> - </text></group></doc> - <constant name='__BUILD__'/> - </docgroup></namespace></autodoc> -  <autodoc hidden='1'><namespace hidden='1' name='cpp'><docgroup homogen-name='__REAL_VERSION__' homogen-type='constant'><doc><text><p>This define always contains the version of the current Pike, -  represented as a float.</p> - </text><group><seealso/><text><p><ref resolved='cpp::.__VERSION__'>__VERSION__</ref></p> - </text></group></doc> - <constant name='__REAL_VERSION__'/> - </docgroup></namespace></autodoc> -  <autodoc hidden='1'><namespace hidden='1' name='cpp'><docgroup homogen-name='__REAL_MAJOR__' homogen-type='constant'><doc><text><p>This define always contains the major part of the version of the -  current Pike, represented as an integer.</p> - </text><group><seealso/><text><p><ref resolved='cpp::.__MAJOR__'>__MAJOR__</ref></p> - </text></group></doc> - <constant name='__REAL_MAJOR__'/> - </docgroup></namespace></autodoc> -  <autodoc hidden='1'><namespace hidden='1' name='cpp'><docgroup homogen-name='__REAL_MINOR__' homogen-type='constant'><doc><text><p>This define always contains the minor part of the version of the -  current Pike, represented as an integer.</p> - </text><group><seealso/><text><p><ref resolved='cpp::.__MINOR__'>__MINOR__</ref></p> - </text></group></doc> - <constant name='__REAL_MINOR__'/> - </docgroup></namespace></autodoc> -  <autodoc hidden='1'><namespace hidden='1' name='cpp'><docgroup homogen-name='__REAL_BUILD__' homogen-type='constant'><doc><text><p>This define always contains the minor part of the version of the -  current Pike, represented as an integer.</p> - </text><group><seealso/><text><p><ref resolved='cpp::.__BUILD__'>__BUILD__</ref></p> - </text></group></doc> - <constant name='__REAL_BUILD__'/> - </docgroup></namespace></autodoc> -  <autodoc hidden='1'><namespace hidden='1' name='cpp'><docgroup homogen-name='__DATE__' homogen-type='constant'><doc><text><p>This define contains the current date at the time of compilation, -  e.g. "Jul 28 2001".</p> - </text></doc> - <constant name='__DATE__'/> - </docgroup></namespace></autodoc> -  <autodoc hidden='1'><namespace hidden='1' name='cpp'><docgroup homogen-name='__TIME__' homogen-type='constant'><doc><text><p>This define contains the current time at the time of compilation, -  e.g. "12:20:51".</p> - </text></doc> - <constant name='__TIME__'/> - </docgroup></namespace></autodoc> -  <autodoc hidden='1'><namespace hidden='1' name='cpp'><docgroup homogen-name='__FILE__' homogen-type='constant'><doc><text><p>This define contains the file path and name of the source file.</p> - </text></doc> - <constant name='__FILE__'/> - </docgroup></namespace></autodoc> -  <autodoc hidden='1'><namespace hidden='1' name='cpp'><docgroup homogen-name='__DIR__' homogen-type='constant'><doc><text><p>This define contains the directory path of the source file.</p> - </text></doc> - <constant name='__DIR__'/> - </docgroup></namespace></autodoc> -  <autodoc hidden='1'><namespace hidden='1' name='cpp'><docgroup homogen-name='__LINE__' homogen-type='constant'><doc><text><p>This define contains the current line number, represented as an -  integer, in the source file.</p> - </text></doc> - <constant name='__LINE__'/> - </docgroup></namespace></autodoc> -  <autodoc hidden='1'><namespace hidden='1' name='cpp'><docgroup homogen-name='__COUNTER__' homogen-type='variable'><doc><text><p>This define contains a unique counter (unless it has been expanded -  Int.NATIVE_MAX times) represented as an integer.</p> - </text></doc> - <variable name='__COUNTER__'><type><int><min>1</min><max/></int></type></variable> - </docgroup></namespace></autodoc> -  <autodoc hidden='1'><namespace hidden='1' name='cpp'><docgroup homogen-name='__AUTO_BIGNUM__' homogen-type='constant'><doc><text><p>This define is defined when automatic bignum conversion is enabled. -  When enabled all integers will automatically be converted to -  bignums when they get bigger than what can be represented by -  an integer, hampering performance slightly instead of crashing -  the program. This define is always set since Pike 8.0.</p> - </text></doc> - <constant name='__AUTO_BIGNUM__'/> - </docgroup></namespace></autodoc> -  <autodoc hidden='1'><namespace hidden='1' name='cpp'><docgroup homogen-name='__NT__' homogen-type='constant'><doc><text><p>This define is defined when the Pike is running on a Microsoft Windows OS, -  not just Microsoft Windows NT, as the name implies.</p> - </text></doc> - <constant name='__NT__'/> - </docgroup></namespace></autodoc> -  <autodoc hidden='1'><namespace hidden='1' name='cpp'><docgroup homogen-name='__PIKE__' homogen-type='constant'><doc><text><p>This define is always true.</p> - </text></doc> - <constant name='__PIKE__'/> - </docgroup></namespace></autodoc> -  <autodoc hidden='1'><namespace hidden='1' name='cpp'><docgroup homogen-name='__amigaos__' homogen-type='constant'><doc><text><p>This define is defined when the Pike is running on Amiga OS.</p> - </text></doc> - <constant name='__amigaos__'/> - </docgroup></namespace></autodoc> -  <autodoc hidden='1'><namespace hidden='1' name='cpp'><docgroup homogen-name='_Pragma' homogen-type='method'><doc><text><p>This macro inserts the corresponding <ref resolved='cpp::_Pragma'>#pragma</ref> <ref resolved='cpp::_Pragma.directive'>directive</ref> -  in the source.</p> - <p> e.g. <expr>_Pragma("strict_types")</expr> is the same -  as <expr>#pragma strict_types</expr> .</p> - </text><group><seealso/><text><p><ref resolved='cpp::_Pragma'>#pragma</ref></p> - </text></group></doc> - <method name='_Pragma'> - <arguments><argument name='directive'><type><string/></type></argument></arguments> - <returntype><void/></returntype> - </method> - </docgroup></namespace></autodoc> -  <autodoc hidden='1'><namespace hidden='1' name='cpp'><docgroup homogen-name='static_assert' homogen-type='constant'><doc><text><p>This define expands to the symbol <ref>_Static_assert</ref>.</p> - <p> It is the preferred way to perform static -  (ie compile-time) assertions.</p> - </text><group><note/><text><p>The macro can also be used to check for whether static assertions -  are supported.</p> - </text></group><group><seealso/><text><p><ref resolved='predef::_Static_assert'>predef::_Static_assert()</ref></p> - </text></group></doc> - <constant name='static_assert'/> - </docgroup></namespace></autodoc> +  <!--<insert-move entity="cpp::.__VERSION__" />--> +  <!--<insert-move entity="cpp::.__MAJOR__" />--> +  <!--<insert-move entity="cpp::.__MINOR__" />--> +  <!--<insert-move entity="cpp::.__BUILD__" />--> +  <!--<insert-move entity="cpp::.__REAL_VERSION__" />--> +  <!--<insert-move entity="cpp::.__REAL_MAJOR__" />--> +  <!--<insert-move entity="cpp::.__REAL_MINOR__" />--> +  <!--<insert-move entity="cpp::.__REAL_BUILD__" />--> +  <!--<insert-move entity="cpp::.__DATE__" />--> +  <!--<insert-move entity="cpp::.__TIME__" />--> +  <!--<insert-move entity="cpp::.__FILE__" />--> +  <!--<insert-move entity="cpp::.__DIR__" />--> +  <!--<insert-move entity="cpp::.__LINE__" />--> +  <!--<insert-move entity="cpp::.__COUNTER__" />--> +  <!--<insert-move entity="cpp::.__AUTO_BIGNUM__" />--> +  <!--<insert-move entity="cpp::.__NT__" />--> +  <!--<insert-move entity="cpp::.__PIKE__" />--> +  <!--<insert-move entity="cpp::.__amigaos__" />--> +  <!--<insert-move entity="cpp::._Pragma" />--> +  <!--<insert-move entity="cpp::.static_assert" />-->   </section>      <section number='6' title='Test functions'>       <p>These functions are used in <ref resolved='cpp::#if'>#if</ref> et al    expressions to test for presence of symbols.</p>    -  <autodoc hidden='1'><namespace hidden='1' name='cpp'><docgroup homogen-type='method'><doc><text><p>Check whether the argument resolves to a constant or not.</p> - </text><group><seealso/><text><p><ref resolved='cpp::constant'>#if</ref>, <ref resolved='cpp::defined'>defined()</ref></p> - </text></group></doc> - <method name='constant'> - <arguments><argument name='identifier'><type><mixed/></type></argument></arguments> - <returntype><int><min>0</min><max>1</max></int></returntype> - </method> - <method name='efun'> - <arguments><argument name='identifier'><type><mixed/></type></argument></arguments> - <returntype><attribute><prefix/><attribute>"deprecated"</attribute><subtype><int><min>0</min><max>1</max></int></subtype></attribute></returntype> - </method> - </docgroup></namespace></autodoc> -  <autodoc hidden='1'><namespace hidden='1' name='cpp'><docgroup homogen-name='defined' homogen-type='method'><doc><text><p>Check whether an identifier is a cpp macro or not.</p> - </text><group><returns/><text><p><ref resolved='cpp::defined'>defined</ref> returns true if the symbol given as argument -  is defined.</p> - </text></group><group><note/><text><p><tt>#if defined(MY_DEF)</tt> is equivalent to -  <tt>#ifdef MY_DEF</tt>.</p> - </text></group><group><seealso/><text><p><ref resolved='cpp::defined'>#if</ref>, <ref resolved='cpp::defined'>#ifdef</ref>, <ref resolved='cpp::constant'>constant()</ref></p> - </text></group></doc> - <method name='defined'> - <arguments><argument name='identifier'><type><mixed/></type></argument></arguments> - <returntype><int><min>0</min><max>1</max></int></returntype> - </method> - </docgroup></namespace></autodoc> +  <!--<insert-move entity="cpp::.constant" />--> +  <!--<insert-move entity="cpp::.defined" />-->      </section>       <!-- insert-move entity="cpp::"/ -->      </chapter>    </file>    <file name='./traditional_manual/chapter_6.html'>    <chapter number='6' title='Special Functions'>   
autodoc.git/traditional.xml:87913:   </docgroup>   </module></namespace></autodoc>    </chapter>    </file>    <file name='./traditional_manual/chapter_17.html'>    <chapter number='17' title='The rest'>    <autodoc>          - <namespace name='cpp'> - <doc><text><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 -  <ref>MasterObject-&gt;compile_file()</ref> or <ref>MasterObject-&gt;compile_string()</ref>, -  but may be accessed directly by calling <ref>cpp()</ref>.</p> - </text><group><seealso/><text><p><ref>compile()</ref>, <ref>cpp()</ref>, <ref>CompilerEnvironment.CPP</ref></p> - </text></group></doc> +     -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - </namespace> -  +    <namespace name='predef'>   <doc><text><p>This is the default namespace and contains lots of global symbols.</p>   </text></doc>   <docgroup homogen-type='constant'><doc><text><p>The version of FUSE</p>   </text></doc>   <constant name='FUSE_MAJOR_VERSION'/>   <constant name='FUSE_MINOR_VERSION'/>   </docgroup>   <docgroup homogen-type='constant'><doc><text><p>Root handles in the Windows registry.</p>   </text><group><note/><text><p>These constants are only available on Win32 systems.</p>
autodoc.git/traditional.xml:88056:   </docgroup>   <docgroup homogen-name='UNDEFINED' homogen-type='constant'><doc><text><p>The undefined value; ie a zero for which <ref resolved='predef::zero_type'>zero_type()</ref> returns 1.</p>   </text></doc>   <constant name='UNDEFINED'/>   </docgroup>   <docgroup homogen-name='_Static_assert' homogen-type='method'><doc><text><p>Perform a compile-time assertion check.</p>   <p> If <ref resolved='predef::_Static_assert.constant_expression'>constant_expression</ref> is false, a compiler error message    containing <ref resolved='predef::_Static_assert.constant_message'>constant_message</ref> will be generated.</p>   </text><group><note/><text><p>Note that the function call compiles to the null statement,    and thus does not affect the run-time.</p> - </text></group><group><seealso/><text><p><ref resolved='cpp::.static_assert'>cpp::static_assert</ref></p> + </text></group><group><seealso/><text><p><ref>cpp::static_assert</ref></p>   </text></group></doc>   <method name='_Static_assert'>   <arguments><argument name='constant_expression'><type><int/></type></argument><argument name='constant_message'><type><string/></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup>   <docgroup homogen-name='__empty_program' homogen-type='method'>   <method name='__empty_program'>   <arguments><argument name='line'><type><or><int/><void/></or></type></argument><argument name='file'><type><or><string/><void/></or></type></argument></arguments>   <returntype><program/></returntype>
autodoc.git/traditional.xml:88196:   </text></doc>   <method name='_gdb_breakpoint'>   <arguments/>   <returntype><void/></returntype>   </method>   </docgroup>   <docgroup homogen-name='_static_modules' homogen-type='variable'><doc><text><p>This is an object containing the classes for all static    (ie non-dynamic) C-modules.</p>   <p> In a typic Pike with support for dynamic modules the contained    module classes are:</p> - <dl><group><item><p><ref resolved='predef::Builtin'>Builtin</ref></p> + <dl><group><item><p><ref>Builtin</ref></p>   </item><item><p><ref resolved='predef::Gmp'>Gmp</ref></p>   </item><item><p><ref>_Stdio</ref></p>   </item><item><p><ref>_math</ref></p>   </item><item><p><ref>_system</ref></p>   </item></group></dl><p>If the Pike binary lacks support for dynamic modules, all C-modules    will show up here.</p>   </text></doc>   <variable name='_static_modules'><type><object resolved='predef::'/></type></variable>   </docgroup>   <docgroup homogen-name='_typeof' homogen-type='method'><doc><text><p>Return the runtime type of <ref resolved='predef::_typeof.x'>x</ref>.</p>
autodoc.git/traditional.xml:89817:    compiles it into a clonable program.</p>   <p> The optional argument <ref resolved='predef::compile.handler'>handler</ref> 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 <ref resolved='predef::compile.major'>major</ref> and <ref resolved='predef::compile.minor'>minor</ref> are used to tell the    compiler to attempt to be compatible with Pike <ref resolved='predef::compile.major'>major</ref>.<ref resolved='predef::compile.minor'>minor</ref>.</p>   </text><group><note/><text><p>Note that <ref resolved='predef::compile.source'>source</ref> must contain the complete source for a program.    It is not possible to compile a single expression or statement.</p>   <p> Also note that <ref resolved='predef::compile'>compile()</ref> does not preprocess the program.    To preprocess the program you can use <ref resolved='predef::compile_string'>compile_string()</ref> or -  call the preprocessor manually by calling <ref resolved='predef::cpp'>cpp()</ref>.</p> - </text></group><group><seealso/><text><p><ref resolved='predef::compile_string'>compile_string()</ref>, <ref resolved='predef::compile_file'>compile_file()</ref>, <ref resolved='predef::cpp'>cpp()</ref>, <ref resolved='predef::master'>master()</ref>, +  call the preprocessor manually by calling <ref>cpp()</ref>.</p> + </text></group><group><seealso/><text><p><ref resolved='predef::compile_string'>compile_string()</ref>, <ref resolved='predef::compile_file'>compile_file()</ref>, <ref>cpp()</ref>, <ref resolved='predef::master'>master()</ref>,    <ref resolved='predef::CompilationHandler'>CompilationHandler</ref>, <ref resolved='predef::DefaultCompilerEnvironment'>DefaultCompilerEnvironment</ref></p>   </text></group></doc>   <method name='compile'>   <arguments><argument name='source'><type><string/></type></argument><argument name='handler'><type><or><object resolved='predef::CompilationHandler'>CompilationHandler</object><void/></or></type></argument><argument name='major'><type><or><int/><void/></or></type></argument><argument name='minor'><type><or><int/><void/></or></type></argument><argument name='target'><type><or><program/><void/></or></type></argument><argument name='placeholder'><type><or><object resolved='predef::compile'/><void/></or></type></argument></arguments>   <returntype><program/></returntype>   </method>   </docgroup>   <docgroup homogen-name='compile_file' homogen-type='method'><doc><text><p>Compile the Pike code contained in the file <ref resolved='predef::compile_file.filename'>filename</ref> into a program.</p>   <p> This function will compile the file <ref resolved='predef::compile_file.filename'>filename</ref> to a Pike program that can    later be instantiated. It is the same as doing    <expr><ref resolved='predef::compile_string'>compile_string</ref>(<ref resolved='predef::Stdio.read_file'>Stdio.read_file</ref>(<ref resolved='predef::compile_file.filename'>filename</ref>), <ref resolved='predef::compile_file.filename'>filename</ref>)</expr>.</p> - </text><group><seealso/><text><p><ref resolved='predef::compile'>compile()</ref>, <ref resolved='predef::compile_string'>compile_string()</ref>, <ref resolved='predef::cpp'>cpp()</ref></p> + </text><group><seealso/><text><p><ref resolved='predef::compile'>compile()</ref>, <ref resolved='predef::compile_string'>compile_string()</ref>, <ref>cpp()</ref></p>   </text></group></doc>   <method name='compile_file'>   <arguments><argument name='filename'><type><string/></type></argument><argument name='handler'><type><or><object resolved='predef::compile_file'/><void/></or></type></argument><argument name='p'><type><or><void/><program/></or></type></argument><argument name='o'><type><or><void/><object resolved='predef::compile_file'/></or></type></argument></arguments>   <returntype><program/></returntype>   </method>   </docgroup>   <docgroup homogen-name='compile_string' homogen-type='method'><doc><text><p>Compile the Pike code in the string <ref resolved='predef::compile_string.source'>source</ref> into a program.    If <ref resolved='predef::compile_string.filename'>filename</ref> is not specified, it will default to <expr>"-"</expr>.</p> - <p> Functionally equal to <expr><ref resolved='predef::compile'>compile</ref>(<ref resolved='predef::cpp'>cpp</ref>(<ref resolved='predef::compile_string.source'>source</ref>, <ref resolved='predef::compile_string.filename'>filename</ref>))</expr>.</p> - </text><group><seealso/><text><p><ref resolved='predef::compile'>compile()</ref>, <ref resolved='predef::cpp'>cpp()</ref>, <ref resolved='predef::compile_file'>compile_file()</ref></p> + <p> Functionally equal to <expr><ref resolved='predef::compile'>compile</ref>(<ref>cpp</ref>(<ref resolved='predef::compile_string.source'>source</ref>, <ref resolved='predef::compile_string.filename'>filename</ref>))</expr>.</p> + </text><group><seealso/><text><p><ref resolved='predef::compile'>compile()</ref>, <ref>cpp()</ref>, <ref resolved='predef::compile_file'>compile_file()</ref></p>   </text></group></doc>   <method name='compile_string'>   <arguments><argument name='source'><type><string/></type></argument><argument name='filename'><type><or><void/><string/></or></type></argument><argument name='handler'><type><or><object resolved='predef::compile_string'/><void/></or></type></argument><argument name='p'><type><or><void/><program/></or></type></argument><argument name='o'><type><or><void/><object resolved='predef::compile_string'/></or></type></argument><argument name='_show_if_constant_errors'><type><or><void/><int/></or></type></argument></arguments>   <returntype><program/></returntype>   </method>   </docgroup>   <docgroup homogen-name='copy_value' homogen-type='method'><doc><text><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
autodoc.git/traditional.xml:89887:         <docgroup homogen-name='cp' homogen-type='method'><doc><text><p>Copies the file <ref resolved='predef::cp.from'>from</ref> to the new position <ref resolved='predef::cp.to'>to</ref>. This is an    alias for <ref resolved='predef::Stdio.cp'>Stdio.cp</ref>.</p>   </text></doc>   <method name='cp'>   <arguments><argument name='from'><type><string/></type></argument><argument name='to'><type><string/></type></argument></arguments>   <returntype><int/></returntype>   </method>   </docgroup> - <docgroup homogen-name='cpp' homogen-type='method'><doc><text><p>Run a string through the preprocessor.</p> - <p> Preprocesses the string <ref resolved='predef::cpp.data'>data</ref> with Pike's builtin ANSI-C look-alike -  preprocessor. If the <ref resolved='predef::cpp.current_file'>current_file</ref> argument has not been specified, -  it will default to <expr>"-"</expr>. <ref resolved='predef::cpp.charset'>charset</ref> defaults to <expr>"ISO-10646"</expr>.</p> - <p> If the second 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 recognized:</p> - <mapping><group><member><type><string/></type><index>"current_file"</index></member><text><p>Name of the current file. It is used for generating -  #line directives and for locating include files.</p> - </text></group><group><member><type><or><int/><string/></or></type><index>"charset"</index></member><text><p>Charset to use when processing <expr>data</expr>.</p> - </text></group><group><member><type><object resolved='predef::cpp'/></type><index>"handler"</index></member><text><p>Compilation handler.</p> - </text></group><group><member><type><int/></type><index>"compat_major"</index></member><text><p>Sets the major pike version used for compat handling.</p> - </text></group><group><member><type><int/></type><index>"compat_minor"</index></member><text><p>Sets the minor pike version used for compat handling.</p> - </text></group><group><member><type><int/></type><index>"picky_cpp"</index></member><text><p>Generate more warnings.</p> - </text></group><group><member><type><int/></type><index>"keep_comments"</index></member><text><p>This option keeps <ref resolved='predef::cpp'>cpp()</ref> from removing comments. -  Useful in combination with the prefix feature below.</p> - </text></group><group><member><type><string/></type><index>"prefix"</index></member><text><p>If a prefix is given, only prefixed directives will be -  processed. For example, if the prefix is <expr>"foo"</expr>, then -  <expr>#foo_ifdef COND</expr> and <expr>foo___LINE__</expr> would be -  processed, <expr>#ifdef COND</expr> and <expr>__LINE__</expr> would not.</p> - </text></group></mapping> - </text><group><seealso/><text><p><ref resolved='predef::compile'>compile()</ref></p> - </text></group></doc> - <method name='cpp'> - <arguments><argument name='data'><type><string/></type></argument><argument name='current_file'><type><or><mapping/><string/><void/></or></type></argument><argument name='charset'><type><or><int/><string/><void/></or></type></argument><argument name='handler'><type><or><object resolved='predef::cpp'/><void/></or></type></argument><argument name='compat_major'><type><or><void/><int/></or></type></argument><argument name='compat_minor'><type><or><void/><int/></or></type></argument><argument name='picky_cpp'><type><or><void/><int/></or></type></argument></arguments> - <returntype><string/></returntype> - </method> - </docgroup> +    <docgroup homogen-name='crypt' homogen-type='method'><doc><text><p>This function crypts and verifies a short string (only the first    8 characters are significant).</p>   <p> The first syntax crypts the string <ref resolved='predef::crypt.password'>password</ref> into something that    is hopefully hard to decrypt.</p>   <p> The second syntax is used to verify <ref>typed_password</ref> against    <ref resolved='predef::crypt.crypted_password'>crypted_password</ref>, and returns <expr>1</expr> if they match, and    <expr>0</expr> (zero) otherwise.</p>   <p> The third syntax generates a random string and then crypts it,    creating a string useful as a password.</p>   </text><group><note/><text><p>Note that strings containing null characters will only be
autodoc.git/traditional.xml:90992:   </text></group></doc>   <method name='hash_value'>   <arguments><argument name='value'><type><mixed/></type></argument></arguments>   <returntype><int/></returntype>   </method>   </docgroup>             - <docgroup homogen-name='' homogen-type='import'> - <import name=''><classname resolved='cpp::'>cpp::</classname></import> - </docgroup> +    <docgroup homogen-name='indices' homogen-type='method'><doc><text><p>Return an array of all valid indices for the value <ref resolved='predef::indices.x'>x</ref>.</p>   </text><group><param name='x'/><text><mixed><group><type><string/></type><type><array/></type><text><p>For strings and arrays this is simply an array of ascending    numbers.</p>   </text></group><group><type><mapping/></type><type><multiset/></type><text><p>For mappings and multisets, the array might contain any value.</p>   </text></group><group><type><object resolved='predef::indices'/></type><text><p>For objects which define <ref resolved='lfun::_indices'>lfun::_indices()</ref> that return value    is used.</p>   <p> For other objects an array with the names of all non-protected    symbols is returned.</p>   </text></group></mixed>   </text></group><group><seealso/><text><p><ref resolved='predef::values'>values()</ref>, <ref resolved='predef::types'>types()</ref>, <ref resolved='lfun::_indices'>lfun::_indices()</ref></p>
autodoc.git/traditional.xml:92738:   <method name='values'>   <arguments><argument name='x'><type><or><string/><array/><mapping/><multiset/><object resolved='predef::values'/></or></type></argument></arguments>   <returntype><array/></returntype>   </method>   </docgroup>      <docgroup homogen-name='version' homogen-type='method'><doc><text><p>Report the version of Pike. Does the same as</p>   <code><text><p>sprintf("Pike v%d.%d release %d", __REAL_VERSION__,    __REAL_MINOR__, __REAL_BUILD__);</p>   </text></code> - </text><group><seealso/><text><p><ref resolved='cpp::.__VERSION__'>__VERSION__</ref>, <ref resolved='cpp::.__MINOR__'>__MINOR__</ref>, <ref resolved='cpp::.__BUILD__'>__BUILD__</ref>, -  <ref resolved='cpp::.__REAL_VERSION__'>__REAL_VERSION__</ref>, <ref resolved='cpp::.__REAL_MINOR__'>__REAL_MINOR__</ref>, <ref resolved='cpp::.__REAL_BUILD__'>__REAL_BUILD__</ref>,</p> + </text><group><seealso/><text><p><ref>__VERSION__</ref>, <ref>__MINOR__</ref>, <ref>__BUILD__</ref>, +  <ref>__REAL_VERSION__</ref>, <ref>__REAL_MINOR__</ref>, <ref>__REAL_BUILD__</ref>,</p>   </text></group></doc>   <method name='version'>   <arguments/>   <returntype><string/></returntype>   </method>   </docgroup>   <docgroup homogen-name='werror' homogen-type='method'><doc><text><p>Writes a string on stderr. Works just like <ref resolved='predef::Stdio.Fd.write'>Stdio.File.write</ref>    on <ref resolved='predef::Stdio.stderr'>Stdio.stderr</ref>.</p>   </text></doc>   <method name='werror'>
autodoc.git/traditional.xml:93260:   </docgroup>   <docgroup homogen-name='encode' homogen-type='method'><doc><text><p>Encodes a string using Bootstring encoding into a string constisting    only of "basic" code points (&lt; initial_n).</p>   </text></doc>   <method name='encode'>   <arguments><argument name='s'><type><string/></type></argument></arguments>   <returntype><string/></returntype>   </method>   </docgroup>   </class> - <module name='Builtin'> - <docgroup homogen-name='_take_over_initial_predefines' homogen-type='method'><doc><text><p>Returns a mapping containing the set of predefined macros. -  These are typically the macros defined via the <tt>-D</tt> option -  when starting Pike.</p> - <p> This function is typically called by the <ref resolved='predef::MasterObject'>MasterObject</ref> at -  initialization, and may only be called once. After it has been called, -  <ref resolved='predef::cpp'>cpp()</ref> will start calling <ref resolved='predef::CompilationHandler.get_predefines'>CompilationHandler-&gt;get_predefines()</ref> to -  retrieve the set of predefined macros.</p> - </text><group><seealso/><text><p>[cpp()], <ref resolved='predef::CompilationHandler.get_predefines'>CompilationHandler-&gt;get_predefines()</ref></p> - </text></group></doc> - <method name='_take_over_initial_predefines'> - <arguments/> - <returntype><mapping><indextype><string/></indextype><valuetype><mixed/></valuetype></mapping></returntype> - </method> - </docgroup> - </module> +    <module name='Bz2'>   <doc><text><p>The Bz2 module contains functions to compress and uncompress    strings using the same algorithm as the program <tt>bzip2</tt>.    Compressing and decompressing can be done in streaming mode    feeding the compress and decompress objects with arbitrarily large    pieces of data.</p>   <p> The Bz2 module consists of three classes; <ref resolved='predef::Bz2.Deflate'>Bz2.Deflate</ref>,    <ref resolved='predef::Bz2.Inflate'>Bz2.Inflate</ref> and <ref resolved='predef::Bz2.File'>Bz2.File</ref>. <ref resolved='predef::Bz2.Deflate'>Bz2.Deflate</ref> is used to compress    data and <ref resolved='predef::Bz2.Inflate'>Bz2.Inflate</ref> is used to uncompress data. <ref resolved='predef::Bz2.File'>Bz2.File</ref> is    used to handle Bzip2 files.</p>
autodoc.git/traditional.xml:98562:    current line.</p>   </text></group><group><param name='offset'/><text><p>The position in the file where the parser should begin.</p>   </text></group></doc>   <method name='read'>   <arguments><argument name='callback'><type><function><argtype><array><valuetype><or><int/><string/></or></valuetype></array></argtype><argtype><int/></argtype><returntype><void/></returntype></function></type></argument><argument name='logfile'><type><or><object resolved='predef::Stdio.File'>Stdio.File</object><string/></or></type></argument><argument name='offset'><type><or><void/><int/></or></type></argument></arguments>   <returntype><int/></returntype>   </method>   </docgroup>   </module>   <class name='CompilationHandler'> - <doc><text><p>Objects used by the compiler to handle references to global symbols, -  modules, external files, etc.</p> - <p> There can be up to three compilation handlers active at the same -  time during a compilation. They are in order of precedence:</p> - <ol><group><item/><text><p>The error handler</p> - <p> This is the object passed to <ref resolved='predef::compile'>compile()</ref> as -  the second argument (if any). This object is returned by -  <ref resolved='predef::get_active_error_handler'>get_active_error_handler()</ref> during a compilation.</p> - </text></group><group><item/><text><p>The compatibility handler</p> - <p> This is the object returned by -  <ref>master()-&gt;get_compilation_handler()</ref> (if any), which -  the compiler calls when it sees <tt>#pike</tt>-directives, -  or expressions using the version scope -  (eg <expr>7.4::rusage</expr>). This object is returned by -  <ref resolved='predef::get_active_compilation_handler'>get_active_compilation_handler()</ref> during a compilation.</p> - </text></group><group><item/><text><p>The master object.</p> - <p> This is returned by <ref resolved='predef::master'>master()</ref> at any time.</p> - </text></group></ol><p>Any of the objects may implement a subset of the <ref resolved='predef::CompilationHandler'>CompilationHandler</ref> -  functions, and the first object that implements a function will be -  used. The error handler object can thus be used to block certain -  functionality (eg to restrict the number of available functions).</p> - </text><group><seealso/><text><p><ref>master()-&gt;get_compilation_handler()</ref>, <ref resolved='predef::get_active_error_handler'>get_active_error_handler()</ref>, -  <ref resolved='predef::get_active_compilation_handler'>get_active_compilation_handler()</ref>, <ref resolved='predef::compile'>compile()</ref></p> - </text></group></doc> - <docgroup homogen-name='compile_error' homogen-type='method'><doc><text><p>Called by <ref resolved='predef::compile'>compile()</ref> and <ref resolved='predef::cpp'>cpp()</ref> when they encounter -  errors in the code they compile.</p> - </text><group><param name='filename'/><text><p>File where the error was detected.</p> - </text></group><group><param name='line'/><text><p>Line where the error was detected.</p> - </text></group><group><param name='msg'/><text><p>Description of error.</p> - </text></group><group><seealso/><text><p><ref resolved='predef::CompilationHandler.compile_warning'>compile_warning()</ref>.</p> - </text></group></doc> - <method name='compile_error'> - <arguments><argument name='filename'><type><string/></type></argument><argument name='line'><type><int/></type></argument><argument name='msg'><type><string/></type></argument></arguments> - <returntype><void/></returntype> - </method> - </docgroup> - <docgroup homogen-name='compile_exception' homogen-type='method'><doc><text><p>Called by <ref resolved='predef::compile'>compile()</ref> and <ref resolved='predef::cpp'>cpp()</ref> if they trigger -  exceptions.</p> - </text></doc> - <method name='compile_exception'> - <arguments><argument name='exception'><type><mixed/></type></argument></arguments> - <returntype><void/></returntype> - </method> - </docgroup> +    <docgroup homogen-name='compile_warning' homogen-type='method'><doc><text><p>Called by <ref resolved='predef::compile'>compile()</ref> to report warnings.</p>   </text><group><param name='filename'/><text><p>File which triggered the warning.</p>   </text></group><group><param name='line'/><text><p>Line which triggered the warning.</p>   </text></group><group><param name='msg'/><text><p>Warning message.</p> - </text></group><group><seealso/><text><p><ref resolved='predef::CompilationHandler.compile_error'>compile_error()</ref></p> + </text></group><group><seealso/><text><p><ref>compile_error()</ref></p>   </text></group></doc>   <method name='compile_warning'>   <arguments><argument name='filename'><type><string/></type></argument><argument name='line'><type><int/></type></argument><argument name='msg'><type><string/></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup>   <docgroup homogen-name='get_default_module' homogen-type='method'><doc><text><p>Returns the default module from which global symbols will    be fetched.</p>   </text><group><returns/><text><p>Returns the default module, or <expr>0</expr> (zero).</p>   <p> If <expr>0</expr> (zero) is returned the compiler use the mapping    returned by <ref resolved='predef::all_constants'>all_constants()</ref> as fallback.</p> - </text></group><group><seealso/><text><p><ref resolved='predef::CompilationHandler.get_predefines'>get_predefines()</ref></p> + </text></group><group><seealso/><text><p><ref>get_predefines()</ref></p>   </text></group></doc>   <method name='get_default_module'>   <arguments/>   <returntype><or><mapping><indextype><string/></indextype><valuetype><mixed/></valuetype></mapping><object resolved='predef::CompilationHandler.get_default_module'/></or></returntype>   </method>   </docgroup> - <docgroup homogen-name='get_predefines' homogen-type='method'><doc><text><p>Called by <ref resolved='predef::cpp'>cpp()</ref> to get the set of global symbols.</p> - </text><group><returns/><text><p>Returns a mapping from symbol name to symbol value. -  Returns zero on failure.</p> - </text></group><group><seealso/><text><p><ref resolved='predef::CompilationHandler.resolv'>resolv()</ref>, <ref resolved='predef::CompilationHandler.get_default_module'>get_default_module()</ref></p> - </text></group></doc> - <method name='get_predefines'> - <arguments/> - <returntype><mapping><indextype><string/></indextype><valuetype><mixed/></valuetype></mapping></returntype> - </method> - </docgroup> - <docgroup homogen-name='handle_import' homogen-type='method'><doc><text><p>Called by <ref resolved='predef::compile'>compile()</ref> and <ref resolved='predef::cpp'>cpp()</ref> to handle import -  directives specifying specific paths.</p> - </text><group><returns/><text><p>Returns the resolved value, or <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> on failure.</p> - </text></group></doc> - <method name='handle_import'> - <arguments><argument name='path'><type><string/></type></argument><argument name='filename'><type><string/></type></argument><argument name='handler'><type><object resolved='predef::CompilationHandler'>CompilationHandler</object></type></argument></arguments> - <returntype><mixed/></returntype> - </method> - </docgroup> - <docgroup homogen-name='handle_include' homogen-type='method'><doc><text><p>Called by <ref resolved='predef::cpp'>cpp()</ref> to resolv <expr>#include</expr> and <expr>#string</expr> -  directives.</p> - </text><group><param name='header_file'/><text><p>File that was requested for inclusion.</p> - </text></group><group><param name='current_file'/><text><p>File where the directive was found.</p> - </text></group><group><param name='is_local_ref'/><text><p>Specifies reference method.</p> - <int><group><value>0</value><text><p>Directive was <expr>#include &lt;header_file&gt;</expr>.</p> - </text></group><group><value>1</value><text><p>Directive was <expr>#include "header_file"</expr>.</p> - </text></group></int> - </text></group><group><returns/><text><p>Returns the filename to pass to <ref resolved='predef::CompilationHandler.read_include'>read_include()</ref> if found, -  and <expr>0</expr> (zero) on failure.</p> - </text></group><group><seealso/><text><p><ref resolved='predef::CompilationHandler.read_include'>read_include()</ref></p> - </text></group></doc> - <method name='handle_include'> - <arguments><argument name='header_file'><type><string/></type></argument><argument name='current_file'><type><string/></type></argument><argument name='is_local_ref'><type><int><min>0</min><max>1</max></int></type></argument></arguments> - <returntype><string/></returntype> - </method> - </docgroup> - <docgroup homogen-name='read_include' homogen-type='method'><doc><text><p>Called by <ref resolved='predef::cpp'>cpp()</ref> to read included files.</p> - </text><group><param name='filename'/><text><p>Filename as returned by <ref resolved='predef::CompilationHandler.handle_include'>handle_include()</ref>.</p> - </text></group><group><returns/><text><p>Returns a string with the content of the header file on success, -  and <expr>0</expr> (zero) on failure.</p> - </text></group><group><seealso/><text><p><ref resolved='predef::CompilationHandler.handle_include'>handle_include()</ref></p> - </text></group></doc> - <method name='read_include'> - <arguments><argument name='filename'><type><string/></type></argument></arguments> - <returntype><string/></returntype> - </method> - </docgroup> - <docgroup homogen-name='resolv' homogen-type='method'><doc><text><p>Called by <ref resolved='predef::compile'>compile()</ref> and <ref resolved='predef::cpp'>cpp()</ref> to resolv -  module references.</p> - </text><group><returns/><text><p>Returns the resolved value, or <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> on failure.</p> - </text></group><group><seealso/><text><p><ref resolved='predef::CompilationHandler.get_predefines'>get_predefines()</ref></p> - </text></group></doc> - <method name='resolv'> - <arguments><argument name='symbol'><type><string/></type></argument><argument name='filename'><type><string/></type></argument><argument name='handler'><type><object resolved='predef::CompilationHandler'>CompilationHandler</object></type></argument></arguments> - <returntype><mixed/></returntype> - </method> - </docgroup> +    </class>   <class name='CompilerEnvironment'>   <modifiers><protected/></modifiers>   <doc><text><p>The compiler environment.</p>   <p> By inheriting this class and overloading the functions,    it is possible to make a custom Pike compiler.</p>   </text><group><note/><text><p>Prior to Pike 7.8 this sort of customization has to be done    either via custom master objects, or via <ref resolved='predef::CompilationHandler'>CompilationHandler</ref>s.</p>   </text></group><group><seealso/><text><p><ref resolved='predef::CompilationHandler'>CompilationHandler</ref>, <ref resolved='predef::MasterObject'>MasterObject</ref>, <ref resolved='predef::master'>master()</ref>, <ref resolved='predef::replace_master'>replace_master()</ref></p>   </text></group></doc>
autodoc.git/traditional.xml:98714:   </text><group><note/><text><p>This function essentially performs</p>   <code><text><p>program compile(mixed ... args)    {    return PikeCompiler(@args)-&gt;compile();    }</p>   </text></code>   </text></group><group><note/><text><p>Note that <ref resolved='predef::CompilerEnvironment.compile.source'>source</ref> must contain the complete source for a program.    It is not possible to compile a single expression or statement.</p>   <p> Also note that <ref resolved='predef::CompilerEnvironment.compile'>compile()</ref> does not preprocess the program.    To preprocess the program you can use <ref resolved='predef::compile_string'>compile_string()</ref> or -  call the preprocessor manually by calling <ref resolved='predef::cpp'>cpp()</ref>.</p> - </text></group><group><seealso/><text><p><ref resolved='predef::compile_string'>compile_string()</ref>, <ref resolved='predef::compile_file'>compile_file()</ref>, <ref resolved='predef::cpp'>cpp()</ref>, <ref resolved='predef::master'>master()</ref>, +  call the preprocessor manually by calling <ref>cpp()</ref>.</p> + </text></group><group><seealso/><text><p><ref resolved='predef::compile_string'>compile_string()</ref>, <ref resolved='predef::compile_file'>compile_file()</ref>, <ref>cpp()</ref>, <ref resolved='predef::master'>master()</ref>,    <ref resolved='predef::CompilationHandler'>CompilationHandler</ref></p>   </text></group></doc>   <method name='compile'>   <arguments><argument name='source'><type><string/></type></argument><argument name='handler'><type><or><object resolved='predef::CompilationHandler'>CompilationHandler</object><void/></or></type></argument><argument name='major'><type><or><int/><void/></or></type></argument><argument name='minor'><type><or><int/><void/></or></type></argument><argument name='target'><type><or><program/><void/></or></type></argument><argument name='placeholder'><type><or><object resolved='predef::CompilerEnvironment.compile'/><void/></or></type></argument></arguments>   <returntype><program/></returntype>   </method>   </docgroup>   <docgroup homogen-name='get_compilation_handler' homogen-type='method'><doc><text><p>Get compatibility handler for Pike <ref resolved='predef::CompilerEnvironment.get_compilation_handler.major'>major</ref>.<ref resolved='predef::CompilerEnvironment.get_compilation_handler.minor'>minor</ref>.</p>   <p> The default implementation calls the corresponding    function in the master object.</p>   </text><group><note/><text><p>This function is typically called by    <ref resolved='predef::CompilerEnvironment.PikeCompiler.get_compilation_handler'>PikeCompiler()-&gt;get_compilation_handler()</ref>.</p> - </text></group><group><seealso/><text><p><ref resolved='predef::MasterObject.get_compilation_handler'>MasterObject()-&gt;get_compilation_handler()</ref>.</p> + </text></group><group><seealso/><text><p><ref>MasterObject()-&gt;get_compilation_handler()</ref>.</p>   </text></group></doc>   <method name='get_compilation_handler'>   <arguments><argument name='major'><type><int/></type></argument><argument name='minor'><type><int/></type></argument></arguments>   <returntype><object resolved='predef::CompilerEnvironment.get_compilation_handler'/></returntype>   </method>   </docgroup>   <docgroup homogen-name='get_default_module' homogen-type='method'><doc><text><p>Get the default module for the current compatibility level    (ie typically the value returned by <ref resolved='predef::all_constants'>predef::all_constants()</ref>).</p>   <p> The default implementation calls the corresponding function    in the master object.</p>
autodoc.git/traditional.xml:98754:   </text></group><group><seealso/><text><p><ref resolved='predef::MasterObject.CompatResolver.get_default_module'>MasterObject()-&gt;get_default_module()</ref>.</p>   </text></group></doc>   <method name='get_default_module'>   <arguments/>   <returntype><or><mapping><indextype><string/></indextype><valuetype><mixed/></valuetype></mapping><object resolved='predef::CompilerEnvironment.get_default_module'/></or></returntype>   </method>   </docgroup>   <docgroup homogen-name='handle_import' homogen-type='method'><doc><text><p>Look up an import <ref resolved='predef::CompilerEnvironment.handle_import.module'>module</ref>.</p>   <p> The default implementation calls the corresponding function    in the master object.</p> - </text><group><seealso/><text><p><ref resolved='predef::CompilationHandler.handle_import'>MasterObject()-&gt;handle_import()</ref>.</p> + </text><group><seealso/><text><p><ref>MasterObject()-&gt;handle_import()</ref>.</p>   </text></group></doc>   <method name='handle_import'>   <arguments><argument name='module'><type><string/></type></argument><argument name='current_file'><type><string/></type></argument><argument name='handler'><type><or><object resolved='predef::CompilerEnvironment.handle_import'/><void/></or></type></argument></arguments>   <returntype><program/></returntype>   </method>   </docgroup>   <docgroup homogen-name='handle_inherit' homogen-type='method'><doc><text><p>Look up an inherit <ref resolved='predef::CompilerEnvironment.handle_inherit.inh'>inh</ref>.</p>   <p> The default implementation calls the corresponding function    in the master object.</p>   </text><group><seealso/><text><p><ref resolved='predef::MasterObject.handle_inherit'>MasterObject()-&gt;handle_inherit()</ref>.</p>
autodoc.git/traditional.xml:98792:    the master object.</p>   </text><group><returns/><text><p>Returns the value of the <ref resolved='predef::CompilerEnvironment.resolv.identifier'>identifier</ref> if found, and    <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> if not.</p>   </text></group></doc>   <method name='resolv'>   <arguments><argument name='identifier'><type><string/></type></argument><argument name='filename'><type><string/></type></argument><argument name='handler'><type><or><object resolved='predef::CompilerEnvironment.resolv'/><void/></or></type></argument><argument name='compat_handler'><type><or><object resolved='predef::CompilerEnvironment.resolv'/><void/></or></type></argument></arguments>   <returntype><mixed/></returntype>   </method>   </docgroup>   <class name='CPP'> - <doc><text><p>The state for an instance of the preprocessor.</p> - </text><group><seealso/><text><p><ref resolved='predef::cpp'>predef::cpp()</ref></p> - </text></group></doc> - <docgroup homogen-name='change_cpp_compatibility' homogen-type='method'><doc><text><p>Change the pike compatibility level for this preprocessor -  to the specified version of Pike.</p> - </text><group><param name='major'/><text><p>Major version of Pike to attempt to be compatible with. -  Specifying a major version of <expr>-1</expr> is a short hand -  for specifying <ref resolved='cpp::.__REAL_MAJOR__'>__REAL_MAJOR__</ref> and <ref resolved='cpp::.__REAL_MINOR__'>__REAL_MINOR__</ref>.</p> - </text></group><group><param name='minor'/><text><p>Minor version of Pike to attempt to be compatible with.</p> - <p> This function is called by the preprocessor to set -  the compatibility level.</p> - <p> The default implementation performs some normalization, and -  then sets <ref>compat_major</ref> and <ref>compat_minor</ref> to their -  respective values (which in turn affects symbols such as -  <ref resolved='cpp::.__MAJOR__'>__MAJOR__</ref> and <ref resolved='cpp::.__MINOR__'>__MINOR__</ref>).</p> - </text></group></doc> - <method name='change_cpp_compatibility'> - <arguments><argument name='major'><type><int/></type></argument><argument name='minor'><type><int/></type></argument></arguments> - <returntype><void/></returntype> - </method> - </docgroup> - <docgroup homogen-name='cpp_error' homogen-type='method'><doc><text><p>Convenience function for reporting a cpp error at -  the current position.</p> - <p> This function calls <ref resolved='predef::CompilerEnvironment.CPP.report'>report()</ref> with the same arguments, -  but prefixed with suitable defaults.</p> - </text><group><seealso/><text><p><ref resolved='predef::CompilerEnvironment.CPP.report'>report()</ref></p> - </text></group></doc> - <method name='cpp_error'> - <arguments><argument name='msg'><type><object resolved='predef::.sprintf_format'>sprintf_format</object></type></argument><argument name='arguments'><type><varargs><object resolved='predef::.sprintf_args'>sprintf_args</object></varargs></type></argument></arguments> - <returntype><void/></returntype> - </method> - </docgroup> - <docgroup homogen-name='create' homogen-type='method'><doc><text><p>Initialize the preprocessor.</p> - </text><group><param name='options'/><text><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> - <mapping><group><member><type><string/></type><index>"current_file"</index></member><text><p>Name of the current file. It is used for generating -  #line directives and for locating include files.</p> - </text></group><group><member><type><or><int/><string/></or></type><index>"charset"</index></member><text><p>Charset to use when processing <expr>data</expr>.</p> - </text></group><group><member><type><object resolved='predef::CompilerEnvironment.CPP.create'/></type><index>"handler"</index></member><text><p>Compilation handler.</p> - </text></group><group><member><type><int/></type><index>"compat_major"</index></member><text><p>Sets the major pike version used for compat handling.</p> - </text></group><group><member><type><int/></type><index>"compat_minor"</index></member><text><p>Sets the minor pike version used for compat handling.</p> - </text></group><group><member><type><int/></type><index>"picky_cpp"</index></member><text><p>Generate more warnings.</p> - </text></group><group><member><type><int/></type><index>"keep_comments"</index></member><text><p>This option keeps <ref resolved='predef::cpp'>cpp()</ref> from removing comments. -  Useful in combination with the prefix feature below.</p> - </text></group><group><member><type><string/></type><index>"prefix"</index></member><text><p>If a prefix is given, only prefixed directives will be -  processed. For example, if the prefix is <expr>"foo"</expr>, then -  <expr>#foo_ifdef COND</expr> and <expr>foo___LINE__</expr> would be -  processed, <expr>#ifdef COND</expr> and <expr>__LINE__</expr> would not.</p> - </text></group></mapping> - </text></group><group><param name='current_file'/><text><p>If the <ref resolved='predef::CompilerEnvironment.CPP.create.current_file'>current_file</ref> argument has not been specified, -  it will default to <expr>"-"</expr>.</p> - </text></group><group><param name='charset'/><text><p>Turn on automatic character set detection if <expr>1</expr>, otherwise -  specifies the character set used by the input. -  Defaults to <expr>"ISO-10646"</expr>.</p> - </text></group><group><seealso/><text><p><ref resolved='predef::CompilerEnvironment.compile'>compile()</ref></p> - </text></group></doc> - <method name='create'> - <arguments><argument name='current_file'><type><or><string/><void/></or></type></argument><argument name='charset'><type><or><int/><string/><void/></or></type></argument><argument name='handler'><type><or><object resolved='predef::CompilerEnvironment.CPP.create'/><void/></or></type></argument><argument name='compat_major'><type><or><void/><int/></or></type></argument><argument name='compat_minor'><type><or><void/><int/></or></type></argument><argument name='picky_cpp'><type><or><void/><int/></or></type></argument></arguments> - <returntype><void/></returntype> - </method> - <method name='create'> - <arguments><argument name='options'><type><mapping><indextype><string/></indextype><valuetype><mixed/></valuetype></mapping></type></argument></arguments> - <returntype><void/></returntype> - </method> - </docgroup> - <docgroup homogen-name='define_ansi_macros' homogen-type='method'><doc><text><p>Adds some cpp macros defined by the ANSI-C standards, -  such as <ref resolved='cpp::.__FILE__'>__FILE__</ref>, <ref resolved='cpp::.__LINE__'>__LINE__</ref>, etc.</p> - </text><group><seealso/><text><p><ref resolved='predef::CompilerEnvironment.CPP.define_macro'>define_macro()</ref>, <ref resolved='predef::CompilerEnvironment.CPP.define_pike_macros'>define_pike_macros()</ref></p> - </text></group></doc> - <method name='define_ansi_macros'> - <arguments/> - <returntype><void/></returntype> - </method> - </docgroup> - <docgroup homogen-name='define_macro' homogen-type='method'><doc><text><p>Define a cpp macro.</p> - </text></doc> - <method name='define_macro'> - <arguments><argument name='name'><type><string/></type></argument><argument name='value'><type><or><string/><void/></or></type></argument></arguments> - <returntype><void/></returntype> - </method> - </docgroup> - <docgroup homogen-name='define_multiple_macros' homogen-type='method'><doc><text><p>Define multiple macros in one operation.</p> - </text><group><param name='predefs'/><text><p>Macros to define.</p> - </text></group><group><note/><text><p>Callback-style macros are supported. Note that is up to -  <ref resolved='predef::CompilerEnvironment.CPP.evaluate_define'>evaluate_define()</ref> to actually remember the callback.</p> - </text></group><group><note/><text><p>It is likely that this function in a future version of Pike -  <b>will</b> actually register the callback, in which case -  <ref resolved='predef::CompilerEnvironment.CPP.evaluate_define'>evaluate_define()</ref> no longer will be called. The implicit -  <ref resolved='predef::CompilerEnvironment.CPP.evaluate_define'>evaluate_define()</ref> in that case will probably use the -  same semantics as the current reference implementation in -  the master.</p> - </text></group><group><seealso/><text><p><ref resolved='predef::CompilerEnvironment.CPP.define_macro'>define_macro()</ref>, <ref resolved='predef::CompilationHandler.get_predefines'>CompilationHandler()-&gt;get_predefines()</ref>, -  <ref>_take_over_initial_predefines()</ref>, <ref resolved='predef::CompilerEnvironment.CPP.evaluate_define'>evaluate_define()</ref></p> - </text></group></doc> - <method name='define_multiple_macros'> - <arguments><argument name='predefs'><type><or><mapping><indextype><string/></indextype><valuetype><or><string/><function/><object resolved='predef::CompilerEnvironment.CPP.define_multiple_macros'/></or></valuetype></mapping><void/></or></type></argument></arguments> - <returntype><void/></returntype> - </method> - </docgroup> - <docgroup homogen-name='define_pike_macros' homogen-type='method'><doc><text><p>Adds some pike-specific cpp macros, -  such as <ref resolved='cpp::.__DIR__'>__DIR__</ref>, <ref resolved='cpp::.__VERSION__'>__VERSION__</ref>, [__PIKE__], etc.</p> - </text><group><seealso/><text><p><ref resolved='predef::CompilerEnvironment.CPP.define_macro'>define_macro()</ref>, <ref resolved='predef::CompilerEnvironment.CPP.define_ansi_macros'>define_ansi_macros()</ref></p> - </text></group></doc> - <method name='define_pike_macros'> - <arguments/> - <returntype><void/></returntype> - </method> - </docgroup> - <docgroup homogen-name='evaluate_define' homogen-type='method'><doc><text><p>Evaluate the #define named <ref resolved='predef::CompilerEnvironment.CPP.evaluate_define.def'>def</ref> with <ref resolved='predef::CompilerEnvironment.CPP.evaluate_define.arguments'>arguments</ref>.</p> - </text><group><param name='def'/><text><p>Name of the macro.</p> - </text></group><group><param name='arguments'/><text><p>Raw string of the contents between the parenthesis -  for function-style maros. <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> or left out -  if not a function-style macro.</p> - <p> This function is used to evaluate callback-style macros -  as defined via <ref resolved='predef::CompilerEnvironment.CPP.define_multiple_macros'>define_multiple_macros()</ref>.</p> - </text></group><group><note/><text><p>This API is likely to be removed in a future version of -  Pike, where macro functions would be called directly by -  the preprocessor.</p> - </text></group></doc> - <method name='evaluate_define'> - <arguments><argument name='def'><type><string/></type></argument><argument name='arguments'><type><or><string/><void/></or></type></argument></arguments> - <returntype><string/></returntype> - </method> - </docgroup> - <docgroup homogen-name='format_exception' homogen-type='method'><doc><text><p>Format an exception caught by cpp as a -  suitable cpp error message.</p> - </text><group><param name='err'/><text><p>Caught value.</p> - </text></group><group><returns/><text><p>Returns one of:</p> - <mixed><group><type><zero/></type><text><p>Generate a cpp error using the default format (ie call -  <ref>master()-&gt;describe_error()</ref>, and replace any newlines -  with spaces).</p> - </text></group><group><type><string/></type><text><p>Cpp error message to <ref resolved='predef::CompilerEnvironment.CPP.report'>report()</ref>. The empty string -  supresses the cpp error.</p> - </text></group></mixed><p>The default implementation just returns <expr>0</expr>.</p> - </text></group></doc> - <method name='format_exception'> - <arguments><argument name='err'><type><mixed/></type></argument></arguments> - <returntype><string/></returntype> - </method> - </docgroup> - <docgroup homogen-name='get_predefines' homogen-type='method'><doc><text><p>Get the predefined macros for this preprocessor.</p> - <p> This function is called by <ref resolved='predef::CompilerEnvironment.CPP.init_pike_cpp'>init_pike_cpp()</ref> to -  retrieve the set of macros to define at initialization.</p> - <p> The default implementation returns the internal set of -  predefined macros unless <ref>_take_over_initial_predefines()</ref> -  has been called, in which case it instead calls the -  corresponding function in the master.</p> - </text><group><note/><text><p>This function does NOT return the set of currently -  defined macros.</p> - </text></group><group><seealso/><text><p><ref resolved='predef::CompilerEnvironment.CPP.init_pike_cpp'>init_pike_cpp()</ref>, <ref resolved='predef::CompilerEnvironment.CPP.define_multiple_macros'>define_multiple_macros()</ref>, -  <ref>_take_over_initial_predefines()</ref></p> - </text></group></doc> - <method name='get_predefines'> - <arguments/> - <returntype><mapping><indextype><string/></indextype><valuetype><or><string/><function/><object resolved='predef::CompilerEnvironment.CPP.get_predefines'/></or></valuetype></mapping></returntype> - </method> - </docgroup> +    <docgroup homogen-name='this_program' homogen-type='inherit'>   <inherit name='this_program'><classname>::this_program</classname></inherit>   </docgroup> - <docgroup homogen-name='init_pike_cpp' homogen-type='method'><doc><text><p>Convenience function for initializing the preprocessor -  to Pike defaults.</p> - <p> The default implementation is essentially:</p> - <code><text><p>{ -  define_ansi_macros(); -  define_pike_macros(); -  define_multiple_macros(get_predefines()); -  }</p> - </text></code></text></doc> - <method name='init_pike_cpp'> - <arguments/> - <returntype><void/></returntype> - </method> - </docgroup> +    <docgroup homogen-name='report' homogen-type='method'><doc><text><p>Report a diagnostic from the preprocessor.</p>   </text><group><param name='severity'/><text><p>The severity of the diagnostic.</p>   </text></group><group><param name='filename'/><param name='linenumber'/><text><p>Location which triggered the diagnostic.</p>   </text></group><group><param name='subsystem'/><text><p>Typically <expr>"cpp"</expr>.</p>   </text></group><group><param name='message'/><text><p>String with the diagnostic message, with optional    <ref resolved='predef::sprintf'>sprintf()</ref>-style formatting (if any <ref resolved='predef::CompilerEnvironment.CPP.report.extra_args'>extra_args</ref>).</p>   </text></group><group><param name='extra_args'/><text><p>Extra arguments to <ref resolved='predef::sprintf'>sprintf()</ref>.</p>   <p> The default implementation does the following:</p>   <ul><group><item/><text><p>If there's a handler which implements <ref resolved='predef::Reporter.report'>Reporter()-&gt;report()</ref>,    call it with the same arguments.</p>
autodoc.git/traditional.xml:98993:    same arguments.</p>   </text></group></ul>   </text></group><group><note/><text><p>In Pike 8.0 and earlier <ref>MasterObject()-&gt;report()</ref> was not called.</p>   </text></group><group><seealso/><text><p><ref resolved='predef::Reporter.report'>Reporter()-&gt;report()</ref></p>   </text></group></doc>   <method name='report'>   <arguments><argument name='severity'><type><object resolved='predef::Reporter.SeverityLevel'>SeverityLevel</object></type></argument><argument name='filename'><type><string/></type></argument><argument name='linenumber'><type><int><min>1</min><max/></int></type></argument><argument name='subsystem'><type><string/></type></argument><argument name='message'><type><object resolved='predef::.sprintf_format'>sprintf_format</object></type></argument><argument name='extra_args'><type><varargs><object resolved='predef::.sprintf_args'>sprintf_args</object></varargs></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup> - <docgroup homogen-name='report' homogen-type='method'><doc><text><p>Report a diagnostic from the preprocessor.</p> - </text><group><param name='severity'/><text><p>The severity of the diagnostic.</p> - </text></group><group><param name='filename'/><param name='linenumber'/><text><p>Location which triggered the diagnostic.</p> - </text></group><group><param name='subsystem'/><text><p>Always <expr>"cpp"</expr>.</p> - </text></group><group><param name='message'/><text><p>String with the diagnostic message, with optional -  <ref resolved='predef::sprintf'>sprintf()</ref>-style formatting (if any <ref resolved='predef::CompilerEnvironment.CPP.report.extra_args'>extra_args</ref>).</p> - </text></group><group><param name='extra_args'/><text><p>Extra arguments to <ref resolved='predef::sprintf'>sprintf()</ref>.</p> - <p> The default implementation just calls -  <ref>CompilerEnviroment::report()</ref> in the parent with the -  same arguments.</p> - </text></group><group><seealso/><text><p><ref resolved='predef::Reporter.report'>Reporter()-&gt;report()</ref>, <ref resolved='predef::CompilerEnvironment.CPP.cpp_error'>cpp_error()</ref></p> - </text></group></doc> - <method name='report'> - <arguments><argument name='severity'><type><object resolved='predef::Reporter.SeverityLevel'>SeverityLevel</object></type></argument><argument name='filename'><type><string/></type></argument><argument name='linenumber'><type><int><min>1</min><max/></int></type></argument><argument name='subsystem'><type><string/></type></argument><argument name='message'><type><string/></type></argument><argument name='extra_args'><type><varargs><mixed/></varargs></type></argument></arguments> - <returntype><void/></returntype> - </method> - </docgroup> - <docgroup homogen-name='resolv' homogen-type='method'><doc><text><p>Attempt to resolve a symbol.</p> - <p> The default implementation calls <ref resolved='predef::CompilerEnvironment.resolv'>CompilerEnvironment()-&gt;resolv()</ref> -  in the parent object, with the remaining arguments taken from the -  current <ref resolved='predef::CompilerEnvironment.CPP'>CPP</ref> context.</p> - </text><group><returns/><text><p>Returns the value of <ref resolved='predef::CompilerEnvironment.CPP.resolv.sym'>sym</ref> if found, and <ref resolved='predef::.UNDEFINED'>UNDEFINED</ref> if not.</p> - </text></group></doc> - <method name='resolv'> - <arguments><argument name='sym'><type><string/></type></argument></arguments> - <returntype><mixed/></returntype> - </method> - </docgroup> +    </class>   <class name='PikeCompiler'>   <doc><text><p>The Pike compiler.</p>   <p> An object of this class compiles a single string    of Pike code.</p>   </text></doc>   <docgroup homogen-name='apply_attribute_constant' homogen-type='method'><doc><text><p>Handle constant arguments to attributed function argument types.</p>   </text><group><param name='attr'/><text><p>Attribute that <ref resolved='predef::CompilerEnvironment.PikeCompiler.apply_attribute_constant.arg_type'>arg_type</ref> had.</p>   </text></group><group><param name='value'/><text><p>Constant value sent as parameter.</p>   </text></group><group><param name='arg_type'/><text><p>Declared type of the function argument.</p>
autodoc.git/traditional.xml:99081:   <docgroup homogen-name='change_compiler_compatibility' homogen-type='method'><doc><text><p>Change compiler to attempt to be compatible with Pike <ref resolved='predef::CompilerEnvironment.PikeCompiler.change_compiler_compatibility.major'>major</ref>.<ref resolved='predef::CompilerEnvironment.PikeCompiler.change_compiler_compatibility.minor'>minor</ref>.</p>   </text></doc>   <method name='change_compiler_compatibility'>   <arguments><argument name='major'><type><int/></type></argument><argument name='minor'><type><int/></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup>   <docgroup homogen-name='compile' homogen-type='method'><doc><text><p>Compile the current source into a program.</p>   <p> This function compiles the current Pike source code    into a clonable program.</p> - </text><group><seealso/><text><p><ref resolved='predef::compile_string'>compile_string()</ref>, <ref resolved='predef::compile_file'>compile_file()</ref>, <ref resolved='predef::cpp'>cpp()</ref>, <ref resolved='predef::master'>master()</ref>, + </text><group><seealso/><text><p><ref resolved='predef::compile_string'>compile_string()</ref>, <ref resolved='predef::compile_file'>compile_file()</ref>, <ref>cpp()</ref>, <ref resolved='predef::master'>master()</ref>,    <ref resolved='predef::CompilationHandler'>CompilationHandler</ref>, <ref resolved='predef::CompilerEnvironment.PikeCompiler.create'>create()</ref></p>   </text></group></doc>   <method name='compile'>   <arguments/>   <returntype><program/></returntype>   </method>   </docgroup>   <docgroup homogen-name='create' homogen-type='method'><doc><text><p>Create a PikeCompiler object for a source string.</p>   <p> This function takes a piece of Pike code as a string and    initializes a compiler object accordingly.</p>
autodoc.git/traditional.xml:99109:    returned by <ref resolved='predef::__empty_program'>__empty_program()</ref> will be modified and returned    by <ref resolved='predef::CompilerEnvironment.PikeCompiler.compile'>compile()</ref> on success.</p>   </text></group><group><param name='placeholder'/><text><p><ref resolved='predef::.__null_program'>__null_program()</ref> placeholder object to fill in. The object    will be modified into an instance of the resulting program    on successfull compile. Note that <ref resolved='lfun::create'>lfun::create()</ref> in the    program will be called without any arguments.</p>   </text></group><group><note/><text><p>Note that <ref resolved='predef::CompilerEnvironment.PikeCompiler.create.source'>source</ref> must contain the complete source for a program.    It is not possible to compile a single expression or statement.</p>   <p> Also note that no preprocessing is performed.    To preprocess the program you can use <ref resolved='predef::compile_string'>compile_string()</ref> or -  call the preprocessor manually by calling <ref resolved='predef::cpp'>cpp()</ref>.</p> +  call the preprocessor manually by calling <ref>cpp()</ref>.</p>   </text></group><group><note/><text><p>Note that all references to <ref resolved='predef::CompilerEnvironment.PikeCompiler.create.target'>target</ref> and <ref resolved='predef::CompilerEnvironment.PikeCompiler.create.placeholder'>placeholder</ref> should    removed if <ref resolved='predef::CompilerEnvironment.PikeCompiler.compile'>compile()</ref> failes. On failure the <ref resolved='predef::CompilerEnvironment.PikeCompiler.create.placeholder'>placeholder</ref>    object will be destructed.</p> - </text></group><group><seealso/><text><p><ref resolved='predef::compile_string'>compile_string()</ref>, <ref resolved='predef::compile_file'>compile_file()</ref>, <ref resolved='predef::cpp'>cpp()</ref>, <ref resolved='predef::master'>master()</ref>, + </text></group><group><seealso/><text><p><ref resolved='predef::compile_string'>compile_string()</ref>, <ref resolved='predef::compile_file'>compile_file()</ref>, <ref>cpp()</ref>, <ref resolved='predef::master'>master()</ref>,    <ref resolved='predef::CompilationHandler'>CompilationHandler</ref></p>   </text></group></doc>   <method name='create'>   <arguments><argument name='source'><type><or><string/><void/></or></type></argument><argument name='handler'><type><or><object resolved='predef::CompilationHandler'>CompilationHandler</object><void/></or></type></argument><argument name='major'><type><or><int/><void/></or></type></argument><argument name='minor'><type><or><int/><void/></or></type></argument><argument name='target'><type><or><program/><void/></or></type></argument><argument name='placeholder'><type><or><object resolved='predef::CompilerEnvironment.PikeCompiler.create'/><void/></or></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup>   <docgroup homogen-name='get_compilation_handler' homogen-type='method'><doc><text><p>Get compatibility handler for Pike <ref resolved='predef::CompilerEnvironment.PikeCompiler.get_compilation_handler.major'>major</ref>.<ref resolved='predef::CompilerEnvironment.PikeCompiler.get_compilation_handler.minor'>minor</ref>.</p>   </text><group><note/><text><p>This function is called by <ref resolved='predef::CompilerEnvironment.PikeCompiler.change_compiler_compatibility'>change_compiler_compatibility()</ref>.</p>   </text></group></doc>
autodoc.git/traditional.xml:99238:   <arguments><argument name='identifier'><type><string/></type></argument></arguments>   <returntype><mixed/></returntype>   </method>   </docgroup>   <class name='CompilerState'>   <doc><text><p>Keeps the state of a single program/class during compilation.</p>   </text><group><note/><text><p>Not in use yet!</p>   </text></group></doc>   </class>   </class> - <class name='define'> - <docgroup homogen-name='`()' homogen-type='method'><doc><group><param name='arguments'/><text><p>Array of arguments to the macro. Zero if no parenthesis.</p> - </text></group><group><param name='context'/><text><p>CPP context we are evaluating in.</p> - </text></group><group><returns/><text><p>Returns the expansion of the macro.</p> - </text></group></doc> - <method name='`()'> - <arguments><argument name='arguments'><type><or><array><valuetype><string/></valuetype></array><void/></or></type></argument><argument name='context'><type><or><object resolved='predef::CompilerEnvironment.CPP'>CPP</object><void/></or></type></argument><argument name='flags'><type><or><int/><void/></or></type></argument></arguments> - <returntype><string/></returntype> - </method> - </docgroup> - </class> +    <class name='lock'>   <doc><text><p>This class acts as a lock against other threads accessing the compiler.</p>   <p> The lock is released when the object is destructed.</p>   </text></doc>   </class>   </class>   <module name='Concurrent'>   <doc><text><p>Module for handling multiple concurrent events.</p>   <p> The <ref resolved='predef::Concurrent.Future'>Future</ref> and <ref resolved='predef::Concurrent.Promise'>Promise</ref> API was inspired by    <url>https://github.com/couchdeveloper/FutureLib</url>.</p>
autodoc.git/traditional.xml:113687:   <variable name='currentversion'><type><object resolved='predef::MasterObject.Version'>Version</object></type></variable>   </docgroup>   <docgroup homogen-name='decode_charset' homogen-type='method'><doc><text><p>This function is called by cpp() when it wants to do    character code conversion.</p>   </text></doc>   <method name='decode_charset'>   <arguments><argument name='data'><type><string/></type></argument><argument name='charset'><type><string/></type></argument></arguments>   <returntype><string/></returntype>   </method>   </docgroup> - <docgroup homogen-name='decode_charset' homogen-type='method'><doc><text><p>Convert <ref resolved='predef::MasterObject.decode_charset.raw'>raw</ref> from encoding <ref resolved='predef::MasterObject.decode_charset.charset'>charset</ref> to UNICODE.</p> - <p> This function is called by <ref resolved='predef::cpp'>cpp()</ref> when it encounters -  <expr>#charset</expr> directives.</p> - </text><group><param name='raw'/><text><p>String to convert.</p> - </text></group><group><param name='charset'/><text><p>Name of encoding that <ref resolved='predef::MasterObject.decode_charset.raw'>raw</ref> uses.</p> - </text></group><group><returns/><text><p><ref resolved='predef::MasterObject.decode_charset.raw'>raw</ref> decoded to UNICODE, or <expr>0</expr> (zero) if the decoding failed.</p> - </text></group><group><seealso/><text><p><ref resolved='predef::Charset'>Charset</ref></p> - </text></group></doc> - <method name='decode_charset'> - <arguments><argument name='raw'><type><string/></type></argument><argument name='charset'><type><string/></type></argument></arguments> - <returntype><string/></returntype> - </method> - </docgroup> +    <docgroup homogen-name='describe_backtrace' homogen-type='method'><doc><text><p>Called by various routines to format a readable    description of an exception.</p>   </text><group><param name='exception'/><text><p>Something that was thrown. Usually an <ref resolved='predef::Error.Generic'>Error.Generic</ref> object, or    an array with the following content:</p>   <array><group><elem><type><string/></type><index>msg</index></elem><text><p>Error message.</p>   </text></group><group><elem><type><array><valuetype><or><object>backtrace_frame</object><array><valuetype><mixed/></valuetype></array></or></valuetype></array></type><index>backtrace</index></elem><text><p>Backtrace to the point where the exception occurred.</p>   </text></group></array>   </text></group><group><returns/><text><p>Returns a string describing the exeception.</p>   </text></group><group><note/><text><p>Usually added by the initialization code the global name space    with <ref resolved='predef::add_constant'>add_constant()</ref>.</p>
autodoc.git/traditional.xml:113795:   </text><group><seealso/><text><p><ref resolved='predef::MasterObject.add_filesystem_handler'>add_filesystem_handler()</ref></p>   </text></group></doc>   <method name='find_handler_for_path'>   <arguments><argument name='file'><type><string/></type></argument></arguments>   <returntype><string/></returntype>   </method>   </docgroup>   <docgroup homogen-name='get_compat_master' homogen-type='method'><doc><text><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 <ref resolved='predef::master'>master()</ref>.</p> - </text><group><seealso/><text><p><ref resolved='predef::MasterObject.get_compilation_handler'>get_compilation_handler()</ref>, <ref resolved='predef::master'>master()</ref></p> + </text><group><seealso/><text><p><ref>get_compilation_handler()</ref>, <ref resolved='predef::master'>master()</ref></p>   </text></group></doc>   <method name='get_compat_master'>   <arguments><argument name='major'><type><int/></type></argument><argument name='minor'><type><int/></type></argument></arguments>   <returntype><object resolved='predef::MasterObject.get_compat_master'/></returntype>   </method>   </docgroup> - <docgroup homogen-name='get_compilation_handler' homogen-type='method'><doc><text><p>Get compilation handler for simulation of Pike v<ref resolved='predef::MasterObject.get_compilation_handler.major'>major</ref>.<ref resolved='predef::MasterObject.get_compilation_handler.minor'>minor</ref>.</p> - <p> This function is called by <ref resolved='predef::cpp'>cpp()</ref> when it encounters -  <expr>#pike</expr> directives.</p> - </text><group><param name='major'/><text><p>Major version.</p> - </text></group><group><param name='minor'/><text><p>Minor version.</p> - </text></group><group><returns/><text><p>Returns a compilation handler for Pike &gt;= <ref resolved='predef::MasterObject.get_compilation_handler.major'>major</ref>.<ref resolved='predef::MasterObject.get_compilation_handler.minor'>minor</ref>.</p> - </text></group></doc> - <method name='get_compilation_handler'> - <arguments><argument name='major'><type><int/></type></argument><argument name='minor'><type><int/></type></argument></arguments> - <returntype><object resolved='predef::CompilationHandler'>CompilationHandler</object></returntype> - </method> - </docgroup> +    <docgroup homogen-name='get_inhibit_compile_errors' homogen-type='method'><doc><text><p>Get the current compile error, warning and exception behaviour.</p>   <p> See <ref resolved='predef::MasterObject.set_inhibit_compile_errors'>set_inhibit_compile_errors()</ref> for details.</p>   </text><group><seealso/><text><p><ref resolved='predef::MasterObject.set_inhibit_compile_errors'>set_inhibit_compile_errors()</ref></p>   </text></group></doc>   <method name='get_inhibit_compile_errors'>   <arguments/>   <returntype><mixed/></returntype>   </method>   </docgroup>   <docgroup homogen-name='get_precompiled_mtime' homogen-type='method'><doc><text><p>Given an identifier returned by query_precompiled_names, returns
autodoc.git/traditional.xml:113892:   <docgroup homogen-name='include_prefix' homogen-type='variable'><doc><text><p>Prefix for Pike-related C header files.</p>   </text></doc>   <variable name='include_prefix'><type><string/></type></variable>   </docgroup>   <docgroup homogen-name='Codec' homogen-type='inherit'>   <inherit name='Codec'><classname resolved='predef::MasterObject.Codec'>Codec</classname></inherit>   </docgroup>   <docgroup homogen-name='CompatResolver' homogen-type='inherit'>   <inherit name='CompatResolver'><classname resolved='predef::MasterObject.CompatResolver'>CompatResolver</classname></inherit>   </docgroup> - <docgroup homogen-name='CompilationHandler' homogen-type='inherit'><doc><text><p>The master object acts as fallback compilation handler for -  <ref resolved='predef::compile'>compile()</ref> and <ref resolved='predef::cpp'>cpp()</ref>.</p> - </text></doc> - <inherit name='CompilationHandler'><classname resolved='predef::CompilationHandler'>CompilationHandler</classname></inherit> - </docgroup> +    <docgroup homogen-name='Pike_8_0_master' homogen-type='inherit'><doc><text><p>Namespaces for compat masters.</p>   <p> This inherit is used to provide compatibility namespaces    for <ref resolved='predef::MasterObject.get_compat_master'>get_compat_master()</ref>.</p>   </text><group><seealso/><text><p><ref resolved='predef::MasterObject.get_compat_master'>get_compat_master()</ref></p>   </text></group></doc>   <inherit name='Pike_8_0_master'><modifiers><protected/></modifiers><classname resolved='predef::MasterObject.Pike_8_0_master'>Pike_8_0_master</classname></inherit>   </docgroup>   <docgroup homogen-name='ldflags' homogen-type='variable'><doc><text><p>Flags suitable for use when linking Pike C modules</p>   </text></doc>   <variable name='ldflags'><type><string/></type></variable>
autodoc.git/traditional.xml:114042:   </docgroup>   <docgroup homogen-name='show_doc' homogen-type='method'><doc><text><p>Show documentation for the item <ref resolved='predef::MasterObject.show_doc.obj'>obj</ref></p>   </text><group><param name='obj'/><text><p>The object for which the documentation should be shown</p>   </text></group><group><returns/><text><p>an AutoDoc object</p>   </text></group></doc>   <method name='show_doc'>   <arguments><argument name='obj'><type><or><program/><object resolved='predef::MasterObject.show_doc'/><function/></or></type></argument></arguments>   <returntype><object resolved='predef::MasterObject.show_doc'/></returntype>   </method>   </docgroup> - <docgroup homogen-name='show_if_constant_errors' homogen-type='variable'><doc><text><p>Show compilation warnings from compilation of <ref resolved='predef::cpp'>cpp()</ref> + <docgroup homogen-name='show_if_constant_errors' homogen-type='variable'><doc><text><p>Show compilation warnings from compilation of <ref>cpp()</ref>    <expr>#if constant()</expr> expressions.</p>   <p> This is typically set via the option <expr>"--picky-cpp"</expr>.</p>   </text></doc>   <variable name='show_if_constant_errors'><type><int/></type></variable>   </docgroup>   <docgroup homogen-name='thread_quanta_exceeded' homogen-type='method'><doc><text><p>Function called when a thread has exceeded the thread quanta.</p>   </text><group><param name='thread'/><text><p>Thread that exceeded the thread quanta.</p>   </text></group><group><param name='ns'/><text><p>Number of nanoseconds that the thread executed before allowing    other threads to run.</p>   <p> The default master prints a diagnostic and the thread backtrace
autodoc.git/traditional.xml:114128:    the ZIP archive (see the subpath argument).</p>   </text></group><group><param name='subpath'/><text><p>if path is a ZIP archive, this argument will determine the path within    the archive to be searched.</p>   </text></group></doc>   <method name='add_module_path'>   <arguments><argument name='path'><type><string/></type></argument><argument name='subpath'><type><or><string/><void/></or></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup>   <docgroup homogen-name='add_predefine' homogen-type='method'><doc><text><p>Add a define (without arguments) which will be implicitly -  defined in <ref resolved='predef::cpp'>cpp</ref> calls.</p> +  defined in <ref>cpp</ref> calls.</p>   </text></doc>   <method name='add_predefine'>   <arguments><argument name='name'><type><string/></type></argument><argument name='value'><type><mixed/></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup>   <docgroup homogen-name='add_program_path' homogen-type='method'><doc><text><p>Add a directory to search for programs.</p>   <p> This is the same as the command line option <tt>-P</tt>.</p>   </text><group><seealso/><text><p><ref resolved='predef::MasterObject.CompatResolver.remove_program_path'>remove_program_path()</ref></p>   </text></group></doc>
autodoc.git/traditional.xml:114237:   <docgroup homogen-name='remove_module_path' homogen-type='method'><doc><text><p>Remove a directory to search for modules.</p>   <p> This function performs the reverse operation of <ref resolved='predef::MasterObject.CompatResolver.add_module_path'>add_module_path()</ref>.</p>   </text><group><seealso/><text><p><ref resolved='predef::MasterObject.CompatResolver.add_module_path'>add_module_path()</ref></p>   </text></group></doc>   <method name='remove_module_path'>   <arguments><argument name='tmp'><type><string/></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup>   <docgroup homogen-name='remove_predefine' homogen-type='method'><doc><text><p>Remove a define from the set that are implicitly defined in -  <ref resolved='predef::cpp'>cpp</ref> calls.</p> +  <ref>cpp</ref> calls.</p>   </text></doc>   <method name='remove_predefine'>   <arguments><argument name='name'><type><string/></type></argument></arguments>   <returntype><void/></returntype>   </method>   </docgroup>   <docgroup homogen-name='remove_program_path' homogen-type='method'><doc><text><p>Remove a directory to search for programs.</p>   <p> This function performs the reverse operation of <ref resolved='predef::MasterObject.CompatResolver.add_program_path'>add_program_path()</ref>.</p>   </text><group><seealso/><text><p><ref resolved='predef::MasterObject.CompatResolver.add_program_path'>add_program_path()</ref></p>   </text></group></doc>
autodoc.git/traditional.xml:119767:   </docgroup>   <docgroup homogen-type='constant'><doc><text><p>Flags for use together with <ref resolved='predef::set_weak_flag'>set_weak_flag</ref> and <ref resolved='predef::get_weak_flag'>get_weak_flag</ref>.    See <ref resolved='predef::set_weak_flag'>set_weak_flag</ref> for details.</p>   </text></doc>   <constant name='WEAK_INDICES'><modifiers><local/></modifiers></constant>   <constant name='WEAK_VALUES'><modifiers><local/></modifiers></constant>   <constant name='WEAK'><modifiers><local/></modifiers></constant>   </docgroup>   <docgroup homogen-name='__HAVE_CPP_PREFIX_SUPPORT__' homogen-type='constant'><doc><text><p>This constant exists and has the value 1 if cpp supports    the prefix feature.</p> - </text><group><seealso/><text><p><ref resolved='predef::cpp'>cpp()</ref></p> + </text><group><seealso/><text><p><ref>cpp()</ref></p>   </text></group></doc>   <constant name='__HAVE_CPP_PREFIX_SUPPORT__'><modifiers><local/></modifiers></constant>   </docgroup>   <docgroup homogen-name='count_memory' homogen-type='method'><doc><text><p>In brief, if you call <expr>Pike.count_memory(0,x)</expr> you get back    the number of bytes <expr>x</expr> occupies in memory.</p>   <p> The detailed story is a bit longer:</p>   <p> This function calculates the number of bytes that all <ref resolved='predef::Pike.count_memory.things'>things</ref>    occupy. Or put another way, it calculates the number of bytes that    would be freed if all those things would lose their references at    the same time, i.e. not only the memory in the things themselves,