\doxysection{workspace/post-\/scarcity/src/memory/consspaceobject.c File Reference}
\hypertarget{consspaceobject_8c}{}\label{consspaceobject_8c}\index{workspace/post-\/scarcity/src/memory/consspaceobject.c@{workspace/post-\/scarcity/src/memory/consspaceobject.c}}
{\ttfamily \#include $<$stdint.\+h$>$}\newline
{\ttfamily \#include $<$stdio.\+h$>$}\newline
{\ttfamily \#include $<$stdlib.\+h$>$}\newline
{\ttfamily \#include $<$string.\+h$>$}\newline
{\ttfamily \#include $<$wchar.\+h$>$}\newline
{\ttfamily \#include $<$wctype.\+h$>$}\newline
{\ttfamily \#include "{}authorise.\+h"{}}\newline
{\ttfamily \#include "{}debug.\+h"{}}\newline
{\ttfamily \#include "{}io/print.\+h"{}}\newline
{\ttfamily \#include "{}memory/conspage.\+h"{}}\newline
{\ttfamily \#include "{}memory/consspaceobject.\+h"{}}\newline
{\ttfamily \#include "{}memory/stack.\+h"{}}\newline
{\ttfamily \#include "{}memory/vectorspace.\+h"{}}\newline
{\ttfamily \#include "{}ops/intern.\+h"{}}\newline
Include dependency graph for consspaceobject.\+c\+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{consspaceobject_8c__incl}
\end{center}
\end{figure}
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{consspaceobject_8c_ac683bad260c334cc2e5fad1f7d0c7b52}{c\+\_\+car}} (struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} arg)
\begin{DoxyCompactList}\small\item\em Implementation of car in C. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{consspaceobject_8c_a36feb8e8c928ce9ffb6fb80167cc1f04}{c\+\_\+cdr}} (struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} arg)
\begin{DoxyCompactList}\small\item\em Implementation of cdr in C. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{consspaceobject_8c_a55a8301f814fabe8c01eb92ba4003d3c}{c\+\_\+length}} (struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} arg)
\begin{DoxyCompactList}\small\item\em Implementation of {\ttfamily length} in C. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{consspaceobject_8c_a36a68d265999acf02988326ec4c53fc2}{c\+\_\+string\+\_\+to\+\_\+lisp\+\_\+keyword}} (wchar\+\_\+t \texorpdfstring{$\ast$}{*}symbol)
\begin{DoxyCompactList}\small\item\em Return a lisp keyword representation of this wide character string. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{consspaceobject_8c_a9e4202c8555763ca9a119f0d63a058cd}{c\+\_\+string\+\_\+to\+\_\+lisp\+\_\+string}} (wchar\+\_\+t \texorpdfstring{$\ast$}{*}string)
\begin{DoxyCompactList}\small\item\em Return a lisp string representation of this wide character string. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{consspaceobject_8c_ac18813a5587f81344b2a35977657b09b}{c\+\_\+string\+\_\+to\+\_\+lisp\+\_\+symbol}} (wchar\+\_\+t \texorpdfstring{$\ast$}{*}symbol)
\begin{DoxyCompactList}\small\item\em Return a lisp symbol representation of this wide character string. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{consspaceobject_8c_ad6da5748c65be5613d86664948ecc5ab}{c\+\_\+type}} (struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} pointer)
\begin{DoxyCompactList}\small\item\em Get the Lisp type of the single argument. \end{DoxyCompactList}\item 
uint32\+\_\+t \mbox{\hyperlink{consspaceobject_8c_a10cecbd3a3077f601359388153677000}{calculate\+\_\+hash}} (wint\+\_\+t c, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} ptr)
\begin{DoxyCompactList}\small\item\em Return a hash value for this string like thing. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{consspaceobject_8c_a8670f58dc7ce45ff3f351a6023378e29}{check\+\_\+tag}} (struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} pointer, uint32\+\_\+t value)
\begin{DoxyCompactList}\small\item\em True if the value of the tag on the cell at this {\ttfamily pointer} is this {\ttfamily value}, or, if the tag of the cell is {\ttfamily VECP}, if the value of the tag of the vectorspace object indicated by the cell is this {\ttfamily value}, else false. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{consspaceobject_8c_aecb4a52465163e0377356bcaa85539bf}{dec\+\_\+ref}} (struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} pointer)
\begin{DoxyCompactList}\small\item\em Decrement the reference count of the object at this cons pointer. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{consspaceobject_8c_aa38b760ee4493c5d98400e04db3c8d47}{inc\+\_\+ref}} (struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} pointer)
\begin{DoxyCompactList}\small\item\em increment the reference count of the object at this cons pointer. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{consspaceobject_8c_afff9c83c8c250837b5737c11e21cc4ca}{make\+\_\+cons}} (struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} car, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} cdr)
\begin{DoxyCompactList}\small\item\em Construct a cons cell from this pair of pointers. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{consspaceobject_8c_a2a1abab0c80ab1e97f507bc4eab02523}{make\+\_\+exception}} (struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} message, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} frame\+\_\+pointer)
\begin{DoxyCompactList}\small\item\em Construct an exception cell. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{consspaceobject_8c_a7a40b760e96bbba53d22c23cea7331be}{make\+\_\+function}} (struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} meta, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}(\texorpdfstring{$\ast$}{*}executable)(struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}))
\begin{DoxyCompactList}\small\item\em Construct a cell which points to an executable Lisp function. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{consspaceobject_8c_a315945df5ea6902613f4a4a6803c72ac}{make\+\_\+lambda}} (struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} args, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} body)
\begin{DoxyCompactList}\small\item\em Construct a lambda (interpretable source) cell. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{consspaceobject_8c_ad8207dff3baf23366b5110ca4ae46bf7}{make\+\_\+nlambda}} (struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} args, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} body)
\begin{DoxyCompactList}\small\item\em Construct an nlambda (interpretable source) cell; to a lambda as a special form is to a function. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{consspaceobject_8c_abc8581c0068fa9c1a6691336d88c11e5}{make\+\_\+read\+\_\+stream}} (\mbox{\hyperlink{fopen_8h_a8c81a077422f5e2410ba71eb75108f6e}{URL\+\_\+\+FILE}} \texorpdfstring{$\ast$}{*}input, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} metadata)
\begin{DoxyCompactList}\small\item\em Construct a cell which points to a stream open for reading. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{consspaceobject_8c_a02cdb935e4af41bebf585e5dc02078ee}{make\+\_\+special}} (struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} meta, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}(\texorpdfstring{$\ast$}{*}executable)(struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}frame, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} env))
\begin{DoxyCompactList}\small\item\em Construct a cell which points to an executable Lisp special form. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{consspaceobject_8c_a6e09249d678524caf40f18ac273c8157}{make\+\_\+string}} (wint\+\_\+t c, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} tail)
\begin{DoxyCompactList}\small\item\em Construct a string from the character {\ttfamily c} and this {\ttfamily tail}. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{consspaceobject_8c_a409cc41fa651c2200f7a291fbf65a941}{make\+\_\+string\+\_\+like\+\_\+thing}} (wint\+\_\+t c, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} tail, uint32\+\_\+t tag)
\begin{DoxyCompactList}\small\item\em Construct a string from this character (which later will be UTF) and this tail. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{consspaceobject_8c_a32fb0eeebd407b817a2756324d123927}{make\+\_\+symbol\+\_\+or\+\_\+key}} (wint\+\_\+t c, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} tail, uint32\+\_\+t tag)
\begin{DoxyCompactList}\small\item\em Construct a symbol or keyword from the character {\ttfamily c} and this {\ttfamily tail}. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} \mbox{\hyperlink{consspaceobject_8c_a9d49b726c4a7af147d27492b43751785}{make\+\_\+write\+\_\+stream}} (\mbox{\hyperlink{fopen_8h_a8c81a077422f5e2410ba71eb75108f6e}{URL\+\_\+\+FILE}} \texorpdfstring{$\ast$}{*}output, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} metadata)
\begin{DoxyCompactList}\small\item\em Construct a cell which points to a stream open for writing. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Function Documentation}
\Hypertarget{consspaceobject_8c_ac683bad260c334cc2e5fad1f7d0c7b52}\label{consspaceobject_8c_ac683bad260c334cc2e5fad1f7d0c7b52} 
\index{consspaceobject.c@{consspaceobject.c}!c\_car@{c\_car}}
\index{c\_car@{c\_car}!consspaceobject.c@{consspaceobject.c}}
\doxysubsubsection{\texorpdfstring{c\_car()}{c\_car()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} c\+\_\+car (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{arg }\end{DoxyParamCaption})}



