Ignore:
Timestamp:
Jun 4, 2025, 1:43:34 PM (9 months ago)
Author:
Michael Brooks <mlbrooks@…>
Branches:
master, stuck-waitfor-destruct
Children:
f858ca5
Parents:
c8bdbaf
Message:

Recent rework of string benchmarks

File:
1 edited

Legend:

Unmodified
Added
Removed
  • doc/theses/mike_brooks_MMath/background.tex

    rc8bdbaf re0350e0  
    9999Unfortunately, \CFA cannot correct these operator priority inversions without breaking C compatibility.
    100100
     101TODO: rephrase to acknowledge the "clockwise rule" https://c-faq.com/decl/spiral.anderson.html
     102
    101103The alternative solution is for \CFA to provide its own type, variable and routine declarations, using a more intuitive syntax.
    102104The new declarations place qualifiers to the left of the base type, while C declarations place qualifiers to the right of the base type.
     
    618620This 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.
    619621In fact, the outermost type constructor (syntactically first dimension) is really the one that determines the parameter flavour.
     622
     623TODO: add examples of mycode/arrr/bugs/c-dependent/x.cfa:v5102,5103,
     624which are shocking how much C ignores.
    620625
    621626\begin{figure}
     
    971976LQ 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.
    972977An 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.
     978For 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.
    973979Supplying 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.
    974980Wrapped 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.