Inside this repository we develop the core tools of the ABS modelling language. The current language manual is at https://abs-models.org/manual/.
To compile the command-line compiler and manual, run ./gradlew assemble
(See https://abs-models.org/getting_started/local-install/ for more information).
To run the ABS collaboratory (a browser-based IDE for ABS) locally using Docker, execute the following command:
docker run -p 8080:80 --rm abslang/collaboratory:latest
Then connect your browser to http://localhost:8080/. It is not necessary to clone the repository or compile the toolchain to run the ABS collaboratory in this way.
To run the absc compiler locally using docker, create a script such as https://github.com/abstools/abstools/blob/master/frontend/src/main/resources/bash/absc-docker and put it in your path.
-
frontend
- the ABS compiler and runtime support. See https://abs-models.org/getting_started/local-install/ for installation instructions. -
abs-docs
- the ABS language manual, available online at http://abs-models.org/manual/. To generate the manual locally, runmake manual
.-
abs-docs/ReferenceManual
- an older LaTeX ABS reference manual, now mostly of historical interest -
abs-docs/Ott
- a formal grammar for a large subset of ABS, written in Ott
-
-
org.abs-models.releng
- Files used by Jenkins and Buckminster for continuous integration at https://envisage.ifi.uio.no:8080/jenkins/. -
abs-unit
- demonstration, description and initial ideas about the ABSUnit (a unit testing framework for ABS) (with Maven dependencies management) -
various leftovers from previous projects, to be evaluated and reactivated or pruned
Please clone the archive without line ending conversion (unfortunately
activated by default on Windows). Use -c core.autocrlf=false
as argument
for the initial git clone
command, i.e.,
git clone https://github.com/abstools/abstools -c core.autocrlf=false
Otherwise, running the tools inside Docker will fail with obscure error messages.
Consider rebasing instead of merging your changes:
git pull --rebase
This avoids spurious "merge branch to master" commits.
git pull --rebase
will, in case both you and the remote repository
have new commits, replay your local commits on top of upstream changes
instead of adding a new local commit that merges the master
and
origin/master
branches. Conflicts have to be resolved per patch
(via git add
+ git rebase --continue
) instead of in one go, but we
get a cleaner history.