Musique language interpreter
Go to file
Robert Bendun 57ac46cf9b Moved from custom ALSA adapter to RtMidi
This should allow for easy support for other operating systems and other
Linux sound systems like Jack in the future
2022-10-08 12:48:42 +02:00
doc Add call func description 2022-09-25 20:21:08 +02:00
editor call builtin; release builder; documentation from docs repo 2022-09-18 16:34:43 +02:00
examples Removed unused files 2022-09-25 11:59:50 +02:00
lib Moved from custom ALSA adapter to RtMidi 2022-10-08 12:48:42 +02:00
musique Moved from custom ALSA adapter to RtMidi 2022-10-08 12:48:42 +02:00
regression-tests testing builtins: uniq, unique, typeof 2022-09-25 12:01:19 +02:00
scripts Moved from custom ALSA adapter to RtMidi 2022-10-08 12:48:42 +02:00
.gitignore Musique vs other programming languages cheatsheet 2022-09-21 16:42:18 +02:00
CHANGELOG.md Moved from custom ALSA adapter to RtMidi 2022-10-08 12:48:42 +02:00
config.mk Moved from custom ALSA adapter to RtMidi 2022-10-08 12:48:42 +02:00
Doxyfile Created better hierarchy of source files 2022-09-23 18:55:25 +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 Moved from custom ALSA adapter to RtMidi 2022-10-08 12:48:42 +02:00
README.md integrated libmidi into Musique codebase 2022-10-07 18:17:25 +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

$ 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
  • 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
├── 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

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