Implementation of car in C. 

If arg is not a cons, or the current user is not authorised to read it, does not error but returns nil. 

Definition at line \mbox{\hyperlink{consspaceobject_8c_source_l00125}{125}} of file \mbox{\hyperlink{consspaceobject_8c_source}{consspaceobject.\+c}}.



References \mbox{\hyperlink{authorise_8c_source_l00018}{authorised()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00308}{consp}}, \mbox{\hyperlink{consspaceobject_8h_source_l00277}{NIL}}, \mbox{\hyperlink{consspaceobject_8h_source_l00297}{pointer2cell}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00410}{truep}}.



Referenced by \mbox{\hyperlink{lispops_8c_source_l01410}{c\+\_\+append()}}, \mbox{\hyperlink{lispops_8c_source_l00340}{c\+\_\+apply()}}, \mbox{\hyperlink{intern_8c_source_l00327}{c\+\_\+assoc()}}, \mbox{\hyperlink{lispops_8c_source_l00840}{c\+\_\+keys()}}, \mbox{\hyperlink{lispops_8c_source_l01096}{c\+\_\+progn()}}, \mbox{\hyperlink{lispops_8c_source_l00129}{eval\+\_\+forms()}}, \mbox{\hyperlink{lispops_8c_source_l00256}{eval\+\_\+lambda()}}, \mbox{\hyperlink{intern_8c_source_l00162}{hashmap\+\_\+keys()}}, \mbox{\hyperlink{intern_8c_source_l00183}{hashmap\+\_\+put\+\_\+all()}}, \mbox{\hyperlink{peano_8c_source_l00314}{lisp\+\_\+add()}}, \mbox{\hyperlink{lispops_8c_source_l01161}{lisp\+\_\+cond()}}, \mbox{\hyperlink{lispops_8c_source_l01528}{lisp\+\_\+let()}}, \mbox{\hyperlink{hashmap_8c_source_l00039}{lisp\+\_\+make\+\_\+hashmap()}}, \mbox{\hyperlink{lispops_8c_source_l01468}{lisp\+\_\+mapcar()}}, \mbox{\hyperlink{peano_8c_source_l00453}{lisp\+\_\+multiply()}}, \mbox{\hyperlink{lispops_8c_source_l01263}{lisp\+\_\+repl()}}, \mbox{\hyperlink{print_8c_source_l00091}{print\+\_\+map()}}, \mbox{\hyperlink{read_8c_source_l00401}{read\+\_\+list()}}, and \mbox{\hyperlink{read_8c_source_l00086}{read\+\_\+path()}}.

\Hypertarget{consspaceobject_8c_a36feb8e8c928ce9ffb6fb80167cc1f04}\label{consspaceobject_8c_a36feb8e8c928ce9ffb6fb80167cc1f04} 
\index{consspaceobject.c@{consspaceobject.c}!c\_cdr@{c\_cdr}}
\index{c\_cdr@{c\_cdr}!consspaceobject.c@{consspaceobject.c}}
\doxysubsubsection{\texorpdfstring{c\_cdr()}{c\_cdr()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} c\+\_\+cdr (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{arg }\end{DoxyParamCaption})}



Implementation of cdr in C. 

If arg is not a sequence, or the current user is not authorised to read it,does not error but returns nil. 

Definition at line \mbox{\hyperlink{consspaceobject_8c_source_l00139}{139}} of file \mbox{\hyperlink{consspaceobject_8c_source}{consspaceobject.\+c}}.



References \mbox{\hyperlink{authorise_8c_source_l00018}{authorised()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00046}{CONSTV}}, \mbox{\hyperlink{consspaceobject_8h_source_l00100}{KEYTV}}, \mbox{\hyperlink{consspaceobject_8h_source_l00277}{NIL}}, \mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{cons\+\_\+space\+\_\+object\+::payload}}, \mbox{\hyperlink{consspaceobject_8h_source_l00297}{pointer2cell}}, \mbox{\hyperlink{consspaceobject_8h_source_l00221}{STRINGTV}}, \mbox{\hyperlink{consspaceobject_8h_source_l00231}{SYMBOLTV}}, \mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{cons\+\_\+space\+\_\+object\+::tag}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00410}{truep}}.



Referenced by \mbox{\hyperlink{lispops_8c_source_l01410}{c\+\_\+append()}}, \mbox{\hyperlink{lispops_8c_source_l00340}{c\+\_\+apply()}}, \mbox{\hyperlink{lispops_8c_source_l00840}{c\+\_\+keys()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00164}{c\+\_\+length()}}, \mbox{\hyperlink{lispops_8c_source_l01096}{c\+\_\+progn()}}, \mbox{\hyperlink{lispops_8c_source_l00943}{c\+\_\+reverse()}}, \mbox{\hyperlink{lispops_8c_source_l00129}{eval\+\_\+forms()}}, \mbox{\hyperlink{lispops_8c_source_l00256}{eval\+\_\+lambda()}}, \mbox{\hyperlink{intern_8c_source_l00162}{hashmap\+\_\+keys()}}, \mbox{\hyperlink{intern_8c_source_l00183}{hashmap\+\_\+put\+\_\+all()}}, \mbox{\hyperlink{peano_8c_source_l00314}{lisp\+\_\+add()}}, \mbox{\hyperlink{lispops_8c_source_l01161}{lisp\+\_\+cond()}}, \mbox{\hyperlink{lispops_8c_source_l00702}{lisp\+\_\+cons()}}, \mbox{\hyperlink{lispops_8c_source_l01528}{lisp\+\_\+let()}}, \mbox{\hyperlink{hashmap_8c_source_l00039}{lisp\+\_\+make\+\_\+hashmap()}}, \mbox{\hyperlink{lispops_8c_source_l01468}{lisp\+\_\+mapcar()}}, \mbox{\hyperlink{peano_8c_source_l00453}{lisp\+\_\+multiply()}}, \mbox{\hyperlink{lispops_8c_source_l01263}{lisp\+\_\+repl()}}, \mbox{\hyperlink{print_8c_source_l00091}{print\+\_\+map()}}, and \mbox{\hyperlink{read_8c_source_l00086}{read\+\_\+path()}}.

\Hypertarget{consspaceobject_8c_a55a8301f814fabe8c01eb92ba4003d3c}\label{consspaceobject_8c_a55a8301f814fabe8c01eb92ba4003d3c} 
\index{consspaceobject.c@{consspaceobject.c}!c\_length@{c\_length}}
\index{c\_length@{c\_length}!consspaceobject.c@{consspaceobject.c}}
\doxysubsubsection{\texorpdfstring{c\_length()}{c\_length()}}
{\footnotesize\ttfamily int c\+\_\+length (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{arg }\end{DoxyParamCaption})}



Implementation of {\ttfamily length} in C. 

If arg is not a cons, does not error but returns 0. 

