Changeset 2d8a770 for doc/theses/andrew_beach_MMath/implement.tex
- Timestamp:
- Apr 29, 2021, 11:00:18 AM (3 years ago)
- 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. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/theses/andrew_beach_MMath/implement.tex
r3ec79f7 r2d8a770 9 9 % Virtual table rules. Virtual tables, the pointer to them and the cast. 10 10 While the \CFA virtual system currently has only one public feature, virtual 11 cast \see{\VPageref{p:VirtualCast}}, substantial structure is required to12 su pport it, and provide features for exception handling and the standard13 library.11 cast (see the virtual cast feature \vpageref{p:VirtualCast}), 12 substantial structure is required to support it, 13 and provide features for exception handling and the standard library. 14 14 15 15 \subsection{Virtual Type} … … 215 215 \subsection{libunwind Usage} 216 216 Libunwind, accessed through @unwind.h@ on most platforms, is a C library that 217 provides \C C-style stack-unwinding. Its operation is divided into two phases:217 provides \Cpp-style stack-unwinding. Its operation is divided into two phases: 218 218 search and cleanup. The dynamic target search -- phase 1 -- is used to scan the 219 219 stack and decide where unwinding should stop (but no unwinding occurs). The … … 291 291 @_UA_FORCE_UNWIND@ specifies a forced unwind call. Forced unwind only performs 292 292 the cleanup phase and uses a different means to decide when to stop 293 \see{\VRef{s:ForcedUnwind}}.293 (see \vref{s:ForcedUnwind}). 294 294 \end{enumerate} 295 295 … … 400 400 401 401 Termination exceptions use libunwind heavily because it matches the intended 402 use from \C Cexceptions closely. The main complication for \CFA is that the402 use from \Cpp exceptions closely. The main complication for \CFA is that the 403 403 compiler generates C code, making it very difficult to generate the assembly to 404 404 form the LSDA for try blocks or destructors. … … 509 509 510 510 % Recursive Resumption Stuff: 511 Search skipping \see{\VPageref{p:searchskip}}, which ignores parts of the stack 511 Search skipping (see \vpageref{s:ResumptionMarking}), which ignores parts of 512 the stack 512 513 already examined, is accomplished by updating the front of the list as the 513 514 search continues. Before the handler at a node is called the head of the list … … 554 555 Cancellation also uses libunwind to do its stack traversal and unwinding, 555 556 however it uses a different primary function @_Unwind_ForcedUnwind@. Details 556 of its interface can be found in the \ VRef{s:ForcedUnwind}.557 of its interface can be found in the \vref{s:ForcedUnwind}. 557 558 558 559 The first step of cancellation is to find the cancelled stack and its type:
Note: See TracChangeset
for help on using the changeset viewer.