RSSAmplifier

Blog

Kyou is kyou is kyou is kyou

今日 ( Kyou ) is 共 ( Kyou ) is 興 ( Kyou ) is 狂 ( Kyou ) . A blog about Java, Emacs, Lisp, etc.

kyo.iroiro.partyRSS feed ↗10 posts

Latest posts

This year, I will write a shitty GUI for my Emacs clone

Table of Contents 1. How GNU Emacs renders 1.1. Glyph matrix 1.2. Bidirectional text display 1.3. Ligatures are a must 1.4. composition-function-table 1.5. Text properties 1.6. Lispy text properties 1.7. Other features 2. Why cloning Emacs redisplay behaviors is hard 3. This year, I will … 3.1. Things I will not support 3.2. Things that shitty GUI might support 3.3. Things I do plan to support 4.…

Extensibility: The "100% Lisp" Fallacy

Table of Contents 1. The argument 2. There is no "100% Lisp" 3. Workaround-ish extensibility 4. "Spacebar heating" extensibility 5. Extensibility takes efforts 6. Footnotes So, I've seen some articles promoting Emacs-like editors written in Lisp languages, and one of the most common arguments seems to be: "it's written in This Lisp and also scriptable in This Lisp, and that gives it great…

Exploring Speculative JIT Compilation for Emacs Lisp with Java

This Org-mode file was used for an org-present presentation at EmacsConf 2025 – Juicemacs . This blog post is adapted from that presentation, with added transcript and explanations for a bunch of things I didn't dig into during the presentation. For EmacsConf 2025 Project: https://github.com/gudzpoz/Juicemacs Contact: See the navigation bar (or join the Zulip chat ) Read more… (33 min remaining to…

Configuring Keyboards with Org-mode Babel

Table of Contents 1. Quite a bit of background 1.1. Keyboard layouts 1.2. QMK configs 1.3. When Colemak meets APL 1.4. GNU APL mode 2. Org Babel for keyboards 2.1. From Qwerty to Colemak 2.2. From Colemak to APL 3. Generating source files from Org Babel 4. "Is It Worth the Time?" This month's Emacs Carnival features Org Babel . Since I submitted last month about using Org-mode to manage installed…

Hosting On Cloudflare 'Cause I Need To

So, Cloudflare was down today, again, and this incident brought down a huge part of the Internet with it. It's actually pretty impressive how much of the Internet infrastructure depends on Cloudflare these days. Should we try to be more decentralized? Probably. But will I migrate my sites away from Cloudflare? Sadly, maybe not. And here is why. Read more… (3 min remaining to read)

Using Emacs Org-mode As My Package Manager

Table of Contents 1. Start with a table 2. Sync between the table and pacman 3. Install packages via Org-mode I install random packages from time to time (using Arch Linux , by the way), maybe to try out things, to solve an issue at hand or as an implicit dependency to my Emacs config or other scripts. And it was a pain having to keep in mind which is for which. Then, I started keeping notes for…

Why I Can't Feel Like Wayland

Table of Contents 1. Peek 🙈 2. Input Methods 3. Bug Reporting 4. Wayland Protocol Versus X11 Server 5. Other Cuts 6. Pros So I had been using Wayland (sway) for two years or so, and I finally decided to ditch it and switch back to X11 (i3). This blog post serves as an explanation for the decision and a reminder for the future me trying out Wayland the second third time. Please note that the…

ANSI escaping is a mess (or, why Emacs adds [] to my file?)

Table of Contents 1. Why? 2. A Tale of Two Takes 2.1. Emacs Keymaps 2.2. The Evil Approach 2.2.1. menu-item : Menus Implemented As Keymaps 2.2.2. Evil Fixes To M-[ and M-O 2.3. The Workaround Approach 3. Afterwords So I've long been puzzled by this behavior of my Emacs config: sometimes when I open a file in the terminal with Emacs, it adds a pair of square brackets around the current…

Writing a Lisp JIT Interpreter with GraalVM Truffle

Table of Contents 1. What is Graal and Truffle 2. Speculation and Truffle DSL 2.1. @GenerateNodeFactory 3. Runtime Macro Expansion 3.1. Frames Within Frames 4. Special Forms 5. Built-In Function Inlining 5.1. Lazy AST Creation 5.2. Function Redefinition And Assumptions 6. Emacs Lisp Closures 7. Creating Closures In a Loop 7.1. Sharing AST Between Closures 8. Anything More? Mandelbort benchmark:…

Why Rewriting Emacs Is Hard

Table of Contents 1. Rolling your own string types 1.1. Lossless file editing 1.2. More universal than Unicode 2. Bringing your own string libraries 2.1. Case tables 2.2. Regexp 2.3. Any encoding you want 3. Buffers are more than buffers 3.1. Trees are everywhere 3.2. Strings into buffers into strings 3.3. More on gap buffers 4. Summarizing There have been quite a few attempts to re-implement…