Definition at line \mbox{\hyperlink{consspaceobject_8c_source_l00164}{164}} of file \mbox{\hyperlink{consspaceobject_8c_source}{consspaceobject.\+c}}.



References \mbox{\hyperlink{consspaceobject_8c_source_l00139}{c\+\_\+cdr()}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00303}{nilp}}.



Referenced by \mbox{\hyperlink{lispops_8c_source_l00818}{lisp\+\_\+length()}}.

\Hypertarget{consspaceobject_8c_a36a68d265999acf02988326ec4c53fc2}\label{consspaceobject_8c_a36a68d265999acf02988326ec4c53fc2} 
\index{consspaceobject.c@{consspaceobject.c}!c\_string\_to\_lisp\_keyword@{c\_string\_to\_lisp\_keyword}}
\index{c\_string\_to\_lisp\_keyword@{c\_string\_to\_lisp\_keyword}!consspaceobject.c@{consspaceobject.c}}
\doxysubsubsection{\texorpdfstring{c\_string\_to\_lisp\_keyword()}{c\_string\_to\_lisp\_keyword()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} c\+\_\+string\+\_\+to\+\_\+lisp\+\_\+keyword (\begin{DoxyParamCaption}\item[{wchar\+\_\+t \texorpdfstring{$\ast$}{*}}]{symbol }\end{DoxyParamCaption})}



Return a lisp keyword representation of this wide character string. 

In keywords, I am accepting only lower case characters and numbers. 

Definition at line \mbox{\hyperlink{consspaceobject_8c_source_l00437}{437}} of file \mbox{\hyperlink{consspaceobject_8c_source}{consspaceobject.\+c}}.



References \mbox{\hyperlink{consspaceobject_8h_source_l00752}{make\+\_\+keyword}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00277}{NIL}}.



Referenced by \mbox{\hyperlink{io_8c_source_l00268}{add\+\_\+meta\+\_\+integer()}}, \mbox{\hyperlink{io_8c_source_l00276}{add\+\_\+meta\+\_\+string()}}, \mbox{\hyperlink{meta_8c_source_l00020}{lisp\+\_\+metadata()}}, \mbox{\hyperlink{lispops_8c_source_l01377}{lisp\+\_\+source()}}, \mbox{\hyperlink{init_8c_source_l00206}{main()}}, and \mbox{\hyperlink{init_8c_source_l00073}{maybe\+\_\+bind\+\_\+init\+\_\+symbols()}}.

\Hypertarget{consspaceobject_8c_a9e4202c8555763ca9a119f0d63a058cd}\label{consspaceobject_8c_a9e4202c8555763ca9a119f0d63a058cd} 
\index{consspaceobject.c@{consspaceobject.c}!c\_string\_to\_lisp\_string@{c\_string\_to\_lisp\_string}}
\index{c\_string\_to\_lisp\_string@{c\_string\_to\_lisp\_string}!consspaceobject.c@{consspaceobject.c}}
\doxysubsubsection{\texorpdfstring{c\_string\_to\_lisp\_string()}{c\_string\_to\_lisp\_string()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} c\+\_\+string\+\_\+to\+\_\+lisp\+\_\+string (\begin{DoxyParamCaption}\item[{wchar\+\_\+t \texorpdfstring{$\ast$}{*}}]{string }\end{DoxyParamCaption})}



Return a lisp string representation of this wide character string. 



Definition at line \mbox{\hyperlink{consspaceobject_8c_source_l00454}{454}} of file \mbox{\hyperlink{consspaceobject_8c_source}{consspaceobject.\+c}}.



References \mbox{\hyperlink{consspaceobject_8c_source_l00338}{make\+\_\+string()}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00277}{NIL}}.



Referenced by \mbox{\hyperlink{peano_8c_source_l00217}{add\+\_\+2()}}, \mbox{\hyperlink{ratio_8c_source_l00137}{add\+\_\+integer\+\_\+ratio()}}, \mbox{\hyperlink{io_8c_source_l00276}{add\+\_\+meta\+\_\+string()}}, \mbox{\hyperlink{ratio_8c_source_l00093}{add\+\_\+ratio\+\_\+ratio()}}, \mbox{\hyperlink{lispops_8c_source_l01410}{c\+\_\+append()}}, \mbox{\hyperlink{lispops_8c_source_l00340}{c\+\_\+apply()}}, \mbox{\hyperlink{intern_8c_source_l00327}{c\+\_\+assoc()}}, \mbox{\hyperlink{intern_8c_source_l00237}{clone\+\_\+hashmap()}}, \mbox{\hyperlink{integer_8c_source_l00454}{integer\+\_\+to\+\_\+string()}}, \mbox{\hyperlink{lispops_8c_source_l00735}{lisp\+\_\+car()}}, \mbox{\hyperlink{lispops_8c_source_l00779}{lisp\+\_\+cdr()}}, \mbox{\hyperlink{lispops_8c_source_l01161}{lisp\+\_\+cond()}}, \mbox{\hyperlink{peano_8c_source_l00655}{lisp\+\_\+divide()}}, \mbox{\hyperlink{lispops_8c_source_l00504}{lisp\+\_\+eval()}}, \mbox{\hyperlink{lispops_8c_source_l01528}{lisp\+\_\+let()}}, \mbox{\hyperlink{hashmap_8c_source_l00039}{lisp\+\_\+make\+\_\+hashmap()}}, \mbox{\hyperlink{io_8c_source_l00437}{lisp\+\_\+open()}}, \mbox{\hyperlink{lispops_8c_source_l00616}{lisp\+\_\+set()}}, \mbox{\hyperlink{lispops_8c_source_l00654}{lisp\+\_\+set\+\_\+shriek()}}, \mbox{\hyperlink{init_8c_source_l00206}{main()}}, \mbox{\hyperlink{ratio_8c_source_l00312}{make\+\_\+ratio()}}, \mbox{\hyperlink{stack_8c_source_l00183}{make\+\_\+special\+\_\+frame()}}, \mbox{\hyperlink{stack_8c_source_l00116}{make\+\_\+stack\+\_\+frame()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00350}{make\+\_\+symbol\+\_\+or\+\_\+key()}}, \mbox{\hyperlink{peano_8c_source_l00349}{multiply\+\_\+2()}}, \mbox{\hyperlink{ratio_8c_source_l00254}{multiply\+\_\+integer\+\_\+ratio()}}, \mbox{\hyperlink{ratio_8c_source_l00203}{multiply\+\_\+ratio\+\_\+ratio()}}, \mbox{\hyperlink{read_8c_source_l00155}{read\+\_\+continuation()}}, \mbox{\hyperlink{read_8c_source_l00288}{read\+\_\+number()}}, \mbox{\hyperlink{peano_8c_source_l00544}{subtract\+\_\+2()}}, and \mbox{\hyperlink{psse__time_8c_source_l00095}{time\+\_\+to\+\_\+string()}}.

\Hypertarget{consspaceobject_8c_ac18813a5587f81344b2a35977657b09b}\label{consspaceobject_8c_ac18813a5587f81344b2a35977657b09b} 
\index{consspaceobject.c@{consspaceobject.c}!c\_string\_to\_lisp\_symbol@{c\_string\_to\_lisp\_symbol}}
\index{c\_string\_to\_lisp\_symbol@{c\_string\_to\_lisp\_symbol}!consspaceobject.c@{consspaceobject.c}}
\doxysubsubsection{\texorpdfstring{c\_string\_to\_lisp\_symbol()}{c\_string\_to\_lisp\_symbol()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} c\+\_\+string\+\_\+to\+\_\+lisp\+\_\+symbol (\begin{DoxyParamCaption}\item[{wchar\+\_\+t \texorpdfstring{$\ast$}{*}}]{symbol }\end{DoxyParamCaption})}



Return a lisp symbol representation of this wide character string. 



