The path to publication is rarely as linear as the publication record would appear to indicate. For the last 12 years, I have been an active contributor to Legion, a research project originally out of Stanford which aimed to create a programming system for supercomputers that fundamentally and dramatically simplifies the way we program these machines, while providing best-in-class performance and scalability. Through many years of hard work, I believe we have succeeded in this goal. But even so, these years have been anything but straightforward.
This document is a personal history of Legion: the story of the project, told through the lens of the papers we wrote about it, and the journey that brought us to each one.
Historically, Lisp was a behemoth in the world of language design innovation. The list of Lisp’s innovations is so long that I’d have to list most of the features associated with modern languages. (Do you like
if statements? You can thank Lisp!)
But the language landscape has changed a lot since then, and realistically no programmer today cares about what made a language stand out 50 years ago. Clearly, the good ideas have been copied into other languages. Paul Graham even suggests this convergence towards Lisp is inevitable. I wouldn’t go so far. But this begs the question: Is there anything left? Are there any features that couldn’t be copied so easily into the various descendants of Algol?
I am extremely pleased to announce the release of Terra version 1.0.0. Terra is a programming language that integrates tightly with Lua and provides support for high-performance, low-level code and first-class metaprogramming. Terra runs on Linux, FreeBSD, macOS and Windows, is able to generate code for most CPUs, NVIDIA and AMD GPUs, and has been used on FPGAs. Applications and languages written in Terra have run on many of the world’s largest supercomputers.
Terra is a programming language that combines the power of a high-level scripting language with the ability to metaprogram low-level, high-performance code. Terra has been used on laptops, desktops, and many of the world’s fastest supercomputers. If you haven’t seen it before, it’s pretty awesome. You should go check it out.
I’m happy to announce the initial release of a file-based integrity checker written in Rust that I’ve been developing in my free time. If anyone here has feedback on the tool, please let me know.
Regent is a research programming language which extracts implicit dataflow parallelism from code written in an imperative and (apparently) sequential semantics.
Over the last two winters I have had the privilege of being a teaching assistant for CS149: Parallel Programming at Stanford University with instructors Alex Aiken and Kunle Olukotun. When I started, I took up the job of overhauling the management of machines for the course. CS149 is unusual in that each assignment investigates a different programming model. As a result, every assignment runs on a different hardware and software stack.
This spring I was lucky enough to be able to spend time working on something I’ve wanted to do for a long time: a full-blown 3D game engine in Common Lisp. As a part of CSE 125 at UCSD (a senior design project course in video games), I worked a team with 4 other people to create a 3D multiplayer video game in 10 weeks. The result is Blackthorn 3D, and an accompanying demo game named LKCAS.
Escalator, aka Entity System for Common Lisp (ESCL), is an experimental, high performance object system designed for games. An early version of the source code is available for use. While the system still has many rough spots, preliminary benchmarks indicate that the system may be up to 50% faster than CLOS for certain operations (tested under SBCL on default optimization settings).
Thopter 0.4 has been released! Thopter is a 2D scrolling shooter game in the style of Raptor: Call of the Shadows, with support for LAN multiplayer co-op mode. Version 0.4 includes a major graphics overhaul in addition to gameplay tweaks. Downloads for Windows and Mac OS X are available now, with Linux coming soon!
Thopter 0.3 has been released! Thopter is a 2D scrolling shooter game in the style of Raptor: Call of the Shadows, with support for LAN multiplayer co-op mode. Version 0.3 includes new support for arbitrary numbers of player in multiplayer, and the first ever build that does not crash on Windows :-) Downloads for Windows and Mac OS X are available now, with Linux coming soon!
Thopter 0.2 has been released! Thopter is a 2D scrolling shooter game in the style of Raptor: Call of the Shadows, with support for LAN multiplayer co-op mode. Version 0.2 includes bosses, an autofire button, and improved LAN support. Downloads for Windows and Mac OS X are available now, with Linux coming soon!