Changeset e0350e0 for doc/theses/mike_brooks_MMath/background.tex
- Timestamp:
- Jun 4, 2025, 1:43:34 PM (9 months ago)
- Branches:
- master, stuck-waitfor-destruct
- Children:
- f858ca5
- Parents:
- c8bdbaf
- File:
-
- 1 edited
-
doc/theses/mike_brooks_MMath/background.tex (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
doc/theses/mike_brooks_MMath/background.tex
rc8bdbaf re0350e0 99 99 Unfortunately, \CFA cannot correct these operator priority inversions without breaking C compatibility. 100 100 101 TODO: rephrase to acknowledge the "clockwise rule" https://c-faq.com/decl/spiral.anderson.html 102 101 103 The alternative solution is for \CFA to provide its own type, variable and routine declarations, using a more intuitive syntax. 102 104 The new declarations place qualifiers to the left of the base type, while C declarations place qualifiers to the right of the base type. … … 618 620 This type is fully meaningful in the sense that its description does not contain any information that the type system ignores, and the type appears the same in the caller's \vs callee's perspectives. 619 621 In fact, the outermost type constructor (syntactically first dimension) is really the one that determines the parameter flavour. 622 623 TODO: add examples of mycode/arrr/bugs/c-dependent/x.cfa:v5102,5103, 624 which are shocking how much C ignores. 620 625 621 626 \begin{figure} … … 971 976 LQ allows this ability through the @LIST_ENTRY@ macro\footnote{It is possible to have multiple named linked fields allowing a node to appear on multiple lists simultaneously.}, which can be placed anywhere in the node. 972 977 An example of an attribute on the link fields is cache alignment, possibly in conjunction with other @req@ fields, improving locality and/or avoiding false sharing. 978 For example, if a list is frequently traversed in the forward direction, and infrequently gets elements removed at random positions, then an ideal layout for cache locality puts the forward links, together with frequently-used payload data on one cache line, leaving the reverse links on a colder cache line. 973 979 Supplying the link fields by inheritance makes them implicit and relies on compiler placement, such as the start or end of @req@, and no explicit attributes. 974 980 Wrapped reference has no control over the link fields, but the separate data allows some control;
Note:
See TracChangeset
for help on using the changeset viewer.