Definition at line \mbox{\hyperlink{consspaceobject_8c_source_l00469}{469}} of file \mbox{\hyperlink{consspaceobject_8c_source}{consspaceobject.\+c}}.



References \mbox{\hyperlink{consspaceobject_8h_source_l00750}{make\+\_\+symbol}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00277}{NIL}}.



Referenced by \mbox{\hyperlink{init_8c_source_l00097}{bind\+\_\+function()}}, \mbox{\hyperlink{init_8c_source_l00121}{bind\+\_\+special()}}, \mbox{\hyperlink{init_8c_source_l00161}{bind\+\_\+value()}}, \mbox{\hyperlink{read_8c_source_l00074}{c\+\_\+quote()}}, \mbox{\hyperlink{lispops_8c_source_l01263}{lisp\+\_\+repl()}}, \mbox{\hyperlink{lispops_8c_source_l01377}{lisp\+\_\+source()}}, \mbox{\hyperlink{lispops_8c_source_l00157}{lisp\+\_\+try()}}, \mbox{\hyperlink{init_8c_source_l00206}{main()}}, \mbox{\hyperlink{init_8c_source_l00073}{maybe\+\_\+bind\+\_\+init\+\_\+symbols()}}, \mbox{\hyperlink{print_8c_source_l00151}{print()}}, and \mbox{\hyperlink{read_8c_source_l00086}{read\+\_\+path()}}.

\Hypertarget{consspaceobject_8c_ad6da5748c65be5613d86664948ecc5ab}\label{consspaceobject_8c_ad6da5748c65be5613d86664948ecc5ab} 
\index{consspaceobject.c@{consspaceobject.c}!c\_type@{c\_type}}
\index{c\_type@{c\_type}!consspaceobject.c@{consspaceobject.c}}
\doxysubsubsection{\texorpdfstring{c\_type()}{c\_type()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} c\+\_\+type (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{pointer }\end{DoxyParamCaption})}



Get the Lisp type of the single argument. 


\begin{DoxyParams}{Parameters}
{\em pointer} & a pointer to the object whose type is requested. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
As a Lisp string, the tag of the object which is at that pointer. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{consspaceobject_8c_source_l00100}{100}} of file \mbox{\hyperlink{consspaceobject_8c_source}{consspaceobject.\+c}}.



References \mbox{\hyperlink{vectorspace_8h_source_l00111}{vector\+\_\+space\+\_\+object\+::header}}, \mbox{\hyperlink{consspaceobject_8c_source_l00338}{make\+\_\+string()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00277}{NIL}}, \mbox{\hyperlink{consspaceobject_8h_source_l00297}{pointer2cell}}, \mbox{\hyperlink{vectorspace_8h_source_l00055}{pointer\+\_\+to\+\_\+vso}}, \mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{cons\+\_\+space\+\_\+object\+::tag}}, \mbox{\hyperlink{vectorspace_8h_ad427b8802abb07e6d40728768115d127}{vector\+\_\+space\+\_\+header\+::tag}}, \mbox{\hyperlink{consspaceobject_8h_source_l00030}{TAGLENGTH}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00257}{VECTORPOINTTAG}}.



Referenced by \mbox{\hyperlink{intern_8c_source_l00327}{c\+\_\+assoc()}}, \mbox{\hyperlink{intern_8c_source_l00281}{internedp()}}, \mbox{\hyperlink{meta_8c_source_l00020}{lisp\+\_\+metadata()}}, \mbox{\hyperlink{lispops_8c_source_l01086}{lisp\+\_\+type()}}, \mbox{\hyperlink{peano_8c_source_l00349}{multiply\+\_\+2()}}, and \mbox{\hyperlink{intern_8c_source_l00412}{set()}}.

\Hypertarget{consspaceobject_8c_a10cecbd3a3077f601359388153677000}\label{consspaceobject_8c_a10cecbd3a3077f601359388153677000} 
\index{consspaceobject.c@{consspaceobject.c}!calculate\_hash@{calculate\_hash}}
\index{calculate\_hash@{calculate\_hash}!consspaceobject.c@{consspaceobject.c}}
\doxysubsubsection{\texorpdfstring{calculate\_hash()}{calculate\_hash()}}
{\footnotesize\ttfamily uint32\+\_\+t calculate\+\_\+hash (\begin{DoxyParamCaption}\item[{wint\+\_\+t}]{c,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{ptr }\end{DoxyParamCaption})}



Return a hash value for this string like thing. 

What\textquotesingle{}s important here is that two strings with the same characters in the same order should have the same hash value, even if one was created using {\ttfamily "{}foobar"{}} and the other by {\ttfamily (append "{}foo"{} "{}bar"{})}. I {\itshape think} this function has that property. I doubt that it\textquotesingle{}s the most efficient hash function to have that property.

returns 0 for things which are not string like. 

Definition at line \mbox{\hyperlink{consspaceobject_8c_source_l00281}{281}} of file \mbox{\hyperlink{consspaceobject_8c_source}{consspaceobject.\+c}}.



References \mbox{\hyperlink{consspaceobject_8h_source_l00100}{KEYTV}}, \mbox{\hyperlink{consspaceobject_8h_source_l00303}{nilp}}, \mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{cons\+\_\+space\+\_\+object\+::payload}}, \mbox{\hyperlink{consspaceobject_8h_source_l00297}{pointer2cell}}, \mbox{\hyperlink{consspaceobject_8h_source_l00221}{STRINGTV}}, \mbox{\hyperlink{consspaceobject_8h_source_l00231}{SYMBOLTV}}, and \mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{cons\+\_\+space\+\_\+object\+::tag}}.



Referenced by \mbox{\hyperlink{consspaceobject_8c_source_l00308}{make\+\_\+string\+\_\+like\+\_\+thing()}}.

\Hypertarget{consspaceobject_8c_a8670f58dc7ce45ff3f351a6023378e29}\label{consspaceobject_8c_a8670f58dc7ce45ff3f351a6023378e29} 
\index{consspaceobject.c@{consspaceobject.c}!check\_tag@{check\_tag}}
\index{check\_tag@{check\_tag}!consspaceobject.c@{consspaceobject.c}}
\doxysubsubsection{\texorpdfstring{check\_tag()}{check\_tag()}}
{\footnotesize\ttfamily bool check\+\_\+tag (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{pointer,  }\item[{uint32\+\_\+t}]{value }\end{DoxyParamCaption})}



True if the value of the tag on the cell at this {\ttfamily pointer} is this {\ttfamily value}, or, if the tag of the cell is {\ttfamily VECP}, if the value of the tag of the vectorspace object indicated by the cell is this {\ttfamily value}, else false. 



Definition at line \mbox{\hyperlink{consspaceobject_8c_source_l00035}{35}} of file \mbox{\hyperlink{consspaceobject_8c_source}{consspaceobject.\+c}}.



References \mbox{\hyperlink{vectorspace_8h_source_l00111}{vector\+\_\+space\+\_\+object\+::header}}, \mbox{\hyperlink{consspaceobject_8h_source_l00297}{pointer2cell}}, \mbox{\hyperlink{vectorspace_8h_source_l00055}{pointer\+\_\+to\+\_\+vso}}, \mbox{\hyperlink{consspaceobject_8h_a21cb645ce4ae20308447dcd59534bf38}{cons\+\_\+space\+\_\+object\+::tag}}, \mbox{\hyperlink{vectorspace_8h_ad427b8802abb07e6d40728768115d127}{vector\+\_\+space\+\_\+header\+::tag}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00262}{VECTORPOINTTV}}.



Referenced by \mbox{\hyperlink{conspage_8c_source_l00143}{free\+\_\+cell()}}, and \mbox{\hyperlink{consspaceobject_8c_source_l00308}{make\+\_\+string\+\_\+like\+\_\+thing()}}.

