GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - distractedlambda/pille: Extensible low-level programming

BranchesTags
Open more actions menu

Latest commit

 

History

146 Commits
146 Commits

Folders and files

NameName
Last commit message
Last commit date
licenses
licenses
 
 
pille-lib
pille-lib
 
 
pille-llvm-lib
pille-llvm-lib
 
 
pille-spmd-lib
pille-spmd-lib
 
 
pille
pille
 
 
.clang-format
.clang-format
 
 
.gitignore
.gitignore
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 

Repository files navigation

Pille: Extensible Low-Level Programming

Pille is a project that seeks to extend the Rhombus language family with first-class support for low-level and high-performance programming, leveraging a systems-programming discipline and an LLVM-powered backend to generate competitive machine code.

Status

Pille is a work-in-progress research prototype, with documentation that is very incomplete and sometimes outdated. Nonetheless, it is already a sizeable (by some definition) example of using Rhombus to build a new language.

In the future, we hope to provide a stable(ish) API surface along with some all-important "getting started" documentation.

Installation

  1. Install Racket from Git, or from a recent snapshot release. Development of Pille sometimes closely tracks changes to Racket and Rhombus, which means that the most recent releases aren't always recent enough. Consider rackup for managing simultaneous Racket installations.
  2. Install the Racket packages in this repository (they are not yet on the package index):
    raco pkg install pille-llvm-lib/ pille-lib/ pille-spmd-lib/ pille/
  3. Set the PILLE_LLVM_PREFIX environment variable to the root of an LLVM 23.1 installation:
    • LLVM is not currently provided by any of Pille's Racket packages.
    • On macOS with Homebrew, brew install llvm@23, then set PILLE_LLVM_PREFIX=$(brew --prefix llvm@23).
    • On Linux, the official LLVM builds will not work (because they do not include the LLVM shared library). If your package manager does not supply a compatible version, you may need to build LLVM from source.

Platform Support

Most development and testing of Pille occurs on aarch64 macOS and x86_64 Linux systems; your mileage may vary on other host platforms.

Repository Structure

The code is organized into subdirectories that are each Racket packages:

  • pille: Umbrella package with tests and Scribble documentation.

  • pille-lib: The actual implementation of Pille.

  • pille-spmd-lib: The (WIP) implementation of #lang pille/spmd.

  • pille-llvm-lib: Bespoke Rhombus bindings to the LLVM C API, used by pille-lib.

About

Extensible low-level programming

Topics

compilerlanguagellvmracket-langrhombus

Resources

Readme
License
Activity

Stars

42 stars

Watchers

2 watching

Forks

1 fork
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.