Înapoi la articole →

Cel mai recent articol

Ultima verificare

Urmăritori 0 urmăritori
Articole: 64
  1. Superoptimizing an FPU emulator

    Superoptimization is the process where a compiler automatically finds the optimal sequence for a loop-free sequence of instructions. – Wikipedia Compilers are good at making mechanical transformations that make code faster.

  2. I started speedrunning Minecraft a while ago.

  3. Who is vfmaddrnd231pd??

    vfmaddrnd231pd is a unique instruction from the FMA instruction set.

  4. Vectorized CLZ and CTZ

    clz and ctz are instructions that compute the number of leading (trailing) zero bits in a fixed-size integer.

  5. Grieving the loss of details

    I’ve been thinking about where I stand in respect to the current state of the industry.

  6. Write while learning

    When learning new topics, we always ask questions we can’t find answers to.

  7. So I’ve been meaning to write about something, but got sucked into this rabbit hole, and now I’m kinda scared if I’ve been a subject of propaganda that worked on me.

  8. The NX bit is not just about security

    While I’m taking a short break from low-level programming, here’s a story by a friend of mine, Sonya, about debugging a seemingly impossible bug in ARM code.

  9. accept() and socket inheritance

    This post is about Windows.

  10. WinAPI represents most “things” as HANDLEs: files, cross-process mutexes, threads, jobs, etc.

  11. Race-free handle inheritance, maybe

    Last time, I found out that Rust’s implementation of subprocesses on Windows makes it impossible to spawn children that inherit selected handles without race conditions.

  12. Say you’re writing a Windows IPC library for Rust, and you want to pass a handle to a child process.

  13. Thoughts on "SIMD in Pure Python"

    I found the post SIMD in Pure Python by retr0id about optimizing Game of Life and thought it’s a good opportunity to yap about SWAR.

  14. Impressions of Teal

    About two months ago, I found the Teal programming language, which describes itself as a statically-typed dialect of Lua.

  15. log is non-monotonic in PHP and Lua

    If a>b>1 and x>1, you can prove that loga⁡x<logb⁡x.

  16. Sorted rank coding

    I need a place to describe this algorithm, since it seems to be undocumented on the 'net, so here it is.

  17. So I was optimizing a domain-specific compressor the other day, as one does.

  18. Optimal parse with phminposuw

    This problem arose when I was writing a specialized data compressor.

  19. Does technical blogging spark joy?

    I blog because I want to share knowledge.

  20. Intended audience: data compression geeks.

  21. This is a guest post by Yuki about some tricks we use for Lua code compression in our shared ComputerCraft pet project.

  22. This post assumes basic familiarity with arithmetic coding.

  23. 2945 bytes.

  24. Wasm is not quite a stack machine

    Everyone knows Wasm is a stack machine.

  25. Wait, if (flags & O_SYNC) is wrong?

    I needed to convert file status flags between operating systems yesterday.

  26. Programming used to be free

    The appearance of Mythos – a private LLM allegedly capable of finding a multitude of 0-days – has made people concerned about being denied powerful tools.

  27. No one owes you supply-chain security

    In case you’re unaware, I’m not a developer.

  28. Simplest hash functions

    What came to your mind when you read “hash functions” in the title?

  29. This is a rant about how broken everything Web is based on is.

  30. Minecraft generates a bedrock floor at the bottom of the world from a random noise.

  31. Two years ago, I was pondering ways to enhance borrowck with proof-based analysis.

  32. An ode to bzip

    The story goes like this.

  33. Faster practical modular inversion

    Last year, Lemire wrote about an optimized variation of the Euclidean algorithm for computing the greatest common divisor of two numbers, called binary Euclidean algorithm or Stein’s algorithm.

  34. Functions in binary files need to have unique names, so Rust needs to decide what to call its functions and statics.

  35. This article is a technical counterpart of my previous post Finding duplicated code with tools from your CS course.

  36. A look at Rust from 2012

    Recently I was scrolling through brson’s Rust quote database and stumbled upon a link to the official Rust tutorial from the very beginning of 2013.

  37. ntoh*/hton* is a bad API

    Say you want to send a list of consumer records to another microservice over network via JSON.

  38. Suppose that you’re writing a static analyzer and you want to write a diagnostic for match arms with equal bodies: match number { 1 => { // <-- let x = 1; f(x) } 2 => f(g(h())), 3 => "", 4 => { // <-- let x = 1;

  39. Some time ago, I played around with decompiling Java class files in a more efficient manner than traditional solutions like Vineflower allow.

  40. The expression problem and Rust

    A few days ago, I stumbled upon a Hacker News discussion about the expression problem – a conundrum that occasionally arises in software design.

  41. Fenwick layout for interval trees

    Fenwick trees and interval trees are well-known data structures in computer science.

  42. Here, read the intro of the Wikipedia page for Command pattern with me: In object-oriented programming, the command pattern is a behavioral design pattern in which an object is used to encapsulate all information needed to perform an action or trigger an…

  43. "AI discourse" is a joke

    In contemporary “AI” discourse, people often make a point that LLM output cannot be trusted, since it contains hallucinations, often doesn’t handle edge cases properly, causes vulnerabilities, and so on.

  44. This is a tech phenomenon that I keep getting blindsided by no matter how much I try to anticipate it.

  45. I’m making progress on the Java decompiler I’ve mentioned in a previous post, and I want to share the next couple of tricks I’m using to speed it up.

  46. This post is about a popular but niche technique I can never find a succinct reference for.

  47. I’m working on a Java decompiler because I’m not satisfied with the performance of other solutions.

  48. I’m not talking about skill, knowledge, or convincing a world focused on radical acceleration that optimization is necessary.

  49. Null pointers look simple on the surface, and that’s why they’re so dangerous.

  50. The RAM myth

    The RAM myth is a belief that modern computer memory resembles perfect random-access memory.