| Age | Commit message (Collapse) | Author | Files | Lines | |
|---|---|---|---|---|---|
| 9 days | kstd: ring_buffer: implement move ctor | Felix Morgner | 2 | -0/+25 | |
| 9 days | kstd: ring_buffer: implement copy ctor | Felix Morgner | 2 | -0/+36 | |
| 9 days | kstd: ring_buffer: implement dtor | Felix Morgner | 2 | -0/+56 | |
| 9 days | kstd: ring_buffer: move construction tests | Felix Morgner | 1 | -32/+32 | |
| 9 days | kstd: ring_buffer: add missing [c]rend() tests | Felix Morgner | 1 | -0/+15 | |
| 9 days | kstd: ring_buffer: implement [cr][begin|end]() | Felix Morgner | 2 | -0/+180 | |
| 9 days | kstd: ring_buffer: fix empty() and size() | Felix Morgner | 2 | -11/+26 | |
| 9 days | kstd: ring_buffer: add more range-based tests | Felix Morgner | 1 | -0/+50 | |
| 10 days | kstd: ring_buffer: implement [c]end() | Felix Morgner | 2 | -1/+134 | |
| 10 days | kstd: ring_buffer: implement [c]begin() | Felix Morgner | 2 | -1/+140 | |
| 10 days | kstd: ring_buffer: implement iterator type | Felix Morgner | 2 | -0/+165 | |
| 10 days | kstd: ring_buffer: add n-value-initialized ctor | Felix Morgner | 2 | -0/+52 | |
| 10 days | kstd: ring_buffer: add write-through tests | Felix Morgner | 1 | -0/+32 | |
| 10 days | kstd: ring_buffer: fix const-overload tests | Felix Morgner | 1 | -3/+3 | |
| 10 days | kstd: ring_buffer: add ctor panic test | Felix Morgner | 1 | -0/+10 | |
| 10 days | kstd: ring_buffer: extract basic storage | Felix Morgner | 2 | -23/+127 | |
| 11 days | kstd: ring_buffer: add missing test tag | Felix Morgner | 1 | -1/+1 | |
| 11 days | kstd: ring_buffer: add interface type tests | Felix Morgner | 1 | -0/+82 | |
| 11 days | kstd: ring_buffer: implement operator[] | Felix Morgner | 2 | -5/+45 | |
| 11 days | kstd: ring_buffer: simplify element_at | Felix Morgner | 1 | -3/+3 | |
| 11 days | kstd: ring_buffer: rename element_at_index | Felix Morgner | 1 | -4/+4 | |
| 11 days | kstd: ring_buffer: implement n-values ctor. | Felix Morgner | 2 | -1/+99 | |
| 11 days | kstd: ring_buffer: add missing documentation | Felix Morgner | 1 | -4/+13 | |
| 11 days | kstd: ring_buffer: rename head and tail | Felix Morgner | 1 | -9/+9 | |
| 11 days | kstd: ring_buffer: implement at() | Felix Morgner | 2 | -0/+84 | |
| 11 days | kstd: ring_buffer: implement size() | Felix Morgner | 2 | -0/+18 | |
| 11 days | kstd: ring_buffer: implement empty() | Felix Morgner | 2 | -0/+18 | |
| 11 days | kstd: ring_buffer: add do sections | Felix Morgner | 1 | -0/+5 | |
| 11 days | kstd: ring_buffer: implement max_size() | Felix Morgner | 2 | -0/+16 | |
| 11 days | kstd: ring_buffer: implement capacity() | Felix Morgner | 2 | -4/+16 | |
| 11 days | kstd: add ring_buffer include | Felix Morgner | 2 | -0/+37 | |
| 11 days | chore: clean up python scripts | Felix Morgner | 21 | -57/+113 | |
| 11 days | chore: update python dependencies | Felix Morgner | 1 | -182/+182 | |
| 11 days | ide: fix poetry dependencies | Felix Morgner | 2 | -387/+24 | |
| 11 days | Merge branch 'fmorgner/implement-interrupt-locking' into 'develop' | Felix Morgner | 14 | -25/+602 | |
| kapi/interrupts: implement irq_lock See merge request teachos/kernel!61 | |||||
| 12 days | x86_64: fix flag reading | Felix Morgner | 4 | -6/+92 | |
| 12 days | ide: enable <...> include checks | Felix Morgner | 1 | -0/+2 | |
| 12 days | kapi/interrupts: add tests | Felix Morgner | 2 | -0/+254 | |
| 12 days | kapi/interrupts: admit irq_lock dtor may panic | Felix Morgner | 1 | -1/+8 | |
| 12 days | kapi/interrupts: improve irq_lock protections | Felix Morgner | 1 | -5/+53 | |
| The previous implementation suffered from four problems: 1. try_lock in the basic irq_lock always succeeded. 2. lock in the basic irq_lock always succeeded. 3. try_lock in the wrapper irq_lock did not use the base try_lock. 4. a foreign CPU could wrongly unlock a remote irq_lock. These issues are mitigated in this patch. | |||||
| 12 days | kapi/interrupts: tests: fix state data race | Felix Morgner | 1 | -14/+3 | |
| 12 days | kapi/interrupts: tests: make IRQ state thread specific | Felix Morgner | 1 | -3/+12 | |
| 12 days | kapi/interrupts: implement IRQ lock | Felix Morgner | 2 | -0/+110 | |
| 12 days | kstd/mutex: export lockable concepts | Felix Morgner | 1 | -0/+9 | |
| 12 days | kstd/concepts: add lockable concept | Felix Morgner | 1 | -0/+15 | |
| 12 days | kstd/concepts: document basic_lockable | Felix Morgner | 1 | -0/+12 | |
| 12 days | kapi/interrupt: rework enablement API | Felix Morgner | 5 | -25/+61 | |
| 2026-09-17 | build/x86_64: add missing -ffreestanding flag | Felix Morgner | 1 | -0/+1 | |
| Enable the '-ffreestanding' flag in the x86_64 toolchain file to inform the compiler about the fact that it cannot rely on the presence of a standard library implementation, thereby suppressing some optimizations designed for regular user applications. GCC supports a number of clever optimizations, some of which rely on the presence of a standard library. One of them is "-ftree-loop-distribute-patterns". This optimization performs detection of certain loop patterns, replacing them with library calls when applicable. This is problematic for cases in which we implement the standard library functionality. Consider, a schematic, `memset``: ```c++ void memset(void * d, int v, size_t n) { for(auto i = 0uz; i < n: ++i) { d[i] = static_cast<std::byte>(v); } } ``` GCC recognizes this loop, and similar versions of it, as an implementation of `memset`. In a hosted implementation, this is an important optimization, since a standard library may be able to provide a specifically optimized version of `memset``. So the compiler replaces this `memset` loop with a call to `memset`, since it is not aware of the fact we are currently implementing `memset`. Interestingly, tail recursion optimization eliminates the call, transforming it into a jump to the start of `memset`. This leads to execution getting stuck inside `memset` with no way of exiting and no stack usage increase, thus causing an infinite lockup. While we could suppress the specific optimization, it is more effective to tell the compiler "why" it can emit a call to memset in those cases. | |||||
| 2026-09-14 | ide: silence LTRANS job server warning | Felix Morgner | 1 | -0/+1 | |
| 2026-09-10 | kstd: fix doc comment | Felix Morgner | 1 | -1/+1 | |
