- </itemizedlist>
- </partintro>
-
- <refentry id="def-constant">
- <refnamediv>
- <refname>def-constant</refname>
- <refpurpose>Binds a symbol to a constant.
- </refpurpose>
- <refclass>Macro</refclass>
- </refnamediv>
- <refsynopsisdiv>
- <title>Syntax</title>
- <synopsis>
- <function>def-constant</function> <replaceable>name value &key export</replaceable>
- </synopsis>
- </refsynopsisdiv>
- <refsect1>
- <title>Arguments and Values</title>
- <variablelist>
- <varlistentry>
- <term><parameter>name</parameter></term>
- <listitem>
- <para>A symbol that will be bound to the value.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>value</parameter></term>
- <listitem>
- <para>An evaluated form that is bound the the name.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>export</parameter></term>
- <listitem>
- <para>When &t;, the name is exported from the current package. The default is &nil;</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </refsect1>
- <refsect1>
- <title>Description</title>
- <para>
- This is a thin wrapper around
- <function>defconstant</function>. It evaluates at
- compile-time and optionally exports the symbol from the package.
- </para>
- </refsect1>
- <refsect1>
- <title>Examples</title>
- <programlisting>
-(def-constant pi2 (* 2 pi))
-(def-constant exported-pi2 (* 2 pi) :export t)
- </programlisting>
- </refsect1>
- <refsect1>
- <title>Side Effects</title>
- <para>Creates a new special variable..</para>
- </refsect1>
- <refsect1>
- <title>Affected by</title>
- <para>None.</para>
- </refsect1>
- <refsect1>
- <title>Exceptional Situations</title>
- <para>None.</para>
- </refsect1>
- </refentry>
-
- <refentry id="def-foreign-type">
- <refnamediv>
- <refname>def-foreign-type</refname>
- <refpurpose>Defines a new foreign type.
- </refpurpose>
- <refclass>Macro</refclass>
- </refnamediv>
- <refsect1>
- <title>Syntax</title>
-<synopsis>
- <function>def-foreign-type</function> <replaceable>name type</replaceable>
-</synopsis>
- </refsect1>
- <refsect1>
- <title>Arguments and Values</title>
- <variablelist>
- <varlistentry>
- <term><parameter>name</parameter></term>
- <listitem>
- <para>A symbol naming the new foreign type.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>value</parameter></term>
- <listitem>
- <para>A form that is not evaluated that defines the new
-foreign type.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </refsect1>
- <refsect1>
- <title>Description</title>
- <para>Defines a new foreign type.
- </para>
- </refsect1>
- <refsect1>
- <title>Examples</title>
- <programlisting>
-(def-foreign-type my-generic-pointer :pointer-void)
-(def-foreign-type a-double-float :double-float)
-(def-foreign-type char-ptr (* :char))
- </programlisting>
- </refsect1>
- <refsect1>
- <title>Side Effects</title>
- <para>Defines a new foreign type.
- </para>
- </refsect1>
- <refsect1>
- <title>Affected by</title>
- <para>None.</para>
- </refsect1>
- <refsect1>
- <title>Exceptional Situations</title>
- <para>None.</para>
- </refsect1>
- </refentry>
-
- <refentry id="null-char-p">
- <refnamediv>
- <refname>null-char-p</refname>
- <refpurpose>Tests a character for &null; value.
- </refpurpose>
- <refclass>Macro</refclass>
- </refnamediv>
- <refsect1>
- <title>Syntax</title>
-<synopsis>
- <function>null-char-p</function> <replaceable>char</replaceable> => <returnvalue>is-null</returnvalue>
-</synopsis>
- </refsect1>
- <refsect1>
- <title>Arguments and Values</title>
- <variablelist>
- <varlistentry>
- <term><parameter>char</parameter></term>
- <listitem>
- <para>A character or integer.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>is-null</parameter></term>
- <listitem>
- <para>A boolean flag indicating if char is a &null; value.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </refsect1>
- <refsect1>
- <title>Description</title>
- <para>
- A predicate testing if a character or integer is &null;. This
-abstracts the difference in implementations where some return a
-<computeroutput>character</computeroutput> and some return a
-<computeroutput>integer</computeroutput> whence dereferencing a
-<computeroutput>C</computeroutput> character pointer.
- </para>
- </refsect1>
- <refsect1>
- <title>Examples</title>
- <programlisting>