summaryrefslogtreecommitdiffhomepage
path: root/source
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-12-14 09:53:35 +0100
committerAmlal El Mahrouss <amlal@nekernel.org>2025-12-14 09:53:35 +0100
commit656a37c549446f13afc88f210d84cdedddf8efe1 (patch)
tree442d5b5531b086c7b64c77fb6b5a3ac4b11809b1 /source
parentd5571e3f9fc2c6e1d77da28f467d31e40a08be36 (diff)
chore: updated paper specifications for WG01 and WG02.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'source')
-rw-r--r--source/wg01/wg01.tex89
-rw-r--r--source/wg02/wg02.tex4
2 files changed, 44 insertions, 49 deletions
diff --git a/source/wg01/wg01.tex b/source/wg01/wg01.tex
index e457285..791a302 100644
--- a/source/wg01/wg01.tex
+++ b/source/wg01/wg01.tex
@@ -169,12 +169,12 @@ and we'd do that by following the Prong on Inheritance:
\subsection{The Three Prongs on Inheritance Decision Framework.}
-TTPI is a thought exercise used to decide whether you should consider using C++ in a kernel. Consider the following thought exercise:
+TTPI is a thought exercise used to decide whether you should consider using C++ in a kernel, consider the following:
\begin{itemize}
\item[1:] Is this a feature that can be implemented with other similar protocols/concepts?
-\item[2:] Is this doable without too much trade-off costs?
-\item[3:] Is this doable without V-Tables?
+\item[2:] Is this possible without too much trade-off costs?
+\item[3:] Is this possible without V-Tables?
\end{itemize}
}
@@ -185,7 +185,7 @@ As it surely has an equivalent without the problematic aspects.
\subsection{The Vettable Pattern, validating containers for Kernel C++.}
The following concept makes sure that the `class T' is truly vettable by the Operating System Kernel.
-Such properties are called `Vettable' in a C++ kernel.
+Such properties are called `Vettable' in such program.
\begin{lstlisting}
template <class T, typename OnFallback>
@@ -194,7 +194,7 @@ concept IsVettable = requires(OnFallback fallback) {
};
\end{lstlisting}
-The vettable structure makes use of template metaprogramming in modern C++ in order to evaluate whether a container is vettable or not,
+The vettable structure makes use of template metaprogramming in modern C++ to evaluate whether a container is vettable or not,
such containers inherits the `IVettable' structure and are marked final.
\begin{lstlisting}
@@ -209,50 +209,45 @@ struct IVettable {
A vettable system may look as such in a Kernel C++ system.
\begin{lstlisting}
-#define NE_VETTABLE final : public ::Kernel::IVettable
-#define NE_NOT_VETTABLE final : public ::Kernel::INotVettable
+#define NE_VETTABLE \
+final: \
+public \
+::Kernel::IVettable
-namespace Kernel {
-/// @brief Vet interface for objects.
-struct IVettable {
- explicit IVettable() = default;
- virtual ~IVettable() = default;
-
- NE_COPY_DEFAULT(IVettable)
-};
-
-struct INotVettable {
- explicit INotVettable() = default;
- virtual ~INotVettable() = default;
-
- NE_COPY_DEFAULT(INotVettable)
-};
-
-template <class Type>
-struct Vettable final {
- static constexpr bool kValue = false;
-};
-
-template <>
-struct Vettable<INotVettable> final {
- static constexpr bool kValue = false;
-};
+#define NE_NOT_VETTABLE \
+final: \
+public \
+::Kernel::INotVettable
-template <>
-struct Vettable<IVettable> final {
- static constexpr bool kValue = true;
-};
-
-/// @brief Concept version of Vettable.
-template <typename T, typename OnFallback>
-concept IsVettable = requires(OnFallback fallback) {
- { Vettable<T>::kValue ? true : fallback() };
-};
-
-template <class Type, typename OnFallback>
-concept IsNotVettable = requires(OnFallback fallback) {
- { !Vettable<Type>::kValue ? true : fallback() };
-};
+namespace Kernel {
+ /// @brief Vet interface for objects.
+ struct IVettable {
+ explicit IVettable() = default;
+ virtual ~IVettable() = default;
+
+ NE_COPY_DEFAULT(IVettable)
+ };
+
+ template <class Type>
+ struct Vettable final {
+ static constexpr bool kValue = false;
+ };
+
+ template <>
+ struct Vettable<IVettable> final {
+ static constexpr bool kValue = true;
+ };
+
+ /// @brief Concept version of Vettable.
+ template <typename Type, typename OnFallback>
+ concept IsVettable = requires(OnFallback fallback) {
+ { Vettable<Type>::kValue ? TrueResult<Type>::kValue : fallback() };
+ };
+
+ template <class Type, typename OnFallback>
+ concept IsNotVettable = requires(OnFallback fallback) {
+ { !Vettable<Type>::kValue ? TrueResult<Type>::kValue : fallback() };
+ };
} // namespace Kernel
\end{lstlisting}
diff --git a/source/wg02/wg02.tex b/source/wg02/wg02.tex
index ea14306..bd5a5ce 100644
--- a/source/wg02/wg02.tex
+++ b/source/wg02/wg02.tex
@@ -8,8 +8,8 @@
\usepackage{hyperref}
\usepackage[margin=0.5in,top=1in,bottom=1in]{geometry}
-\title{WG02: The CoreProcessScheduler}
-\author{Amlal El Mahrouss\\NeKernel.org}
+\title{WG02: The CoreProcessScheduler: Governance of Process and Image lifetime.}
+\author{Amlal El Mahrouss}
\date{December 2025}
\definecolor{codegray}{gray}{0.95}