musique/README.md

105 lines
3.3 KiB
Markdown
Raw Permalink Normal View History

2022-04-24 15:27:09 +02:00
# Musique interpreter
2022-04-24 16:13:02 +02:00
2022-05-08 18:20:44 +02:00
Interpreter języka Musique. Możliwy do wykorzystywania jako:
- biblioteka interpretera języka dołączana do innego projektu (podobnie jak Lua);
- REPL działający w systemie GNU/Linux + ALSA wykonujący język Musique.
2022-09-18 19:26:48 +02:00
## Wymagane pakiety systemowe
Do poprawnego skompilowania i uruchomienia interpretera języka Musique należy posiadać zainstalowane następujące pakiety (lub ich odpowiedniki) dla systemu GNU/Linux Ubuntu Desktop 22.04 są to:
- `build-essential` pakiet zawierający podstawowe narzędzia do pracy z kodem źródłowym, takie jak m.in. kompilator;
- `libasound2-dev` pakiet zawierający biblioteki programistyczne pakietu `libasound2`.
Można je zainstalować korzystając z polecenia:
```
$ sudo apt update
$ sudo apt install -y build-essential libasound2-dev
```
2022-05-23 17:27:06 +02:00
## Budowanie interpretera
Jeśli nie posiadasz zależności `lib/midi` to:
```console
$ git submodule init
$ git submodule update
$ (cd lib/midi; make)
```
A następnie zbuduj interpreter:
```console
$ make bin/musique
```
2022-09-18 19:20:45 +02:00
Żeby zainstalować interpreter języka Musique w systemie, należy dodatkowo wykonać polecenie:
```
# make install
```
*Uwaga*: powyższe polecenie instalacyjne musi zostać wykonane jako uprzywilejowany użytkownik (np. wykorzystując polecenie `sudo`).
2022-05-02 22:12:29 +02:00
## Dostępne komendy
2022-05-21 23:11:04 +02:00
- `make` - Buduje interpreter `bin/musique` (tryb release)
- `make debug` - Buduje interpreter `bin/debug/musique` (tryb debug)
2022-05-02 22:12:29 +02:00
- `make clean` - Usuwa reprodukowalne elementy projektu (automatycznie stworzone pliki binarne czy raporty)
2022-05-08 18:20:44 +02:00
### Dokumentacja
- `make doc` - Tworzy `doc/build/html/` zawierający dokumentację projektu
### Testowanie
2022-05-22 06:33:17 +02:00
- `make test` - Uruchom wszystkie dostępne testy automatyczne
- `scripts/test.py test examples` - Uruchamia testy zachowań przykładów
- `scripts/test.py record examples` - Nagrywa testy zachowań przykładów
2022-05-22 06:07:24 +02:00
### Debugowanie
- `scripts/log-function-calls.sh` - Tworzy listę wywołań funkcji używając GDB
2022-05-02 22:12:29 +02:00
2022-04-24 16:13:02 +02:00
## Budowa projektu
```
.
├── bin Miejsce produkcji plików wykonywalnych
├── doc Dokumentacja języka, interpretera
2022-05-29 01:00:13 +02:00
│   └── build Miejsce produkcji dokumentacji
├── editor Pluginy do edytorów dodające wsparcie dla języka
2022-04-24 16:13:02 +02:00
├── lib Zewnętrzne zależności projektu
│   ├── expected
│   └── ut
└── include Główny katalog z plikami nagłówkowymi
├── scripts Skrypty wspierające budowanie i tworzenie
└── src Główny katalog z plikami źródłowymi
2022-04-24 16:13:02 +02:00
```
2022-05-22 15:53:39 +02:00
## Kolorowanie składni
### Vim / Neovim
Skopiuj plik [etc/editor/musique.vim](etc/editor/musique.vim) do folderu `syntax` wewnątrz twojej konfiguracji Vima (Neovima). Np:
```console
$ cp editor/musique.vim ~/.config/nvim/syntax/
2022-05-22 15:53:39 +02:00
```
Następnie musisz dodać ustawienie typu pliku na podstawie rozszerzenia wewnątrz twojej konfiguracji:
```vim
au BufRead,BufNewFile *.mq set filetype=musique
```
2022-05-24 14:13:38 +02:00
### Visual Studio Code
Skopiuj katalog [etc/editor/musique-vscode](etc/editor/musique-vscode) do folderu `<user home>/.vscode/extensions` i uruchom ponownie program VSCode.
2022-09-18 16:52:44 +02:00
# Thanks to
- Creator of [tl::expected](https://github.com/TartanLlama/expected) - [Sy Brand](https://sybrand.ink/)
- Creator of [bestline](https://github.com/jart/bestline) - [Justine Tunney](https://justinetunney.com/)