Musique language interpreter
Go to file
2022-09-19 23:35:31 +02:00
doc Include vector aspect of operators 2022-09-19 23:34:25 +02:00
editor call builtin; release builder; documentation from docs repo 2022-09-18 16:34:43 +02:00
examples Improved factorial example 2022-09-19 22:16:38 +02:00
include New declaration syntax x := foo instead of var x = foo 2022-09-18 14:50:20 +02:00
lib Report nice error when without MIDI connection 2022-08-19 16:06:33 +02:00
scripts Operators reference 2022-09-19 21:13:58 +02:00
src Operators reference 2022-09-19 21:14:12 +02:00
.gitignore call builtin; release builder; documentation from docs repo 2022-09-18 16:34:43 +02:00
.gitmodules Minor cleanup 2022-07-30 13:40:59 +02:00
config.mk statically linking libstdc++; recursive cloninng 2022-09-18 16:42:46 +02:00
Doxyfile Move src/musique.hh to include/musique.hh 2022-08-18 22:44:04 +02:00
instruments.mq Instruments list 2022-05-30 16:56:57 +02:00
LICENSE License 2022-05-24 12:11:50 +00:00
Makefile Installation script 2022-09-18 19:15:38 +02:00
README.md Install instructions in README 2022-09-18 19:26:48 +02:00

Musique interpreter

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.

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

Budowanie interpretera

Jeśli nie posiadasz zależności lib/midi to:

$ git submodule init
$ git submodule update
$ (cd lib/midi; make)

A następnie zbuduj interpreter:

$ make bin/musique

Ż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).

Dostępne komendy

  • make - Buduje interpreter bin/musique (tryb release)
  • make debug - Buduje interpreter bin/debug/musique (tryb debug)
  • make clean - Usuwa reprodukowalne elementy projektu (automatycznie stworzone pliki binarne czy raporty)

Dokumentacja

  • make doc - Tworzy doc/build/html/ zawierający dokumentację projektu

Testowanie

  • make test - Uruchom wszystkie dostępne testy automatyczne
  • make unit-tests - Uruchamia testy jednostkowe interpretera
  • make unit-test-coverage - Uruchamia raport pokrycia kodu przez testy jednostkowe
  • scripts/test.py test examples - Uruchamia testy zachowań przykładów
  • scripts/test.py record examples - Nagrywa testy zachowań przykładów

Debugowanie

  • scripts/log-function-calls.sh - Tworzy listę wywołań funkcji używając GDB

Budowa projektu

.
├── bin            Miejsce produkcji plików wykonywalnych
├── coverage
├── doc            Dokumentacja języka, interpretera
│   └── build      Miejsce produkcji dokumentacji
├── editor         Pluginy do edytorów dodające wsparcie dla języka
├── 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
    └── tests      Katalog z testami jednostkowymi

Kolorowanie składni

Vim / Neovim

Skopiuj plik etc/editor/musique.vim do folderu syntax wewnątrz twojej konfiguracji Vima (Neovima). Np:

$ cp editor/musique.vim ~/.config/nvim/syntax/

Następnie musisz dodać ustawienie typu pliku na podstawie rozszerzenia wewnątrz twojej konfiguracji:

au BufRead,BufNewFile *.mq set filetype=musique

Visual Studio Code

Skopiuj katalog etc/editor/musique-vscode do folderu <user home>/.vscode/extensions i uruchom ponownie program VSCode.

Thanks to