New

The latest blog posts to take off on Hacker News. 1,274 posts.

Software Engineering
2018
1051

Reasoning with Types in Rust

Hi, I'm Ariel (she/her), a newly-minted member of the Swift team at Apple ! Previously, I helped lead the Luau team at Roblox where my efforts primarily focused on the design and implementation of Luau 's type system. I also led the creation of Lute to support using Luau both to build developer tooling, and as a…

1058

An SVG that always shows today's date

For my contact page, I wanted a generic calendar icon to let people view my diary. Calendar icons are almost always a skeuomorph of a paper calendar, but I wondered if I could make it slightly more useful by creating a dynamic icon. Here it is, an SVG calendar which always display's today's date: The background image…

1059

A Crash Course on ML Modules (2015)

I was having lunch with a couple of Haskell programmers the other day and the subject of the ML family came up. I’ve been writing a lot of ML lately and mentioned that I thought *ML was well worth learning for the average Haskeller. When pressed why the best answer I could come up with was “Well.. clean language, Oh!…

1063

Versioned Go Commands

What does it mean to add versioning to the go command? The overview post gave a preview, but the followup posts focused mainly on underlying details: the import compatibility rule , minimal version selection , and defining go modules . With those better understood, this post examines the details of how versioning…

1077

Go and Versioning: Minimal Version Selection

A versioned Go command must decide which module versions to use in each build. I call this list of modules and versions for use in a given build the build list . For stable development, today’s build list must also be tomorrow’s build list. But then developers must also be allowed to change the build list: to upgrade…

1080

Go += Package Versioning

More precisely, we need to add the concept of package versions to the working vocabulary of both Go developers and our tools, so that they can all be precise when talking to each other about exactly which program should be built, run, or analyzed. The go command needs to be able to tell developers exactly which…