Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 25 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,35 @@
# lunary

> [!WARNING]
> This project is an experiment and should not be relied on in any production environment ever!

### About

Lunary is a dynamically-typed, procedural, interpreted scripting toy language with expressive syntax focused on composability and functional ergonomics. It currently runs on an Elixir backend (BEAM VM runtime), with the eventual goal being to port execution to LLVM.

### Requirements

- [Erlang/OTP](https://www.erlang.org/) >= 27
- [Elixir](https://elixir-lang.org/) >= 1.18

### Quickstart

#### Build lunary binary and run the REPL
```bash
mix escript.build && mix repl
```

## Installation
#### Build demo project (HTML resume builder)

If [available in Hex](https://hex.pm/docs/publish), the package can be installed
by adding `lunary` to your list of dependencies in `mix.exs`:
You will need to install [WeasyPrint](https://weasyprint.org/) if you want to render the resume to a PDF.

```elixir
def deps do
[
{:lunary, "~> 0.1.0"}
]
end
```
```bash
mix escript.build

Documentation can be generated with [ExDoc](https://github.com/elixir-lang/ex_doc)
and published on [HexDocs](https://hexdocs.pm). Once published, the docs can
be found at <https://hexdocs.pm/lunary>.
./lunary examples/resume/resume.lun > examples/resume/resume.html | weasyprint - examples/resume/resume.pdf --media-type print --encoding utf-8
Copy link

Copilot AI Feb 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The shell command here won’t do what it looks like: > examples/resume/resume.html | weasyprint - ... redirects stdout to the file, so the pipe receives nothing. Split into two commands, or use tee to both write the HTML file and pipe it into weasyprint.

Suggested change
./lunary examples/resume/resume.lun > examples/resume/resume.html | weasyprint - examples/resume/resume.pdf --media-type print --encoding utf-8
./lunary examples/resume/resume.lun | tee examples/resume/resume.html | weasyprint - examples/resume/resume.pdf --media-type print --encoding utf-8

Copilot uses AI. Check for mistakes.
```

#### Run test suite
```bash
mix test
```
1 change: 0 additions & 1 deletion example.lun

This file was deleted.

Binary file not shown.
Binary file not shown.
Binary file added examples/resume/fonts/MonaspaceNeon-Var.woff2
Binary file not shown.
1 change: 1 addition & 0 deletions examples/resume/icons/github.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions examples/resume/icons/globe.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions examples/resume/icons/linkedin.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading