de en es fr nl pl pt sv zh

compilers

Adventures in Open-Source: the lit profraw race

abm-77

IntroThis is the start of an ongoing mini-series where I document contributions I make to open source projects. These aren't tutorials; I won't be teaching background theory. Instead, I want to walk through the process: how I identified the issue, designed a fix, and went through code review....

How I Got a Job in Compilers

abm-77

IntroI won't sugarcoat it: getting a job in compilers was kinda rough. SWE jobs have already been getting more and more competitive with the advent of AI, but compiler engineering specifically has always been a bit elusive, especially for junior folks. Most of the already-few postings for such...

ariadne: a CI/CD Optimizing Compiler

abm-77

BackgroundAt work, I've been deep in CI refactors for the past few weeks. Simplifying control flow, better utilizing our runners, reducing the number of build steps, speeding up coverage, parallelizing jobs, etc. Doing all of this, one thing became pretty clear: CI pipelines are deceptively hard...

A Computer for Compilers

abm-77

IntroOne of the cooler benefits offered by Efficient is a budget for buying your work machine, as opposed to everyone getting the same one. Not sure how long we'll keep doing this, but it does have pros and cons: Pros: You can choose the form factor (laptop or desktop) You can choose the specs...

umbral: a language + runtime for games

abm-77

BackgroundFor the past month, I've been working on a toy programming language called umbral. The goal is for it to be part of a larger suite of tools called lunar, designed for making interactive graphical applications (read: games). Other planned tools include a debugger, text editor, DAW, who...

A New C Programming Environment

Josh Huelsman

In April, I had left my role as a compiler, VM, and game engine, engineer at Roblox. I had decided to not actively seek other jobs; instead I’ve been focusing a few new projects of my own: a C compiler, a break-through CPU emulator, and an IDE. A C compiler, a CPU emulator, an IDE… …are you...

Jiyu Update - March 2020

Josh Huelsman

February has been a bit of a slow month, but we’ve managed to add a few interesting features. Added support for default parameters: #import "LibC"; func test(a: int32 = 10, b: float = 1, c = "hello") { printf("a: %d\n", a); printf("b: %f\n", b); printf("c: %.*s\n", c.length,...

Jiyu Update - February 2020

Josh Huelsman

Progress has been a bit slow for the last few weeks because I’ve personally lost a large amount of time to playing Stardew Valley, but we’ve managed to still fit in a number of important features for this month’s update. There is now support for harnessing LLVM’s JIT engine in user code...

Jiyu Update - January 2020

Josh Huelsman

Progress has been going pretty strong this past monthly-ish period. There is now a #clang_import directive. This allows importing declarations from C header files directly into Jiyu scopes. Example: #clang_import "#include <stdio.h>"; func main() { printf("Hello,...

Jiyu Update - November 2019

Josh Huelsman

It has been a awhile seen I’ve written one of these. I had taken some time off from working on the compiler to focus my free time on learning some traditional arts. That being said, there’s a number of changes to talk about so let’s get into it. There is now a psuedo-test-suite program located...

Jiyu Update - August 2019

Josh Huelsman

It has been about a month since I last wrote about my new programming-language project, Jiyu, so I’m going to briefly talk about the changes that have happened since. Libraries Libraries and macOS frameworks can now be specified using the declarators library and framework, respectively. #if...

Jiyu - A Programming Language

Josh Huelsman

Every so often, I am introduced to a new programming language or compiler project that, at the surface level, seems interesting, but leaves a lot, for me, to be desired. Several of these include relatively new, currently-used-in-production languages, such as Swift, where ideological constraints on...