Clone or download

  • Download the latest version as a ZIP or tarball
  • Clone with: git clone https://elmord.org/code/lows

lows: Lisp for Old Web Servers

lows is an attempt at a Lisp-like language which compiles to PHP 5.2. I began writing it because the only thing I can run at my home page is PHP 5.2, and I got tired of it.

The project targets specifically PHP 5.2. If you don't have this unusual constraint, you are probably better served by something more mature, such as Pharen.

See the project wiki for more information.

lows is free software released under the GNU GPL v2+. See the file COPYING for more information.


To compile lows, you will need CHICKEN Scheme (package chicken-bin in Debian, Ubuntu, etc.) and some eggs, which you can install by running:

chicken-install matchable define-record-and-printer

After that, run make in the project directory to generate the lowsc executable. You can test it by running:

./lowsc examples.lows

lows is currently at a very initial development stage, so you can't do much with it right now (unless you want to play with the code).

Random remarks

  • I don't plan to have native macros or eval in lows; because it works by translating to PHP, and has no interpreter of its own, it cannot run lows at compile time. Instead, the plan is for the user to be able to define transformations in CHICKEN Scheme to be performed during compilation.