\Hypertarget{consspaceobject_8c_aecb4a52465163e0377356bcaa85539bf}\label{consspaceobject_8c_aecb4a52465163e0377356bcaa85539bf} 
\index{consspaceobject.c@{consspaceobject.c}!dec\_ref@{dec\_ref}}
\index{dec\_ref@{dec\_ref}!consspaceobject.c@{consspaceobject.c}}
\doxysubsubsection{\texorpdfstring{dec\_ref()}{dec\_ref()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} dec\+\_\+ref (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{pointer }\end{DoxyParamCaption})}



Decrement the reference count of the object at this cons pointer. 

If a count has reached MAXREFERENCE it cannot be decremented. If a count is decremented to zero the cell should be freed.

Returns the {\ttfamily pointer}, or, if the cell has been freed, NIL. 

Definition at line \mbox{\hyperlink{consspaceobject_8c_source_l00080}{80}} of file \mbox{\hyperlink{consspaceobject_8c_source}{consspaceobject.\+c}}.



References \mbox{\hyperlink{consspaceobject_8h_source_l00635}{cons\+\_\+space\+\_\+object\+::count}}, \mbox{\hyperlink{conspage_8c_source_l00143}{free\+\_\+cell()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00277}{NIL}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00297}{pointer2cell}}.



Referenced by \mbox{\hyperlink{ratio_8c_source_l00137}{add\+\_\+integer\+\_\+ratio()}}, \mbox{\hyperlink{init_8c_source_l00097}{bind\+\_\+function()}}, \mbox{\hyperlink{init_8c_source_l00121}{bind\+\_\+special()}}, \mbox{\hyperlink{init_8c_source_l00161}{bind\+\_\+value()}}, \mbox{\hyperlink{lispops_8c_source_l00340}{c\+\_\+apply()}}, \mbox{\hyperlink{lispops_8c_source_l01096}{c\+\_\+progn()}}, \mbox{\hyperlink{init_8c_source_l00049}{check\+\_\+exception()}}, \mbox{\hyperlink{intern_8c_source_l00447}{deep\+\_\+bind()}}, \mbox{\hyperlink{ratio_8c_source_l00176}{divide\+\_\+ratio\+\_\+ratio()}}, \mbox{\hyperlink{lispops_8c_source_l00064}{eval\+\_\+form()}}, \mbox{\hyperlink{lispops_8c_source_l00256}{eval\+\_\+lambda()}}, \mbox{\hyperlink{conspage_8c_source_l00143}{free\+\_\+cell()}}, \mbox{\hyperlink{intern_8c_source_l00110}{free\+\_\+hashmap()}}, \mbox{\hyperlink{init_8c_source_l00085}{free\+\_\+init\+\_\+symbols()}}, \mbox{\hyperlink{stack_8c_source_l00224}{free\+\_\+stack\+\_\+frame()}}, \mbox{\hyperlink{peano_8c_source_l00314}{lisp\+\_\+add()}}, \mbox{\hyperlink{peano_8c_source_l00655}{lisp\+\_\+divide()}}, \mbox{\hyperlink{lispops_8c_source_l01468}{lisp\+\_\+mapcar()}}, \mbox{\hyperlink{lispops_8c_source_l01040}{lisp\+\_\+print()}}, \mbox{\hyperlink{lispops_8c_source_l01127}{lisp\+\_\+progn()}}, \mbox{\hyperlink{lispops_8c_source_l00906}{lisp\+\_\+read()}}, \mbox{\hyperlink{lispops_8c_source_l01263}{lisp\+\_\+repl()}}, \mbox{\hyperlink{init_8c_source_l00206}{main()}}, \mbox{\hyperlink{ratio_8c_source_l00312}{make\+\_\+ratio()}}, \mbox{\hyperlink{print_8c_source_l00151}{print()}}, \mbox{\hyperlink{read_8c_source_l00288}{read\+\_\+number()}}, \mbox{\hyperlink{read_8c_source_l00086}{read\+\_\+path()}}, \mbox{\hyperlink{integer_8c_source_l00163}{release\+\_\+integer()}}, \mbox{\hyperlink{repl_8c_source_l00033}{repl()}}, \mbox{\hyperlink{stack_8c_source_l00033}{set\+\_\+reg()}}, \mbox{\hyperlink{peano_8c_source_l00544}{subtract\+\_\+2()}}, and \mbox{\hyperlink{ratio_8c_source_l00290}{subtract\+\_\+ratio\+\_\+ratio()}}.

\Hypertarget{consspaceobject_8c_aa38b760ee4493c5d98400e04db3c8d47}\label{consspaceobject_8c_aa38b760ee4493c5d98400e04db3c8d47} 
\index{consspaceobject.c@{consspaceobject.c}!inc\_ref@{inc\_ref}}
\index{inc\_ref@{inc\_ref}!consspaceobject.c@{consspaceobject.c}}
\doxysubsubsection{\texorpdfstring{inc\_ref()}{inc\_ref()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} inc\+\_\+ref (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{pointer }\end{DoxyParamCaption})}



increment the reference count of the object at this cons pointer. 

You can\textquotesingle{}t roll over the reference count. Once it hits the maximum value you cannot increment further.

Returns the {\ttfamily pointer}. 

Definition at line \mbox{\hyperlink{consspaceobject_8c_source_l00062}{62}} of file \mbox{\hyperlink{consspaceobject_8c_source}{consspaceobject.\+c}}.



References \mbox{\hyperlink{consspaceobject_8h_source_l00635}{cons\+\_\+space\+\_\+object\+::count}}, \mbox{\hyperlink{consspaceobject_8h_source_l00287}{MAXREFERENCE}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00297}{pointer2cell}}.



Referenced by \mbox{\hyperlink{lispops_8c_source_l00340}{c\+\_\+apply()}}, \mbox{\hyperlink{lispops_8c_source_l01096}{c\+\_\+progn()}}, \mbox{\hyperlink{intern_8c_source_l00237}{clone\+\_\+hashmap()}}, \mbox{\hyperlink{intern_8c_source_l00447}{deep\+\_\+bind()}}, \mbox{\hyperlink{lispops_8c_source_l00064}{eval\+\_\+form()}}, \mbox{\hyperlink{lispops_8c_source_l00256}{eval\+\_\+lambda()}}, \mbox{\hyperlink{intern_8c_source_l00385}{hashmap\+\_\+put()}}, \mbox{\hyperlink{integer_8c_source_l00193}{int128\+\_\+to\+\_\+integer()}}, \mbox{\hyperlink{peano_8c_source_l00655}{lisp\+\_\+divide()}}, \mbox{\hyperlink{lispops_8c_source_l00504}{lisp\+\_\+eval()}}, \mbox{\hyperlink{lispops_8c_source_l01468}{lisp\+\_\+mapcar()}}, \mbox{\hyperlink{lispops_8c_source_l01040}{lisp\+\_\+print()}}, \mbox{\hyperlink{lispops_8c_source_l01127}{lisp\+\_\+progn()}}, \mbox{\hyperlink{lispops_8c_source_l00906}{lisp\+\_\+read()}}, \mbox{\hyperlink{lispops_8c_source_l01263}{lisp\+\_\+repl()}}, \mbox{\hyperlink{lispops_8c_source_l01377}{lisp\+\_\+source()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00177}{make\+\_\+cons()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00200}{make\+\_\+exception()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00218}{make\+\_\+function()}}, \mbox{\hyperlink{intern_8c_source_l00137}{make\+\_\+hashmap()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00240}{make\+\_\+lambda()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00257}{make\+\_\+nlambda()}}, \mbox{\hyperlink{ratio_8c_source_l00312}{make\+\_\+ratio()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00379}{make\+\_\+special()}}, \mbox{\hyperlink{stack_8c_source_l00183}{make\+\_\+special\+\_\+frame()}}, \mbox{\hyperlink{stack_8c_source_l00116}{make\+\_\+stack\+\_\+frame()}}, \mbox{\hyperlink{read_8c_source_l00288}{read\+\_\+number()}}, \mbox{\hyperlink{stack_8c_source_l00033}{set\+\_\+reg()}}, and \mbox{\hyperlink{peano_8c_source_l00544}{subtract\+\_\+2()}}.

