Ignore:
Timestamp:
Apr 29, 2021, 11:00:18 AM (3 years ago)
Author:
Andrew Beach <ajbeach@…>
Branches:
ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast-unique-expr, pthread-emulation, qualifiedEnum
Children:
3eb55f98
Parents:
3ec79f7 (diff), a6c45c6 (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 'andrew-mmath' into branch 'master', some major LaTeX changes and some thesis work.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • doc/theses/andrew_beach_MMath/implement.tex

    r3ec79f7 r2d8a770  
    99% Virtual table rules. Virtual tables, the pointer to them and the cast.
    1010While the \CFA virtual system currently has only one public feature, virtual
    11 cast \see{\VPageref{p:VirtualCast}}, substantial structure is required to
    12 support it, and provide features for exception handling and the standard
    13 library.
     11cast (see the virtual cast feature \vpageref{p:VirtualCast}),
     12substantial structure is required to support it,
     13and provide features for exception handling and the standard library.
    1414
    1515\subsection{Virtual Type}
     
    215215\subsection{libunwind Usage}
    216216Libunwind, accessed through @unwind.h@ on most platforms, is a C library that
    217 provides \CC-style stack-unwinding. Its operation is divided into two phases:
     217provides \Cpp-style stack-unwinding. Its operation is divided into two phases:
    218218search and cleanup. The dynamic target search -- phase 1 -- is used to scan the
    219219stack and decide where unwinding should stop (but no unwinding occurs). The
     
    291291@_UA_FORCE_UNWIND@ specifies a forced unwind call. Forced unwind only performs
    292292the cleanup phase and uses a different means to decide when to stop
    293 \see{\VRef{s:ForcedUnwind}}.
     293(see \vref{s:ForcedUnwind}).
    294294\end{enumerate}
    295295
     
    400400
    401401Termination exceptions use libunwind heavily because it matches the intended
    402 use from \CC exceptions closely. The main complication for \CFA is that the
     402use from \Cpp exceptions closely. The main complication for \CFA is that the
    403403compiler generates C code, making it very difficult to generate the assembly to
    404404form the LSDA for try blocks or destructors.
     
    509509
    510510% Recursive Resumption Stuff:
    511 Search skipping \see{\VPageref{p:searchskip}}, which ignores parts of the stack
     511Search skipping (see \vpageref{s:ResumptionMarking}), which ignores parts of
     512the stack
    512513already examined, is accomplished by updating the front of the list as the
    513514search continues. Before the handler at a node is called the head of the list
     
    554555Cancellation also uses libunwind to do its stack traversal and unwinding,
    555556however it uses a different primary function @_Unwind_ForcedUnwind@. Details
    556 of its interface can be found in the \VRef{s:ForcedUnwind}.
     557of its interface can be found in the \vref{s:ForcedUnwind}.
    557558
    558559The first step of cancellation is to find the cancelled stack and its type:
Note: See TracChangeset for help on using the changeset viewer.