Skip to content
@limelight-lang

limelight

Limelight

A runtime toolkit for building business-level programming languages.

The problem

Languages like PHP spend the vast majority of their implementation effort on things that have nothing to do with syntax: objects, exceptions, execution context, hidden runtime machinery, and memory management under the hood. That accounts for well over 70% of what makes up a real-world, business-level language, and today almost every language reimplements all of it from scratch.

There are exceptions: a handful of projects ship a reusable garbage collector, for instance. But the industry as a whole rarely invests here, simply because there's no direct money in it.

What Limelight is

Limelight is a set of libraries aimed at closing that gap: a shared foundation for building compiled or JIT-compiled, business-level languages such as PHP and Ruby, without reinventing the runtime every time. The plan is to eventually support multiple backends (WASM, JVM, ASM, LLVM, and others), so a language built on Limelight isn't locked into one target.

Current focus

Right now, the project is PHP-first: Limelight is being built with and for PHP. Goal number one is a modern, backend-oriented approach to memory management. A separate strategy for regular (non-backend) applications may follow, but it isn't the primary focus for now.

Philosophy

Limelight currently follows the LLVM philosophy for code generation. Given that Dmitry Stogov has signaled continued investment in JIT, it's likely the project will eventually offer a choice of code generation backends rather than committing to just one.

Beyond PHP

Language support isn't meant to stop at PHP. Other languages, such as JavaScript and TypeScript, are reasonable candidates for support or for community-driven ports. Down the line, a friendlier layer for defining a language dialect, or simply extending existing syntax, may also emerge.

If something about the design doesn't sit right with you, say so. Small, focused contributions are welcome.

Learn more

Design decisions and specifications live in the rfc repository, covering the object model, memory management, GC, runtime, I/O, standard library, and interop.

Pinned Loading

  1. rfc rfc Public

    RFC

    6

Repositories

Showing 3 of 3 repositories

Top languages

Loading…

Most used topics

Loading…