From 39093a35a0327658ecac9ebfcb01a4a714b5bac6 Mon Sep 17 00:00:00 2001 From: Philosopher Date: Thu, 21 Nov 2013 20:28:52 -0600 Subject: [PATCH] Nasal internals LaTeX document (.tex & .pdf) This is a document Hooray and I have been working on for a while. Its focused on the internals, and very likely in a messy state and very weird, but hopefully some others will want to contribute. There's some empty sections, random "test" code snippets, and lots of \todos in there. Also, lines aren't wrapped at all, but it does generate a nice PDF that contains, I hope, something that will be useful. The PDF was rendered by writeLaTeX.com --- Docs/Nasal-doc.pdf | Bin 0 -> 358980 bytes Docs/Nasal-doc.tex | 1461 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1461 insertions(+) create mode 100644 Docs/Nasal-doc.pdf create mode 100644 Docs/Nasal-doc.tex diff --git a/Docs/Nasal-doc.pdf b/Docs/Nasal-doc.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c37eef834d4e124fe221e9458a629df97511bf8a GIT binary patch literal 358980 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 literal 0 HcmV?d00001 diff --git a/Docs/Nasal-doc.tex b/Docs/Nasal-doc.tex new file mode 100644 index 000000000..00f9bf321 --- /dev/null +++ b/Docs/Nasal-doc.tex @@ -0,0 +1,1461 @@ +% keep in mind: WriteLatex.com has by default a 30p(unregistered)/90p(logged in) limit (which only applies to the preview, not the PDF download! And it can be raised on demand): https://www.writelatex.com/help/3-is-writelatex-limited-to-30-pages-the-preview-stops-at-that-point + +% actually, the preview works fine as an unregistered user - I think that's per document... + +% scribtex.com provides a free mode, with 50MB of space, no page limit, git repository and full revision history: http://www.scribtex.com/ (being merged into www.sharelatex.com ) + +% contributors should ideally use this referral link, which gives us 50MB of additional space: https://www.writelatex.com/signup?ref=9a77e088e3aa (we're using only 1MB as of 03/2013) + + +% Section Ideas: Block Parser, Efficiency Guide and Erlang-style bitstring support +% and: creating a static call tree for Nasal code, to more easily create developer docs: +% bombable addon, advanced weather + +\documentclass{article} + +% \emph{Every} manual needs color: +\usepackage{color} +% So we can split across pages/lines: +\usepackage{longtable} +% For syntax highlighting +\usepackage{listings} +% From the homepage of www.writeLaTeX.com ;) +%\usepackage{todonotes} +% Or disable them: +\newcommand{\todo}[1]{} +\newcommand{\listoftodos}[0]{} + +% For links using \url{www.google.com}, see http://en.wikibooks.org/wiki/LaTeX/Hyperlinks +\usepackage{hyperref} +% for xrefs and TOC linking +\usepackage{nameref} + +% For fancier macros, see http://tex.stackexchange.com/questions/58628/optional-argument-for-newcommand +\usepackage{xifthen} + +% http://ctan.org/pkg/cooltooltips +\usepackage{cooltooltips} + +% Specify enumeration style: http://texblog.org/2008/10/16/lists-enumerate-itemize-description-and-how-to-change-them/ +\usepackage{enumerate} + +% for drawing memory layouts (i.e. naRef/naObj and GC_HEADER stuff) +% http://www.ctan.org/pkg/bytefield +% http://www.martin-demling.de/2011/06/memory-maps-in-latex-using-the-bytefield-package/ +% http://queen.elektro.uni-miskolc.hu/~gati/references/latex/packages/bytefield.pdf +\usepackage{bytefield} + +% for drawing graphs (i.e. parse trees), see: http://www.texample.net/tikz/ +% docs: http://en.wikibooks.org/wiki/LaTeX/PGF/TikZ +% examples (for adaption) to be found at: https://github.com/MartinThoma/LaTeX-examples/tree/master/tikz +\usepackage{tikz} +\usepackage{tikz-qtree} +\usetikzlibrary{shapes,arrows,calc} +% TODO: we need a custom style for showing parse trees dumped from Nasal + +% data structures like vectors and hashes are probably best visualized by using this: http://www.latex-community.org/forum/viewtopic.php?f=45&t=11769 +% also see: http://tex.stackexchange.com/questions/93942/typesetting-classical-data-structures-in-tikz +% http://tex.stackexchange.com/questions/19286/how-should-i-draw-a-singly-double-linked-list +% % http://tex.stackexchange.com/questions/24305/some-problems-drawing-linked-lists-with-tikzs-matrix-library + +% and for visualizing stack frames, use the drawstack package +% https://gitorious.org/tikz-goodies/tikz-goodies/blobs/0dffd069488fc812050e6ce5513736e83eaa666b/drawstack/stack-example.tex +\usepackage{drawstack} + +% for even fancier illustrations, see +% http://tex.stackexchange.com/questions/52761/tikz-diagram-with-stacks-and-box + +% listings styling, see: http://www.tjansson.dk/?p=419 and http://en.wikibooks.org/wiki/LaTeX/Source_Code_Listings +% it would be really nice if symbols (especially mathematical) could be made smaller; LaTeX as it stands does not typeset them well in lstlisting +\usepackage{textcomp} +\lstset{ + tabsize=4, + rulecolor=, + basicstyle=\scriptsize, + upquote=false, + aboveskip={1.5\baselineskip}, + columns=fullflexible, + showstringspaces=false, + extendedchars=true, + breaklines=true, + prebreak=\raisebox{0ex}[0ex][0ex]{\ensuremath{\hookleftarrow}}, + frame=single, + showtabs=false, + showspaces=false, + showstringspaces=false, + identifierstyle=\ttfamily, + keywordstyle=\color[rgb]{0,0,1}, + commentstyle=\color[rgb]{0.133,0.545,0.133}, + stringstyle=\color[rgb]{0.627,0.126,0.941}, + numbers=left, + stepnumber=3, + firstnumber=1, + numberfirstline=true, + literate=% + %{symbol}{replacement}size% + {->}{{$\rightarrow$}}2 % +} + +% diff is not by default supported by lstlisting +% taken from: http://tex.stackexchange.com/questions/50176/highlighting-a-diff-file +\lstdefinelanguage{diff}{ + morecomment=[f][\color{blue}]{@@}, % group identifier + morecomment=[f][\color{red}]-, % deleted lines + morecomment=[f][\color{green}]+, % added lines + morecomment=[f][\color{magenta}]{---}, % Diff header lines (must appear after +,-) + morecomment=[f][\color{magenta}]{+++}, +} + +% define a very basic style for nasal, with some custom keywords +% see: http://members.aon.at/mfranz/nasal.vim +% we should be able to use regex/sed to turn the vim file into usable LaTex markup +\lstdefinelanguage{nasal}{ + keywords={func, var, if, elsif, else, for, foreach, forindex, while, me, arg, parents, nil, and, or, size, keys, append, pop, setsize, subvec, delete, num, streq}, + comment=[l]\#, + string=[b]", + string=[b]', +} + +% Add Nasal-code-specific keywords/types here +\lstdefinelanguage[NASL]{C}[ANSI]{C}{ + morekeywords={naRef, naPtr, naObj, naStr, naVec, naHash, naCode, naFunc, naCCode, naGhost, + naGhostType, naContext, naCFunction} +} +\lstset{defaultdialect=[NASL]C} + +% todo: we may also want to define a style for Nasal bytecode ? +% OP codes taken from: https://github.com/andyross/nasal/blob/master/src/code.h +\lstdefinelanguage{nasalbytecode}{ + keywords={OP_NOT, OP_MUL, OP_PLUS, OP_MINUS, OP_DIV, OP_NEG, OP_CAT, OP_LT, OP_LTE, OP_GT, OP_GTE, OP_EQ, OP_NEQ, OP_EACH, OP_JMP, OP_JMPLOOP, OP_JIFNOTPOP, OP_JIFEND, OP_FCALL, OP_MCALL, OP_RETURN, OP_PUSHCONST, OP_PUSHONE, OP_PUSHZERO, OP_PUSHNIL, OP_POP, OP_DUP, OP_XCHG, OP_INSERT, OP_EXTRACT, OP_MEMBER, OP_SETMEMBER, OP_LOCAL, OP_SETLOCAL, OP_NEWVEC, OP_VAPPEND, OP_NEWHASH, OP_HAPPEND, OP_MARK, OP_UNMARK, OP_BREAK, OP_SETSYM, OP_DUP2,OP_INDEX, OP_BREAK2, OP_PUSHEND, OP_JIFTRUE, OP_JIFNOT, OP_FCALLH, OP_MCALLH, OP_XCHG2, OP_UNPACK, OP_SLICE, OP_SLICE2} +} + + +\newcommand{\comment}[1]{}%lol... + +% Camel-case hypenation (doesn't work with macros around it, though) +% http://tex.stackexchange.com/questions/66593/automatic-camel-case-breaking: +\comment{ +\makeatletter +\def\camelcase{\leavevmode\begingroup +\let\ifcase\iftrue +\def\or##1{% + \catcode`##1\active\uccode`\~`##1\uppercase{% + \def~{\egroup\penalty2\hbox\bgroup\string##1}}}% +\@Alph{}% +\@camelcase} + +\def\@camelcase#1{\textbf{\hbox\bgroup#1\egroup}\endgroup} +\makeatother +} + +% todo: href for types (naRef, naPtr, naObj etc) ? +\definecolor{type} {rgb}{0.8, 0.2, 0.0} +\definecolor{func} {rgb}{0.0, 0.3, 0.6} +\definecolor{fixme} {rgb}{0.5, 0.5, 0.5} +\definecolor{source} {rgb}{0.2, 0.4, 0.8} +\definecolor{opcode} {rgb}{0.0, 0.6, 0.2} +\definecolor{keyword}{rgb}{1.0, 0.0, 0.0} %nasal keywords used in the text (e.g. nil) + +%todo: do we need a macro for Nasal library functions like cmp, sort, call etc ? + +% Italic, e.g. for names of members, etc. +\newcommand{\name}[1]{{\it #1}} +% A type like int or naRef. Asterisks/ampersands belong outside of the argument but not plurality indicators (e.g. \type{naRefs}*) +\newcommand{\type}[1]{\textcolor{type}{\tt #1}} +% Any function, best to suffix with parentheses via the \fp\ macro (e.g. \func{naLex}\fp) +\newcommand{\func}[1]{\textcolor{func}{\tt #1}} +% A fixme, shows in grey (because it's embarrasing ;) ) +\newcommand{\fixme}[1]{\textcolor{fixme}{#1}} +% Source -- what repository, for specifying paths +\newcommand{\src}[1]{\textcolor{source}{\it #1}} + +%for important global macros +\newcommand{\globalmacro}[1]{\textcolor{func}{\tt #1}} +%for important local macros (local macros are UNDEF'ed after use) +\newcommand{\localmacro}[1]{\textcolor{func}{\tt #1}} +% a list of macros would be better implemented using the reference manual, i.e. automatically via doxygen - but I find the global/local info itself useful, i.e. certain macros are only available when in the parser/codegen/vm or gc - while others are truly "global" in that they are generally available after including nasal.h + +% Link to a source file (e.g. lex.c). Syntax is: +% \nasalsourcefile{name.c} +% \\-name of file +% \nasalsourcefile[132]{name.c} +% \\-line number + +% from http://tex.stackexchange.com/questions/58628/optional-argument-for-newcommand +\newcommand{\nasalsourcefile}[2][]{% + \ifthenelse{\isempty{#1}}% + {% + \textcolor{source}{% + \href{https://github.com/andyross/nasal/blob/master/src/#2}{#2}% + }% + }% + {% + \textcolor{source}{% + \href{https://github.com/andyross/nasal/blob/master/src/#2\#L#1}{#2}% + }% + }% +} + +% Cite a file, using above. Parenthetical like: +% (file.c, line 152) +% or: +% (file.c) +\newcommand{\citesourcefile}[2][]{% + \ifthenelse{\isempty{#1}}% + {% + (\nasalsourcefile{#2})% + }% + {% + (\nasalsourcefile[#1]{#2}, line #1)% + }% +} + + +%for Nasal APIs +\newcommand{\nasalapi}[1]{\func{#1}} + +%for Nasal keywords referenced in the text +\newcommand{\nasalkeyword}[1]{\textcolor{keyword}{#1}} + +%for opcode listings; automatically hyperref's +% \BIG: for when this is the only content +% \Med: for when this is used in a sentence and shouldn't stick out +\newcommand{\OP} [1]{\hyperref[op:#1]{\textcolor{opcode}{OP\_#1}}} +\newcommand{\TOK}[1]{\textcolor{opcode}{TOK\_#1}} +\newcommand{\PREC}[1]{\textcolor{opcode}{PREC\_#1}} +\newcommand{\Op} [1]{\hyperref[op:#1]{\textcolor{opcode}{\sc Op\_#1}}} +\newcommand{\Tok}[1]{\textcolor{opcode}{\sc Tok\_#1}} +\newcommand{\Prec}[1]{\textcolor{opcode}{\sc Prec\_#1}} + + +% For parse trees: +\newcommand{\Token}[2][]{% + \ifthenelse{\isempty{#1}}% + {\TOK{#2}}% + {\TOK{#2} (value: #1)}% +} + +% (Working) Test from http://tex.stackexchange.com/questions/1230/reference-name-of-description-list-item-in-latex +\makeatletter +\let\orgdescriptionlabel\descriptionlabel +\renewcommand*{\descriptionlabel}[1]{% + \let\orglabel\label + \let\label\@gobble + \phantomsection + \edef\@currentlabel{#1}% + %\edef\@currentlabelname{#1}% + \let\label\orglabel + \orgdescriptionlabel{#1}% +} +\makeatother + + +% Either an argument or a user-entered value (as per standard \TeX practice): +\newcommand{\param}[1]{$\langle$#1$\rangle$} +% To escape a char +\newcommand{\escape}[1]{$\backslash$#1} +% Allow a break +\newcommand{\br}{\penalty3} +% Function parens +\newcommand{\fp}{\textcolor{func}{()}} + + + +\begin{document} +\title{Documentation for the Nasal Scripting Language} +\author{Philosopher \& Hooray} +\date{September 21st, 2013} %Started Jan 16, 2013 +\maketitle +\tableofcontents +\listoftodos + +\clearpage + +%todo: provide some background on the tools used ? +%mention experiences based on hacking the interpreter? + +\comment{ + \begin{abstract}%%FIXME: an author's note sort of thingy? + I started this around January 16th, 2013, but it was not until at least a month later (February) that I understood the Nasal internals well enough to begin. One of the things that really spurred my understanding was taking a step back from the code and examining it in my mind -- or at least, the part which I had more recently read through. As I did this, questions about how it fit together in the whole scheme of things usually emerged (e.g. how does parseBlock work and relate to the \verb$tok->children$ member?) and when I faced those questions, I could usually form a hypothesis about how I might implement it and what would make sense to me. In almost every case, I would just scan over the code as say ``yup, that looks right'' and then I instantly understood it since {\it I} was the one who had invented it: I was no longer reading someone else's code, but rather my own. + + %\subsection{Notes} + I use \src{DATA}, \src{FG}, \src{SG}, and \src{Andy} to refer to the separate repositories; fgdata, flightgear source, simgear source, and Andy's GitHub repository, respectively. Since every \type{naRef} can reference different objects, I refer to a \type{naRef} that should be of type T\_HASH as \type{naRef:naHash} and one that can be T\_CODE or T\_CCODE as \type{naRef:naCode/naCCode}. + \end{abstract} + + \clearpage +} + +% Disabled for "production" +\comment{ +\section*{Structure \& Organization} +\addcontentsline{toc}{section}{Structure \& Organization} +\begin{enumerate} + \item WRT structure/organization, see \url{http://www.lua.org/manual/5.1/} (some of this would overlap with a doxygen-based RM that could be created automatically after adding more doxygen markup) + \item we should probably have a section on the main Nasal APIs (see nasal.h)? + \item Terminology: Introduce important concepts at the beginning of each section (what is a stack, what is a parser, what is a lexer, stack machine etc) or at least link to or quote wikipedia ? + \item introduce important macros in each section (Parser, Codegen, VM, GC)? + \item just highlighting important types/structs isn't as helpful as directly providing a downstripped source snippet, especially for people who are not reading this online, and who may not have access to a browser to browse the git repositories, I would prefer adding important structs to the manual, and referencing them using hrefs here (testing this currently on my ebook reader, and it rocks reading about Nasal there!) + \item thinking about it, it might be better to stop using line numbers and instead use functions/loops or conditional blocks as identifiers, after all, line numbers are likely to change over time, and it would be really awkward to update things here? And functions/loops are likely to be identical among different repos! At least, also mention non-line number identifiers for that case? + \item use drawstack package for drawing our stacks + \item add more code examples (copy/paste) so that people don't necessarily need to look at the repository at the same time? + \item we still need to come up with a tikz style for using automatically created parse trees here + \item we may want to add an introductory section on getting/building Nasal from source, so that people can get started experimenting directly +\end{enumerate} + +\clearpage +} + +\section*{Prerequisites} +\addcontentsline{toc}{section}{Prerequisites} +\hypertarget{section:Prerequisites}{}% see http://tug.org/pipermail/texhax/2007-November/009466.html +This manual assumes familiarity with the C programming language and requires programming experience, including advanced concepts such as pointers and bit manipulation, data structures, memory management and (possibly) the ability to build programs from source. If you need to brush up on your C knowledge, we recommend checking out some of the following resources first, some of which may only take a couple of minutes to review/work through to get up to speed: + +\begin{enumerate} + \item \url{http://www.slideshare.net/petdance/just-enough-c-for-open-source-programmers} + \item \url{http://www.slideshare.net/amraldo/introduction-to-c-programming-7898353} + \item \url{http://www.slideshare.net/olvemaudal/deep-c} + \item \url{http://mindview.net/CDs/ThinkingInC/beta3} + \item \url{http://www.physics.drexel.edu/courses/Comp_Phys/General/C_basics/} + \item \url{http://www.learnconline.com/2010/03/introduction.html} + \item \url{http://publications.gbdirect.co.uk/c_book/} + \item \url{http://c-faq.com/index.html} +\end{enumerate} + +% There are tons of good C/C++ courses available on YouTube + +For web-based programming experiments, you may want to check out some online compilers, such as: + +\begin{enumerate} + \item \url{http://www.learn-c.org/} + \item \url{http://codepad.org/} + \item \url{http://ideone.com} +\end{enumerate} + +At least basic knowledge of Nasal (or a similar language like JavaScript) will be helpful, i.e. understanding the basic syntax (for the parsing section) will go a long way, for example: +% this is just to test our custom nasal style +\begin{lstlisting}[language=nasal] +# declare a function with a named argument +var hello = func(name) { + print("Hello ", name); +} +hello("world"); # call the function with one argument +\end{lstlisting} + + +If you are connected to the internet, you can learn more about the Nasal language itself by visiting these links: +\begin{enumerate} + \item \url{http://plausible.org/nasal/sample.nas} (example of syntax and usage) + \item \url{http://plausible.org/nasal/lib.html} (documentation of library functions) + \item \url{http://wiki.flightgear.org/Nasal} -- see some more specific articles like these to get started: + \begin{enumerate}[i.] + \item \url{http://wiki.flightgear.org/Nasal_Conditionals} + \item \url{http://wiki.flightgear.org/Nasal_Variables} + \item \url{http://wiki.flightgear.org/Nasal_Loops} + \item \url{http://wiki.flightgear.org/Nasal_Operators} + \end{enumerate} +\end{enumerate} + + +\section{Introduction to Nasal} +\todo{see Andy's original design document: \url{http://plausible.org/nasal/doc.html} } + +Nasal is an Open-Source, Mult-Platform, Small, and Easily Embeddable Scripting Language designed by Andy Ross and released under the GNU LGPL license. It originally started out as ``NASL'' (acronym for Not Another Scripting Language) but was renamed due to a naming conflict with another, unrelated scripting language. Nasal was specifically designed to be used as an extension language in other programs and to be embedded by developers into their own programs, without any platform bloat. It supports various programming paradigms, such as functional programming, procedural, and object oriented programming (OOP), and runs on both 32bit and 64 bit platforms. It is written in ANSI C99 and its source code is small, compact, and completely self-contained, with a handwritten lexer and parser and no external dependencies, other than the standard C library (though it has several library bindings that can be optionally compiled). It's main usage has been in FlightGear (where it got first added in 2003), an open-source flight simulator, and in AlgoScore, an algorithmic music composition software, where Nasal is used to write the algorithms. Nasal can also be run standalone, through a command-line ``interactive'' REPL (read-eval-print-loop) interpreter using the GNU readline library. + +Nasal is available from several different sources. Ross has a repository on GitHub (\url{https://github.com/andyross/nasal}), but he has said that he considers the SimGear sources to be the standard version (\url{http://gitorious.org/fg/simgear/trees/next/simgear/nasal} -- SimGear is a component in FlightGear, it currently does not include a standalone interpreter). AlgoScore also has Nasal in it's source tree (\url{http://svn.gna.org/viewcvs/algoscore/trunk/src/nasal/}), but it has not been updated in a while and SimGear's is more actively maintained. Most source code references made here are referring to Ross's GitHub repository for now.\todo{We should start moving to simgear/gitorious references...} + +\comment{the patched interpreter we're using uses yet another repo, the "nasal-standalone" repository on gitorious, which is merged from Andy's and SimGear's Nasal interpreter and uses CMake instead of Autotools} + +Nasal combines the advantages of a dynamically-typed scripting language with a clean syntax close to C and Javascript -- Nasal being inspired by ECMAScript -- and it has many modern features like multiple assignment expressions and named function arguments, as well as unique ones like access to namespaces in the native ``hash'' datatype. It supports object-oriented programming through hashes that can contain a mutable ``parents'' vector used in implementing multiple-inheritance. It has automatic memory management through a garbage collector (GC) and is designed to be minimally threadsafe, without requiring a global interpreter lock (GIL). Nasal as a language is very flexible, and both its integration into FlightGear and the variety of libraries that have been created in Nasal attest to this (e.g. see \src{FG}/src/Scripting/FGNasalSys.cxx and the \src{Andy}/lib/ and \src{Andy}/contrib/Ampere/ directories for an illustration of this flexibility). + +For more on Nasal syntax and features, see \url{http://plausible.org/nasal} and \url{http://wiki.flightgear.org/Nasal_scripting_language}. Reading Andy's design document is also recommended, as many of the things that are alluded to will be explained here: \url{http://plausible.org/nasal/doc.html}. + +\comment{ +\todo{we should get in touch with Andy to get the github repository updated, and to get the cmake changes upstream} +\section{Getting, building and installing Nasal} +\subsection{Windows} +\subsection{Mac} +\subsection{Unix/Linux} +} + +\section{Maintaining this Manual} +\todo{mention useful tools such as cscope, doxygen, Source Navigator NG} +This manual is very far from being complete, or up-to-date. If you want to help out by contributing, please contact Philosopher or Hooray (the authors) on the forum. It is written in LaTeX but shouldn't be difficult to pick up on sight. Both grammar/wording edits and contributions/revisions of topics will be welcome! + +This manual is hosted on both writeLaTeX.com and in FGData. + +\section{Document layout} +\comment{ +Creating API: + Globals and Contexts + Variables + How to Create an API + Using CPPBind +Internals: + Parsing + Lexing + Block Parsing + Precedence Parsing + Generating Bytecode + Virtual Machine + Garbage Collection + Error and Exception Handling +Examples and Existing Work: + Nasal Maintenance + Introspection + Example APIs + Perl-Compatable-Regular-Expressions (PCRE) + SQLite + Cairo/GNU ToolKit (GTK) + FlightGear Canvas + FlightGear Positioned +} +This document is focused on the C/C++ sides of working with Nasal. There are many great tutorials out there for Nasal programming itself, please see the links under ``\hyperlink{section:Prerequisites}{Prerequisites}''. + +First described are some of the building blocks of the source code -- basic things that are used throughout and need to be understood. Next the types of variables and their usage are detailed -- manuipulating variables is essential to creating a usable API. From those building blocks, methods for creating an API are described for those needing to integrate Nasal into a existing program. CPPBind -- an extension found in SimGear -- is the focus of the next chapter: it allows easy manipulation of Nasal types from C++, including automatic conversions using templates. + +For those who are interested, there are many parts describing different core pieces of nasal. Steps of parsing: lexing, block \& precedence parsing, and code generation. Code running in the virtual machine -- this provides insight into many of the actual workings of the Nasal code that programmers write. There's also an article on Nasal's garbage collection and some of the problems FlightGear has faced regarding that. Efforts to improve the GC are welcome! Error and exception handling is the last topic, including how to recognize and handle errors while programming in C. + +Cool examples of work done on improving Nasal or that exemplifies the concepts described above are found at the end of the document. This includes ongoing work on ``introspection'' (enhancing the ability of Nasal to debug itself and complementing the existing metaprogramming capabilities), potential ``Nasal maintenance'' tasks, and descriptions of the existing bindings for PCRE, SQLite, Cairo/GTK, FlightGear's Canvas and more. + +\part{Creating an API: useful knowledge} + +\section{Globals and Contexts} +\todo{document the globals struct and naContext, needs rewording (taken from PMs) also document initGlobals, init Context etc} + +A Nasal context is basically the ``housekeeper'' struct that manages data for a single instance of an interpreter. \emph{All} interpreter-specific stuff is managed via the context, which is why you have pointers and data such as: + +\begin{enumerate} + \item the execution-frame stack, its current top + \item the operand stack + \item various GC related data structures (marking, free pool memory elements) + \item error handling (via setjmp/longjmp/jmp\_buf) + \item support for sub contexts, i.e. Nasal scripts calling other scripts, calling other scripts via naCall() etc +\end{enumerate} + +Look at some of the callbacks - the only way to know what data to operate on is by having a handle to the context, which in turn contains handles to the relevant program (opcodes), operand stack, frames, GC stuff and so on. Each variable that gets created via naNew*() needs to be tied to a context for GC'ing. + +All extension functions operate via naContexts -- so the context is basically the ``instance'' of the interpreter. Also, if we have multiple contexts around, for example using threading, naContexts are a way to keep things separate, even though we may have multiple threads running their own Nasal interpreter instance. + +\subsection{Using Nasal Sub Contexts} +\todo {document sub context API and usage, see cscope 'naSubContext(), and add code snippets'} + +Subcontexts are needed whenever an extension function is called which in turn invokes another Nasal function as a callback. The most common use in Nasal is using the \nasalapi{call}\fp\ library function in \nasalsourcefile{code.c} to explicitly call a function, while specifying the complete environment. Using the \nasalapi{call}\fp\ function is also the only way to do exception handling in Nasal. + +Additional examples on subcontext API usage can be found in the sort() implementation (sort\_cmp in \nasalsourcefile{lib.c}), where the extension function executes a callback that is passed via a naRef argument. Another example is to be found in the readline bindings (\nasalsourcefile{readline.c}), where the completion function can be provided as a Nasal callback. Also, the SQLite bindings (see \nasalsourcefile{sqlitelib.c}) provide another example on using Nasal sub contexts, where the \func{run\_query}\fp\ extension function provides support for running a Nasal-space callback. + +Sub contexts are usually used to issue a \nasalapi{naCall}\fp\ from inside a Nasal extension function. After use, sub contexts should be freed using \nasalapi{na\-Free\-Context}\fp. + +\section{Variables} +\todo{we can also look at automating bytefield'ing by dumping Nasal internals directly to Latex} +The main object type in Nasal is \type{naRef} and it either holds a reference to a Nasal object or it stores a number. A \type{naRef} is a union between a double-precision floating-point number and a pointer to another data type. Designating it as a pointer is done by setting a bitmask in the top bits of the double, which includes the whole exponent, sign, and a couple more bits in the mantissa. Setting the bits in this way makes the double a NaN (Not a Number, an invalid number) that will usually cause a floating-point error if used, since it is a singalling NaN (SNaN) versus a quiet NaN (QNaN). Depending on the system configuration (processor and OS), setting the bits has to be accomplished in different ways. For supported 64-bit systems/OS combinations, where all of the data in the pointer lies in the bottom 48 bits, the bits above that are set with a bitmask simple. For 32-bit systems, the layout in endianness-dependent (since it has to be in the ``top'' bits) and a magic number (see the \localmacro{REFMAGIC} macro) is stored in the top bits, again making it a NaN: + +\begin{lstlisting}[language=C] +/* On supported 64 bit platforms (those where all memory returned from + * naAlloc() is guaranteed to lie between 0 and 2^48-1) we union the + * double with the pointer, and use fancy tricks (see data.h) to make + * sure all pointers are stored as NaNs. 32 bit layouts (and 64 bit + * platforms where we haven't tested the trick above) need + * endianness-dependent ordering to make sure that the reftag lies in + * the top bits of the double */ + +#if defined(NASAL_LE) +typedef struct { naPtr ptr; int reftag; } naRefPart; +#elif defined(NASAL_BE) +typedef struct { int reftag; naPtr ptr; } naRefPart; +#endif + +#if defined(NASAL_NAN64) +typedef union { double num; void* ptr; } naRef; +#else +typedef union { double num; naRefPart ref; } naRef; +#endif +\end{lstlisting} + +If that is a bit confusing to understand, consider the following picture (for 64-bit systems):\\\\ +\begin{bytefield}[bitwidth=.5em]{64} + \bitheader{0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62} \\ + \begin{rightwordgroup}{64-bit \\ Pointer} + \bitbox{48}{Pointer's bottom 48 bits (data)} & \bitbox{16}{bitmask} \\ + \bitbox{64}{Full pointer -- all bits $\ge$ 48 must not be set} + \end{rightwordgroup} \\ + \begin{rightwordgroup}{Double \\ Numeric} + \bitbox{52}{Fraction} & \bitbox{11}{Exponent} & \bitbox{1}{$\pm$} \\ + \bitbox{64}{IEEE 754 double-precision floating point number} + \end{rightwordgroup} \\ +\end{bytefield} + +With this layout, we have a pointer that has 48 bits of data in its lower half overlaid on top of a double whose exponent, sign, and some of the mantissa are in the top 16 bits. Once these bits are set with a bitmask, the double becomes a NaN. For more on this, see \nasalsourcefile{data.h} and \nasalsourcefile{naref.h}. + +The pointers to the other types are stored in a \type{naPtr} union that contains all the Nasal types, some of which, like \type{naStr} and \type{naHash}, can be used from Nasal; others, like \type{naObj} and \type{naCode}, cannot be directly accessed from Nasal, but are instead used by the underlying C code. +\begin{lstlisting}[language=C] +typedef union { + struct naObj* obj; + struct naStr* str; + struct naVec* vec; + struct naHash* hash; + struct naCode* code; + struct naFunc* func; + struct naCCode* ccode; + struct naGhost* ghost; +} naPtr; +\end{lstlisting} + +These \type{naRefs} are the fundamental 'variable' structure of Nasal, and the closer one gets to the actual running of Nasal code, the more \type{naRefs} are used (e.g. from \nasalsourcefile{codegen.c} to \nasalsourcefile{code.c}, which is going from barely any \type{naRefs} to essentially as rich with \type{naRefs} as it gets). + +An interesting thing to note is that some of the attributes of private, internal objects, like a function, are implemented using \type{naRefs} instead of their ``raw'' counterparts, like \type{naFunc}*. This is probably because all the methods that work with the types, e.g. \func{naHash\_get}, are implemented with \type{naRefs} (and those use \func{PTR(foo).hash}, etc., to fetch the raw data type), and so it is often much more convenient to use those methods since there are no ``raw'' equivalents to use. It also could be for consistency, i.e. a \type{naRef} is always going to be a fixed size independent of application (it is, after all, just a pointer/double combination). Sometimes this leads to assumptions about the type of a member/variable. This document uses the convention of \type{naRef:$\langle$type$\rangle$} to denote assumptions about type, like \type{naRef:naHash} for hashes, \type{naRef:naCode/naCCode} for executable code, and \type{naRef:double} for numbers. Violating these assumptions may cause code to crash! + +\comment{The point of having naHash, naVec, naCode, naFunc and naGhost wrappers for the various lower level structures such as VecRec (for naVec) or HashRec (for naHash) is adding meta information, such as GC related fields, to each Nasal type, including the common \localmacro{GC\_HEADER} macro that is used by all Nasal types as the very first field.} + +\subsection{Scalars} +Nasal tries to keep a notion of ``scalars'' as numbers or strings, like Perl -- in fact, this is what the builtin \func{typeof}\fp\ function will return instead of ``number'' or ``string''. While numbers and strings are still separate types behind the scenes, Nasal will try to automatically convert from one to the other when running code, e.g. making a number into a string when concatenating it, or vice-versa for mathematical operators. Most of the Nasal extension function libraries will convert between them as well, but be warned that some do not! Those that do not use simple checks like \globalmacro{IS\_STR}\fp\ and \globalmacro{IS\_NUM}\fp\ instead of converting first using \func{naStringValue}\fp\ and \func{naNumValue}\fp; this means that only if a value literally represents a string or number will it be used as such. Simple ways to convert on the Nasal side are using concatenation with an empty string and addition with 0 or using \func{num}\fp. + +\subsection{Types} +Here's a reference to all of the raw types used in Nasal: + +\subsubsection{Strings/T\_STR/\type{naStr}} +The \type{naStr} struct stores a string's length and either its data (if it is less than 16 characters) or a pointer to its data. Unlike C, which uses null-termination to determine the length of a string, Nasal explicitly stores the length of a string so that it can contain any characters whatsoever -- though it is null-terminated as well, since C code often needs to deal with it like it actually was a C \type{char}* array. Note that when using \nasalapi{naStr\_fromdata}, only a copy of the data is stored, so that Nasal code can mutate the string without affecting the original bytes. + +By default strings are mutable, including results of concatenation or \func{substr}\fp. When used as a key in a hash, a particular string has its ``hashcode'' member set to non-zero, making it immutable. Using this method, constant strings in the code (literals enclosed in double- or single-quotes) are made immutable. + +API functions: +\begin{lstlisting}[language=C] +// String utilities: +int naStr_len(naRef s); // get the length of a string +char* naStr_data(naRef s); // pointer to null-terminated data +naRef naStr_fromdata(naRef dst, const char* data, int len); // set a string's data and length +naRef naStr_concat(naRef dest, naRef s1, naRef s2); // concatenate two strings +naRef naStr_substr(naRef dest, naRef str, int start, int len); // take a subscript of a string +\end{lstlisting} + + +\subsubsection{Vectors/T\_VEC/\type{naVec}} +Vectors are resizeable arrays with automatic reallocation, using a standard multiply-by-two rule for expanding. In comparison with bigger languages like Python, Nasal's vector operations are rather basic, but they do provide enough functionality for most uses. Most extensions can be scripted using Nasal ``classes'' or optimized as C code. + +API functions: +\begin{lstlisting}[language=C] +// Vector utilities +int naVec_size(naRef v); // get the size of a vector +naRef naVec_get(naRef v, int i); // get a specific element by index +void naVec_set(naRef vec, int i, naRef o); // set a specific element by index +int naVec_append(naRef vec, naRef o); // append to a vector +naRef naVec_removelast(naRef vec); // remove the last element +naRef naVec_removefirst(naRef vec); // remove the first element - only in SimGear! +void naVec_setsize(naRef vec, int sz); // set the size of a vector, padding with naNil() +\end{lstlisting} + +\subsubsection{Hashes/T\_HASH/\type{naHash}} +Hashes are the unordered, associative container type in Nasal (no fancy name like ``dictionary''). Each string used as a hash key is made immutable via having its ``hashcode'' set -- this is simply storage for a special number used in looking up and setting strings. +\todo{Only added as a quick reference, patch interpreter to create bytefield dumps for hashes?} + +API functions: +\begin{lstlisting}[language=C] +// Hash utilities: +int naHash_size(naRef h); // get the size of a hash - number of elements +int naHash_get(naRef hash, naRef key, naRef* out); // get a key - returns 1 if it is found +naRef naHash_cget(naRef hash, char* key); // get a key using char* - DEPRECATED! +void naHash_set(naRef hash, naRef key, naRef val); // set a key to a value +void naHash_cset(naRef hash, char* key, naRef val); // set a key using char* - DEPRECATED! +void naHash_delete(naRef hash, naRef key); // delete a key from a hash +void naHash_keys(naRef dst, naRef hash); // get a vector of all keys in the hash +\end{lstlisting} + +\subsubsection{Functions/T\_FUNC/\type{naFunc}} +A Nasal function is essentially a wrapper for executable objects, which can be \type{naCodes} (written in Nasal) and \type{naCCodes} (written in C, i.e. extension functions). This allows one common type for executing both of these. It is also the only one of these three types which should appear in Nasal space: the other two are more `raw' and need to be wrapped and/or bound to a context before they are exposed. Each \type{naFunc} stores three \type{naRefs}: \name{code}, \name{namespace}, and \name{next}. \name{code} is the \type{naRef:naCode/naCCode} that should get executed, \name{namespace} is the parent namespace of the function (i.e. the first level of recursion after the locals), and \name{next} is the \type{naRef:naFunc:naCode} that is the next link in the chain of namespaces. Note that the last two members are only applicable to \type{naCodes} since \type{naCCodes} do not have their own Nasal-space symbols. + +There is no API for functions. + +\subsubsection{Nasal Fuctional Code/T\_CODE/\type{naCode}} +This carries the data behind either a Nasal \nasalkeyword{func}\{\} expression or a complete parsed file/script. In either case, these objects are generated during parsing, in particular the ``code generation'' stage, and returned by \func{naParseCode}. They consist of a \name{constants} block -- basically a static heap of allocated storage. This contains \type{naRef} constants, both scalars and \nasalkeyword{func}\{\} constructs, the bytecode of the function, and info on line numbers versus opcode indices. These are accessed separately using macros in \nasalsourcefile{data.h}, in particular since the constants are \type{naRefs} while the others are \type{unsigned shorts}. + +There is no API for code objects. + +\subsubsection{Ghosts/T\_GHOST/\type{naGhost}} +\todo{document examples to be found in iolib.c} +Garbage Collected Handle to Outside Things, i.e. raw C pointers wrapped in a \type{naGhost} struct and managed via the GC, using explicitly registered allocation/release functions for each ghost type. + +API functions: +\begin{lstlisting}[language=C] +// Ghost utilities: +typedef struct naGhostType { + void(*destroy)(void*); + const char* name; +} naGhostType; +naRef naNewGhost(naContext c, naGhostType* t, void* ghost); +naGhostType* naGhost_type(naRef ghost); +void* naGhost_ptr(naRef ghost); +int naIsGhost(naRef r); +\end{lstlisting} + +\subsubsection{Extension functions/\type{naCFunction}/\type{naCCode}} +\todo{document existing functions or rather the way they are implemented, standard library ?} +% also see: http://wiki.flightgear.org/Howto:Extend_Nasal +Nasal Extension functions are usually functions with static linkage written in C and callable from Nasal. They can, of course, work with C variables, like from a pointer stored in a Nasal ghost variable, from a C library, or anything else. They can also perform operations on Nasal variables through the Nasal API (see \nasalsourcefile{nasal.h} and the next section) -- essentially anything that can be done from Nasal, and in a potentially more efficient manner because it is compiled down to native machine code. Each of these extension functions must match this signature: + +\begin{lstlisting}[language=C] +// The function signature for an extension function: +typedef naRef (*naCFunction)(naContext ctx, naRef me, int argc, naRef* args); +\end{lstlisting} + +This uses a scheme like the \func{main}\fp\ function where there is \name{argc} -- the number of arguments -- and \name{args} -- a pointer to the actual arguments, which are \type{naRefs} in this case. The \name{me} reference is like ``self'' in general Python usage or ``this'' in C++, and is set to the value of left-hand side of an expression if it is a method call (e.g. the value of foo in \verb$foo.bar()$) or is \nasalkeyword{nil} otherwise (e.g. even in \verb$foo[`bar']()$, or just \verb$fn()$). (Note that this would primarily be used for methods operating on ghost objects.) The context is of course the currently executing context, which is used to bind new \type{naRefs} to, etc. + +\begin{lstlisting}[language=C] +// Extension functions *must* be static and convention is to use names that start with `f_' +static naRef f_demo(naContext ctx, naRef me, int argc, naRef* args) +{ + // Write your C code here + return naNil(); +} +\end{lstlisting} + +\section{The Main Nasal API in C} +All of the C API is included in the \nasalsourcefile{nasal.h} file, which in turn gets included by every module or application wanting to use Nasal. It includes the type-specific manipulation functions shown above along with all of the types (\type{naRef}, \type{naPtr}, etc.) and other parts of the API. + +%\subsection{String Implementation} +%\subsection{Vector Implementation} +%\subsection{Hash Implementation} + +\section{How to Create an API} +\section{Using CPPBind} +Also see: \url{http://wiki.flightgear.org/Nasal/CppBind}. + +C++Bind is a really cool API for interfacing with Nasal through C++ classes, methods, and advanced STL functionality. + +\part{Internals: Parsing through Running} +\comment{ +\section{Code Generation Steps} + +\todo{use different block styles for FILE/PROGRAM input, parser, codegen, VM ?} +% Define block styles +\tikzstyle{block} = [rectangle, draw, fill=blue!20, text width=5em, text centered, rounded corners, minimum height=4em] +\tikzstyle{line} = [draw, -latex'] + +% see http://www.texample.net/tikz/ + +\begin{tikzpicture}[node distance = 2cm, auto] + + % Place nodes + \node [block] (source) {Source Code}; + \node [block, below of=source] (tokenizer) {Tokenize}; + \node [block, below of=tokenizer] (parser) {Parse}; + \node [block, below of=parser] (codegen) {Generate Code}; + \node [block, below of=codegen] (vm) {Run Code (VM)}; + \node [block, right of=vm] (GC) {Garbage Collector (GC)}; + + % Draw edges + \path [line] (source) -- (tokenizer); + \path [line] (tokenizer) -- (parser); + \path [line] (parser) -- (codegen); + \path [line] (codegen) -- (vm); + \path [line] (vm) -- (GC); + +\end{tikzpicture} +} + +\section{Overview of Parsing} +``Parsing'' a file involves a many-tiered hierarchy of transformations that results in a piece of executable code stored in a newly-allocated \type{naCode} object. This is essentially what a Nasal \nasalkeyword{func}\{$\langle$\textit{contents of file}$\rangle$\} expression would do, but of course it is through parsing files that function expressions can be generated, not the other way around. + +Parsing of a script starts out in \nasalsourcefile{parse.c}, the Nasal parser, which initializes a new parse object (\type{struct Parser} {\tt p}) and then runs the string through the lexer, via \func{naLex}\fp\ \citesourcefile[338]{lex.c}, generating list of ``tokens'' that represent each lexeme (builtin Nasal keyword/operator), symbol, and constant. This then is returned to \nasalsourcefile{parse.c}, which runs a block parser over the tokens, adding tree structure ``up'' and ``down''. After this the precedence,,,,,,, parser goes throuhin blocks and transforms them into a structured representation of operations. This list, though still made of tokens, represents a more abstract view of the expression that is being parsed, but in a form that is easier for the code generation to understand due to the fact that operators are tightly connectected with their often complex operands. Finally, the expression list is given to \func{naCodeGen}\fp\ \citesourcefile[702]{codegen.c}, which takes the tokens and creates opcodes -- low-level instructions that will later be executed by the Nasal Virtual Machine each time the function is called. The code object (as returned by \func{naCodeGen}) is then returned from \func{naParseCode}\fp, to be saved to a \type{naCode} object or, by extension, a \type{naRef} referencing such. + +\subsection{Lexing} +\todo{maybe split this, i.e. general section on parsing, with all steps, tokenize, lexing, parse tree generation? Also, parsing can be visualized using tikz graphs with left-hand and right-hand tokens, VM stuff should be introduced after parsing probably} + +``Lexing'' is the process of converting a stream of characters (which is hard for a computer to directly read) to a series of objects (\type{structs} in C) that are easier for a computer understand. In Nasal, a string is made into a linked list of \type{struct Tokens}, each of which can represent either a ``lexeme'' (a symbol that has special meaning in Nasal, like `+=') or some other type of token, like a string or numeric literal, or a symbol. Each \type{Token} can store a string and its length or a double in addition to its type (\Tok{Literal}, etc.) and its line number. + +\subsection{Block and Precedence Parser} +\textit{[Note: for this section, I can do a good job of explaining how the algorithms work in an abstract manner, but if you want to understand how the C functions fit together to do this work or learn what exactly is done, then I recommend reading through the relevant functions in \nasalsourcefile[238]{parse.c} (\textcolor{func}{precChildren}, \textcolor{func}{precBlock}, and \textcolor{func}{parsePrecedence}); it really isn't a difficult task and will set you up for being able to understand the algorithm and modify it ---end note]} + +The first job that \nasalsourcefile{parse.c} does is create the tree of tokens with regard to adding ``blocks''. Some tokens open a block and have a matching ending token; namely parentheses (`(' and `)'), brackets (`[' and `]'), and curly braces (`\{' and `\}'). When the block parser comes upon an opening token, it parses succesive tokens into children of the opening one until it finds an ending one. If another opening brace is encountered, another block parser parses that and gets to use up the tokens in the stream until its block has ended, which then returns control back to the previous block parser at the token after the ending one. A parse error occurs if a closing brace is encountered that does not match the token that started the block or if the parse finds the end of the file without encountering a suitable ending token. Aside from matching pairs, blockoids (\textcolor{keyword}{if}/\textcolor{keyword}{elsif}/\textcolor{keyword}{else}, \textcolor{keyword}{for}/\textcolor{keyword}{while}, \textcolor{keyword}{func}, etc.) are also parsed at this stage. Parts of the blockoid structure (parethesis as "arguments" to the loopoid, braces or braceless bodies, and extra else/elsif's after an if) get put as children of the blockoid token. Parethesis and braces obviously get parsed by the previously described system, and a braceless body gets parsed by a special one which looks for a semi-colon, miscellaneous end-of-block (like an extra closing parenthesis or even an else token), or end of the file. The middle condition allows the end-of-block to be parsed at a higher level. Consider this Nasal statement: + +\begin{lstlisting}[language=nasal] +setlistener("/sim/foo", func print("activated")); +\end{lstlisting} + +The function body parser reads ``print'', then a matching pair of parentheses, and finds a closing parenthesis. This parenthesis looks out of place, but it actually belongs to the token after setlistener, so to allow the parse to succeed the extra parenthesis must be declared as one-past-end-of-block and be the next token the parent parser sees -- which will successfully end the block since they match. + +Anyways, a blockoid construct ends up with potentially three children: a parenthesized argument list, a body with braces or without (braceless bodies end up as children of a \Tok{Brace}, so the body always has braces going into the next phase of parsing), and if the blockoid is an ``if'' then it can have an else or elsif as its last child. + +The next part of parsing is one of the most fun ones. The precedence parser creates a binary tree out of the blocks of tokens that were previously generated. There are three transformations that this parser can handle: \Prec{Binary}/\linebreak[0]\Prec{Reverse}, \Prec{Prefix}/\linebreak[0]\Prec{Suffix}, and no precedence (single token). \Prec{Binary} and \Prec{Reverse} are opposites; same with \Prec{Prefix} and \Prec{Suffix}. The main point of precedence parsing is to break a long stream of tokens into a binary tree with a large expression formed by an operator and optional expressions on either side. Each unary or binary operator is given a precedence label at the top of parse.c. That table in order of parse-first--parse-last is as follows: +\\ +\begin{longtable}{| r || l | l | l |} +\hline +\bf{Precedence:} & \bf{Token(s):} & & \endhead +\hline +\PREC{REVERSE} & \TOK{SEMI} & \TOK{COMMA} & \\ +\hline +\PREC{SUFFIX} & \TOK{ELLIPSIS} & & \\ +\hline +\PREC{PREFIX} & \TOK{RETURN} & \TOK{BREAK} & \TOK{CONTINUE} \\ +\hline +\PREC{REVERSE} & \TOK{ASSIGN} & \TOK{PLUSEQ} & \TOK{MINUSEQ} \\ + & \TOK{MULEQ} & \TOK{DIVEQ} & \TOK{CATEQ} \\ +\hline +\PREC{REVERSE} & \TOK{COLON} & \TOK{QUESTION} & \\ +\hline +\PREC{PREFIX} & \TOK{VAR} & & \\ +\hline +\PREC{BINARY} & \TOK{OR} & & \\ +\hline +\PREC{BINARY} & \TOK{AND} & & \\ +\hline +\PREC{BINARY} & \TOK{EQ} & \TOK{NEQ} & \\ +\hline +\PREC{BINARY} & \TOK{LT} & \TOK{LTE} & \TOK{GT} \\ + & \TOK{GTE} & & \\ +\hline +\PREC{BINARY} & \TOK{PLUS} & \TOK{MINUS} & \TOK{CAT} \\ +\hline +\PREC{BINARY} & \TOK{MUL} & \TOK{DIV} & \\ +\hline +\PREC{PREFIX} & \TOK{MINUS} & \TOK{NEG} & \TOK{NOT} \\ +\hline +\PREC{SUFFIX} & \TOK{LPAR} & \TOK{LBRA} & \\ +\hline +\PREC{BINARY} & \TOK{DOT} & & \\ +\hline +\end{longtable} + +When the precedence parser gets run, it starts at the top row, and if a condition is fullfilled, then the linked-list of Tokens is split into top (the matching token), left, and right (which are added as the binary children of top, or 0 if there is none to add). The left and right tokens are binary trees formed by extra calls to the precedence parser, with four different rules according the the precedence type. The prefix/suffix operators are simple: they are only recognized at the beggining (if prefix) or end (if suffix) of the list. The tokens from the one inside of the matching token to the end of the opposite side are parsed as either the left or right child (this is right for prefix, left for suffix). Any children are precedence parsed as well and added on the other side, or 0 if there are no children. (Note: children are only going to be present on parentheses or brackets in the role of a suffix operator.) + +Binary and reverse operators are a bit different: they can occur anywhere \emph{but} the endcaps (not the start token, not the end one, but anywhere in between). For binary operators, the rightmost one is grabbed, and vice-versa for reverse operators. (The way I remember this is that the statement separator (;) is a reverse, but the top of the list of them is going to be the leftmost ones; thus binary operators must have the top be the rightmost one, opposite of reading order.) All the tokens from the start to one left of the operator is parsed as the left child, and similarly for the right child. One side is parsed at the same precedence (because there might be more of the same precedence level that lie undiscovered) and the other is parsed at the next precedence level. + +If the parser reaches a state where the end and start of the list are the same, then that token is added to the tree as either a leaf (if it has no children) or another branch (with both left and right pointers pointing to the top of the precedence-parsed tree formed from its children). The end result of this sorting is a tree of tokens, where each may have 0, 1, 2, or duple children (duple meaning that both children are the same, which is true in the last case we discussed). This tree for an example file looks something like this: + +\todo{ this should probably be a new tex function to create parse trees for Nasal expressions and visualize them accordingly, i.e. enable parser debugging to get a console dump (WIP!) } + +\begin{lstlisting}[language=nasal] +var x = 1.5 - 0.5; +\end{lstlisting} + +\begin{lstlisting} +// Notation: +// Prefix Name = value (Precedence) +// Prefix: +// l Left child +// r Right child +// b Both children (left == right) +// . (Spacer) +// Precedence: what rule was used to parse + +TOP (Synthetic) +b SEMI (Reverse) +. l ASSIGN (Binary) +. . l VAR (Prefix) +. . . r SYMBOL = x (None) +. . r MINUS (Binary) +. . . l LITERAL = 1.5 (None) +. . . r LITERAL = 0.5 (None) +. r EMPTY (Synthetic) +\end{lstlisting} + +\comment{ +%\tikzstyle{vertex}=[draw,fill=black!15,circle,minimum size=20pt,inner sep=0pt] +\tikzstyle{vertex}=[draw,fill=black!15,minimum size=20pt,inner sep=0pt] + +\begin{tikzpicture}[font=\sffamily,thick,level/.style={sibling distance=50mm/#1}] + \node[vertex] {TOK\_SEMI} + child { + node[vertex] {TOK\_ASSIGN} + child { + node[vertex] {TOK\_VAR} + } + } + child { + node[vertex] {TOK\_SYMBOL} + }; +\end{tikzpicture} +%\comment{ +\\\\ %blank lines +%\begin{tikzpicture}[font=\sffamily,thick,level/.style={sibling distance=50mm/#1}] +\begin{tikzpicture}[font=\sffamily,thick,level/.style={sibling distance=100mm/#1}] + \node[vertex] {TOK\_TOP} + child { + node[vertex] {TOK\_SEMI} + child { + node[vertex] {TOK\_ASSIGN} + child { + node[vertex] {TOK\_VAR} + } + child { + node[vertex] {TOK\_MINUS} + child { + node[vertex] {TOK\_LITERAL\\1.5} + } + child { + node[vertex] {TOK\_LITERAL\\0.5} + } + } + } + child { + node[vertex] {TOK\_EMPTY} + } + }; +\end{tikzpicture} +\\\\ +\begin{tikzpicture}[font=\sffamily,thick,level/.style={sibling distance=50mm/#1}] +%\tikzset{text width=5.8em, text centered} +\tikzset{every tree node/.append style={draw}} +\Tree [.\Token{TOP} + \edge node[auto=right]{\func{LEFT}\fp}; \Token{SEMI} + %\leftToken{SEMI} + \Token{OTHER} + \edge node[auto=left]{\func{RIGHT}\fp}; \Token{SEMI} + %\leftToken{SEMI} + ] +\end{tikzpicture}%} + +% Currently we cannot fit much here... +\begin{tikzpicture} +\tikzset{level distance=40pt, sibling distance=6pt, text width=5.8em, text centered} +\tikzset{every tree node/.append style={draw}} +\tikzstyle{every node}=[font=\small] +\Tree [.{{\sc Tok\_Top}} + [.{{\sc Tok\_Semi}} + [.{{\sc Tok\_Assign}} + the + ] + [.{{\sc Tok\_Literal} (value: 1.5)} cat ] + ] + [.{{\sc Tok\_Semi}} + [.{{\sc Tok\_Assign}} + the + ] + [.{{\sc Tok\_Todo} (value: 1.5)} cat ] + ] + ] +\end{tikzpicture} +} + +\section{Code Generation -- producing bytecode} + +Code generation is the next step of parsing and is implemented in the file \nasalsourcefile{codegen.c}. It takes the expression tree generated by the lexer and \nasalsourcefile{parse.c} recursively traverses it to create opcodes -- little ``numbers'' (or an \type{enum}) that are interpreted by the Nasal Virtual Machine as instructions. With the exception of blockoids (which have a slightly different structure with up to three children), the token structure that code generation gets is a tree where the most important (highest precedence) tokens are on top, and tokens of lesser- and equal-importance tokens on the sides; laws of grouping are followed as well (like parenthesis and such) by having both left and right children point to the top of the tree for the expression inside of the block. + +The example above shows what is really neat about this approach: when it is parsing, say, an assignment operator ($=$), it knows that the left side is going to be a symbol and that the right side can be any type of expression. Seeing it this way makes much more sense then first seeing the symbol, looking ahead for an assignment, and then hoping the rest of the tokens parse correctly -- that would be a more text-based approach and it is not scalable for complicated syntaxes with oodles of operators with different semantics. + +The method used in \nasalsourcefile{parse.c} allows for the minimal-step, maximally-recursive code generator present in Nasal: parsing a mathematical operator is as simple as generating the left and right expressions, and then emitting the correct VM instruction afterwards -- the function handling the mathematical operator does not need to know what lives below the operator, only that it exists. Each step of the generator (implemented in the \nasalapi{gen\br Expr} function and surrounding static functions) takes the smallest step it can and lets the parse tree work itself out by calling helper functions to handle expressions and expression lists. + +Local macros helping with abstraction include: + +\begin{enumerate} +\item \localmacro{LEFT(tok)} to get the left-hand branch of a token (i.e. \verb$tok->children$). +\item \localmacro{RIGHT(tok)} to get the right hand branch of a token (i.e. \verb$tok->lastChild$). +\item \localmacro{BINARY(tok)} to check if a token is a binary expression (if there is only two children: \verb$tok->children$ and \verb$tok->lastChild$, and nothing in between, meaning that they reference each other in their \name{next/prev} members). +\end{enumerate} + +The low-level workhorses of the code generator are the \nasalapi{emit}\fp\ and \nasalapi{emit\br Immediate}\fp\ functions, which directly write bytecode into the parser structure's codegen pointer. + +\begin{lstlisting}[language=C] +static void emit(struct Parser* p, int val) +{ + // Reallocate if necessary + if(p->cg->codesz >= p->cg->codeAlloced) { + int i, sz = p->cg->codeAlloced * 2; + unsigned short* buf = naParseAlloc(p, sz*sizeof(unsigned short)); + for(i=0; icg->codeAlloced; i++) buf[i] = p->cg->byteCode[i]; + p->cg->byteCode = buf; + p->cg->codeAlloced = sz; + } + // And add our next opcode + p->cg->byteCode[p->cg->codesz++] = (unsigned short)val; +} +\end{lstlisting} + +\begin{lstlisting}[language=C] +static void emitImmediate(struct Parser* p, int val, int arg) +{ + emit(p, val); + emit(p, arg); +} +\end{lstlisting} + +This ``immediate'' value is associated with the opcode and retrieved later in the VM stage. In general it is just an \type{unsigned short}, but it can mean several things. + +Some immediate-mode opcodes refer to the constants table -- this is a chunk in the \type{naCode} which holds scalar constants (string/numeric literals) and code constants (\nasalkeyword{func}\{\} blocks in the code). These opcodes always need the constants index added when \nasalapi{emit\br Imme\-diate}\fp\ is called, using either \nasalapi{find\br Constant\br Index}\fp\ or a precomputed index, such as returned from \nasalapi{new\br Constant}\fp. Of this type, there are only these three: +\begin{enumerate} + \item \OP{PUSHCONST} + \item \OP{MEMBER} + \item \OP{LOCAL} +\end{enumerate} + +In addition, these two use their immediate value to represent their number of arguments; this is because the VM needs to be able to pop the right amount of arguments from the operand stack: +\begin{enumerate} +\item \OP{FCALL} +\item \OP{MCALL} +\end{enumerate} + +And lastly, branching instructions are also immediate-mode; their immediate value refers to the index of the command to jump to. The specific opcodes are: +\begin{enumerate} +\item \OP{JIFTRUE} +\item \OP{JIFNOT} +\item \OP{JIFNOTPOP} +\item \OP{JIFEND} +\item \OP{JMP} +\item \OP{JMPLOOP} +\end{enumerate} + +When jumping backwards, the address is saved away earlier and emmitted with the \Op{Jmp} instruction, but when jumping forwards, the code it is jumping to does not exist yet and therefore its index is not known. To get around that, there are some functions to handle forward-jumps. \nasalapi{emit\br Jump} makes a new jump with a dummy index: + +\begin{lstlisting}[language=C] +// Emit a jump operation, and return the location of the address in +// the bytecode for future fixup in fixJumpTarget +static int emitJump(struct Parser* p, int op) +{ + int ip; + emit(p, op); + ip = p->cg->codesz; + emit(p, 0xffff); // dummy address + return ip; +} +\end{lstlisting} + +As suggested by the comment, \nasalapi{fix\br Jump\br Target} is what comes along at the desired jump-to point and adds in the correct index: + +\begin{lstlisting}[language=C] +// Points a previous jump instruction at the current "end-of-bytecode" +static void fixJumpTarget(struct Parser* p, int spot) +{ + p->cg->byteCode[spot] = p->cg->codesz; +} +\end{lstlisting} + +For typical usage, here's a stripped down \nasalapi{gen\br If} example: + +\begin{lstlisting}[language=C] +static void genIf(struct Parser* p, struct Token* tif, struct Token* telse) +{ + int jumpNext, jumpEnd; + genExpr(p, tif->children); // the test + jumpNext = emitJump(p, OP_JIFNOTPOP); + genExprList(p, tif->children->next->children); // the body + jumpEnd = emitJump(p, OP_JMP); + fixJumpTarget(p, jumpNext); + if(telse) { + if(telse->type == TOK_ELSIF) genIf(p, telse, telse->next); + else genExprList(p, telse->children->children); + } else { + emit(p, OP_PUSHNIL); + } + fixJumpTarget(p, jumpEnd); +} +\end{lstlisting} + +The first jump points to right after the second jump, since \nasalapi{fix\br Jump\br Target} is called after \nasalapi{emit\br Jump} is called the second time. After the \nasalkeyword{else}\{\} clause is handled, the second jump is made to point after all of that. The power in this is allowing arbitrary chunks of code (e.g. as emitted from \nasalapi{gen\br Expr\br List}) to be jumped over. + +\subsection{Initialization} + +Code generation itself is started in \nasalapi{na\br Code\br Gen}\fp\ where the code generation related data structures are allocated and initialized, including: + +\begin{enumerate} +\item an \type{naCode}* code object +\item argument list processing +\end{enumerate} + +Afterwards, \nasalapi{gen\br Expr\br List}\fp\ is invoked, which in turn recursively invokes itself and \nasalapi{gen\br Expr}\fp\ while traversing the semi-colon-seperated statements in the parse tree, the latter is the primary workhorse of the code generator in that it will recognize and turn tokens into bytecode primitives. + +\subsection{Constants Table} + +This stores constants used in a function's body, both scalars and code. Implemented during codegen as a \type{naVec} for the purposes of cheap alloc handling, this gets turned into a static table as part of the \type{naCode} structure. \nasalapi{internConstant}\fp\ is used to return a reference to the existing constant if one already exists; it relies on \nasalapi{newConstant}\fp\ to add the constant if needed. Code for both (in reverse order of declaration): + +\begin{lstlisting}[language=C] +// Interns a scalar (!) constant and returns its index +static int internConstant(struct Parser* p, naRef c) +{ + int i, n = naVec_size(p->cg->consts); + if(IS_CODE(c)) return newConstant(p, c); + for(i=0; icg->consts, i); + if(IS_NUM(b) && IS_NUM(c) && b.num == c.num) return i; + else if(IS_NIL(b) && IS_NIL(c)) return i; + else if(naStrEqual(b, c)) return i; + } + return newConstant(p, c); +} + +static int newConstant(struct Parser* p, naRef c) +{ + int i; + naVec_append(p->cg->consts, c); + i = naVec_size(p->cg->consts) - 1; + if(i > 0xffff) naParseError(p, "too many constants in code block", 0); + return i; +} +\end{lstlisting} + +\section{The Code Generation API} +\todo{document the codegen.c APIs?} + +\section{Code Generation Examples} +\todo{discuss loops, function calls, methods?} + +\section{Virtual Machine: running code} +As mentioned before, the Nasal bytecode gets executed in \nasalsourcefile{code.c} using an infinite interpreter loop with a huge switch/case block in the form of the \func{run}\fp\ function in \nasalsourcefile{code.c}. This is the ``Virtual Machine'' (VM) of Nasal. In general, machines take some form of operations (e.g. Nasal bytecode) and execute them based upon other factors, like other inputs, and then produce an output of some kind. (A \emph{virtual} machine is simply such a machine that is implemented in software not hardware -- e.g. C/C++ code versus circuit boards). Some of the simplest machines are stack machines; this is what is used for the Nasal VM, stack machines are generally a popular concept, and e.g. also used by Java. The Nasal stack machine uses two main stacks and \emph{pushes} and \emph{pops} from those stacks. Each stack is an array of variables with a fixed size -- exceeding this size is an error. The first stack is where all the opcodes are stored and it is for all purposes of type \type{unsigned short} or \type{int}, since each opcode is part of an enumeration. This also allows other integers to live on the stack as well (more on this later). The other stack is made up of \type{naRefs}, which are the ``operands'' that the opcodes operate on. + +For most typical opcodes, the VM pops some arguments from the stack -- that is, it takes the top item on the stack and saves it to a variable if needed, then it decrements the top of the stack so that the popped argument ``disappears'' from the stack. After performing the operation, the VM will push a result back onto the stack -- this does the opposite of popping as it increments the top of the stack and sets the new top item. Thus pushing makes a ``new'' item on the top of the stack while popping takes one away. Eventually this change in state cascades down as a result of operations and a useful output is acheived. While the Nasal VM can do a fair amount of variable-handling operations on its own, \type{naCFunctions} can add more operations (e.g. \func{f\_setsize}\fp) or can provide access to anything accessible from C space, like \func{f\_print}\fp\ and the io library do. + +These two stacks live in different places. The opcode stack lives in the \type{naCode} object under the constants block and is extracted using the \globalmacro{BYTECODE}\fp\ macro defined in \nasalsourcefile{data.h}, which typecasts the \type{naRef} to an \type{unsigned short}* (see \nasalsourcefile[147]{data.h}, line 147). The ``cursor'' for the bytecode is stored in the current frame's \name{ip} member. A common operation is then \type{int} \verb$op = $\func{BYTECODE}\verb$(cd)[f->ip++];$ (which is used in \nasalsourcefile{code.c} to retrieve the opcode and/or an argument, implicitly typecasting to an integer). By this method, the opcode ``stack'' is not a ``true'' stack in the fact that it is immutable (should {\bf not} be changed except using stack operations like push/pop!) and can only move one direction (adds to it during code generation, moves down it during the running of the code). The other stack -- the one of \type{naRefs} -- is actually a real stack. The items are stored in the context's \name{opStack} member, which has \localmacro{MAX\_STACK\_DEPTH} number of terms, and its cursor is stored in the \name{opTop} member. Note that indexing \name{opStack} with the current \name{opTop} index is not a valid operation -- the true top item on the stack is one below is at \verb$STK(1)$ or \verb$ctx->opTop-1$. There are various helper macros to help out with operations on this stack, like \func{PUSH}\fp\ and \func{POP}\fp\ and in particular \localmacro{STK(n)}, which directly retrieves an item on the stack (where $n=1$ is the top member as previously mentioned, and $n=2$ is the second, etc.). Note that the \func{STK}\fp\ macro requires manual movement of the \name{opTop} index, i.e. the programmer has to use \verb$ctx->opTop--$ or \verb$ctx->opTop-=2$. For more info, see code.c, line 246 for \func{PUSH}\fp, and lines 520--523 for the other macros. + +Also, there are two other relevant stacks. The first one is the stack of frames. Since a function can be called in an overlapping fashion (e.g. a function calling itself recursively, or being called in a multithreaded fashion from different threads), Nasal needs separate places to store information for each separate call. This stack is made up of \type{struct Frames} and lives in the \name{fStack} member, which has size of \localmacro{MAX\_RECURSION}, and its index is in the \name{fTop} member. New calls are pushed in at the \name{fTop} index and the current frame is \verb$ctx->fStack[ctx->fTop-1]$ while the first frame is \verb$ctx->fStack[0]$. + +\subsection{An example} +To take an example of the VM in action, let's say that we execute this Nasal statement: + +\begin{lstlisting}[language=nasal] +var foo = 1.5-0.5; +\end{lstlisting} + +This takes and sets the local variable ``foo'' with the result of 1.5 minus 0.5 (code generation does not optimize any). This would produce a stack of opcodes like this: + +\todo{all these examples are neat and important, but tedious and error-prone to create: we should automate the creation of them using our Nasal/LaTex hacks, so that we can dump the stacks to the console and even turn them into nice "stack tables" to be used here} + +\begin{verbatim} +Stack of op codes: Stack of arguments: +[start] ... ctx->opTop +OP_PUSHCONST [end] +00003 +OP_PUSHCONST +00004 +OP_MINUS +OP_PUSHCONST +00005 +OP_SETLOCAL +... +OP_RETURN +\end{verbatim} + +The first two opcodes are \Op{Pushconst}s, which take a constant and pushes it onto the (previosuly empty) stack at the top. This illustrates the fact that each function call starts with a clean stack of operands, and all constants have to be initialized. This particular one points to constant `3', which should hold an \type{naRef} with it's number set to 0.5. Then we push another number, which will be 1.5. Then we get this stack: + +\begin{verbatim} +Stack of op codes: Stack of arguments: +... ... ctx->opTop +OP_MINUS naRef 1.5 STK(1) +OP_PUSHCONST naRef 0.5 STK(2) +00005 [end] +OP_SETLOCAL +... +OP_RETURN +\end{verbatim} + +The first opcode is \Op{Minus}, which takes the first argument (1.5) and subtracts the second (0.5) and places the result (1.0) where the second used to be, then decrements the top of the stack. The stack now looks like this: + +\begin{verbatim} +Stack of op codes: Stack of arguments: +... ... ctx->opTop +OP_PUSHCONST naRef 1.0 STK(1) +00004 [end] +OP_SETLOCAL +... +OP_RETURN +\end{verbatim} + +Now we see \Op{Pushconst} and a number after it. This push operation takes an argument of type \type{int} from the stack of opcodes, not \type{naRefs}, and retrieves the constant \type{naRef} stored at the specified index in the constants block of the currently executing code using the \localmacro{CONSTARG}\fp\ macro \citesourcefile[520]{code.c}. During code generation, this constant is saved away inside of the code's constant block for each required lvalue, and this opcode pushes the correct one onto the stack -- which should be a \type{naRef} representing ``foo'' and is pushed in before the result of the \Op{Minus}, setting us up for the next step: + +\begin{verbatim} +Stack of op codes: Stack of arguments: +... ... ctx->opTop +OP_SETLOCAL naRef foo STK(1) +... naRef 1.0 STK(2) +OP_RETURN [end] +\end{verbatim} + +We finally get to \Op{Setlocal}, which sets a local variable (i.e. one using the `var' keyword) to a value. It takes the first argument on the stack as the lvalue (symbolic name) of the variable and the second as the value to set it to. In this case, we see those are ``foo'' and 1, respectively, and so the variable foo correctly gets set to 1. Note that this operation does not explicitly ``return'' anything, i.e. it does not push a `result', but it does have the implicit return of the value set, since that is the last argument left on the stack (since the \Op{Setlocal} operation only moves down 1 on the stack). This illustrates an interesting feature of Nasal: it always has its current working state and every operation returns \emph{something}. We will see this in action in the next paragraph. + +\begin{verbatim} +Stack of op codes: Stack of arguments: +... ... ctx->opTop +OP_RETURN naRef ?? STK(1) +\end{verbatim} + +We execute some more statements in between and eventually get to a return opcode -- this is required otherwise the Nasal VM will get stuck in an infinite loop and possibly do some very weird things. Anyways, sometimes this return is implicit and is synthesized by the code generation, if so it returns the first argument on the stack -- remember how we called it the ``current working state''? An equivalent expression that makes this return explicit goes like so: + +\begin{lstlisting}[language=Nasal] +return (...); +\end{lstlisting} + +Substitue the last expression you want to execute into the parentheses and you are set. A great mistake would be to say ``Oh, I just need to type return-$\langle$semicolon$\rangle$ and I'll be set.'' This is incorrect, since code generation makes an \Op{Pushnil} before any return statement like this: + +\begin{lstlisting}[language=Nasal] +return (...); +\end{lstlisting} + +Thus it would really return nil, not the last expression that was evaluated. See line 631 of \nasalsourcefile[631]{codegen.c} for more information. + +\todo{we should generalize this, turn it into a command and use it as a template for LaTex-based stack diagrams that can be emitted from Nasal directly} +\usetikzlibrary{shapes.multipart} +\begin{tikzpicture}[stack/.style={rectangle split, rectangle split parts=#1,draw, anchor=center, fill=white}] + \node[stack=5] { + \nodepart{one}\OP{RETURN} + \nodepart{two}... + \nodepart{three}... + \nodepart{four}... + \nodepart{five}... + }; +\end{tikzpicture} + +\subsection{VM Operators/Opcodes} +Here is a semi-comprehensive list of all the operators and their functions. + +\subsubsection{Unary operators} +Operators that modify STK(1) in place: +\begin{description} + \item \OP{NOT} \label{op:NOT}\label{op:Not} Boolean inverse (i.e. \verb$!a$, $\neg a$). + \item \OP{NEG} \label{op:NEG}\label{op:Neg} Additive inverse (i.e. \verb$-a$, $-a$). +\end{description} + +\subsubsection{Binary operators} +Operators that pop two arguments and push a result: +\begin{description} + \item \OP{PLUS} \label{op:PLUS} \label{op:Plus} Addition (i.e. \verb$a+b$, $a + b$). + \item \OP{MINUS}\label{op:MINUS}\label{op:Minus} Subtraction (i.e. \verb$a-b$, $a - b$). + \item \OP{MUL} \label{op:MUL} \label{op:Mul} Multiplication (i.e. \verb$a*b$, $a\times b$). + \item \OP{DIV} \label{op:DIV} \label{op:Div} Division (i.e. \verb$a/b$, $a\div b$). + \item \OP{CAT} \label{op:CAT} \label{op:Cat} Concatenate either two vectors or two strings (i.e. \verb$a~b$). + \item \OP{LT} \label{op:LT} \label{op:Lt} Strictly less-than (i.e. \verb$ab$, $a > b$). + \item \OP{LTE} \label{op:LTE} \label{op:Lte} Less-than-or-equal-to (i.e. \verb$a<=b$, $a\leq b$). + \item \OP{GTE} \label{op:GTE} \label{op:Gte} Greater-than-or-equal-to (i.e. \verb$a>=b$, $a\geq b$). + \item \OP{EQ} \label{op:EQ} \label{op:Eq} Equality or equivalence (i.e. \verb$a==b$, $a\equiv b$; tests for numerical esuality if possible and acts recursively on hashes and vectors besides comparing pointers). + \item \OP{NEQ} \label{op:NEQ}\label{op:Neq} Non-equality/equivalence (i.e. \verb$a!=b$, $\neg(a\equiv b)$). +\end{description} + +\subsubsection{Push and/or pop operations} +Operations that push or pop a \type{naRef} directly from the stack: +\begin{description} + \item \OP{POP} \label{op:POP} \label{op:Pop} Pop one \type{naRef} off of the stack (actually, it just moves the top of the stack down one). + \item \OP{DUP} \label{op:DUP} \label{op:Dup} Push a duplicate of the top item. + \item \OP{DUP2}\label{op:DUP2}\label{op:Dup2} Push duplicates of the top two items (e.g. $a, b$ becomes $a', b', a, b$). + \item \OP{PUSHONE} \label{op:PUSHONE}\label{op:Pushone} Push a \type{naRef} `1'. + \item \OP{PUSHZERO} \label{op:PUSHZERO}\label{op:Pushzero} Push a \type{naRef} `0'. + \item \OP{PUSHNIL} \label{op:PUSHNIL}\label{op:Pushnil} Push a \func{naNil}\fp. + \item \OP{PUSHEND} \label{op:PUSHEND}\label{op:Pushend} Push an \func{endToken}\fp. + \item \OP{PUSHCONST}\label{op:PUSHCONST}\label{op:Pushconst} Take an integer argument from the {\bf opcode} stack then retrieve and push the constant found at that index in the code's constants block. See the \globalmacro{CONSTARG}\fp\ macro, line 520 in \nasalsourcefile[520]{code.c}, for more details. Also note that if the constant is a \type{naCode} object (inside of its \type{naRef} shell), then it gets bound to the current context/frame via \func{bindFunction}\fp\ (which turns it into a \type{naFunc}). + \item \OP{NEWVEC} \label{op:NEWVEC}\label{op:Newvec} Push a new vector. + \item \OP{NEWHASH} \label{op:NEWHASH}\label{op:Newhash} Push a new hash. +\end{description} + +\subsubsection{Jump operations} +\todo{should this be renamed BRANCHING and should we differentiate here between unconditional and conditional branching ?} +Operations that jump within either stack: +\begin{description} + \item \OP{JMP} \label{op:JMP}\label{op:Jmp} Execute a non-conditional jump to the bytecode index specified by the next item on the opcode stack (i.e. an integer one). + \item \OP{JMPLOOP}\label{op:JMPLOOP}\label{op:Jmploop} Same, but execute \func{naCheckBottleneck}\fp\ first. + \item \OP{JIFTRUE}\label{op:JIFTRUE}\label{op:Jiftrue} Jump if the top \type{naRef} on the stack is true. Does {\it not} pop from the stack! + \item \OP{JIFNOT} \label{op:JIFNOT}\label{op:Jifnot} Same, but jumps if false. + \item \OP{JIFNOTPOP}\label{op:JIFNOTPOP}\label{op:Jifnotpop} Same as \Op{Jifnot} but \emph{does} pop from the stack. + \item \OP{JIFEND} \label{op:JIFEND}\label{op:Jifend} Jumps if the top \type{naRef} is an \func{endToken}\fp\ (i.e. the pointer equals \verb$($\type{void}*\verb$)1$). Pops only if it is an \func{endToken}\fp. + \item \OP{MARK} \label{op:MARK}\label{op:Mark} Pushes a mark (the current size of the \type{naRef} stack) onto the mark stack. + \item \OP{UNMARK} \label{op:UNMARK}\label{op:Unmark} Pops off a mark and discards it. + \item \OP{BREAK} \label{op:BREAK}\label{op:Break} Takes and restores a mark position. + \item \OP{BREAK2} \label{op:BREAK2}\label{op:Break2} Same, but pops it off instead of leaving it. +\end{description} + +\subsubsection{Function calls} +These opcodes either call a \type{naCCode} or push another stack frame for a \type{naCode} call. The number of arguments is compiled during code generation and is thus fixed. By default, the top \name{nargs} on the stack are used as the arguments, another \type{naRef} is popped off as the function, and for method calls, another is popped off for the `me' reference. For named arguments, there is only 1 argument that is taken from the stack, which becomes the \name{locals} hash for the new frame, otherwise the \name{locals} are made by the \func{setupArgs}\fp\ function. +\begin{description} + \item \OP{FCALL} \label{op:FCALL}\label{op:Fcall} A basic function call. + \item \OP{MCALL} \label{op:MCALL}\label{op:Mcall} A method call -- sets the `me' symbol. + \item \OP{FCALLH}\label{op:FCALLH}\label{op:Fcallh} A function call with named arguments (the `H' is probably for ``hash-like''). + \item \OP{MCALLH}\label{op:MCALLH}\label{op:Mcallh} A method call with named arguments. +\end{description} + +\subsubsection{Set methods} +These methods set a variable and usually leave the value that was set on the stack, thus in most cases where you want to set something and don't care about the return, these should be followed by \Op{Pop}. +\begin{description} + \item \OP{SETLOCAL} \label{op:SETLOCAL}\label{op:Setlocal} Set the local variable named by STK(1) to the value given by STK(2). + \item \OP{SETSYM} \label{op:SETSYM}\label{op:Setsym} Like \Op{Setlocal} but tries to find the variable in successive namespaces (i.e. each \verb$func->next$ in turn). If it is not found there, place it in the locals. + \item \OP{SETMEMBER}\label{op:SETMEMBER}\label{op:Setmember} STK(1) is the name of the member, STK(2) is the hash, and STK(3) is the value. + \item \OP{INSERT} \label{op:INSERT}\label{op:Insert} Like \Op{Setmember} but more generic for the case of vectors as well (i.e. \verb$hashvec[index]$ versus \verb$hash.member$). + \item \OP{HAPPEND} \label{op:HAPPEND}\label{op:Happend} Another hash set but this time with the arguments in a funny order: STK(1) is the value to set, STK(2) the name, and STK(3) the hash. +\end{description} + +\subsubsection{Symbol ``get'' methods} + +\begin{description} + \item \OP{LOCAL} \label{op:LOCAL}\label{op:Local} Takes a constant argument and pushes + \item \OP{MEMBER} \label{op:MEMBER}\label{op:Member} Retrieve a member from STK(1) with the name given by a \localmacro{CONSTARG}\fp. Recurses into the parents vector if necessary. This is unique -- no other function goes into the parents vector! +\end{description} + +\subsubsection{Miscellaneous} +Other opcodes: +\begin{description} + \item \OP{XCHG} \label{op:XCHG}\label{op:Xchg} Swap the top two items on the stack. + \item \OP{XCHG2} \label{op:XCHG2}\label{op:Xchg2} Swap the top three items on the stack (i.e. first becomes third and the two others get shifted `up' in the stack, thus a 1-2-3 order gets converted to a 2-3-1 order). An \Op{Xchg2} followed by an \Op{Xchg} results in a total reversing (i.e. 3-2-1) and \Op{Xchg} followed by an \Op{Xchg2} results in a swap of the lower two items (i.e. 1-3-2). + \item \OP{EACH} \label{op:EACH}\label{op:Each} Works like a vector get: STK(1) is the index and STK(2) is the vector; it then increments the index and pushes the result. + \item \OP{INDEX} \label{op:INDEX}\label{op:Index} Same, but pushes a copy of the index instead of the variable at that position in the vector. + \item \OP{UNPACK} \label{op:UNPACK}\label{op:Unpack} Take the contents of the vector on the top of the stack and push its contents one-by-one for the number of times specified by the argument on the opccode stack. + \item \OP{RETURN} \label{op:RETURN}\label{op:Return} If this is the top of the call stack (i.e. \name{fTop} is 1) then it returns from the \func{run}\fp\ function with the value of STK(1), else it resets to the next call up the stack setting the new STK(1) with the value of the old STK(1). +\end{description} + +\subsection{Stack Frames} +Stack frames are essential to running a programming language. Functions call other functions, and their data must be stored on a stack. In Nasal, each \type{struct Context} object has a stack of frames in its \type{struct Frame} \name{fStack[]} member, whose top is stored in the \type{int} \name{fTop} member. The definition of each element is: +\begin{lstlisting}[language=C] +struct Frame { + naRef func; + naRef locals; + int ip; + int bp; +}; +\end{lstlisting} + +The \name{func} member stores the \type{naFunc} that created the Frame. The \name{locals} member is a new hash that is loaded with the arguments to the function and is used as the ``running namespace''; it is discarded when the function returns, unless saved by some means (either making a \nasalkeyword{func}\{\} that is findable by the GC or using the \func{caller}\fp\ API). Thus, despite many calls to the same function, especially in recursion, each invocation will safely run in its own, separate ``workspace'' and will not interfere with other calls of the same function. The \name{ip} and \name{bp} members refer to the position in the opcode (instruction pointer and base pointer) and \type{naRef} stacks, respectively. The former begins at 0 while the latter is equivalent to the \verb$ctx->opFrame$ at the time and is used to pop \verb$ctx->opFrame$ back to its old value, so that the function can access its own data on that stack again. + +As a function call is executed, its frame is pushed onto the stack at the current \name{fTop} index, which is then pushed up one. Thus the frame of the currently executing code is \verb$ctx->fStack[ctx->fTop-1]$. + +The relationship of of the operand stack with function calls is rather weird. All functions on a context's call stack end up using the same operand stack, and they all have access only to the top of it -- specifically they should only access those that they pushed themselves. When a function call is done, any of its data on the stack gets popped by setting \verb$ctx->$\br\verb$opFrame$\br\verb$ = $\br\verb$ctx->$\br\verb$fStack$\br\verb$[ctx->fTop$\br\verb$-1]$\br\verb$.bp$, its return gets pushed, and now the old function can use its old operands, with the return now added on top. + +\comment{ +% stack frame example taken from: https://gitorious.org/tikz-goodies/tikz-goodies/blobs/0dffd069488fc812050e6ce5513736e83eaa666b/drawstack/stack-example.tex +% also see: ftp://ftp.dante.de/tex-archive/macros/latex/contrib/drawstack/stack-example.pdf +\todo {generalize this, style it for Nasal and then emit it directly via the interpreter} +\begin{drawstack} + \startframe + \cell{First cell} + \cell{Second cell} + \finishframe{Some stack frame} + \cell{Not interesting} + \startframe + \cell{Next stack frame} + \cell{Next stack frame} + \finishframe{Another stack frame} +\end{drawstack} + +\begin{enumerate} + \item \url{http://stackoverflow.com/questions/10057443/explain-the-concept-of-a-stack-frame-in-a-nutshell} + \item \url{http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Mips/stack.html} + \item \url{http://en.wikibooks.org/wiki/X86_Disassembly/Functions_and_Stack_Frames} + \item \url{http://en.wikipedia.org/wiki/Stack_frame#Structure} + \item \url{http://www.dirac.org/linux/gdb/02a-Memory_Layout_And_The_Stack.php} + \item \url{http://blog.morrisjohns.com/javascript_closures_for_dummies.html} + \item \url {http://mark-story.com/posts/view/picking-up-javascript-closures-and-lexical-scoping} +\end{enumerate} +} + +\todo{we can inspect stack frames using helpers in findFrame(), see naGetSourceFile() and naGetLine() for examples} + +\section{Garbage Collection} +\subsection{Mark \& Sweep} +When using a mark-and-sweep collector, unreachable objects are not immediately reclaimed. Instead, garbage is allowed to accumulate until all available memory has been exhausted. When that happens, the execution of the program is suspended temporarily while the mark-and-sweep algorithm collects all the garbage. Once all unreferenced objects have been reclaimed, the normal execution of the program can resume. + +Obviously, the main disadvantage of the mark-and-sweep approach is the fact that that normal program execution is suspended while the garbage collection algorithm runs. In particular, this can be a problem in a program that must satisfy real-time execution constraints (like a flight simulator). For example, an interactive application that uses mark-and-sweep garbage collection becomes unresponsive periodically. + +The mark-and-sweep algorithm is called a tracing garbage collector because is traces out the entire collection of objects that are directly or indirectly accessible by the program. The objects that a program can access directly are those objects which are referenced by local variables on the processor stack as well as by any static variables that refer to objects. In the context of garbage collection, these variables are called the roots. An object is indirectly accessible if it is referenced by a field in some other (directly or indirectly) accessible object. An accessible object is said to be live. Conversely, an object which is not live is garbage. + +The mark-and-sweep algorithm consists of two phases: In the first phase, it finds and marks all accessible objects. The first phase is called the mark phase. In the second phase, the garbage collection algorithm scans through the heap and reclaims all the unmarked objects. The second phase is called the sweep phase. + +Nasal's implementation of \nasalapi{sweep}\fp\ (called \nasalapi{reap}\fp) works such that it is always executed for a handful of different type-specific memory pools. In addition, it also makes sure to allocate new memory if required. + +\subsection {Nasal Memory Pools} +A memory pool is basically a preallocated region of memory, which is dynamically resized as required. The Nasal GC works such that it manages a handful of global memory pools for all native Nasal types (strings, functions, vectors, hashes etc). At the moment, the hard coded defaults ensure that 25--50\% of additional object "slots" (memory blocks) are kept available during each execution of reap(). + +Whenever new memory is requested to create a new type (such as a vector or a string), the available memory in the corresponding pool will be checked, reachable objects will be marked, and dead objects will be removed from all pools using a mark/sweep collector, new memory blocks will be allocated if necessary. All of this happens atomically, i.e. single-threaded, in a ``stop-the-world'' fashion. + +All Nasal memory pools are implemented using memory blocks, a memory block is implemented as a singly linked list. Each block contains a field to store its size, a pointer to the allocated memory, and another pointer to the next block. + +\begin{lstlisting}[language=C] +struct Block { + int size; // size of the block + char* block; // pointer to the memory region + struct Block* next; // pointer to the next block +}; +\end{lstlisting} + +For each of the 7 Nasal data types, there is a separate storage pool used, declared as part of the "Globals" structure. As can be seen, each storage pool is addressed by its enum index (0..6): +\begin{lstlisting}[language=C] +enum { T_STR, T_VEC, T_HASH, T_CODE, T_FUNC, T_CCODE, T_GHOST, NUM_NASAL_TYPES }; +\end{lstlisting} + +The 7 storage pools are declared in \nasalsourcefile{code.h} as part of the "Globals" structure: + +\begin{lstlisting}[language=C] +struct Globals { + // Garbage collecting allocators: + struct naPool pools[NUM_NASAL_TYPES]; + int allocCount; + // Dead blocks waiting to be freed when it is safe + void** deadBlocks; + int deadsz; + int ndead; +//... +}; +\end{lstlisting} + +New memory blocks are allocated using \nasalapi{newBlock}\fp\ and the memory is initialized with 0: + +\begin{lstlisting}[language=C] +static void newBlock(struct naPool* p, int need) +{ + int i; + struct Block* newb; + if(need < MIN_BLOCK_SIZE) need = MIN_BLOCK_SIZE; + // allocate a new Block + newb = naAlloc(sizeof(struct Block)); + // initialize the Block + newb->block = naAlloc(need * p->elemsz); // number of elements * size of element + newb->size = need; // set block size + // memory blocks are circular linked lists: + newb->next = p->blocks; + p->blocks = newb; + naBZero(newb->block, need * p->elemsz); + + if(need > p->freesz - p->freetop) need = p->freesz - p->freetop; + p->nfree = 0; + p->free = p->free0 + p->freetop; + // mark all new blocks as unreachable and add them to the pool's free list + for(i=0; i < need; i++) { + // initialize each new new memory blocks by setting up an naRef (the container for all Nasal references) + struct naObj* o = (struct naObj*)(newb->block + i*p->elemsz); + o->mark = 0; + p->free[p->nfree++] = o; + } + p->freetop += need; +} +\end{lstlisting} + +\section{Error and Exception Handling} +\todo{To be written,explain setjmp, longjmp,naRuntimeError, naParseError} +\subsection{Parser error handling} +This information is relevant to \nasalsourcefile{lex.c}, \nasalsourcefile{parse.c}, and \nasalsourcefile{codegen.c}. + +If an error occurs, often relevant information is lacking as there is no ``state'' of the generator, so most errors end up saying ``parse error'' and give you a line number, instead of what could be helpful information such as ``inside a foreach loop, this error occured''. + +\subsection{VM error handling} +\subsection{Exception handling via \func{call}\fp} + +\part{Examples and Existing Work} +\section{The Nasal Standard Library} +\todo{document lib.c, math.c, etc.} + +\section{Multithreading Support} +\todo{document threadlib.c} + +\section{Nasal bindings} +\subsection {SQLite} +\subsection {PCRE (regex)} +\subsection {Cairo} +\subsection {Gtk} +\subsection {OpenCL} + +%\section{Sandboxing} %(import etc) + +\section{Embedding Nasal} +\todo{Look at: nasal-bin.c, AlgoScore, FlightGear's FGNasalSys} +\subsection{Basic Nasal Integration Example} +\begin{enumerate} + \item create a new context using \nasalapi{naNewContext}\fp + \item parse the code using \nasalapi{naParseCode}\fp + \item create the standard namespace using \nasalapi{naInit\_std}\fp + \item add any custom symbols using \nasalapi{naAddSym}\fp\ (optional) + \item add other required bindings/libraries (optional) + \item use \nasalapi{naCall}\fp\ to call the code in the namespace + \item do error checking using \nasalapi{naGetError}\fp +\end{enumerate} + +\begin{lstlisting}[language=C] +// A Nasal extension function (prints its argument list to stdout) +static naRef print(naContext c, naRef me, int argc, naRef* args) +{ + int i; + for(i=0; i