Changeset 8ee15ffd


Ignore:
Timestamp:
Sep 22, 2015, 2:09:32 PM (7 years ago)
Author:
Rob Schluntz <rschlunt@…>
Branches:
aaron-thesis, arm-eh, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, gc_noraii, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, resolv-new, string, with_gc
Children:
01414f1, 24e7b47
Parents:
d0d9610 (diff), 0e1e79e (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'master' of /u/cforall/software/cfa/cfa-cc

Location:
doc/refrat
Files:
1 deleted
2 edited

Legend:

Unmodified
Added
Removed
  • doc/refrat/Makefile

    rd0d9610 r8ee15ffd  
    77## Define the text source files.
    88
    9 SOURCE = ${addsuffix .tex, \
     9SOURCES = ${addsuffix .tex, \
    1010refrat \
    1111}
     
    3232
    3333clean :
    34         rm -f *.bbl *.aux *.dvi *.idx *.ilg *.ind *.brf *.out *.log *.toc *.blg *.pstex_t ${FIGURES} ${PICTURES} ${PROGRAMS} ${GRAPHS} ${basename ${DOCUMENT}}.ps ${DOCUMENT}
     34        rm -f *.bbl *.aux *.dvi *.idx *.ilg *.ind *.brf *.out *.log *.toc *.blg *.pstex_t \
     35                ${FIGURES} ${PICTURES} ${PROGRAMS} ${GRAPHS} ${basename ${DOCUMENT}}.ps ${DOCUMENT}
    3536
    3637# File Dependencies #
     
    4243        dvips $< -o $@
    4344
    44 ${basename ${DOCUMENT}}.dvi : Makefile ${GRAPHS} ${PROGRAMS} ${PICTURES} ${FIGURES} ${SOURCE} ${basename ${DOCUMENT}}.bbl
     45${basename ${DOCUMENT}}.dvi : Makefile ${GRAPHS} ${PROGRAMS} ${PICTURES} ${FIGURES} ${SOURCES} ${basename ${DOCUMENT}}.tex ${basename ${DOCUMENT}}.bib
     46        # Conditionally create an empty *.ind (index) file for inclusion until makeindex is run.
     47        if [ ! -r ${basename $@}.ind ] ; then touch ${basename $@}.ind ; fi
     48        # Must have *.aux file containing citations for bibtex
     49        if [ ! -r ${basename $@}.aux ] ; then ${LaTeX} ${basename $@}.tex ; fi
     50        -${BibTeX} ${basename $@}
     51        # Some citations reference others so run steps again to resolve these citations
    4552        ${LaTeX} ${basename $@}.tex
    46         if fgrep -s "Label(s) may have changed" ${basename $@}.log ; then ${LaTeX} ${basename $@}.tex ; fi
     53        -${BibTeX} ${basename $@}
     54        # Make index from *.aux entries and input index at end of document
    4755        makeindex -s indexstyle ${basename $@}.idx
    4856        ${LaTeX} ${basename $@}.tex
    49         ${LaTeX} ${basename $@}.tex             % to get index title in toc
    50 
    51 ${basename ${DOCUMENT}}.bbl : ${basename ${DOCUMENT}}.tex ${basename ${DOCUMENT}}.bib
    52         if [ ! -r ${basename $@}.ind ] ; then touch ${basename $@}.ind ; fi
    53         if [ ! -r ${basename $@}.aux ] ; then ${LaTeX} ${basename $@}.tex ; fi
    54         -${BibTeX} ${basename $@}
     57        # Run again to get index title into table of contents
    5558        ${LaTeX} ${basename $@}.tex
    56         -${BibTeX} ${basename $@}
    5759
    5860## Define the default recipes.
  • doc/refrat/refrat.tex

    rd0d9610 r8ee15ffd  
    22
    33\documentclass[openright,twoside]{report}
     4%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     5
     6% Latex packages used in the document.
     7
    48\usepackage{fullpage,times}
    59\usepackage{xspace}
     
    1418\urlstyle{sf}
    1519
    16 %\input code.sty
    17 \input xref.tex
     20%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     21
     22% Names used in the document.
     23
     24\newcommand{\CFA}{Cforall\xspace}               % set language text name
     25\newcommand{\CFAA}{C$\forall$\xspace}   % set language symbolic name
     26\newcommand{\CC}{C\kern-.1em\hbox{+\kern-.25em+}\xspace} % CC symbolic name
     27\def\c11{ISO/IEC C} % C11 name (cannot have numbers in latex command name)
     28
     29%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     30
     31% Specialized macros used in the document.
     32
     33\newcommand{\italic}[1]{\emph{\hyperpage{#1}}}
     34\newcommand{\definition}[1]{\textbf{\hyperpage{#1}}}
     35\newcommand{\see}[1]{\emph{see} #1}
     36
     37\makeatletter
     38% Define some commands that produce formatted index entries suitable for cross-references.
     39% ``\spec'' produces entries for specifications of entities.  ``\impl'' produces entries for their
     40% implementations, and ``\use'' for their uses.
     41
     42%  \newcommand{\bold}[1]{{\bf #1}}
     43%  \def\spec{\@bsphack\begingroup
     44%             \def\protect##1{\string##1\space}\@sanitize
     45%             \@wrxref{|bold}}
     46\def\impl{\@bsphack\begingroup
     47          \def\protect##1{\string##1\space}\@sanitize
     48          \@wrxref{|definition}}
     49\newcommand{\indexcode}[1]{{\lstinline$#1$}}
     50\def\use{\@bsphack\begingroup
     51         \def\protect##1{\string##1\space}\@sanitize
     52         \@wrxref{|hyperpage}}
     53\def\@wrxref#1#2{\let\thepage\relax
     54    \xdef\@gtempa{\write\@indexfile{\string
     55    \indexentry{#2@{\lstinline$#2$}#1}{\thepage}}}\endgroup\@gtempa
     56    \if@nobreak \ifvmode\nobreak\fi\fi\@esphack}
     57\makeatother
     58%\newcommand{\use}[1]{\index{#1@{\lstinline$#1$}}}
     59%\newcommand{\impl}[1]{\index{\protect#1@{\lstinline$\protect#1$}|definition}}
    1860
    1961\newcommand{\define}[1]{\emph{#1\/}\index{#1}}
     
    3779\def\syntax{\paragraph{Syntax}\trivlist\parindent=.5in\item[\hskip.5in]}
    3880\let\endsyntax=\endtrivlist
    39 \newcommand{\lhs}[1]{\par{\it #1:}\index{#1@{\it #1}|italic}}
     81\newcommand{\lhs}[1]{\par{\emph{#1:}}\index{#1@{\emph{#1}}|italic}}
    4082\newcommand{\rhs}{\hfil\break\hbox{\hskip1in}}
    41 \newcommand{\oldlhs}[1]{{\it #1: \ldots}\index{#1@{\it #1}|italic}}
    42 \newcommand{\nonterm}[1]{{\it #1\/}\index{#1@{\it #1}|italic}}
     83\newcommand{\oldlhs}[1]{\emph{#1: \ldots}\index{#1@{\emph{#1}}|italic}}
     84\newcommand{\nonterm}[1]{\emph{#1\/}\index{#1@{\emph{#1}}|italic}}
    4385\newcommand{\opt}{$_{opt}$\ }
    4486
     
    5294\newcommand{\VPageref}[2][page]{\ifx#1\@empty\else{#1}\nobreakspace\fi\pageref{#2}}
    5395
    54 \newcommand{\CFA}{Cforall\xspace}
    55 \newcommand{\CFAA}{C$\forall$\xspace}
    56 \newcommand{\CC}{C\kern-.1em\hbox{+\kern-.25em+}\xspace}
    57 \def\c11{ISO/IEC C}% cannot have numbers in latex command name
    58 
    5996% replace/adjust characters that look bad in sanserif
    6097\makeatletter
     
    63100\lst@ProcessOther{"3C}{\lst@ttfamily{<}{\texttt{<}}} % replace less than
    64101\lst@ProcessOther{"3E}{\lst@ttfamily{<}{\texttt{>}}} % replace greater than
    65 \lst@ProcessOther{"5E}{$\sim$} % circumflex
     102\lst@ProcessOther{"5E}{\raisebox{0.4ex}{$\scriptstyle\land\,$}} % circumflex
    66103\lst@ProcessLetter{"5F}{\lst@ttfamily{\char95}{{\makebox[1.2ex][c]{\rule{1ex}{0.1ex}}}}} % replace underscore
    67 \lst@ProcessOther{"7E}{\raisebox{-.4ex}[1ex][0pt]{\textasciitilde}} % lower tilde
     104%\lst@ProcessOther{"7E}{\raisebox{-.4ex}[1ex][0pt]{\textasciitilde}} % lower tilde
     105\lst@ProcessOther{"7E}{\raisebox{0.3ex}{$\scriptstyle\sim\,$}} % lower tilde
    68106\@empty\z@\@empty
    69107
     
    74112
    75113\lstdefinelanguage{CFA}[ANSI]{C}%
    76   {morekeywords={asm,_Atomic,catch,choose,_Complex,context,dtype,fallthru,forall,ftype,_Imaginary,lvalue,restrict,throw,try,type,},
     114  {morekeywords={asm,_Atomic,catch,catchResume,choose,_Complex,context,disable,dtype,enable,
     115        fallthru,finally,forall,ftype,_Imaginary,lvalue,restrict,throw,throwResume,try,type,},
    77116}
    78117
     
    84123xleftmargin=\parindent,
    85124escapechar=@,
     125%fancyvrb=true,
    86126%showtabs=true,
    87 %tab=\rightarrowfill,
     127keepspaces=true,
     128showtabs=true,
     129tab=,
    88130}
    89131
     
    91133\setcounter{tocdepth}{3}                % subsubsections in table of contents
    92134\makeindex
     135
     136%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    93137
    94138\begin{document}
     
    691735
    692736\examples
    693 The expression \lstinline$(void *)0}$\use{0} specializes the (polymorphic) null pointer to a null
     737The expression \lstinline$(void *)0$\use{0} specializes the (polymorphic) null pointer to a null
    694738pointer to \lstinline$void$. \lstinline$(const void *)0$ does the same, and also uses a safe
    695739conversion from \lstinline$void *$ to \lstinline$const void *$. In each case, the null pointer
     
    24252469
    24262470The operands of the expression ``\lstinline$a || b$'' are treated as ``\lstinline$(int)((a)!=0)$''
    2427 and ``\lstinline$(int)((b})!=0)$'', which shall both be unambiguous. The expression has only one
     2471and ``\lstinline$(int)((b))!=0)$'', which shall both be unambiguous. The expression has only one
    24282472interpretation, which is of type \lstinline$int$.
    24292473
     
    40364080\section{Statements and blocks}
    40374081
     4082\begin{syntax}
     4083\oldlhs{statement}
     4084\rhs \nonterm{exception-statement}
     4085\end{syntax}
     4086
    40384087Many statements contain expressions, which may have more than one interpretation. The following
    40394088sections describe how the \CFA translator selects an interpretation. In all cases the result of the
     
    40584107The following have identical meaning:
    40594108\begin{lstlisting}
    4060 case 1:@\ \ @case 2:@\ \ @case 3:@\ \ @case 4:@\ \ @case 5:
     4109case 1:  case 2:  case 3:  case 4:  case 5:
    40614110case 1, 2, 3, 4, 5:
    40624111case 1~5:
    40634112\end{lstlisting}
    4064 The multiple subranges are allowed:
     4113Multiple subranges are allowed:
    40654114\begin{lstlisting}
    40664115case 1~4, 9~14, 27~32:
    40674116\end{lstlisting}
    4068 
    40694117The \lstinline$case$ and \lstinline$default$ clauses are restricted within the \lstinline$switch$ and \lstinline$choose$ statements, precluding Duff's device.
    40704118
     
    40874135choose ( E ) ...
    40884136\end{lstlisting}
    4089 may have more than one interpretation, but it shall have only one interpretation with an integral
    4090 type. An \Index{integer promotion} is performed on the expression if necessary.  The constant
    4091 expressions in \lstinline$case$ statements with the switch are converted to the promoted type.
     4137may have more than one interpretation, but it shall have only one interpretation with an integral type.
     4138An \Index{integer promotion} is performed on the expression if necessary.
     4139The constant expressions in \lstinline$case$ statements with the switch are converted to the promoted type.
    40924140
    40934141
     
    40974145The \lstinline$choose$ statement is the same as the \lstinline$switch$ statement except control transfers to the end of the \lstinline$choose$ statement at a \lstinline$case$ or \lstinline$default$ labeled statement.
    40984146The \lstinline$fallthru$ statement is used to fall through to the next \lstinline$case$ or \lstinline$default$ labeled statement.
    4099 
    41004147The following have identical meaning:
    41014148\begin{flushleft}
     
    41224169\end{tabular}
    41234170\end{flushleft}
    4124 The \lstinline$choose$ statement addresses the problem of accidental fall-through associated with \lstinline$switch$ statement.
     4171The \lstinline$choose$ statement addresses the problem of accidental fall-through associated with the \lstinline$switch$ statement.
    41254172
    41264173
     
    41514198\rhs \lstinline$continue$ \nonterm{identifier}\opt
    41524199\rhs \lstinline$break$ \nonterm{identifier}\opt
     4200\rhs \ldots
     4201\rhs \lstinline$throw$ \nonterm{assignment-expression}\opt
     4202\rhs \lstinline$throwResume$ \nonterm{assignment-expression}\opt \nonterm{at-expression}\opt
     4203\lhs{at-expression} \lstinline$_At$ \nonterm{assignment-expression}
    41534204\end{syntax}
    41544205
     
    41574208L1: {                                                   // compound
    41584209  L2: switch ( ... ) {                  // switch
    4159     case ...:
     4210          case ...:
    41604211          L3: for ( ;; ) {                      // outer for
    41614212                L4: for ( ;; ) {                // inner for
     
    41924243\subsubsection{The \lstinline$return$ statement}
    41934244
    4194 An expression in a \lstinline$return$ statement is treated as being cast to the result type of the
    4195 function.
     4245An expression in a \lstinline$return$ statement is treated as being cast to the result type of the function.
     4246
     4247
     4248\subsubsection{The \lstinline$throw$ statement}
     4249
     4250When an exception is raised, \Index{propagation} directs control from a raise in the source execution to a handler in the faulting execution.
     4251
     4252
     4253\subsubsection{The \lstinline$throwResume$ statement}
     4254
     4255
     4256\subsection{Exception statements}
     4257
     4258\begin{syntax}
     4259\lhs{exception-statement}
     4260\rhs \lstinline$try$ \nonterm{compound-statement} \nonterm{handler-list}
     4261\rhs \lstinline$try$ \nonterm{compound-statement} \nonterm{finally-clause}
     4262\rhs \lstinline$try$ \nonterm{compound-statement} \nonterm{handler-list} \nonterm{finally-clause}
     4263\lhs{handler-list}
     4264\rhs \nonterm{handler-clause}
     4265\rhs \lstinline$catch$ \lstinline$($ \ldots \lstinline$)$ \nonterm{compound-statement}
     4266\rhs \nonterm{handler-clause} \lstinline$catch$ \lstinline$($ \ldots \lstinline$)$ \nonterm{compound-statement}
     4267\rhs \lstinline$catchResume$ \lstinline$($ \ldots \lstinline$)$ \nonterm{compound-statement}
     4268\rhs \nonterm{handler-clause} \lstinline$catchResume$ \lstinline$($ \ldots \lstinline$)$ \nonterm{compound-statement}
     4269\lhs{handler-clause}
     4270\rhs \lstinline$catch$ \lstinline$($ \nonterm{exception-declaration} \lstinline$)$ \nonterm{compound-statement}
     4271\rhs \nonterm{handler-clause} \lstinline$catch$ \lstinline$($ \nonterm{exception-declaration} \lstinline$)$ \nonterm{compound-statement}
     4272\rhs \lstinline$catchResume$ \lstinline$($ \nonterm{exception-declaration} \lstinline$)$ \nonterm{compound-statement}
     4273\rhs \nonterm{handler-clause} \lstinline$catchResume$ \lstinline$($ \nonterm{exception-declaration} \lstinline$)$ \nonterm{compound-statement}
     4274\lhs{finally-clause}
     4275\rhs \lstinline$finally$ \nonterm{compound-statement}
     4276\lhs{exception-declaration}
     4277\rhs \nonterm{type-specifier}
     4278\rhs \nonterm{type-specifier} \nonterm{declarator}
     4279\rhs \nonterm{type-specifier} \nonterm{abstract-declarator}
     4280\rhs \nonterm{new-abstract-declarator-tuple} \nonterm{identifier}
     4281\rhs \nonterm{new-abstract-declarator-tuple}
     4282\lhs{asynchronous-statement}
     4283\rhs \lstinline$enable$ \nonterm{identifier-list} \nonterm{compound-statement}
     4284\rhs \lstinline$disable$ \nonterm{identifier-list} \nonterm{compound-statement}
     4285\end{syntax}
     4286
     4287\Index{Exception statement}s allow a dynamic call to a handler for \Index{recovery} (\Index{termination}) or \Index{correction} (\Index{resumption}) of an \Index{abnormal event}.
     4288
     4289
     4290\subsubsection{The \lstinline$try$ statement}
     4291
     4292The \lstinline$try$ statement is a block with associated handlers, called a \Index{guarded block};
     4293all other blocks are \Index{unguarded block}s.
     4294A \lstinline$goto$, \lstinline$break$, \lstinline$return$, or \lstinline$continue$ statement can be used to transfer control out of a try block or handler, but not into one.
     4295
     4296
     4297\subsubsection{The \lstinline$enable$/\lstinline$disable$ statements}
     4298
     4299The \lstinline$enable$/\lstinline$disable$ statements toggle delivery of \Index{asynchronous exception}s.
    41964300
    41974301
Note: See TracChangeset for help on using the changeset viewer.