summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--papers/LOCO-24/contents.latex56
1 files changed, 33 insertions, 23 deletions
diff --git a/papers/LOCO-24/contents.latex b/papers/LOCO-24/contents.latex
index c87c992..604b4bc 100644
--- a/papers/LOCO-24/contents.latex
+++ b/papers/LOCO-24/contents.latex
@@ -285,7 +285,7 @@ Computing}{December 05, 2024}{Glasgow, Scotland, United Kingdom }
The \textit{Lisp} family of languages have proven to be flexible and powerful
for system design \cite{LispMachine:Greenblatt} and particularly
\textit{Scheme} has a long history of research in language and CPU design
- (lambda papers).
+ \cite{Lambda:Steele}.
The nature of the Lisp family of languages also makes them suitable as file
formats (sxml) for storage and configuration files, writing DSLs (language
@@ -304,9 +304,9 @@ Computing}{December 05, 2024}{Glasgow, Scotland, United Kingdom }
facilities.
\subsubsection{Capability based security "lambda-style"}
- Most modern computers do not have more than a single user,
- but they preserve an antique user management system, inherited from Unix,
- recycled for program permission.
+ Most modern computers do not have more than a single user, but they preserve
+ an antique user management system, inherited from Unix, recycled for program
+ permissions.
3L \cite{3L:Hintz} explored an OS where permission control is reduced to
\textit{environments} with access to a limited set of bindings
\cite{securityKernelLambda:Rees}. A program can only access the bindings
@@ -325,15 +325,17 @@ Computing}{December 05, 2024}{Glasgow, Scotland, United Kingdom }
Unix-style concurrency, reinforced by modern \textit{multi-core} CPU design
and threads, is hard to reason about\cite{Threads:Lee}. A multitasking system
can be approached in terms of \textit{Scheme}'s
- \textit{continuations}\cite{ContinuationsConcurrency:Hieb}.
+ \textit{continuations}\cite{ContinuationsConcurrency:Hieb}, embracing its
+ first-class constructs.
\subsection{Computer hardware that embraces the language}
Attempts have been done to run Scheme in a bare-metal environment using
- commodity hardware\cite{MIMOSA:Yvon} [LOKO], but they do not take advantage
- of hardware optimized for \textit{Scheme}, which would provide huge
- performance benefits and simplify the interpreter and possibly also the CPU.
+ commodity hardware\cite{MIMOSA:Yvon}\cite{Loko:Weinholt}, but they do not
+ take advantage of hardware optimized for \textit{Scheme}, which would provide
+ huge performance benefits and simplify the interpreter and potentially the
+ CPU.
\subsubsection{Optimization for tree structures}
\textit{Scheme} is profoundly based on the \textit{cons cell}, similar to a
@@ -348,21 +350,26 @@ Computing}{December 05, 2024}{Glasgow, Scotland, United Kingdom }
\textit{Scheme} supports many paradigms but the basis of the language is the
expression reduction, in opposition to imperative language, where the basis
is the \textit{statement}, that matches current processor architectures
- better. This opens the door for optimizations like those applied in current
- \textit{Scheme} interpreters but in a hardware level. [REDUCER CPUs]
+ better. This opens a full research area, that was mainly abandoned after the
+ modern CPU architectures flooded the market, but has a long
+ history\cite{LiberateFromVonNeumann:Backus}.
\subsubsection{Hardware garbage collection}
-% TODO LANGUAGE
When the whole system uses managed memory, the Garbage Collection,
- \textit{GC}, can be pushed down in the stack. Oberon\cite{Oberon:Wirth} and
- MIMOSA \cite{MIMOSA:Yvon} propose a OS-level GC, but it can be done directly
- in hardware[HARDWARE GC], reducing the requirements of the OS and the CPU.
-
-\subsubsection{FPGA}
+ \textit{GC}, can be pushed down in the stack. Both Oberon\cite{Oberon:Wirth}
+ and MIMOSA \cite{MIMOSA:Yvon} propose Garbage Collector as part of the
+ Operating System. A computing device that embraces \textit{Scheme} in its
+ core may take a more radical approach and involve the hardware in the Garbage
+ Collection process. Hardware assisted GC has been proven to improve the
+ performance of managed memory in von Neumann style processors
+ \cite{HWAssistedGC:Maas} and Lisp Machines\cite{LispMachine:Greenblatt}.
+
+\subsubsection{Exploration via reconfigurable Hardware}
% TODO LANGUAGE
SKIM \cite{FPhardware:Stoye} tries to go for custom hardware, with a
- functional programming language. Instead of making real machines, we could
- just go for FPGAs, they are powerful nowadays, and we could do it
+ functional programming language and there have been more attempts
+ \cite{LiberateFromVonNeumann:Backus}. Instead of making real machines, we
+ could just go for FPGAs, they are powerful nowadays, and we could do it
incrementally, as our language is simple and can be represented using
imperative CPUs.
@@ -375,9 +382,9 @@ Computing}{December 05, 2024}{Glasgow, Scotland, United Kingdom }
Language, \textit{HDL}, is provided with the system and the Operating System
has support for Partial and Dynamic Reconfiguration\cite{FPGAReconf:Vipin},
the whole system can be updated together, improving the OS and the needed
- hardware at the same time. A \textit{rollback}[GUIX/NIX] mechanism could
- always recover the state of both hardware and software as if they were the
- same thing.
+ hardware at the same time. A \textit{rollback} system\cite{Guix:Courtes}
+ could always recover the state of both hardware and software as if they were
+ the same thing.
The FPGAs are more power hungry and not as fast as ASICs but
the reduction of complexity proposed in this paper should be enough for
@@ -397,8 +404,11 @@ Computing}{December 05, 2024}{Glasgow, Scotland, United Kingdom }
The cited literature demonstrates systems with a similar level of
simplification to the one proposed in this document can be implemented and
maintained by a single individual, meaning that the proposed computing system
- would be possibly created and maintained by anyone, while keeping it secure,
- accessible and bootstrappable if carefully designed.
+ would be possibly created and maintained by anyone, down to the hardware,
+ while keeping it secure, accessible and bootstrappable if carefully designed.
+
+ %% TODO: mention FPGAs are commodity hardware today, and don't require
+ %% special manufacturing facilities: autonomy and sovereignty
%% TODO: only if cite vernacular programmers properly
Literature also supports that extending the reach of the language enriches