\chapter{Post Scarcity Software Environment\+: general documentation}
\hypertarget{index}{}\label{index}\index{Post Scarcity Software Environment: general documentation@{Post Scarcity Software Environment: general documentation}}
\label{index_md_workspace_2post-scarcity_2docs_2_home}%
\Hypertarget{index_md_workspace_2post-scarcity_2docs_2_home}%
 Work towards the implementation of a software system like that described in \href{https://www.journeyman.cc/blog/posts-output/2006-02-20-postscarcity-software/}{\texttt{ Post Scarcity Software}}.\hypertarget{index_autotoc_md56}{}\doxysection{\texorpdfstring{Note on canonicity}{Note on canonicity}}\label{index_autotoc_md56}
{\itshape Originally most of this documentation was on a wiki attached to the \href{https://github.com/simon-brooke/post-scarcity}{\texttt{ Git\+Hub project}}; when that was transferred to \href{https://git.journeyman.cc/simon/post-scarcity}{\texttt{ my own foregejo instance}} the wiki was copied. However, it\textquotesingle{}s more convenient to keep documentation in the project with the source files, and version controlled in the same Git repository. So while both wikis still exist, they should no longer be considered canonical. The canonical version is in {\ttfamily /docs}, and is incorporated by \href{https://www.doxygen.nl/}{\texttt{ Doxygen}} into the generated documentation --- which is generated into {\ttfamily /doc} using the command {\ttfamily make doc}.}\hypertarget{index_autotoc_md57}{}\doxysection{\texorpdfstring{State of Play}{State of Play}}\label{index_autotoc_md57}
You can read about the current \href{md_home_2simon_2workspace_2post-scarcity_2docs_2state-of-play.html}{\texttt{ state of play}}.\hypertarget{index_autotoc_md58}{}\doxysection{\texorpdfstring{AWFUL WARNING 1}{AWFUL WARNING 1}}\label{index_autotoc_md58}
This does not work. It isn\textquotesingle{}t likely to work any time soon. If you want to learn Lisp, don\textquotesingle{}t start here; try Clojure, Scheme or Common Lisp (in which case I recommend Steel Bank Common Lisp). If you want to learn how Lisp works, still don\textquotesingle{}t start here. This isn\textquotesingle{}t ever going to be anything like a conventional Lisp environment.

What it sets out to be is a Lisp-\/like system which\+:


\begin{DoxyItemize}
\item Can make use (albeit not, at least at first, very efficiently) of machines with at least \href{http://highscalability.com/blog/2012/9/11/how-big-is-a-petabyte-exabyte-zettabyte-or-a-yottabyte.html}{\texttt{ Zettabytes}} of RAM;
\item Can make reasonable use of machines with at least tens of thousands of processors;
\item Can concurrently support significant numbers of concurrent users, all doing different things, without them ever interfering with one another;
\item Can ensure that users cannot escalate privilege;
\item Can ensure users private data remains private.
\end{DoxyItemize}

When Linus Torvalds sat down in his bedroom to write Linux, he had something usable in only a few months. BUT\+:


\begin{DoxyItemize}
\item Linus was young, energetic, and extremely talented; I am none of those things.
\item Linus was trying to build a clone of something which already existed and was known to work. Nothing like what I\textquotesingle{}m aiming for exists.
\item Linus was able to adopt the GNU user space stack. There is no user space stack for this idea; I don\textquotesingle{}t even know what one would look like.
\end{DoxyItemize}\hypertarget{index_autotoc_md59}{}\doxysection{\texorpdfstring{AWFUL WARNING 2}{AWFUL WARNING 2}}\label{index_autotoc_md59}
This project is necessarily experimental and exploratory. I write code, it reveals new problems, I think about them, and I mutate the design. This documentation does not always keep up with the developing source code. 