Changeset 9d84a88
- Timestamp:
- Mar 17, 2023, 2:34:03 PM (20 months ago)
- Branches:
- ADT, ast-experimental, master
- Children:
- ac26347
- Parents:
- 6e6989c (diff), 5717495 (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. - Files:
-
- 14 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/theses/mike_brooks_MMath/Makefile
r6e6989c r9d84a88 8 8 PicSRC = ${notdir ${wildcard ${Pictures}/*.png}} 9 9 DemoSRC = ${notdir ${wildcard ${Programs}/*-demo.cfa}} 10 PgmSRC = ${notdir ${wildcard ${Programs}/*.cfa}} 10 PgmSRC = ${notdir ${wildcard ${Programs}/*}} 11 RunPgmSRC = ${notdir ${wildcard ${Programs}/*.run.*}} 11 12 BibSRC = ${wildcard *.bib} 12 13 … … 14 15 BibLIB = .:../../bibliography # common citation repository 15 16 16 MAKEFLAGS = --no-print-directory # --silent17 #MAKEFLAGS = --no-print-directory # --silent 17 18 VPATH = ${Build} ${Pictures} ${Programs} # extra search path for file names used in document 18 19 … … 20 21 BASE = ${basename ${DOCUMENT}} # remove suffix 21 22 23 DemoTex = ${DemoSRC:%.cfa=${Build}/%.tex} 24 RunPgmExe = ${addprefix ${Build}/,${basename ${basename ${RunPgmSRC}}}} 25 RunPgmOut = ${RunPgmExe:%=%.out} 26 22 27 # Commands 23 28 24 29 LaTeX = TEXINPUTS=${TeXLIB} && export TEXINPUTS && pdflatex -halt-on-error -output-directory=${Build} 25 30 BibTeX = BIBINPUTS=${BibLIB} && export BIBINPUTS && bibtex 26 CFA = cfa 31 CFA = cfa -O0 -g 32 CC = gcc -O0 -g 33 CXX = g++-11 --std=c++20 -O0 -g 27 34 28 35 # Rules and Recipes 29 36 30 .PHONY : all clean # not file names 37 .PHONY : all fragments_ran clean # not file names 38 .PRECIOUS : ${Build}/% ${Build}/%-demo # don't delete intermediates 31 39 .ONESHELL : 32 40 33 all : ${DOCUMENT} 41 all : fragments_ran ${DOCUMENT} 42 43 fragments_ran : $(RunPgmOut) 34 44 35 45 clean : … … 38 48 # File Dependencies 39 49 40 %.pdf : ${TeXSRC} ${Demo SRC:%.cfa=%.tex} ${PicSRC} ${PgmSRC} ${BibSRC} Makefile | ${Build}50 %.pdf : ${TeXSRC} ${DemoTex} ${PicSRC} ${PgmSRC} ${BibSRC} Makefile | ${Build} 41 51 ${LaTeX} ${BASE} 42 52 ${BibTeX} ${Build}/${BASE} … … 52 62 53 63 %-demo.tex: %-demo | ${Build} 54 $ {Build}/$< > ${Build}/$@64 $< > $@ 55 65 56 %-demo: %-demo.cfa 57 ${CFA} $< -o $ {Build}/$@66 ${Build}/%-demo: ${Programs}/%-demo.cfa | ${Build} 67 ${CFA} $< -o $@ 58 68 69 ${Build}/%: ${Programs}/%.run.cfa | ${Build} 70 ${CFA} $< -o $@ 71 72 ${Build}/%: ${Programs}/%.run.c | ${Build} 73 ${CC} $< -o $@ 74 75 ${Build}/%: ${Programs}/%.run.cpp | ${Build} 76 ${CXX} -MMD $< -o $@ 77 78 ${Build}/%.out: ${Build}/% | ${Build} 79 $< > $@ 80 81 -include ${Build}/*.d -
doc/theses/mike_brooks_MMath/uw-ethesis.bib
r6e6989c r9d84a88 65 65 bibsource = {dblp computer science bibliography, https://dblp.org} 66 66 } 67 68 % -------------------------------------------------- 69 % Linked-list prior work 70 71 @misc{CFAStackEvaluation, 72 contributer = {a3moss@plg}, 73 author = {Aaron Moss}, 74 title = {\textsf{C}$\mathbf{\forall}$ Stack Evaluation Programs}, 75 year = 2018, 76 howpublished= {\href{https://cforall.uwaterloo.ca/CFAStackEvaluation.zip}{https://cforall.uwaterloo.ca/\-CFAStackEvaluation.zip}}, 77 } 78 79 @misc{lst:linuxq, 80 title = {queue(7) — Linux manual page}, 81 howpublished= {\href{https://man7.org/linux/man-pages/man3/queue.3.html}{https://man7.org/linux/man-pages/man3/queue.3.html}}, 82 } 83 % see also https://man7.org/linux/man-pages/man7/queue.7.license.html 84 % https://man7.org/tlpi/ 85 % https://www.kernel.org/doc/man-pages/ 86 87 @misc{lst:stl, 88 title = {std::list}, 89 howpublished= {\href{https://en.cppreference.com/w/cpp/container/list}{https://en.cppreference.com/w/cpp/container/list}}, 90 } 91 -
doc/theses/mike_brooks_MMath/uw-ethesis.tex
r6e6989c r9d84a88 91 91 \usepackage{algorithm} 92 92 \usepackage{algpseudocode} 93 94 \usepackage{pbox} 93 95 94 96 % Hyperlinks make it very easy to navigate an electronic document. … … 130 132 % installation instructions there. 131 133 134 % Customizing tabularx 135 \newcolumntype{Y}{>{\centering\arraybackslash}X} 136 132 137 % Setting up the page margins... 133 138 \setlength{\textheight}{9in} … … 179 184 \newcommand{\PAB}[1]{{\color{red}PAB: #1}} 180 185 186 187 \newcommand{\uCpp}{$\mu${C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}}} 188 181 189 %====================================================================== 182 190 % L O G I C A L D O C U M E N T … … 201 209 %---------------------------------------------------------------------- 202 210 \begin{sloppypar} 203 204 211 \input{intro} 205 212 \input{background} 213 \input{list} 206 214 \input{array} 207 215 \input{string} -
libcfa/src/Makefile.am
r6e6989c r9d84a88 48 48 math.hfa \ 49 49 time_t.hfa \ 50 50 virtual_dtor.hfa \ 51 51 bits/algorithm.hfa \ 52 52 bits/align.hfa \ … … 69 69 vec/vec2.hfa \ 70 70 vec/vec3.hfa \ 71 vec/vec4.hfa 71 vec/vec4.hfa 72 72 73 73 inst_headers_src = \ -
libcfa/src/containers/list.hfa
r6e6989c r9d84a88 32 32 static inline tytagref(void, T) ?`inner ( T & this ) { tytagref( void, T ) ret = {this}; return ret; } 33 33 34 // use this on every case of plan-9 inheritance, to make embedded a closure of plan-9 inheritance 35 #define P9_EMBEDDED( derived, immedBase ) \ 36 forall( Tbase &, TdiscardPath & | { tytagref( TdiscardPath, Tbase ) ?`inner( immedBase & ); } ) \ 37 static inline tytagref(immedBase, Tbase) ?`inner( derived & this ) { \ 34 35 // 36 // P9_EMBEDDED: Use on every case of plan-9 inheritance, to make "implements embedded" be a closure of plan-9 inheritance. 37 // 38 // struct foo { 39 // int a, b, c; 40 // inline (bar); 41 // }; 42 // P9_EMBEDDED( foo, bar ) 43 // 44 45 // usual version, for structs that are top-level declarations 46 #define P9_EMBEDDED( derived, immedBase ) P9_EMBEDDED_DECL_( derived, immedBase, static ) P9_EMBEDDED_BDY_( immedBase ) 47 48 // special version, for structs that are declared in functions 49 #define P9_EMBEDDED_INFUNC( derived, immedBase ) P9_EMBEDDED_DECL_( derived, immedBase, ) P9_EMBEDDED_BDY_( immedBase ) 50 51 // forward declarations of both the above; generally not needed 52 // may help you control where the P9_EMBEEDED cruft goes, in case "right after the stuct" isn't where you want it 53 #define P9_EMBEDDED_FWD( derived, immedBase ) P9_EMBEDDED_DECL_( derived, immedBase, static ) ; 54 #define P9_EMBEDDED_FWD_INFUNC( derived, immedBase ) auto P9_EMBEDDED_DECL_( derived, immedBase, ) ; 55 56 // private helpers 57 #define P9_EMBEDDED_DECL_( derived, immedBase, STORAGE ) \ 58 forall( Tbase &, TdiscardPath & | { tytagref( TdiscardPath, Tbase ) ?`inner( immedBase & ); } ) \ 59 STORAGE inline tytagref(immedBase, Tbase) ?`inner( derived & this ) 60 61 #define P9_EMBEDDED_BDY_( immedBase ) { \ 38 62 immedBase & ib = this; \ 39 63 Tbase & b = ib`inner; \ -
src/Parser/ExpressionNode.cc
r6e6989c r9d84a88 164 164 } else { 165 165 // At least one digit in integer constant, so safe to backup while looking for suffix. 166 // This declaration and the comma expressions in the conditions mimic 167 // the declare and check pattern allowed in later compiler versions. 168 // (Only some early compilers/C++ standards do not support it.) 166 169 string::size_type posn; 167 170 // pointer value 168 if ( posn = str.find_last_of( "pP" ) ;posn != string::npos ) {171 if ( posn = str.find_last_of( "pP" ), posn != string::npos ) { 169 172 ltype = 5; str.erase( posn, 1 ); 170 173 // size_t 171 } else if ( posn = str.find_last_of( "zZ" ) ;posn != string::npos ) {174 } else if ( posn = str.find_last_of( "zZ" ), posn != string::npos ) { 172 175 Unsigned = true; type = 2; ltype = 4; str.erase( posn, 1 ); 173 176 // signed char 174 } else if ( posn = str.rfind( "hh" ) ;posn != string::npos ) {177 } else if ( posn = str.rfind( "hh" ), posn != string::npos ) { 175 178 type = 1; str.erase( posn, 2 ); 176 179 // signed char 177 } else if ( posn = str.rfind( "HH" ) ;posn != string::npos ) {180 } else if ( posn = str.rfind( "HH" ), posn != string::npos ) { 178 181 type = 1; str.erase( posn, 2 ); 179 182 // short 180 } else if ( posn = str.find_last_of( "hH" ) ;posn != string::npos ) {183 } else if ( posn = str.find_last_of( "hH" ), posn != string::npos ) { 181 184 type = 0; str.erase( posn, 1 ); 182 185 // int (natural number) 183 } else if ( posn = str.find_last_of( "nN" ) ;posn != string::npos ) {186 } else if ( posn = str.find_last_of( "nN" ), posn != string::npos ) { 184 187 type = 2; str.erase( posn, 1 ); 185 188 } else if ( str.rfind( "ll" ) != string::npos || str.rfind( "LL" ) != string::npos ) {
Note: See TracChangeset
for help on using the changeset viewer.