Skip to content

Commit 6a2a8c1

Browse files
committed
line ending, date and margin fixes
1 parent 8109e3b commit 6a2a8c1

File tree

10 files changed

+45
-52
lines changed

10 files changed

+45
-52
lines changed

assets/style.css

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131

3232
--content_width: 1200px; /* same as @media screen */
3333
--content_1colof2_width: calc(var(--content_width) / 2);
34+
--list_item_margin_top: 4px;
3435
}
3536

3637
body {
@@ -43,6 +44,7 @@ h1 { font-size: var(--font_size_h1); }
4344
h2 { font-size: var(--font_size_h2); }
4445
h3 { font-size: var(--font_size_h3); }
4546
h4, h5, h6 { color: crimson; } /* dot not use h4-h6 */
47+
li + li { margin-top: var(--list_item_margin_top); }
4648

4749
.reset_a a{ text-decoration: none; }
4850
.reset_a a:visited{ color:black; }
@@ -58,15 +60,6 @@ figcaption {
5860
padding-left: 5pt;
5961
}
6062

61-
/* not yet working */
62-
/* figcaption.cap_zig { */
63-
/* background: #fcdba5; */
64-
/* } */
65-
/* figcaption.cap_shell { */
66-
/* background: #ccc; */
67-
/* color: #000; */
68-
/* } */
69-
7063
pre,
7164
code {
7265
font-size: 12pt;
@@ -94,7 +87,7 @@ code {
9487
border-top-right-radius: 5px;
9588
}
9689

97-
/**Treesitter grammar is uncapable to disting function within call context and
90+
/**Treesitter grammar is uncapable to distinguish function within call context and
9891
* function declaration/definition. Both example and print are identified with
9992
* the same span class function and thus colored with --darkred:
10093
* fn ->example<-() void {

content/articles/ci_library.smd

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
.title = "Towards an extensible continuous integration library.",
33
.description = "Personal Website",
44
.author = "Jan Philipp Hafer",
5-
.date = @date("2024-11-10T00:00:00"),
5+
.date = @date("2024-06-28T00:00:00"),
66
.layout = "article.shtml",
7-
.tags = ["home", "overview", "blog posts", "articles"],
7+
.tags = ["article", "system", "software", "design", "continuous integration", "library"],
88
.draft = false,
99
---
1010

content/articles/optimal_debugging.smd

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
---
22
.title = "Towards optimal an optimal debugging library framework",
33
.author = "Jan Philipp Hafer",
4-
.date = @date("2024-04-20:00:00:00"),
4+
.date = @date("2024-06-28:00:00:00"),
55
.layout = "optimal_debugging.shtml",
6-
.tags = ["article", "system", "hardware", "software", "design", "debugging"],
6+
.tags = ["article", "system", "hardware", "software", "design", "debugging", "library"],
77
.draft = false,
88
---
99

@@ -128,16 +128,16 @@ executing the source code semantics or formal verification of the compiler
128128
itself, which shall not be discussed here. This leaves hardware problems,
129129
kernel problems, resource leaks, freezes, performance problems and logic
130130
problems. TODO: what they have in common + motivation TODO: Uniform execution
131-
representation and queries over program execution.
131+
representation and queries over program execution.
132132

133133
[]($section.id("abstraction_problems"))
134134
### Abstraction problems during problem isolation
135135

136-
TODO: origin detection, isolation and abstraction
136+
TODO: origin detection, isolation and abstraction
137137

138138
[]($section.id("possible_implementations"))
139139
### Possible implementations
140140

141141
TODO: (query system data vs modify the system vs other) to validate approaches;
142-
Program modification and validation language, query language and alternatives.
142+
Program modification and validation language, query language and alternatives.
143143

content/articles/process_behavior.smd

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@
22
.title = "Process semantics and abstraction problems on Linux, Windows, MacOS, Posix.",
33
.description = "Personal Website",
44
.author = "Jan Philipp Hafer",
5-
.date = @date("2024-11-10T00:00:00"),
5+
.date = @date("2024-06-28T00:00:00"),
66
.layout = "article.shtml",
7-
.tags = ["article", "system", "platform", "windows", "macos", "linux", "posix", "process", "abstraction"],
7+
.tags = ["article", "system", "software", "design", "platform", "windows", "macos", "linux", "posix", "process", "abstraction"],
88
.draft = false,
99
---
1010

1111
This article documents process semantic differences between
1212
Linux, Windows, MacOS, Posix including what can be reasonably relied on and what no.
1313

14-
TODO motivation: audience/why this is actually relevant to read, ie security.
14+
TODO motivation: audience/why this is actually relevant to read, ie security.
1515

1616
IPC.
1717
Signals.

content/articles/shennanigans_in_c.smd

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,14 +73,14 @@ abbreviated via macro `NULL`.
7373
**The Exceptions**
7474
- Controlling the build system and compiler invocation to opt-out of provenance based optimizations.
7575
1. Clang and gcc have `-fno-strict-aliasing`, msvc and tcc do disable type-based aliasing analysis based optimizations.
76-
2. As of 20240603, there is no switch to disable provenance-based alias analysis in compilers (clang, gcc, msvc, tcc).
76+
2. As of 2024-06-03, there is no switch to disable provenance-based alias analysis in compilers (clang, gcc, msvc, tcc).
7777
3. Usage of `restrict` can be en/disabled in all compilers via `#pragma optimize("", on/off)`.
7878
It can also be disabled in all compilers via `#define restrict`, using an according optimization level (typical `-O1`)
7979
or via separating header and implementation and disabling link time optimziations.
8080
- Posix extension and Windows in practice enable dynamic linking via casting pointers `void *` to function pointers and
8181
back. This also means that `sizeof (function pointer) == sizeof (void *)` must be uphold, which is not true for
8282
microcontrollers with separate address space for code and data or CHERI in mixed capability mode/hybrid compilation mode.
83-
Address space annotations are mandatory for this to work and it is unfortunate that standards do not reflect this as of 20240428.
83+
Address space annotations are mandatory for this to work and it is unfortunate that standards do not reflect this as of 2024-04-28.
8484
[aliasing_exceptions_uniform_address_space.c]($code.asset('./aliasing_exceptions_uniform_address_space.c').language('c'))
8585

8686
[]($section.id("pointer_construction_requirements"))
@@ -133,7 +133,7 @@ The following special cases of pointer operations can be taken into account, whe
133133
and upper address bound, permissions masks, flags usable for OS or application tasks, see "Capability Hardware Enhanced RISC Instructions:
134134
CHERI Instruction-Set Architecture (Version 9)". Since there is no formal model on how CHERI pointer semantics work, examples are not included.
135135
A work in progress CHERI C is given in paper "Formal Mechanised Semantics of CHERI C: Capabilities, Undefined Behaviour, and Provenance".
136-
CHERI offers (scalable) compartmentalization, spatial memory safety with opt-in temporal memory safety via runtime support mandating pointer capability revocation on freeing memory with latest example being CheriBSD experimental userspace temporal memory safety (20240602).
136+
CHERI offers (scalable) compartmentalization, spatial memory safety with opt-in temporal memory safety via runtime support mandating pointer capability revocation on freeing memory with latest example being CheriBSD experimental userspace temporal memory safety (2024-06-02).
137137
- 7.What to expect for the future.
138138
LLVM support for full restrict has been merged, but
139139
[it has design and quality problems](https://www.reddit.com/r/rust/comments/1ft619r/llvm_rfc_improvements_to_capture_tracking/),

content/articles/shennanigans_in_cpp.smd

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
.title = "Some C++ footgun avoidance.",
33
.author = "Jan Philipp Hafer",
4-
.date = @date("2024-04-20:00:00:00"),
4+
.date = @date("2024-04-15:00:00:00"),
55
.layout = "article.shtml",
66
.tags = ["article", "c++", "software", "design"],
77
.draft = false,
@@ -19,8 +19,8 @@ consider taking a look at the
1919
and [preprocessor iceberg](https://github.com/JadLevesque/PPMP-Iceberg).
2020

2121
[]($section.id("cpp_review"))
22-
Update 20241217:
23-
Since the writing of this article (20240618), I did significantly
22+
Update 2024-12-17:
23+
Since the writing of this article (2024-04-15), I did significantly
2424
extend my CI-tested sample code on C++14, C++17, C++20 and
2525
C++23 and do not plan to continue to list footguns.
2626
My main complains about C++ are

content/articles/shennanigans_in_python.smd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ to collect context (information along multiple functions, for example from
2929
different combination of traversal) becomes unreasonably verbose and error
3030
prone. The alternative is to use C-like error handling, which requires to figure out
3131
all possible exceptions of Python libstd methods, which language servers
32-
do not support (as of 20240404).
32+
do not support (as of 2024-04-04).
3333

3434
[]($section.id("list_of_shennanigans"))
3535
Aside of these more fundamental limitations, here the [list of shennanigans](#list_of_shennanigans) I have run into:

content/articles/shennanigans_in_zig.smd

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
---
99

1010
[]($section.id("intro"))
11-
As of ~~20240404 (zig version 0.12.0-dev.3562+96bc8f17c)~~ 20240701 (zig version 0.14.0-dev.4234+1e3fb4825),
11+
As of ~~2024-04-04 (zig version 0.12.0-dev.3562+96bc8f17c)~~ 2024-07-01 (zig version 0.14.0-dev.4234+1e3fb4825),
1212
* Zig provides
1313
one of the best possible semantics to optimize memory details, while
1414
offering widely portable source code with reasonable safety in a
@@ -22,29 +22,29 @@ very flexible and cryptic syntax of C (see [preprocessor iceberg](https://github
2222
- Bottlenecks of array assignments not obvious via <code>@memcpy</code>:
2323
[perf_array_assignment.zig]($code.asset('./perf_array_assignment.zig').language('zig'))
2424
- Signaling: Test runner allows no signaling to <code>qemu -g
25-
4242</code> (debugger mode). Qemu uses gdb server signaling,
25+
4242</code> (debugger mode). Qemu uses gdb server signaling,
2626
which means sending SIGKILL is necessary to kill
2727
the debugging server process.
28-
- Memory, aliasing and pointer semantics: Zig inherits from LLVM potential
29-
miscompilations due to longstanding provenance and aliasing bugs. (Updated 20240701)
28+
- Memory, aliasing and pointer semantics: Zig inherits from LLVM potential
29+
miscompilations due to longstanding provenance and aliasing bugs. (Updated 2024-07-01)
3030
* [Zig upstream issue](https://github.com/ziglang/zig/issues/20198)
3131
* [LLVM upstream issue](https://github.com/llvm/llvm-project/issues/33896)
3232
* [Related Rust RFC](https://rust-lang.github.io/rfcs/3559-rust-has-provenance.html)
3333
* [Related gcc issue](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105294#c2)
34-
- Weak memory semantics: Zig inherits from LLVM the same class of problems
35-
from the C11 memory model. As of 20240701, and take below statements with a
36-
big grain of salt, since I did not check thoroughly common vendors and I do
37-
mostly rely on talks from ACM SIGPLAN FOWM'24 and "Multicore Semantics:
38-
Making Sense of Relaxed Memory". (Updated 20240701)
39-
* There is nothing conclusive on how the "out of thin air problem" should be
34+
- Weak memory semantics: Zig inherits from LLVM the same class of problems
35+
from the C11 memory model. As of 2024-07-01, and take below statements with a
36+
big grain of salt, since I did not check thoroughly common vendors and I do
37+
mostly rely on talks from ACM SIGPLAN FOWM'24 and "Multicore Semantics:
38+
Making Sense of Relaxed Memory". (Updated 2024-07-01)
39+
* There is nothing conclusive on how the "out of thin air problem" should be
4040
fixed, which is problematic for reasoning with weak memory.
41-
* Many hardware architectures have no sufficiently ISA-complete (and formally
41+
* Many hardware architectures have no sufficiently ISA-complete (and formally
4242
verified) synchronization models.
43-
* There is no official test corpus to stress test architectures by vendors or
43+
* There is no official test corpus to stress test architectures by vendors or
4444
third parties.
45-
* There is no official test corpus with code and optimization models to test
45+
* There is no official test corpus with code and optimization models to test
4646
formal model influence of example code.
47-
* There is no debugging tooling to identify and trace or track down
48-
synchronization bugs from weak memory (in production) or vendor recommended
49-
strategies to stress test on their platforms (derived from the formal models
47+
* There is no debugging tooling to identify and trace or track down
48+
synchronization bugs from weak memory (in production) or vendor recommended
49+
strategies to stress test on their platforms (derived from the formal models
5050
of the architecture).

content/articles/using_zine.smd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
.draft = false,
88
---
99

10-
This is a brief experience report on usage of zine as static website generator from 20241220.
10+
This is a brief experience report on usage of zine as static website generator from 2024-12-20.
1111

1212
My main use cases are
1313

content/index.smd

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,16 @@
99
---
1010

1111
### [Articles]($section.id('home_left'))
12-
* 20240420 - [Python shennanigans.](./articles/shennanigans_in_python)
13-
* 20240420 - [Zig shennanigans.](./articles/shennanigans_in_zig)
14-
* 20240415 - [Some C++ footgun avoidance.](./articles/shennanigans_in_cpp)
15-
* 20240428 - [C shennanigans: Pointers, sequence points and bit fields.](./articles/shennanigans_in_c)
16-
* 20240628 - [Towards an optimal debugging framework library.](./articles/optimal_debugging)
12+
* 2024-04-20 - [Python shennanigans.](./articles/shennanigans_in_python)
13+
* 2024-04-20 - [Zig shennanigans.](./articles/shennanigans_in_zig)
14+
* 2024-04-15 - [Some C++ footgun avoidance.](./articles/shennanigans_in_cpp)
15+
* 2024-04-28 - [C shennanigans: Pointers, sequence points and bit fields.](./articles/shennanigans_in_c)
16+
* 2024-06-28 - [Towards an optimal debugging framework library.](./articles/optimal_debugging)
1717
- wip practice, uniform execution representations, abstraction problems, implementation options
18-
* 20240628 - [Process semantics and abstraction problems on Linux, Windows, MacOS, Posix.](./articles/process_behavior)
18+
* 2024-06-28 - [Process semantics and abstraction problems on Linux, Windows, MacOS, Posix.](./articles/process_behavior)
1919
- wip IPC, security, process groups, abstraction problems
20-
* 20240628 - [Towards an extensible continuous integration library.](./articles/ci_library)
20+
* 2024-06-28 - [Towards an extensible continuous integration library.](./articles/ci_library)
2121
- wip motivation, maintenance, security, remote debugging, untrusted OSes
2222

2323
### [Posts]($section.id('home_right'))
24-
* 20241219 - [Using zine.](./articles/using_zine)
24+
* 2024-12-19 - [Using zine.](./articles/using_zine)

0 commit comments

Comments
 (0)