Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
ML/I-LLVM, a recompiler for LOWL sources of ML/I to LLVM.

Preliminary note.

This software does NOT include ML/I sources. LOWL ML/I sources can be
downloaded from the ML/I Macro Processor site[1].


This software maps LOWL language[2] to LLVM assembler. LOWL is an abstract
low-level language used to develop portable software by ML/I and a couple
of other programs.

A LOWL-based program is composed of a machine-independent (MI) part and a
machine depended (MD) part.
The MI part is simply the collection of routines and data defined in the 
LOWL sources.
The MD part instead consists of LOWL extensions and runtime routines used
for I/O and actual starting of the program.

This software contains a LOWL to LLVM translator (including ML/I extensions)
and runtime routines for running ML/I (specs for ML/I MD at [3]).

Prerequisites for compiling ML/I

0. LLVM must be installed in your system. Specifically, you will need 'llc',
   'opt' and 'llvm-as' to be accessible from your PATH.
1. 'lex' and 'yacc' (or more commonly, bison and flex) should be installed 
   in your system.

How to compile ML/I.

0. Clean the current tree of temporary/old builds, typing 'make clean'.
1. Dowload ML/I LOWL sources from the ML/I Macro Processor site[4].
2. Type 'make ML1SRC=<path to ml1 lowl sources>'

If everything goes fine, you should have a 'ml1' executable, which is
a simple ML/I macro processor that gets input from stdin and write output
to stdout. Errors and other messages are sent to stderr.

How to compile LOWL Test.

0. Make sure your current source tree is clean.
1. Download LOWL Test sources from the ML/I Macro Processor site[5].
2. type 'make lowltest LOWLTESTSRC=<path to lowl test sources>'


[1], the ML/I Macro Processor site.
[4], or check in the Source Code 
    section of; older versions
    are also available at


A LOWL-to-LLVM map for compiling the ML/I Macro Processor.



No releases published


No packages published