Strategies for Fast Lexers
Making compilation pipelines fast, starting with the tokenizer
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 21,831 posts.
Making compilation pipelines fast, starting with the tokenizer
Writing new billing and payments code with Stripe for our video call API
Community momentum builds on the path to release
Dapr enables all developers using any language and any framework to easily build portable microservices applications.
This post is an attempt to explain the incremental parsing algorithm aretext uses for syntax highlighting. Like the rest of aretext, parsers are implemented in Go for portability and performance. Most people do not consider Go a functional programming language; nonetheless, aretext’s parsers rely on functional…
Announcing a new, more secure way to publish to PyPI
Today we're happy to announce the availability of TypeScript 3.4! If you haven't yet used TypeScript, it's a language that builds on JavaScript that adds
My day job is in browsers and cryptography , not compilers, yet I often find that I need to spend more of my time working through the semantics of programming languages than using them. This post discusses a thorny cross-language issue between C, C++, and Rust. In short:
The first nerdy dispatch from my Quixotic Hardware Project, QIXOTE-1
Konstantin Preißer made an interesting discovery , after reading my article “ PHP Hangs On Numeric Value 2.2250738585072011e-308 ”: Java — both its runtime and compiler — go into an infinite loop when converting the decimal number 2.2250738585072012e-308 to double-precision binary floating-point. This number is…
History of the development of my Pascal compiler for transputer when I was age 13.
How Replit turns any web page into a deterministic video by virtualizing time itself, patching key browser audio APIs, and waging war against headless Chrome's quirks.
Executing a full rewrite of the Dropbox sync engine was pretty daunting. (Read more about our goals and how we made the decision in our previous post here .) Doing so meant taking the engine that powers Dropbox on hundreds of millions of user’s machines and swapping it out mid-flight. To pull this off, we knew we…
Recently, I was looking at the Zig programming language . As I often do, I started implementing a few typical things in new languages to learn them. Well, one of them was super slow and Zig is supposed to be super fast, so I was trying to understand where the disconnect was and compare it to Factor !
Here are some notes that may help newcomers understand what is actually happening with QEMU devices:
This release was about simplifying the experience of Light Table, making it far more robust, and making sure it’s fast enough to handle whatever you throw at it. We’ve made big strides in each of these areas, from removing some of the UI elements that didn’t add anything (the left vertical menu), to reaching the point…
dystroy - blog
There have been a few efforts at writing an Emacs JIT — the original one , Burton Samograd’s , and also Nick LLoyd’s . So, what else to do except write my own?
A deep dive into Rails engines through Active Storage Dashboard: structure, isolation, routes, assets and testing. Learn to build modular Rails apps.
Recovering and preserving Crimsonland, the 2003 top-down shooter, through reverse engineering of its original binary.
Mugo is a single-pass compiler for a tiny subset of the Go programming language -- just enough to compile itself.
The PyPy team is proud to release both PyPy3.5 v5.9 (a beta-quality interpreter for Python 3.5 syntax) and PyPy2.7 v5.9 (an interpreter sup...
Flow is an important part of software development. The ability to achieve flow during daily work makes software development a uniquely enjoyable profession
One of the things that Git makes safe and practical is bulk editing by way of “sledgehammer-and-review”:
Some time ago I decided I wanted to create a c compiler for the Hack processor in the nand2tetris book. After several dead end attempts that I might describe later I found this book : Writing a C C…
I built a tiny shell in C to learn what fork, execvp, and dup2 are doing under the hood.