\Hypertarget{consspaceobject_8c_afff9c83c8c250837b5737c11e21cc4ca}\label{consspaceobject_8c_afff9c83c8c250837b5737c11e21cc4ca} 
\index{consspaceobject.c@{consspaceobject.c}!make\_cons@{make\_cons}}
\index{make\_cons@{make\_cons}!consspaceobject.c@{consspaceobject.c}}
\doxysubsubsection{\texorpdfstring{make\_cons()}{make\_cons()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} make\+\_\+cons (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{car,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{cdr }\end{DoxyParamCaption})}



Construct a cons cell from this pair of pointers. 



Definition at line \mbox{\hyperlink{consspaceobject_8c_source_l00177}{177}} of file \mbox{\hyperlink{consspaceobject_8c_source}{consspaceobject.\+c}}.



References \mbox{\hyperlink{conspage_8c_source_l00222}{allocate\+\_\+cell()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00046}{CONSTV}}, \mbox{\hyperlink{consspaceobject_8c_source_l00062}{inc\+\_\+ref()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00277}{NIL}}, \mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{cons\+\_\+space\+\_\+object\+::payload}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00297}{pointer2cell}}.



Referenced by \mbox{\hyperlink{ratio_8c_source_l00137}{add\+\_\+integer\+\_\+ratio()}}, \mbox{\hyperlink{io_8c_source_l00268}{add\+\_\+meta\+\_\+integer()}}, \mbox{\hyperlink{io_8c_source_l00276}{add\+\_\+meta\+\_\+string()}}, \mbox{\hyperlink{ratio_8c_source_l00093}{add\+\_\+ratio\+\_\+ratio()}}, \mbox{\hyperlink{init_8c_source_l00097}{bind\+\_\+function()}}, \mbox{\hyperlink{init_8c_source_l00121}{bind\+\_\+special()}}, \mbox{\hyperlink{lispops_8c_source_l01410}{c\+\_\+append()}}, \mbox{\hyperlink{lispops_8c_source_l00840}{c\+\_\+keys()}}, \mbox{\hyperlink{read_8c_source_l00074}{c\+\_\+quote()}}, \mbox{\hyperlink{lispops_8c_source_l00943}{c\+\_\+reverse()}}, \mbox{\hyperlink{lispops_8c_source_l00194}{compose\+\_\+body()}}, \mbox{\hyperlink{lispops_8c_source_l00129}{eval\+\_\+forms()}}, \mbox{\hyperlink{lispops_8c_source_l00256}{eval\+\_\+lambda()}}, \mbox{\hyperlink{intern_8c_source_l00162}{hashmap\+\_\+keys()}}, \mbox{\hyperlink{intern_8c_source_l00385}{hashmap\+\_\+put()}}, \mbox{\hyperlink{lispops_8c_source_l00564}{lisp\+\_\+apply()}}, \mbox{\hyperlink{lispops_8c_source_l00702}{lisp\+\_\+cons()}}, \mbox{\hyperlink{lispops_8c_source_l00504}{lisp\+\_\+eval()}}, \mbox{\hyperlink{lispops_8c_source_l01528}{lisp\+\_\+let()}}, \mbox{\hyperlink{lispops_8c_source_l01510}{lisp\+\_\+list()}}, \mbox{\hyperlink{hashmap_8c_source_l00039}{lisp\+\_\+make\+\_\+hashmap()}}, \mbox{\hyperlink{lispops_8c_source_l01468}{lisp\+\_\+mapcar()}}, \mbox{\hyperlink{meta_8c_source_l00020}{lisp\+\_\+metadata()}}, \mbox{\hyperlink{lispops_8c_source_l01263}{lisp\+\_\+repl()}}, \mbox{\hyperlink{lispops_8c_source_l00616}{lisp\+\_\+set()}}, \mbox{\hyperlink{lispops_8c_source_l00654}{lisp\+\_\+set\+\_\+shriek()}}, \mbox{\hyperlink{lispops_8c_source_l01377}{lisp\+\_\+source()}}, \mbox{\hyperlink{lispops_8c_source_l00157}{lisp\+\_\+try()}}, \mbox{\hyperlink{init_8c_source_l00206}{main()}}, \mbox{\hyperlink{peano_8c_source_l00349}{multiply\+\_\+2()}}, \mbox{\hyperlink{print_8c_source_l00151}{print()}}, \mbox{\hyperlink{read_8c_source_l00155}{read\+\_\+continuation()}}, \mbox{\hyperlink{read_8c_source_l00401}{read\+\_\+list()}}, \mbox{\hyperlink{read_8c_source_l00086}{read\+\_\+path()}}, \mbox{\hyperlink{repl_8c_source_l00033}{repl()}}, and \mbox{\hyperlink{intern_8c_source_l00412}{set()}}.

\Hypertarget{consspaceobject_8c_a2a1abab0c80ab1e97f507bc4eab02523}\label{consspaceobject_8c_a2a1abab0c80ab1e97f507bc4eab02523} 
\index{consspaceobject.c@{consspaceobject.c}!make\_exception@{make\_exception}}
\index{make\_exception@{make\_exception}!consspaceobject.c@{consspaceobject.c}}
\doxysubsubsection{\texorpdfstring{make\_exception()}{make\_exception()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} make\+\_\+exception (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{message,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{frame\+\_\+pointer }\end{DoxyParamCaption})}



Construct an exception cell. 


\begin{DoxyParams}{Parameters}
{\em message} & should be a lisp string describing the problem, but actually any cons pointer will do; \\
\hline
{\em frame\+\_\+pointer} & should be the pointer to the frame in which the exception occurred. \\
\hline
\end{DoxyParams}


Definition at line \mbox{\hyperlink{consspaceobject_8c_source_l00200}{200}} of file \mbox{\hyperlink{consspaceobject_8c_source}{consspaceobject.\+c}}.



References \mbox{\hyperlink{conspage_8c_source_l00222}{allocate\+\_\+cell()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00057}{EXCEPTIONTV}}, \mbox{\hyperlink{consspaceobject_8c_source_l00062}{inc\+\_\+ref()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00277}{NIL}}, \mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{cons\+\_\+space\+\_\+object\+::payload}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00297}{pointer2cell}}.



Referenced by \mbox{\hyperlink{intern_8c_source_l00237}{clone\+\_\+hashmap()}}, \mbox{\hyperlink{hashmap_8c_source_l00039}{lisp\+\_\+make\+\_\+hashmap()}}, \mbox{\hyperlink{io_8c_source_l00437}{lisp\+\_\+open()}}, \mbox{\hyperlink{stack_8c_source_l00183}{make\+\_\+special\+\_\+frame()}}, \mbox{\hyperlink{stack_8c_source_l00116}{make\+\_\+stack\+\_\+frame()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00350}{make\+\_\+symbol\+\_\+or\+\_\+key()}}, and \mbox{\hyperlink{lispops_8c_source_l01208}{throw\+\_\+exception()}}.

\Hypertarget{consspaceobject_8c_a7a40b760e96bbba53d22c23cea7331be}\label{consspaceobject_8c_a7a40b760e96bbba53d22c23cea7331be} 
\index{consspaceobject.c@{consspaceobject.c}!make\_function@{make\_function}}
\index{make\_function@{make\_function}!consspaceobject.c@{consspaceobject.c}}
\doxysubsubsection{\texorpdfstring{make\_function()}{make\_function()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} make\+\_\+function (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{meta,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}(\texorpdfstring{$\ast$}{*})(struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}})}]{executable }\end{DoxyParamCaption})}



