# Changeset cd03b76d

Ignore:
Timestamp:
Aug 31, 2021, 4:55:03 PM (5 months ago)
Branches:
jacob/cs343-translation, master
Children:
25d4e15
Parents:
e37db11
Message:

Andrew MMath: Clean-up pass addressing (or deciding not to address) most of the remaining \todo items.

Location:
doc/theses/andrew_beach_MMath
Files:
1 deleted
4 edited

Unmodified
Removed
• ## doc/theses/andrew_beach_MMath/features.tex

 re37db11 type a child of that type and part of the same tree. The parent may itself be a child or a root type and may have any number of existing children. % OK, for some reason the b and t positioning options are reversed here. \begin{minipage}[b]{0.6\textwidth} \begin{cfa} trait child_a(T) virtual(root_type) {} trait child_b(T) virtual(root_type) {} \end{cfa} \todo{Update the diagram in vtable.fig to show the new type tree.} \end{minipage} \begin{minipage}{0.4\textwidth} \begin{center} \input{virtual-tree} \end{center} \end{minipage} Every virtual type also has a list of virtual members and a unique id, throwResume EXPRESSION; \end{cfa} \todo{Decide on a final set of keywords and use them everywhere.} % The new keywords are currently experimental" and not used in this work. It works much the same way as the termination raise, except the type must satisfy the \snake{is_resumption_exception} that uses the and run, its try block (the guarded statements) and every try statement searched before it are still on the stack. There presence can lead to the recursive resumption problem. \todo{Is there a citation for the recursive resumption problem?} the recursive resumption problem.\cite{Buhr00a} % Other possible citation is MacLaren77, but the form is different. The recursive resumption problem is any situation where a resumption handler
• ## doc/theses/andrew_beach_MMath/implement.tex

 re37db11 Type information is constructed as follows: \begin{enumerate} \begin{enumerate}[nosep] \item Use the type's name to generate a name for the type information structure, including different instances of the same polymorphic type. \end{enumerate} \todo{The list is making me realize, some of this isn't ordered.} Writing that code manually, with helper macros for the early name mangling, below. The layout always comes in three parts. \todo{Add labels to the virtual table layout figure.} The layout always comes in three parts (see \autoref{f:VirtualTableLayout}). The first section is just the type id at the head of the table. It is always there to ensure that it can be found even when the accessing code does not \begin{figure} \begin{center} \input{vtable-layout} \end{center} \caption{Virtual Table Layout} \label{f:VirtualTableLayout} \todo*{Improve the Virtual Table Layout diagram.} \end{figure} \autoref{f:TerminationTransformation} shows the pattern used to transform a \CFA try statement with catch clauses into the appropriate C functions. \todo{Explain the Termination Transformation figure.} \begin{figure} \caption{Termination Transformation} \label{f:TerminationTransformation} \todo*{Improve (compress?) Termination Transformations.} \end{figure} \autoref{f:ResumptionTransformation} shows the pattern used to transform a \CFA try statement with catch clauses into the appropriate C functions. \todo{Explain the Resumption Transformation figure.} a \CFA try statement with catchResume clauses into the appropriate C functions. \begin{figure} \caption{Resumption Transformation} \label{f:ResumptionTransformation} \todo*{Improve (compress?) Resumption Transformations.} \end{figure}
• ## doc/theses/andrew_beach_MMath/performance.tex

 re37db11 three results are discarded and the remaining five values are averaged. The test are run with the latest (still pre-release) \CFA compiler, using gcc-10 as a backend. g++-10 is used for \Cpp. using gcc-10 10.3.0 as a backend. g++-10 10.3.0 is used for \Cpp. Java tests are complied and run with version 11.0.11. Python used version 3.8. Python used version 3.8.10. The machines used to run the tests are: \todo{Get patch versions for python, gcc and g++.} \begin{itemize}[nosep] \item ARM 2280 Kunpeng 920 48-core 2$\times$socket For example, there are a few cases where Python out-performs \CFA, \Cpp and Java. \todo{Make sure there are still cases where Python wins.} % To be exact, the Match All and Match None cases. The most likely explanation is that, since exceptions are rarely considered to be the common case, the more optimized languages
• ## doc/theses/andrew_beach_MMath/vtable-layout.fig

 re37db11 -2 1200 2 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 1 1620 1665 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 3510 1890 3645 1755 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 3645 1305 3645 1755 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 2115 1935 2250 1935 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 4 2250 1170 2115 1170 2115 2475 2250 2475 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2 2250 1350 2115 1350 4 0 0 50 -1 0 12 0.0000 4 165 630 2295 1305 type_id\001 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.