RSSAmplifier

Blog

xnacly - blog

Recent content on xnacly - blog

xnacly.meRSS feed ↗63 posts

Latest posts

Making stinkarm stink way less, or more?

removing overengineered memory translation, hardening and new table driven armv7 instr decoding

Revisiting and Optimising go-iso8601-duration

6.32x faster via zero allocations, less UTF8, more ASCII and assumptions

Compiling Match Statements to Bytecode

Full pipeline deep dive for purple garden: AST, BB SSA IR, Bytecode, Optimisations

Building The Worst Vi Emulation for My Mail Client

Naive vi like motion subset emulation bolted on top of bubbletea in 120loc

Poking holes into bytecode with peephole optimisations

First optimizations I made while redesigning and semi-porting the purple-garden runtime from C to Rust

The Manchester Garbage Collector and purple-garden's runtime

A deep dive into purple-garden’s runtime and semispace copying garbage collector with explicit root enumeration and bump allocation

Building a Minimal Viable Armv7 Emulator from Scratch

Emulating armv7 is surprisingly easy, even from scratch AND in Rust

Porting a Segmented List From C to Rust

Macros, Token pasting and Custom allocators vs Traits, Option<Box<[MaybeUninit<T>]>> and the borrow checker

Handrolling ISO8601 Duration Support for Go

So I need to use ISO8601 durations which Go doesn&rsquo;t support

Strategies for very fast Lexers

Making compilation pipelines fast, starting with the tokenizer

Where The FUCK Are slice.Flatten And slice.Map

Go iterators are too minimalist and iter.Seq/iter.Seq2 suck

Hybrid Register/Stack VM for Faster Function Calls

Designing a calling convention by merging registers and a stack into the purple-garden vm

Rethinking How I Deal With CLI Arguments (replacing getopt)

Shortcomings of getopt, parsing CLI arguments into flags, no POSIX and a lot of implementation details

Switching from lspconfig to vim.lsp.config and vim.lsp.enable

nvim@v0.11 finally stabilizes lsp configuration &ldquo;shortcuts&rdquo; from nightly

Using the latest C standard with clang lsp in nvim

The default config of the clang lsp is old, so you have to specific &ndash;std

Abusing C to implement JSON Parsing with Struct Methods

Json parsing in C using function pointers attached to a struct

Syntax Highlight for SQL in Diagnostic errors

Adding syntax highlighting to SQL snippets in sqleibniz diagnostics

Highlighting Parts of Lua as Bash

Using Treesitter in neovim to conditionally highlight code snippets

Optimizing libjson, or: beating encoding/json by at least 2.5x

Benchmarking, analysing and improving JSON parsing performance

Embedding Lua in sqleibniz with Rust

Improving the SQL DX one blog article at a time

Making SQL Keyword Suggestions Work

Implementing levenshtein distance naïvely (and very slow) in Rust

Optimizing a go package by 38147125738.8x

Investigating performance issues in a go package for open port lookup

Why I love Rust for tokenising and parsing

Macros, iterators, patterns, error handling and match make Rust almost perfect

Fun with Go Iterators

Go 1.23 added Iterators, so lets build a js like streaming api

Making libjson RFC 8259 compliant

Giving lots of edge cases attention, so I can call my json parser RFC 8259 compliant

HashMap in 25 lines of C

Minimal hash table implementation

Calling Go Functions from c++

Interacting with the Go runtime with c++ (or c, i think)

Inserting 100k rows 66 times faster

Doing less enables doing more INSERTs

My Favorite Vue.js Feature

Sharing state up and down the DOM, My favorite Vue.js feature and its React.js counter part

POC JIT With Go (plugins)

Proof of concept for compiling arithmetic expressions on the fly

Tokenizing Arithmetic expressions - calculator p.1

In depth guide on tokenizing input + interpreter setup

Implementing growing arrays for C

Implementing a go like slice type for and in c

Disable Firefox Translation

Disabling popup prompt and translation in firefox@^118

Implementing Result Types for C

Implementing a Rust like Result type for and in c

Removing metadata from Go binaries

Stripping metadata and debug information

Leetcode Optimization and Go

Solving and optimizing a leetcode puzzle in three ways

Lexical analysis of Markdown in Go

How to tokenize markdown without regular expressions

RSA and Python

Understanding, implementing and cracking RSA

Remap Copilot suggestions in Nvim with Lua

Snippet to remap accepting copilot suggestions

Handle CSV, JSON and XML with Java

Small guide with snippets for encoding and decoding data into csv, json and xml

Git Guide for absolute beginners

Small but sufficient guide for github and git beginners

How to sign jar files

Guide for signing jar files and verifying a jar files signature programmatically

Handling JSON in Go

Guide about working with JSON in go with HTTP server example

How to fix corrupted git objects

How to fix the &lsquo;object &hellip; is corrupt&rsquo; issue which renders git unusable

How to periodically sync a git repository with its remote

A guide to updating a repository periodically using x-git-sync

Check if executable is in the path with go

Quick guide with snippet on how to check if a executable is in the systems path

Using autocommands with the new neovim api

Short guide to adding autocommands to neovim using lua with the vim.api.nvim_create_autocmd interface

Top 10 neovim plugins

Top 10 neovim plugins everyone needs

Install & Configure FzF in Neovim - PDE p.III

Guide to using fzf in neovim with preview and keybinds

Using Vue.js with Electron

Guide for setting up and packaging a vue.js project with electron and vite