Beware! Despite the serious look (hopefully!), Ven is just a hobby project I work on from time to time.
- Clone this repo.
A Docker buildimage is shipped with Ven.
docker build -t venlang .;
docker run --rm -v $(pwd)/bin:/build/bin venlang;
- The executable will be in
bin/. If you ran Docker as root, you might want to
sudo chown <your-user> bin/ven.
shards install --ignore-crystal-version;
shards build --release --no-debug --production.
Also, make sure to install Inquirer. Otherwise,
expose statements won't work.
strip the executable to reduce its size (goes down to about 5M).
- Ven is not ready enough for experimental use.
- Ven is never going to be ready for production.
First, you have to start Inquirer:
/path/to/bin/inquirer start -dstarts Inquirer in detached mode, i.e., as a daemon that will run in the background; Omit the
-dflag if you want to see what the server is doing, live.
- You can see what Inquirer is up to by the means of its interactive shell (
/path/to/bin/inquirer shell), too. Type
pinginto the prompt, and you'll hopefully see
- You can quit from the Inquirer shell by pressing CTRL+D;
- It is not recommended to leave Inquirer running in background for too long (who knows what leaks there may be!). To stop Inquirer, you can run
/path/to/bin/inquirer stop, or use the
diecommand from the interactive shell.
Second, try to run Ven:
/path/to/bin/ven sanity -t. If it worked with no errors, you have successfully built Ven. Moreover, Ven itself had a proper interaction with the running instance of Inquirer! If there was a boom, though, make sure Inquirer's running and, if things still fall apart, file a bug here or in the Inquirer repository (choose as you wish).
- If you want to play with Ven through an interactive prompt, run
- If you want to see what's going on under the hood, pass
--just) flag (
ven -j <...>). It halts Ven at the specified stage of the interpretation process. Try
-j optimize. If you don't know what to type, type
1 + 1:slightly_smiling_face:
/path/to/bin/ven path/to/file.vento run a file. Try
ven examples/calculator.ven. The
-jflag works here, too, and
ven -j optimize examples/calculator.vendumps on you the optimized bytecode — as expected.
- Fork it;
- Create your feature branch (git checkout -b my-new-feature);
- Commit your changes (git commit -am 'Add some feature');
- Push to the branch (git push origin my-new-feature);
- Create a new Pull Request.
- 1 day ago
- December 12, 2020
Sun, 01 Aug 2021 17:12:55 GMT