The Curious Engineer

All blogs / Compilers

Pavel Panchekha’s Blog

pavpanchekha.com

CompilersMathPerformance / optimization

Posts
171 from 14 May 2011 to 24 Apr 2026
Posting
monthly (6 in the last year)
Kind
personal blog
Feed
https://pavpanchekha.com/rss.xml

2026 3

  1. Unary Functions in an E-graph
  2. LLM vs Kepler
  3. The Token Production System

2025 21

  1. Agent Harnesses are Just Shells
  2. How to Start AI Coding
  3. Should CSS be Constraints?
  4. We'd be Better Off with 9-bit Bytes
  5. Distinguished (for me) Papers of PLDI'25
  6. Testing My M1 Simulator
  7. Simulating Double-Double Addition Algorithms
  8. Some Surprising Quantifier Elimination Operators
  9. LIN-graphs, an Egraph modulo T
  10. Deciding Equality for Trigonometric Expressions
  11. Egraphs Modulo T (Attempt 1)
  12. How Operator Fusion Affects Error
  13. The Promise of P-Graphs
  14. Absorption in Double-Double Arithmetic
  15. The Fastest TwoSum on an Apple M1
  16. FastTwoSum is Faster Than TwoSum
  17. ChatGPT o3 is the Real Deal
  18. Binary Search is Very Fast
  19. How Stylo Matches CSS Selectors
  20. Does O3 beat a specalized numeric compiler?
  21. Herbie Without Iterations

2024 10

  1. A Plan for Herbie Plaforms
  2. A Tricky Herbie Bug
  3. Not all Arithmetic Operations are Created Equal
  4. Batches as Virtual Mu Types
  5. OpenAI o1 vs. Herbie
  6. Scheduling Batch Computations
  7. Batches for Recursive Data Structures
  8. Herbie Performance in 2024
  9. Selector Matching is Quadratic
  10. Why Herbie uses Rival, not Arb

2023 6

  1. Optimal Heap Limits for Generational GCs
  2. Rounding Bits over Rounding Modes
  3. ChatGPT vs Herbie
  4. How I Think About Research Projects
  5. Top-down LR parsing
  6. MegaLibm: a Math Library Workbench

2022 5

  1. Improving Rust with Herbie
  2. Affine Arithmetic and Error Taylor Series
  3. A new era for Herbie
  4. Optimizing Pruning in Herbie
  5. Speeding up Skia using E-graphs

2021 9

  1. What is the Complexity of Selector Matching?
  2. Epsilon and Delta in Error Models
  3. Binding in E-graphs
  4. Synthesizing Range Reductions
  5. An Accurate Quadratic Formula
  6. User Trust in Herbie
  7. Fuzzing for Layout Invalidation Bugs
  8. Understanding Error Taylor Series
  9. A DSL for Math Library Implementation

2020 6

  1. Detecting Symmetric Expressions
  2. Balancing Multiple Garbage Collectors
  3. A Software Verification Project
  4. Using Egg in Herbie
  5. A Feb 2020 look at Herbie
  6. Verification Beyond Functions

2019 10

  1. Why are Shell Scripts Bad?
  2. Parallel Line Breaking
  3. Proof Systems are Operating Systems
  4. A Survey of PL Blogging (Part 2)
  5. Intrinsic and Extrinsic Data
  6. Architecture Patterns
  7. Long-term Goals for Herbie
  8. Sub-specifications
  9. Was Lower Case Designed for Reading Speed
  10. Designing Libraries Like Languages

2018 26

  1. Learning Shame
  2. What's Wrong with CSS?
  3. Dedicated Crossword Practice
  4. Categories for Reactive Programming
  5. Selective Crossword Submissions
  6. You Start Off Bad at Crosswords
  7. Crossword Science with Stan
  8. How I Track TODOs
  9. Remembering the Herbie Visualizer
  10. Social Processes in Package Managers
  11. First Impressions with Typed Racket
  12. Programs as Patchwork
  13. Solving Resistance
  14. Programming with Pushouts
  15. Not Quite Pushouts
  16. Cryptic Mastermind with Z3
  17. A Survey of PL Blogging (Part 1)
  18. A Game Theory of Primaries
  19. WIP: Programming by Voice
  20. Assigning Meaning to open terms
  21. Floating Point Error in Polynomials
  22. Floating Point Error in the Small
  23. Functions and Relations in First Order Logic
  24. How Cassius Works
  25. Variary Functions in Coq
  26. Local Error and Blame Analysis

2017 11

  1. A Fine Language
  2. Unpublished blog posts in Magit
  3. Exact Geometric Operations
  4. Why Equality?
  5. Paper Statistics with TimeTracker
  6. Shadow Icons with CSS
  7. First-order Logic is a Modal Logic
  8. How CSS Floats Work
  9. Multi-command-line in Racket
  10. Grammars in Racket
  11. How Herbie Happened

2016 6

  1. Bimodal logic
  2. Rational Rationality
  3. Models for Modal Logic
  4. What is Modal Logic?
  5. Solving the Prisoners’ Dilemma
  6. Designing the PLSE logo

2015 9

  1. Modularity for Verdi
  2. Quadrature in Bash
  3. Equal functions in ITT
  4. Well-Suited
  5. WIP: Refinement in Mathematics
  6. Zippers, Part 4: Multi-Zippers
  7. Models from Models
  8. Game-theoretic Protesters
  9. Pedestrian Statistics

2014 18

  1. Logarithms of Taylor Expansions
  2. Hyperbolic sines in math.js
  3. Taylor Expansions of Taylor Expansions
  4. Arbitrary Precision, not Arbitrary Accuracy
  5. Complex Square Roots in math.js
  6. The Eigenvalue Game
  7. Paper Statistics with Git
  8. Defining our Logic
  9. What is a Model?
  10. Floating Point Guarantees
  11. Tree Lookups
  12. Major Key
  13. Age-aware Array Search
  14. Fixed Points, Part 4: Stability
  15. Stream Fuse Carefully
  16. Plotting Functions in D3
  17. Pairs in Hindley-Milner Languages
  18. Fixed Points, Part 3: Attraction and Orders

2013 10

  1. Fixed Points, Part 2: Fixed Behaviors
  2. Fixed Points, Part 1: What is a Fixed Point?
  3. The Gaussian and the Sine
  4. Tea Physics
  5. Xifed points
  6. (call/cc call/cc) and friends
  7. Engineering Taste
  8. Organizing Objects
  9. Algebraic Data Types in Scheme
  10. Uniqode

2012 6

  1. Typing Analytics in Emacs
  2. Forward with Federated
  3. Package Management for the 21.1st Century
  4. The Law of Demeter, and a question of design
  5. The Levels of Concurrency
  6. Time, Clocks, and an Implementation in Erlang

2011 12

  1. Zippers, Part 3: Kiselyov Zippers
  2. Zippers, Part 2: Zippers as Derivatives
  3. Zippers, Part 1: Huet Zippers
  4. Injection is a Display-level Problem
  5. Programming with Types
  6. MIT Zephyr from Arch Linux
  7. Using Org-mode to Publish a Web Site
  8. Treaps: The Magical Awesome BBT
  9. Installing Ubuntu on LVM
  10. Sequences, Series, and Recursion
  11. How to Draw a Heart in Polar Coordinates
  12. 7919, 7853, and Li(x)

Undated 3

  1. An update on Herbie, Summer 2022
  2. Herbie in 2019
  3. Moral Prisoners