https://github.com/thangngoc89/denu
A toy OCaml builder
https://github.com/thangngoc89/denu
ocaml reasonml
Last synced: 1 day ago
JSON representation
A toy OCaml builder
- Host: GitHub
- URL: https://github.com/thangngoc89/denu
- Owner: thangngoc89
- Created: 2021-07-07T22:04:19.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2021-07-09T18:45:41.000Z (almost 4 years ago)
- Last Synced: 2025-04-09T19:33:22.459Z (2 months ago)
- Topics: ocaml, reasonml
- Language: OCaml
- Homepage:
- Size: 71.3 KB
- Stars: 16
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# denu
A toy OCaml builder## Introduction
denu is a toy OCaml builder that I build to learn how to build OCaml project manually.
As you can guess, `denu` is an anagram of `dune` (the de-facto OCaml builder).
## Features
### No configurations
denu takes no configurations. To compile a project, you would run
```
denu entry_file.ml
```This would create an executable called `entry_file.exe` in the same folder.
This is your compiled program.### No cache
Unlike `dune`, `denu` doesn't cache compilation result. Compilation starts from scratch on each invocation.
### External libraries
Add a file called `denu` with packages name on each line and `denu` would link those packages for you.
See [src/denu](https://github.com/thangngoc89/denu/blob/master/src/denu) for example.
### `denu` could compile itself
A builder should be able to compile itself.
### Less than 200 lines of code
(excluding tests)```sh
$ cd src && find . -name '*.ml' | xargs wc -l
38 ./utils.ml
86 ./main.ml
23 ./denu.ml
12 ./graph.ml
159 total
```## License
MIT