The QDL programming language
QDL (pronounced "quiddle") is a functional programming langugage that operates on aggregates (called stems) and also has programming control structures. As such, it is more of an algorithmic notation that happens to run on computers.
You can get the qdl installer jar directly from GitHub. To use, simply invoke
java -jar qdl-installer.jar install -all -dir $QDL_HOME
where $QDL_HOME is the directory you wish it installed to. (We suggest /opt/qdl).
A useful command line option is --help
which will print out help and
instructions. You should set $QDL_HOME
in your environment and
add $QDL_HOME/qdl/bin
to your PATH
variable to be able to run qdl directly.
If you are upgrading to another version of QDL, issue
java -jar qdl-installer.jar upgrade -all -dir $QDL_HOME
If you are just using QDL, the rest of this document may be ignored.
The base QDL jar is in Maven and should be referenced as
<dependency>
<groupId>org.qdl_lang</groupId>
<artifactId>language</artifactId>
<version>1.6-QDL-SNAPSHOT</version>
</dependency>
(Or whatever version you want.)
Should you want/need to build QDL directly, you should follow these instructions. generally though that is not required and the latest version should be all you need.
- Java 11
- Maven 3.6 or higher
NCSA_DEV_INPUT
= The root directory for sourcesNCSA_DEV_OUTPUT
= The target directory for all artifactsNCSA_CONFIG_ROOT
= Location of sensitive configuration
The NCSA_CONFIG_ROOT
contains files with information that should not be
committed to GitHub such as your local database password etc.
By building it, I mean a complete recompile and the creation of artifacts suitable for release. Get the sources from GitHub and clone to 'NCSA_DEV_INPUT'. You should then be able to build the system by issuing
./build.sh
from the top-level of the checkout. Note that this will reference the variables you have set, so be sure they are correct!
The output will be in NCSA_DEV_OUTPUT/qdl
and will consist of the new directory, qdl
which contains the distribution and the installer, qdl-installer.jar.
Note that building against a release is probably the best way. You can check out from the main branch and try to build against the snapshot release, but you should be prepared to get other dependencies (such as the NCSA security library) and build those.