A new language for the web
C Slash Ruby Makefile Objective-C Perl Other
Failed to load latest commit information.
examples update brainfuck example to use switch May 11, 2013
ext add MySQL#select_one and MySQL#select_value Feb 15, 2014
inc embed alloc flags in low bits of finalizer Dec 14, 2014
lib/slash whoops, add Test#assert_is_an Jun 1, 2013
sapi Test for multiple-of-eight-length HTTP-headers May 18, 2014
scripts silence warnings on computed goto Mar 2, 2014
test Add default argument for string.split Jul 5, 2014
.gitignore add a generator that generates src/gen/sl_vm_opcode_t.h from the DSL Oct 26, 2013
.travis.yml tell travis to execute scripts/ci for tests Aug 24, 2013
Makefile generate instruction emitters for the compiler Oct 26, 2013
README.md turns out this works Jun 15, 2013
configure don't die if sapi cannot be configured Nov 16, 2013



Travis Status

Slash is a new language for the web. It's designed for the cases when you just want to throw up a simple dynamic page and don't want to have to bother setting up and maintaining application servers.

It's inspired by Ruby, Perl and good old PHP.

Supported Platforms

  • Linux - x86, x86_64, ARMv6
  • Mac OS X - x86_64
  • Windows - x86


Sane systems

$ ./configure
$ make
# make install

By default, ./configure will enable all extensions (mysql, json, base64, gcrypt and inflect at time of writing). To disable an extension, use the --no-ext=<extname> option. To enable a disabled extension, use --ext=<extname>.

Slash by itself is compiled as a static library (libslash.a on *nix systems). To actually do anything useful with Slash, you must compile a SAPI (Server API). The SAPI is the piece of software that glues libslash to your web server. For example, if you wish to run Slash on the Apache Web Server, you must enable the apache2 SAPI by passing --sapi=apache2 to ./configure. By default, the cli SAPI is automatically enabled. The cli SAPI allows you to run Slash scripts from the command line.

If you have libraries installed in non standard locations and the configure script fails to find them, you may specify the location manually with the --with-lib-dir=<path> option.

If Slash still fails to configure, you may use the --verbose switch to log additional information to the terminal. This information will be required if you need to report an issue.

make install will install Slash under /usr/local by default. This install prefix can be changed with the --prefix=<path> option.


If you have Homebrew installed you can install the dependencies by running:

brew install gmp pcre libgcrypt yajl discount


A vanilla Slash can be built on Windows using mingw-gcc. In the future, binaries for slash-cli and common SAPIs will be distributed.