limp
A general purpose programming language, built with the aim to materialise the following ideas:
- Simplicity - There is very little syntax.
- Immutability - Existing state cannot be modified.
- Less Misdirection - Comments cannot be abused; the code should be self-documenting.
- Granularity - Functions should remain small.
- Reusability - Packages can be easily shared and installed.
Disclaimer: Not all of these ideas have been fully realised yet.
For users:
Installation
Install globally: sudo pip install limp
Install for user: pip install limp --user
Try it out
In your browser
You can try the language out online! http://byxor.xyz/try-limp
Or run it locally
$ limp
Welcome to LIMP! You're now in a REPL, have fun.
> 5
5
> (+ 1 2)
3
> (if (= 256 (** 2 8)) "You know it.")
You know it.
> (map (n -> (+ n 1)) [1 2 3 4])
[2 3 4 5]
For developers:
Dependencies:
* python3.6 (to run the code)
* pip (to download and install other python packages)
* virtualenv (makes development easier, helps with importing modules)
Setup
-
Clone the repository.
-
Create a virtual environment.
# From the root directory of the repository...
virtualenv venv -p /path/to/python3.6
- Activate the virtual environment.
source venv/bin/activate
- Update pip dependencies.
# Requires that you've activated the virtual environment.
pip install -r requirements.txt --upgrade
Running the tests
# From the root directory of the repository...
nosetests
If you haven't activated the virtual environment using the setup instructions, you will get plenty of import errors when running tests. This is because the virtualenvironment modifies the PYTHONPATH environment variable, which determines how imports behave.