Changeset 037dc57


Ignore:
Timestamp:
Apr 26, 2026, 7:54:24 PM (2 days ago)
Author:
Michael Brooks <mlbrooks@…>
Branches:
master
Children:
1037b4c
Parents:
74accc6
Message:

further background proofreading from "forgot to press save" before last commit

File:
1 edited

Legend:

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

    r74accc6 r037dc57  
    11851185This macro-induced phenomenon led to an invalid pointer dereference (safety violation), at a run-time well after the removal at issue (costly to resolve).
    11861186
    1187 Instead, language function calls (even with inlining) handle argument mistakes locally at the call, giving a very specific error message.  In the world of \CC templates, concepts were introduced to deal with this problem.  Furthermovre, language function calls use (only) C-language semantics for argument evaluation, instead of applealing to reasoning about how the semantics might play out in an invisible substitution result.
    1188 
    1189 So, avoiding a macro-centric implementation helps uers avoid and diagnose critical mistakes.
     1187Instead, language function calls (even with inlining) handle argument mistakes locally at the call, giving a very specific error message.  In the world of \CC templates, concepts were introduced to deal with this problem.  Furthermore, language function calls use (only) C-language semantics for argument evaluation, instead of appealing to reasoning about how the semantics might play out in an invisible substitution result.
     1188
     1189So, avoiding a macro-centric implementation helps users avoid and diagnose critical mistakes.
    11901190
    11911191% example of poor error message due to LQ's preprocessed integration
Note: See TracChangeset for help on using the changeset viewer.