W Wrapl, The Programming Language



The latest source release can be found here.


The Wrapl svn repository is hosted on Sourceforge.

svn co https://wrapl.svn.sourceforge.net/svnroot/wrapl/trunk wrapl

Required Packages

In order to build Wrapl/Riva from the source code, you will need the following software:

  • OMake is the build system used to build everything in Wrapl/Riva.
  • GCC is needed to compile the C/C++ code.
  • Nasm or Yasm is needed to assemble the assembly code.
  • Lua is needed:
    • The executable lua is needed to generate the runtime assembler using Dynasm. The necessary Dynasm files are packaged in the Wrapl source.
    • The liblua library is needed to build the rlink linker.
  • Gperf is needed to generate parts of the Wrapl scanner.
  • libConfuse is used by riva to parse the configuration file.
  • You will need a version of m4 installed, in order to configure/build the garbage collector and GMP.
  • The binutils development package is required, in particular libbfd is needed for the linker.

Automatically Downloaded Sources

The build process will automatically download, extract and build a number of third party libraries. If the required source directories are already present then they will be used (currently one can check the OMakefiles to see which libraries are downloaded, this will be documented properly in the future). Note that any downloaded libraries are built only for use with Wrapl, and will not be installed system-wide.

Optional Required Libraries II

A number of modules have further dependancies. Since these modules are not necessary to run most Wrapl programs, these dependancies are not strictly required. However, the current build process assumes their presence and will fail if any of these are missing. Alternatively, the OMakefile's can be edited to comment out the relevant modules.

  • Expat is used to provide an Xml parsing module Xml.Parser.
  • Tre is used to provide a basic regular expression module Util.Regexp.
  • Nettle is used for the (currently inadequate) encryption/hashing modules Alg.* and IO.Cipher.
  • The MySQL client library is used by the DB.Mysql module.
  • The build process can, with the correct arguments to Omake, generate bindings to GTK+ and numerous other Glib based libraries. This is described in full here.


In theory, building Wrapl/Riva should be as simple as:

  1. Ensuring the necessary requirements are installed.
  2. Downloading and extracting the source code.
  3. Changing to the dev directory and running omake.
  4. Creating the file bin/riva.conf.
  5. Adding the bin directory to the path.

However, it may be easier to download a prebuilt binary package.



A prebuilt Ubuntu/Debian package (for x86 only) can be downloaded here. Note that several modules will not work if the required libraries are not present:

A somewhat incomplete but still functional editor for Wrapl can be downloaded here


An experimental prebuilt Windows package built with Cygwin can be downloaded here. This package does not provide the Gtk modules, since the native GTK+ libraries on Windows are built with Mingw.