3 lines
19 KiB
HTML
3 lines
19 KiB
HTML
<!DOCTYPE html PUBLIC ""
|
||
"">
|
||
<html><head><meta charset="UTF-8" /><title>Beowulf 0.3.0</title><link rel="icon" type="image/x-icon" href="../img/beowulf_logo_favicon.png" /><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Beowulf</span> <span class="project-version">0.3.0</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 current"><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="further_reading.html"><div class="inner"><span>Further Reading</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>beowulf</span></div></a></li><li class="depth-1 "><a href="mexpr.html"><div class="inner"><span>Interpreting M-Expressions</span></div></a></li><li class="depth-1 "><a href="values.html"><div class="inner"><span>The properties of the system, and their values</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>beowulf</span></div></div></li><li class="depth-2 branch"><a href="beowulf.bootstrap.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>bootstrap</span></div></a></li><li class="depth-2 branch"><a href="beowulf.cons-cell.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>cons-cell</span></div></a></li><li class="depth-2 branch"><a href="beowulf.core.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>core</span></div></a></li><li class="depth-2 branch"><a href="beowulf.gendoc.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gendoc</span></div></a></li><li class="depth-2 branch"><a href="beowulf.host.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>host</span></div></a></li><li class="depth-2 branch"><a href="beowulf.interop.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>interop</span></div></a></li><li class="depth-2 branch"><a href="beowulf.io.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>io</span></div></a></li><li class="depth-2 branch"><a href="beowulf.manual.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>manual</span></div></a></li><li class="depth-2 branch"><a href="beowulf.oblist.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>oblist</span></div></a></li><li class="depth-2 branch"><a href="beowulf.read.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>read</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>reader</span></div></div></li><li class="depth-3 branch"><a href="beowulf.reader.char-reader.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>char-reader</span></div></a></li><li class="depth-3 branch"><a href="beowulf.reader.generate.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>generate</span></div></a></li><li class="depth-3 branch"><a href="beowulf.reader.macros.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>macros</span></div></a></li><li class="depth-3 branch"><a href="beowulf.reader.parser.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>parser</span></div></a></li><li class="depth-3"><a href="beowulf.reader.simplify.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simplify</span></div></a></li></ul></div><div class="namespace-index" id="content"><h1><span class="project-title"><span class="project-name">Beowulf</span> <span class="project-version">0.3.0</span></span></h1><h5 class="license">Released under the <a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html">GPL-2.0-or-later</a></h5><div class="doc"><p>LISP 1.5 is to all Lisp dialects as Beowulf is to English literature.</p></div><h2>Installation</h2><p>To install, add the following dependency to your project or build file:</p><pre class="deps">[beowulf "0.3.0"]</pre><h2>Topics</h2><ul class="topics"><li><a href="further_reading.html">Further Reading</a></li><li><a href="intro.html">beowulf</a></li><li><a href="mexpr.html">Interpreting M-Expressions</a></li><li><a href="values.html">The properties of the system, and their values</a></li></ul><h2>Namespaces</h2><div class="namespace"><h3><a href="beowulf.bootstrap.html">beowulf.bootstrap</a></h3><div class="doc"><div class="markdown"><p>Lisp as defined in Chapter 1 (pages 1-14) of the <code>Lisp 1.5 Programmer's Manual</code>; that is to say, a very simple Lisp language, which should, I believe, be sufficient in conjunction with the functions provided by <code>beowulf.host</code>, be sufficient to bootstrap the full Lisp 1.5 interpreter..</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="beowulf.bootstrap.html#var-APPLY">APPLY</a> </li><li> <a href="beowulf.bootstrap.html#var-EVAL">EVAL</a> </li><li> <a href="beowulf.bootstrap.html#var-find-target">find-target</a> </li><li> <a href="beowulf.bootstrap.html#var-PROG">PROG</a> </li><li> <a href="beowulf.bootstrap.html#var-prog-eval">prog-eval</a> </li><li> <a href="beowulf.bootstrap.html#var-try-resolve-subroutine">try-resolve-subroutine</a> </li></ul></div></div><div class="namespace"><h3><a href="beowulf.cons-cell.html">beowulf.cons-cell</a></h3><div class="doc"><div class="markdown"><p>The fundamental cons cell on which all Lisp structures are built. Lisp 1.5 lists do not necessarily have a sequence as their CDR, and must have both CAR and CDR mutable, so cannot be implemented on top of Clojure lists.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="beowulf.cons-cell.html#var-cons-cell.3F">cons-cell?</a> </li><li> <a href="beowulf.cons-cell.html#var-F">F</a> </li><li> <a href="beowulf.cons-cell.html#var-make-beowulf-list">make-beowulf-list</a> </li><li> <a href="beowulf.cons-cell.html#var-make-cons-cell">make-cons-cell</a> </li><li> <a href="beowulf.cons-cell.html#var-MutableSequence">MutableSequence</a> </li><li> <a href="beowulf.cons-cell.html#var-pretty-print">pretty-print</a> </li><li> <a href="beowulf.cons-cell.html#var-T">T</a> </li></ul></div></div><div class="namespace"><h3><a href="beowulf.core.html">beowulf.core</a></h3><div class="doc"><div class="markdown"><p>Essentially, the <code>-main</code> function and the bootstrap read-eval-print loop.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="beowulf.core.html#var--main">-main</a> </li><li> <a href="beowulf.core.html#var-cli-options">cli-options</a> </li><li> <a href="beowulf.core.html#var-repl">repl</a> </li><li> <a href="beowulf.core.html#var-stop-word">stop-word</a> </li></ul></div></div><div class="namespace"><h3><a href="beowulf.gendoc.html">beowulf.gendoc</a></h3><div class="doc"><div class="markdown"><p>Generate table of documentation of Lisp symbols and functions.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="beowulf.gendoc.html#var-find-documentation">find-documentation</a> </li><li> <a href="beowulf.gendoc.html#var-gen-doc-table">gen-doc-table</a> </li><li> <a href="beowulf.gendoc.html#var-gen-index">gen-index</a> </li><li> <a href="beowulf.gendoc.html#var-host-functions">host-functions</a> </li><li> <a href="beowulf.gendoc.html#var-infer-implementation">infer-implementation</a> </li><li> <a href="beowulf.gendoc.html#var-infer-signature">infer-signature</a> </li><li> <a href="beowulf.gendoc.html#var-infer-type">infer-type</a> </li><li> <a href="beowulf.gendoc.html#var-open-doc">open-doc</a> </li></ul></div></div><div class="namespace"><h3><a href="beowulf.host.html">beowulf.host</a></h3><div class="doc"><div class="markdown"><p>provides Lisp 1.5 functions which can’t be (or can’t efficiently be) implemented in Lisp 1.5, which therefore need to be implemented in the host language, in this case Clojure.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="beowulf.host.html#var-ADD1">ADD1</a> </li><li> <a href="beowulf.host.html#var-AND">AND</a> </li><li> <a href="beowulf.host.html#var-ASSOC">ASSOC</a> </li><li> <a href="beowulf.host.html#var-ATOM">ATOM</a> </li><li> <a href="beowulf.host.html#var-ATOM.3F">ATOM?</a> </li><li> <a href="beowulf.host.html#var-CAAAAR">CAAAAR</a> </li><li> <a href="beowulf.host.html#var-CAAADR">CAAADR</a> </li><li> <a href="beowulf.host.html#var-CAAAR">CAAAR</a> </li><li> <a href="beowulf.host.html#var-CAADAR">CAADAR</a> </li><li> <a href="beowulf.host.html#var-CAADDR">CAADDR</a> </li><li> <a href="beowulf.host.html#var-CAADR">CAADR</a> </li><li> <a href="beowulf.host.html#var-CAAR">CAAR</a> </li><li> <a href="beowulf.host.html#var-CADAAR">CADAAR</a> </li><li> <a href="beowulf.host.html#var-CADADR">CADADR</a> </li><li> <a href="beowulf.host.html#var-CADAR">CADAR</a> </li><li> <a href="beowulf.host.html#var-CADDAR">CADDAR</a> </li><li> <a href="beowulf.host.html#var-CADDDR">CADDDR</a> </li><li> <a href="beowulf.host.html#var-CADDR">CADDR</a> </li><li> <a href="beowulf.host.html#var-CADR">CADR</a> </li><li> <a href="beowulf.host.html#var-CAR">CAR</a> </li><li> <a href="beowulf.host.html#var-CDAAAR">CDAAAR</a> </li><li> <a href="beowulf.host.html#var-CDAADR">CDAADR</a> </li><li> <a href="beowulf.host.html#var-CDAAR">CDAAR</a> </li><li> <a href="beowulf.host.html#var-CDADAR">CDADAR</a> </li><li> <a href="beowulf.host.html#var-CDADDR">CDADDR</a> </li><li> <a href="beowulf.host.html#var-CDADR">CDADR</a> </li><li> <a href="beowulf.host.html#var-CDAR">CDAR</a> </li><li> <a href="beowulf.host.html#var-CDDAAR">CDDAAR</a> </li><li> <a href="beowulf.host.html#var-CDDADR">CDDADR</a> </li><li> <a href="beowulf.host.html#var-CDDAR">CDDAR</a> </li><li> <a href="beowulf.host.html#var-CDDDAR">CDDDAR</a> </li><li> <a href="beowulf.host.html#var-CDDDDR">CDDDDR</a> </li><li> <a href="beowulf.host.html#var-CDDDR">CDDDR</a> </li><li> <a href="beowulf.host.html#var-CDDR">CDDR</a> </li><li> <a href="beowulf.host.html#var-CDR">CDR</a> </li><li> <a href="beowulf.host.html#var-CONS">CONS</a> </li><li> <a href="beowulf.host.html#var-CONSP">CONSP</a> </li><li> <a href="beowulf.host.html#var-DEFINE">DEFINE</a> </li><li> <a href="beowulf.host.html#var-DEFLIST">DEFLIST</a> </li><li> <a href="beowulf.host.html#var-DIFFERENCE">DIFFERENCE</a> </li><li> <a href="beowulf.host.html#var-DOC">DOC</a> </li><li> <a href="beowulf.host.html#var-EQ">EQ</a> </li><li> <a href="beowulf.host.html#var-EQUAL">EQUAL</a> </li><li> <a href="beowulf.host.html#var-ERROR">ERROR</a> </li><li> <a href="beowulf.host.html#var-FIXP">FIXP</a> </li><li> <a href="beowulf.host.html#var-GENSYM">GENSYM</a> </li><li> <a href="beowulf.host.html#var-GET">GET</a> </li><li> <a href="beowulf.host.html#var-GREATERP">GREATERP</a> </li><li> <a href="beowulf.host.html#var-lax.3F">lax?</a> </li><li> <a href="beowulf.host.html#var-LESSP">LESSP</a> </li><li> <a href="beowulf.host.html#var-LIST">LIST</a> </li><li> <a href="beowulf.host.html#var-magic-marker">magic-marker</a> </li><li> <a href="beowulf.host.html#var-NILP">NILP</a> </li><li> <a href="beowulf.host.html#var-NULL">NULL</a> </li><li> <a href="beowulf.host.html#var-NUMBERP">NUMBERP</a> </li><li> <a href="beowulf.host.html#var-OBLIST">OBLIST</a> </li><li> <a href="beowulf.host.html#var-OR">OR</a> </li><li> <a href="beowulf.host.html#var-PAIRLIS">PAIRLIS</a> </li><li> <a href="beowulf.host.html#var-PLUS">PLUS</a> </li><li> <a href="beowulf.host.html#var-PUT">PUT</a> </li><li> <a href="beowulf.host.html#var-QUOTIENT">QUOTIENT</a> </li><li> <a href="beowulf.host.html#var-REMAINDER">REMAINDER</a> </li><li> <a href="beowulf.host.html#var-RPLACA">RPLACA</a> </li><li> <a href="beowulf.host.html#var-RPLACD">RPLACD</a> </li><li> <a href="beowulf.host.html#var-SET">SET</a> </li><li> <a href="beowulf.host.html#var-SUB1">SUB1</a> </li><li> <a href="beowulf.host.html#var-TIMES">TIMES</a> </li><li> <a href="beowulf.host.html#var-TRACE">TRACE</a> </li><li> <a href="beowulf.host.html#var-traced-symbols">traced-symbols</a> </li><li> <a href="beowulf.host.html#var-traced.3F">traced?</a> </li><li> <a href="beowulf.host.html#var-uaf">uaf</a> </li><li> <a href="beowulf.host.html#var-UNTRACE">UNTRACE</a> </li></ul></div></div><div class="namespace"><h3><a href="beowulf.interop.html">beowulf.interop</a></h3><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="beowulf.interop.html#var-INTEROP">INTEROP</a> </li><li> <a href="beowulf.interop.html#var-interpret-qualified-name">interpret-qualified-name</a> </li><li> <a href="beowulf.interop.html#var-listify-qualified-name">listify-qualified-name</a> </li><li> <a href="beowulf.interop.html#var-to-beowulf">to-beowulf</a> </li><li> <a href="beowulf.interop.html#var-to-clojure">to-clojure</a> </li></ul></div></div><div class="namespace"><h3><a href="beowulf.io.html">beowulf.io</a></h3><div class="doc"><div class="markdown"><p>Non-standard extensions to Lisp 1.5 to read and write to the filesystem.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="beowulf.io.html#var-default-sysout">default-sysout</a> </li><li> <a href="beowulf.io.html#var-resolve-subr">resolve-subr</a> </li><li> <a href="beowulf.io.html#var-safely-wrap-subr">safely-wrap-subr</a> </li><li> <a href="beowulf.io.html#var-safely-wrap-subrs">safely-wrap-subrs</a> </li><li> <a href="beowulf.io.html#var-SYSIN">SYSIN</a> </li><li> <a href="beowulf.io.html#var-SYSOUT">SYSOUT</a> </li></ul></div></div><div class="namespace"><h3><a href="beowulf.manual.html">beowulf.manual</a></h3><div class="doc"><div class="markdown"><p>Experimental code for accessing the manual online.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="beowulf.manual.html#var-*manual-url*">*manual-url*</a> </li><li> <a href="beowulf.manual.html#var-format-page-references">format-page-references</a> </li><li> <a href="beowulf.manual.html#var-index">index</a> </li><li> <a href="beowulf.manual.html#var-page-url">page-url</a> </li></ul></div></div><div class="namespace"><h3><a href="beowulf.oblist.html">beowulf.oblist</a></h3><div class="doc"><div class="markdown"><p>A namespace mainly devoted to the object list and other top level global variables.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="beowulf.oblist.html#var-*options*">*options*</a> </li><li> <a href="beowulf.oblist.html#var-NIL">NIL</a> </li><li> <a href="beowulf.oblist.html#var-oblist">oblist</a> </li></ul></div></div><div class="namespace"><h3><a href="beowulf.read.html">beowulf.read</a></h3><div class="doc"><div class="markdown"><p>This provides the reader required for boostrapping. It’s not a bad reader - it provides feedback on errors found in the input - but it isn’t the real Lisp reader.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="beowulf.read.html#var-gsp">gsp</a> </li><li> <a href="beowulf.read.html#var-number-lines">number-lines</a> </li><li> <a href="beowulf.read.html#var-READ">READ</a> </li><li> <a href="beowulf.read.html#var-read-from-console">read-from-console</a> </li><li> <a href="beowulf.read.html#var-strip-line-comments">strip-line-comments</a> </li></ul></div></div><div class="namespace"><h3><a href="beowulf.reader.char-reader.html">beowulf.reader.char-reader</a></h3><div class="doc"><div class="markdown"><p>Provide sensible line editing, auto completion, and history recall.</p></div></div><div class="index"><p>Public variables and functions:</p><ul></ul></div></div><div class="namespace"><h3><a href="beowulf.reader.generate.html">beowulf.reader.generate</a></h3><div class="doc"><div class="markdown"><p>Generating S-Expressions from parse trees. </p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="beowulf.reader.generate.html#var-gen-cond">gen-cond</a> </li><li> <a href="beowulf.reader.generate.html#var-gen-cond-clause">gen-cond-clause</a> </li><li> <a href="beowulf.reader.generate.html#var-gen-dot-terminated-list">gen-dot-terminated-list</a> </li><li> <a href="beowulf.reader.generate.html#var-gen-fn-call">gen-fn-call</a> </li><li> <a href="beowulf.reader.generate.html#var-gen-iexpr">gen-iexpr</a> </li><li> <a href="beowulf.reader.generate.html#var-generate">generate</a> </li><li> <a href="beowulf.reader.generate.html#var-generate-assign">generate-assign</a> </li><li> <a href="beowulf.reader.generate.html#var-generate-defn">generate-defn</a> </li><li> <a href="beowulf.reader.generate.html#var-generate-set">generate-set</a> </li><li> <a href="beowulf.reader.generate.html#var-strip-leading-zeros">strip-leading-zeros</a> </li></ul></div></div><div class="namespace"><h3><a href="beowulf.reader.macros.html">beowulf.reader.macros</a></h3><div class="doc"><div class="markdown"><p>Can I implement reader macros? let’s see!</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="beowulf.reader.macros.html#var-*readmacros*">*readmacros*</a> </li><li> <a href="beowulf.reader.macros.html#var-expand-macros">expand-macros</a> </li></ul></div></div><div class="namespace"><h3><a href="beowulf.reader.parser.html">beowulf.reader.parser</a></h3><div class="doc"><div class="markdown"><p>The actual parser, supporting both S-expression and M-expression syntax.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="beowulf.reader.parser.html#var-parse">parse</a> </li></ul></div></div><div class="namespace"><h3><a href="beowulf.reader.simplify.html">beowulf.reader.simplify</a></h3><div class="doc"><div class="markdown"><p>Simplify parse trees. Be aware that this is very tightly coupled with the parser.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="beowulf.reader.simplify.html#var-remove-nesting">remove-nesting</a> </li><li> <a href="beowulf.reader.simplify.html#var-remove-optional-space">remove-optional-space</a> </li><li> <a href="beowulf.reader.simplify.html#var-simplify">simplify</a> </li><li> <a href="beowulf.reader.simplify.html#var-simplify-tree">simplify-tree</a> </li></ul></div></div></div></body></html> |