Changeset cd03b76d
- Timestamp:
- Aug 31, 2021, 4:55:03 PM (3 years ago)
- Branches:
- ADT, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, pthread-emulation, qualifiedEnum
- Children:
- 25d4e15
- Parents:
- e37db112
- Location:
- doc/theses/andrew_beach_MMath
- Files:
-
- 1 added
- 1 deleted
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/theses/andrew_beach_MMath/features.tex
re37db112 rcd03b76d 162 162 type a child of that type and part of the same tree. The parent may itself 163 163 be a child or a root type and may have any number of existing children. 164 165 % OK, for some reason the b and t positioning options are reversed here. 166 \begin{minipage}[b]{0.6\textwidth} 164 167 \begin{cfa} 165 168 trait child_a(T) virtual(root_type) {} … … 167 170 trait child_b(T) virtual(root_type) {} 168 171 \end{cfa} 169 \todo{Update the diagram in vtable.fig to show the new type tree.} 172 \end{minipage} 173 \begin{minipage}{0.4\textwidth} 174 \begin{center} 175 \input{virtual-tree} 176 \end{center} 177 \end{minipage} 170 178 171 179 Every virtual type also has a list of virtual members and a unique id, … … 499 507 throwResume EXPRESSION; 500 508 \end{cfa} 501 \todo{Decide on a final set of keywords and use them everywhere.} 509 % The new keywords are currently ``experimental" and not used in this work. 502 510 It works much the same way as the termination raise, except the 503 511 type must satisfy the \snake{is_resumption_exception} that uses the … … 544 552 and run, its try block (the guarded statements) and every try statement 545 553 searched before it are still on the stack. There presence can lead to 546 the recursive resumption problem. 547 \todo{Is there a citation for the recursive resumption problem?} 554 the recursive resumption problem.\cite{Buhr00a} 555 % Other possible citation is MacLaren77, but the form is different. 548 556 549 557 The recursive resumption problem is any situation where a resumption handler -
doc/theses/andrew_beach_MMath/implement.tex
re37db112 rcd03b76d 99 99 100 100 Type information is constructed as follows: 101 \begin{enumerate} 101 \begin{enumerate}[nosep] 102 102 \item 103 103 Use the type's name to generate a name for the type information structure, … … 123 123 including different instances of the same polymorphic type. 124 124 \end{enumerate} 125 \todo{The list is making me realize, some of this isn't ordered.}126 125 127 126 Writing that code manually, with helper macros for the early name mangling, … … 176 175 below. 177 176 178 The layout always comes in three parts. 179 \todo{Add labels to the virtual table layout figure.} 177 The layout always comes in three parts (see \autoref{f:VirtualTableLayout}). 180 178 The first section is just the type id at the head of the table. It is always 181 179 there to ensure that it can be found even when the accessing code does not … … 190 188 191 189 \begin{figure} 190 \begin{center} 192 191 \input{vtable-layout} 192 \end{center} 193 193 \caption{Virtual Table Layout} 194 194 \label{f:VirtualTableLayout} 195 \todo*{Improve the Virtual Table Layout diagram.}196 195 \end{figure} 197 196 … … 797 796 \autoref{f:TerminationTransformation} shows the pattern used to transform 798 797 a \CFA try statement with catch clauses into the appropriate C functions. 799 \todo{Explain the Termination Transformation figure.}800 798 801 799 \begin{figure} … … 855 853 \caption{Termination Transformation} 856 854 \label{f:TerminationTransformation} 857 \todo*{Improve (compress?) Termination Transformations.}858 855 \end{figure} 859 856 … … 894 891 895 892 \autoref{f:ResumptionTransformation} shows the pattern used to transform 896 a \CFA try statement with catch clauses into the appropriate C functions.897 \todo{Explain the Resumption Transformation figure.} 893 a \CFA try statement with catchResume clauses into the appropriate 894 C functions. 898 895 899 896 \begin{figure} … … 936 933 \caption{Resumption Transformation} 937 934 \label{f:ResumptionTransformation} 938 \todo*{Improve (compress?) Resumption Transformations.}939 935 \end{figure} 940 936 -
doc/theses/andrew_beach_MMath/performance.tex
re37db112 rcd03b76d 74 74 three results are discarded and the remaining five values are averaged. 75 75 The test are run with the latest (still pre-release) \CFA compiler, 76 using gcc-10 as a backend.77 g++-10 is used for \Cpp.76 using gcc-10 10.3.0 as a backend. 77 g++-10 10.3.0 is used for \Cpp. 78 78 Java tests are complied and run with version 11.0.11. 79 Python used version 3.8. 79 Python used version 3.8.10. 80 80 The machines used to run the tests are: 81 \todo{Get patch versions for python, gcc and g++.}82 81 \begin{itemize}[nosep] 83 82 \item ARM 2280 Kunpeng 920 48-core 2$\times$socket … … 312 311 For example, there are a few cases where Python out-performs 313 312 \CFA, \Cpp and Java. 314 \todo{Make sure there are still cases where Python wins.} 313 % To be exact, the Match All and Match None cases. 315 314 The most likely explanation is that, since exceptions 316 315 are rarely considered to be the common case, the more optimized languages -
doc/theses/andrew_beach_MMath/vtable-layout.fig
re37db112 rcd03b76d 8 8 -2 9 9 1200 2 10 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 111 1620 166512 10 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 13 11 3510 1890 3645 1755 … … 16 14 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 17 15 3645 1305 3645 1755 16 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 17 2115 1935 2250 1935 18 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 4 19 2250 1170 2115 1170 2115 2475 2250 2475 20 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 21 2250 1350 2115 1350 18 22 4 0 0 50 -1 0 12 0.0000 4 165 630 2295 1305 type_id\001 19 23 4 0 0 50 -1 0 12 0.0000 4 165 1170 2295 1500 parent_field0\001
Note: See TracChangeset
for help on using the changeset viewer.