Construct a cell which points to an executable Lisp function. 



Definition at line \mbox{\hyperlink{consspaceobject_8c_source_l00218}{218}} of file \mbox{\hyperlink{consspaceobject_8c_source}{consspaceobject.\+c}}.



References \mbox{\hyperlink{conspage_8c_source_l00222}{allocate\+\_\+cell()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00080}{FUNCTIONTV}}, \mbox{\hyperlink{consspaceobject_8c_source_l00062}{inc\+\_\+ref()}}, \mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{cons\+\_\+space\+\_\+object\+::payload}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00297}{pointer2cell}}.



Referenced by \mbox{\hyperlink{init_8c_source_l00097}{bind\+\_\+function()}}.

\Hypertarget{consspaceobject_8c_a315945df5ea6902613f4a4a6803c72ac}\label{consspaceobject_8c_a315945df5ea6902613f4a4a6803c72ac} 
\index{consspaceobject.c@{consspaceobject.c}!make\_lambda@{make\_lambda}}
\index{make\_lambda@{make\_lambda}!consspaceobject.c@{consspaceobject.c}}
\doxysubsubsection{\texorpdfstring{make\_lambda()}{make\_lambda()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} make\+\_\+lambda (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{args,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{body }\end{DoxyParamCaption})}



Construct a lambda (interpretable source) cell. 



Definition at line \mbox{\hyperlink{consspaceobject_8c_source_l00240}{240}} of file \mbox{\hyperlink{consspaceobject_8c_source}{consspaceobject.\+c}}.



References \mbox{\hyperlink{conspage_8c_source_l00222}{allocate\+\_\+cell()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00062}{inc\+\_\+ref()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00111}{LAMBDATV}}, \mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{cons\+\_\+space\+\_\+object\+::payload}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00297}{pointer2cell}}.



Referenced by \mbox{\hyperlink{lispops_8c_source_l00223}{lisp\+\_\+lambda()}}.

\Hypertarget{consspaceobject_8c_ad8207dff3baf23366b5110ca4ae46bf7}\label{consspaceobject_8c_ad8207dff3baf23366b5110ca4ae46bf7} 
\index{consspaceobject.c@{consspaceobject.c}!make\_nlambda@{make\_nlambda}}
\index{make\_nlambda@{make\_nlambda}!consspaceobject.c@{consspaceobject.c}}
\doxysubsubsection{\texorpdfstring{make\_nlambda()}{make\_nlambda()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} make\+\_\+nlambda (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{args,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{body }\end{DoxyParamCaption})}



Construct an nlambda (interpretable source) cell; to a lambda as a special form is to a function. 



Definition at line \mbox{\hyperlink{consspaceobject_8c_source_l00257}{257}} of file \mbox{\hyperlink{consspaceobject_8c_source}{consspaceobject.\+c}}.



References \mbox{\hyperlink{conspage_8c_source_l00222}{allocate\+\_\+cell()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00062}{inc\+\_\+ref()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00168}{NLAMBDATV}}, \mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{cons\+\_\+space\+\_\+object\+::payload}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00297}{pointer2cell}}.



Referenced by \mbox{\hyperlink{lispops_8c_source_l00240}{lisp\+\_\+nlambda()}}.

\Hypertarget{consspaceobject_8c_abc8581c0068fa9c1a6691336d88c11e5}\label{consspaceobject_8c_abc8581c0068fa9c1a6691336d88c11e5} 
\index{consspaceobject.c@{consspaceobject.c}!make\_read\_stream@{make\_read\_stream}}
\index{make\_read\_stream@{make\_read\_stream}!consspaceobject.c@{consspaceobject.c}}
\doxysubsubsection{\texorpdfstring{make\_read\_stream()}{make\_read\_stream()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} make\+\_\+read\+\_\+stream (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{fopen_8h_a8c81a077422f5e2410ba71eb75108f6e}{URL\+\_\+\+FILE}} \texorpdfstring{$\ast$}{*}}]{input,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{metadata }\end{DoxyParamCaption})}



Construct a cell which points to a stream open for reading. 


\begin{DoxyParams}{Parameters}
{\em input} & the C stream to wrap. \\
\hline
{\em metadata} & a pointer to an associaton containing metadata on the stream. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a pointer to the new read stream. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{consspaceobject_8c_source_l00405}{405}} of file \mbox{\hyperlink{consspaceobject_8c_source}{consspaceobject.\+c}}.



References \mbox{\hyperlink{conspage_8c_source_l00222}{allocate\+\_\+cell()}}, \mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{cons\+\_\+space\+\_\+object\+::payload}}, \mbox{\hyperlink{consspaceobject_8h_source_l00297}{pointer2cell}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00189}{READTV}}.



Referenced by \mbox{\hyperlink{io_8c_source_l00437}{lisp\+\_\+open()}}, and \mbox{\hyperlink{init_8c_source_l00206}{main()}}.

\Hypertarget{consspaceobject_8c_a02cdb935e4af41bebf585e5dc02078ee}\label{consspaceobject_8c_a02cdb935e4af41bebf585e5dc02078ee} 
\index{consspaceobject.c@{consspaceobject.c}!make\_special@{make\_special}}
\index{make\_special@{make\_special}!consspaceobject.c@{consspaceobject.c}}
\doxysubsubsection{\texorpdfstring{make\_special()}{make\_special()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} make\+\_\+special (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{meta,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}(\texorpdfstring{$\ast$}{*})(struct \mbox{\hyperlink{consspaceobject_8h_structstack__frame}{stack\+\_\+frame}} \texorpdfstring{$\ast$}{*}frame, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}, struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} env)}]{executable }\end{DoxyParamCaption})}



Construct a cell which points to an executable Lisp special form. 



Definition at line \mbox{\hyperlink{consspaceobject_8c_source_l00379}{379}} of file \mbox{\hyperlink{consspaceobject_8c_source}{consspaceobject.\+c}}.



References \mbox{\hyperlink{conspage_8c_source_l00222}{allocate\+\_\+cell()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00062}{inc\+\_\+ref()}}, \mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{cons\+\_\+space\+\_\+object\+::payload}}, \mbox{\hyperlink{consspaceobject_8h_source_l00297}{pointer2cell}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00211}{SPECIALTV}}.



Referenced by \mbox{\hyperlink{init_8c_source_l00121}{bind\+\_\+special()}}.

\Hypertarget{consspaceobject_8c_a6e09249d678524caf40f18ac273c8157}\label{consspaceobject_8c_a6e09249d678524caf40f18ac273c8157} 
\index{consspaceobject.c@{consspaceobject.c}!make\_string@{make\_string}}
\index{make\_string@{make\_string}!consspaceobject.c@{consspaceobject.c}}
\doxysubsubsection{\texorpdfstring{make\_string()}{make\_string()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} make\+\_\+string (\begin{DoxyParamCaption}\item[{wint\+\_\+t}]{c,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{tail }\end{DoxyParamCaption})}



Construct a string from the character {\ttfamily c} and this {\ttfamily tail}. 

A string is implemented as a flat list of cells each of which has one character and a pointer to the next; in the last cell the pointer to next is NIL.


\begin{DoxyParams}{Parameters}
{\em c} & the character to add (prepend); \\
\hline
{\em tail} & the string which is being built. \\
\hline
\end{DoxyParams}


Definition at line \mbox{\hyperlink{consspaceobject_8c_source_l00338}{338}} of file \mbox{\hyperlink{consspaceobject_8c_source}{consspaceobject.\+c}}.



References \mbox{\hyperlink{consspaceobject_8c_source_l00308}{make\+\_\+string\+\_\+like\+\_\+thing()}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00221}{STRINGTV}}.



