diff options
author | Bent Bisballe Nyeng <deva@aasimon.org> | 2023-08-04 21:30:35 +0200 |
---|---|---|
committer | Bent Bisballe Nyeng <deva@aasimon.org> | 2023-08-04 21:30:35 +0200 |
commit | b4e8a41aca5a22fc02da3b1a29ca10e4d472b6c7 (patch) | |
tree | 2cfab980424343c0daed8ea342f416e437fc0bfc /a6/exercise.tex | |
parent | 345480d2c0647a1a4bf8b7915d78155a261ea988 (diff) |
A6: WIP
Diffstat (limited to 'a6/exercise.tex')
-rw-r--r-- | a6/exercise.tex | 50 |
1 files changed, 0 insertions, 50 deletions
diff --git a/a6/exercise.tex b/a6/exercise.tex deleted file mode 100644 index 2cdace6..0000000 --- a/a6/exercise.tex +++ /dev/null @@ -1,50 +0,0 @@ -\title{Essay: Applying contemporary C++ in applications for embedded -microcontrollers.} -\documentclass[11pt]{article} -\usepackage{graphicx} -%\usepackage{xcolor} -\usepackage{fancyhdr} -\usepackage{listings} -\usepackage{subfig} -\renewcommand{\floatpagefraction}{.8}% -%\renewcommand{\thesubfigure}{Figure \arabic{subfigure}} -\captionsetup[subfigure]{labelformat=simple, labelsep=colon} -\pagestyle{fancy} -\author{Bent Bisballe Nyeng <deva@aasimon.org> University of Aarhus} -\begin{document} -\maketitle - -No access to MMU, implicitly, prohibits calls to delete after -initialization phase. Otherwise this will lead to memory fragmentation -which again might lead to free-store depletion and ultimately -application failure. - -Writing a custom allocator is only a solution to a sub-set of the -allocations in an application, for example if all allocations are -guaranteed to always be of the same size, in which can no -fragmentation will occur. - -But for most applications (or at least most parts on an application) -this is not the case, and therefore others means need to be taken into -use. - -The most common way of addressing this, is simply to only use stack -allocation, or store all objects in as static globals. -But in certain areas of the C++ language dynamic allocation might -occur without the developer knowing about it. -\texttt{std::string}s of sizes that doesn't fit in the SSO buffer is -one example, but even more devious is the capture clause of a -lambda, which might allocate extra memory, if more than $N$ members -are captured, where $N$ is compiler dependent. - -No way of telling the compiler that ``no allocations allowed, fail if -one is made'' exists, but one could wish for such a mechanism in the -wake of the ``free-standing C++'' subset work. -One thing is to prohibit use of language constructs that are -guaranteed to allocate, but quite another is to allow using constructs -in ways that doesn't make them allocate. -This, I think, is not part of the ``free-standing C++'' work. - - - -\end{document} |