Creează un cont pentru a te abona la acest blog și a-i urmări articolele pe pagina Lectură.
-
My new ZBook G1a comes with AVX-512 instructions and a healthy memory bandwidth (200GB/s allegedly), so one of the first things I did was write a little kernel to see how fast it can really go.
-
Introduction I’ve just bought a laptop, having had my current machine for around a decade.
-
Introduction Compilers are full of strings, and resolving entities by name winds up being a common operation.
-
This post documents a small technique I invented (in the sense that I haven’t seen if before, although I wouldn’t be surprised if there is prior art) for packing small sparse arrays into dense arrays.
-
Wirecode is a library and wire format I’ve been working on for simple serialization and deserialization of data in C.
-
Some of the software I’ve written or I’m working on.
-
broot is a small utility I wrote specialized to build sandboxing on linux.
-
Sometimes its useful to understand how a procedure receives its arguments, and returns values it computes.
-
I would like to add an ARM64 backend to my compiler project, but a prerequisite for that is learning ARM64 assembly sufficiently well that I can get something basic stood up.
-
Compilers are full of cute little data structure and algorithm problems.
-
OpenBSD has the capability of restricting permissible syscall origins addresses.
-
Following on from previous investigations into deleting characters, and deleting characters using MMX instructions it remains to be seen what can be done using the full 16-byte with of SSE registers.
-
In a discussion on Twitter somebody pointed out to me that the pext instruction on AMD processors is much slower than on Intel, up until fairly recent processors (Zen 3).
-
A small devlog of a Christmas project.
-
My language and compiler (“orion”) is getting to the point I could use it to write some vaguely real software.
-
I’m setting up my workstation with a fresh install.
-
I learned a cool things from Justine Tunney’s work (I’m a great admirer), in particular from her work on redbean.
-
Intel’s vector instruction sets (SSE, AVX etc.) are well known, but Intel has added various other instruction set extensions specialised for other tasks.
-
Introduction movemask instructions take a vector register of values, and construct an integer where the ith bit is set precisely when the higher order byte of the ith lane is set.
-
On and off over the last year or two I’ve been trying to learn more about doing sophisticated things with SIMD instructions.
-
Small sets of small integers can often be packed into single integers by using the bits to mark presence or non-presence of elements.
-
TL;DR: On OpenBSD, while testing, set MALLOC_OPTIONS="SCFGJRU" in your environment.
-
Aside from the usual error handling in C, gotos can be convenient for the first pass on some programs.
-
The following are source code snippets for showing how to blit pixels directly using X11.
-
I like interfaces which permit fuzzy matching.
-
General This is my personal site for dumping whatever I want.
-
Condensed notes on how to use git subtrees to vendor in source code.
-
Introduction Tracepoints provide a way to instrument running programs dynamically in order to aid debugging.
-
Linked lists aren't necessarily the first data structure you might reach for, but if you need them, it's nice to not have to keep reimplementing the structures and operations.
-
Sometimes it's nice to be able to allocate a bunch of different linked structures in one go, instead of making separate allocations.
-
We'll measure the impact of false-sharing on a simple spinlock.
-
A pithy a terse account of memory models and lock-free programming.
-
I've decided to start a new site.
-
One of the often recognized issues with object-oriented programming is that it's often hard to write multithreaded software well.
-
Introduction Haskell is one of my (if not my) favourite language.
-
Introduction st is a simple terminal emulator from suckless tools.
-
I recently converted one of my machines from a parabola installation to a Debian 10 system.
-
Introduction Recursion is central to functional programming, as a clearer alternative to loops as other control structures typical of imperative languages.
-
NixOS isn't a libre distribution by any means, but it comes close, and maintains a clear distinction between free and non-free packages (and in fact, different license types).
-
Here I’ll outline how I managed to get DragonFly BSD to boot from a single slice (Linux: partition) by chainloading the DragonFly bootloader boot1.