Referenced by \mbox{\hyperlink{lispops_8c_source_l00943}{c\+\_\+reverse()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00454}{c\+\_\+string\+\_\+to\+\_\+lisp\+\_\+string()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00100}{c\+\_\+type()}}, \mbox{\hyperlink{integer_8c_source_l00454}{integer\+\_\+to\+\_\+string()}}, \mbox{\hyperlink{integer_8c_source_l00420}{integer\+\_\+to\+\_\+string\+\_\+add\+\_\+digit()}}, \mbox{\hyperlink{lispops_8c_source_l00735}{lisp\+\_\+car()}}, \mbox{\hyperlink{lispops_8c_source_l00702}{lisp\+\_\+cons()}}, \mbox{\hyperlink{io_8c_source_l00504}{lisp\+\_\+read\+\_\+char()}}, \mbox{\hyperlink{io_8c_source_l00533}{lisp\+\_\+slurp()}}, \mbox{\hyperlink{read_8c_source_l00155}{read\+\_\+continuation()}}, and \mbox{\hyperlink{read_8c_source_l00484}{read\+\_\+string()}}.

\Hypertarget{consspaceobject_8c_a409cc41fa651c2200f7a291fbf65a941}\label{consspaceobject_8c_a409cc41fa651c2200f7a291fbf65a941} 
\index{consspaceobject.c@{consspaceobject.c}!make\_string\_like\_thing@{make\_string\_like\_thing}}
\index{make\_string\_like\_thing@{make\_string\_like\_thing}!consspaceobject.c@{consspaceobject.c}}
\doxysubsubsection{\texorpdfstring{make\_string\_like\_thing()}{make\_string\_like\_thing()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} make\+\_\+string\+\_\+like\+\_\+thing (\begin{DoxyParamCaption}\item[{wint\+\_\+t}]{c,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{tail,  }\item[{uint32\+\_\+t}]{tag }\end{DoxyParamCaption})}



Construct a string from this character (which later will be UTF) and this tail. 

A string is implemented as a flat list of cells each of which has one character and a pointer to the next; in the last cell the pointer to next is NIL. 

Definition at line \mbox{\hyperlink{consspaceobject_8c_source_l00308}{308}} of file \mbox{\hyperlink{consspaceobject_8c_source}{consspaceobject.\+c}}.



References \mbox{\hyperlink{conspage_8c_source_l00222}{allocate\+\_\+cell()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00281}{calculate\+\_\+hash()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00035}{check\+\_\+tag()}}, \mbox{\hyperlink{debug_8h_source_l00021}{DEBUG\+\_\+\+ALLOC}}, \mbox{\hyperlink{debug_8c_source_l00101}{debug\+\_\+printf()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00277}{NIL}}, \mbox{\hyperlink{consspaceobject_8h_source_l00157}{NILTV}}, \mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{cons\+\_\+space\+\_\+object\+::payload}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00297}{pointer2cell}}.



Referenced by \mbox{\hyperlink{lispops_8c_source_l01410}{c\+\_\+append()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00338}{make\+\_\+string()}}, and \mbox{\hyperlink{consspaceobject_8c_source_l00350}{make\+\_\+symbol\+\_\+or\+\_\+key()}}.

\Hypertarget{consspaceobject_8c_a32fb0eeebd407b817a2756324d123927}\label{consspaceobject_8c_a32fb0eeebd407b817a2756324d123927} 
\index{consspaceobject.c@{consspaceobject.c}!make\_symbol\_or\_key@{make\_symbol\_or\_key}}
\index{make\_symbol\_or\_key@{make\_symbol\_or\_key}!consspaceobject.c@{consspaceobject.c}}
\doxysubsubsection{\texorpdfstring{make\_symbol\_or\_key()}{make\_symbol\_or\_key()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} make\+\_\+symbol\+\_\+or\+\_\+key (\begin{DoxyParamCaption}\item[{wint\+\_\+t}]{c,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{tail,  }\item[{uint32\+\_\+t}]{tag }\end{DoxyParamCaption})}



Construct a symbol or keyword from the character {\ttfamily c} and this {\ttfamily tail}. 

Each is internally identical to a string except for having a different tag.


\begin{DoxyParams}{Parameters}
{\em c} & the character to add (prepend); \\
\hline
{\em tail} & the symbol which is being built. \\
\hline
{\em tag} & the tag to use\+: expected to be "{}\+SYMB"{} or "{}\+KEYW"{} \\
\hline
\end{DoxyParams}


Definition at line \mbox{\hyperlink{consspaceobject_8c_source_l00350}{350}} of file \mbox{\hyperlink{consspaceobject_8c_source}{consspaceobject.\+c}}.



References \mbox{\hyperlink{consspaceobject_8c_source_l00454}{c\+\_\+string\+\_\+to\+\_\+lisp\+\_\+string()}}, \mbox{\hyperlink{intern_8c_source_l00478}{intern()}}, \mbox{\hyperlink{intern_8c_source_l00281}{internedp()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00100}{KEYTV}}, \mbox{\hyperlink{consspaceobject_8c_source_l00200}{make\+\_\+exception()}}, \mbox{\hyperlink{consspaceobject_8c_source_l00308}{make\+\_\+string\+\_\+like\+\_\+thing()}}, \mbox{\hyperlink{consspaceobject_8h_source_l00277}{NIL}}, \mbox{\hyperlink{consspaceobject_8h_source_l00303}{nilp}}, \mbox{\hyperlink{intern_8c_source_l00048}{oblist}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00231}{SYMBOLTV}}.



Referenced by \mbox{\hyperlink{lispops_8c_source_l00943}{c\+\_\+reverse()}}, \mbox{\hyperlink{read_8c_source_l00155}{read\+\_\+continuation()}}, and \mbox{\hyperlink{read_8c_source_l00507}{read\+\_\+symbol\+\_\+or\+\_\+key()}}.

\Hypertarget{consspaceobject_8c_a9d49b726c4a7af147d27492b43751785}\label{consspaceobject_8c_a9d49b726c4a7af147d27492b43751785} 
\index{consspaceobject.c@{consspaceobject.c}!make\_write\_stream@{make\_write\_stream}}
\index{make\_write\_stream@{make\_write\_stream}!consspaceobject.c@{consspaceobject.c}}
\doxysubsubsection{\texorpdfstring{make\_write\_stream()}{make\_write\_stream()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}} make\+\_\+write\+\_\+stream (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{fopen_8h_a8c81a077422f5e2410ba71eb75108f6e}{URL\+\_\+\+FILE}} \texorpdfstring{$\ast$}{*}}]{output,  }\item[{struct \mbox{\hyperlink{consspaceobject_8h_structcons__pointer}{cons\+\_\+pointer}}}]{metadata }\end{DoxyParamCaption})}



Construct a cell which points to a stream open for writing. 


\begin{DoxyParams}{Parameters}
{\em output} & the C stream to wrap. \\
\hline
{\em metadata} & a pointer to an associaton containing metadata on the stream. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a pointer to the new read stream. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{consspaceobject_8c_source_l00422}{422}} of file \mbox{\hyperlink{consspaceobject_8c_source}{consspaceobject.\+c}}.



References \mbox{\hyperlink{conspage_8c_source_l00222}{allocate\+\_\+cell()}}, \mbox{\hyperlink{consspaceobject_8h_a259b3afe36776f8ba8498fdf95904f25}{cons\+\_\+space\+\_\+object\+::payload}}, \mbox{\hyperlink{consspaceobject_8h_source_l00297}{pointer2cell}}, and \mbox{\hyperlink{consspaceobject_8h_source_l00272}{WRITETV}}.



Referenced by \mbox{\hyperlink{io_8c_source_l00437}{lisp\+\_\+open()}}, and \mbox{\hyperlink{init_8c_source_l00206}{main()}}.

