Skip to Content
Mélodium 0.11.0 is now available!
DocsUsageExécution

Exécution

Exécuter un programme Mélodium se fait sur simple appel suivi du fichier contenant le programme melodium run <FICHIER>.

Note

Un appel direct melodium sans sous-commande est équivalent à un appel à melodium run.

💡
Tip

Si Mélodium est installé sur le système par un moyen standard, les fichiers script .mel autosuffisants et programmes .jeu sont directement exécutables.

Les appels suivants sont équivalents :

$ melodium run my_program.jeu $ melodium my_program.jeu $ ./my_program.jeu

Sélection de point d’entrée

Les programmes Mélodium disposent de points d’entrée. Par défaut si rien n’est précisé pour lors de l’appel d’exécution, le point d’entrée main est recherché et utilisé.

Si un programme propose d’autres points d’entrée, ceux-ci sont accessibles tels des sous-commandes. Dans le cas d’un programme ayant un point d’entrée main ainsi que serve et connect, ces trois appels d’exécution sont valides :

$ ./my_program.jeu [main] $ ./my_program.jeu serve $ ./my_program.jeu connect

Arguments

Les points d’entrée d’un programme sont tout simplement des traitements Mélodium, qui peuvent prendre des paramètres. Les paramètres d’un traitement utilisé en point d’entrée sont accessibles comme arguments pour la ligne de commande, ainsi un point d’entrée serve correspondant à un traitement ayant comme paramètres port: u16 et refresh: bool dispose des arguments équivalents :

$ ./my_program.jeu serve --port 1234 --refresh true

Arguments secrets

Les paramètres de type Secret<T> prennent un localisateur, comme env:MELODIUM_SECRET_NAME ou file:PATH, jamais une valeur (voir Secrets) :

$ ./my_program.jeu --password file:/run/secrets/db_password

--check-secrets les résout avant l’exécution, pour échouer immédiatement si l’un d’eux ne peut pas être résolu :

$ melodium run --check-secrets ./my_program.jeu --password env:MELODIUM_SECRET_DB_PASSWORD

Fils d’exécution

Les pistes s’exécutent en parallèle, sur un fil d’exécution par cœur. La variable d’environnement MELODIUM_THREADS donne un autre nombre de fils d’exécution, comme MELODIUM_THREADS=2.

Fin d’une exécution

Une exécution se termine une fois toutes ses pistes terminées.

Sous Linux et macOS, SIGINT, SIGTERM et SIGHUP demandent la fin de l’exécution : les pistes en cours disposent de 10 secondes pour se terminer, et un second signal ou la fin de ce délai les arrête, avec les commandes qu’elles ont lancées. Mélodium se termine alors avec le code 128 plus le numéro du signal, comme 130 pour SIGINT.

Sous Windows, au mieux, Ctrl+C et Ctrl+Break font de même. Fermer la console, se déconnecter ou éteindre la machine terminent aussi l’exécution, avec seulement 2 secondes pour les pistes en cours, car Windows met fin au processus peu après. Mélodium se termine alors avec le code 0xC000013A (STATUS_CONTROL_C_EXIT).

Un programme qui ne peut pas être lancé, par exemple parce qu’un paramètre manque, se termine avec le code 1.

Informations sur un programme

Pour savoir de quelles commandes un programme dispose, la commande melodium info liste les points d’entrée disponibles :

$ melodium info ./my_program.jeu my_program Version 0.1.0 Usage: my_program.jeu [COMMAND] Commands: main serve connect

Pour connaître les arguments spécifiques d’une commande, l’argument --help peut être utilisé dessus :

$ melodium ./my_program.jeu serve --help Usage: serve [OPTIONS] Options: --port <port> u16 --refresh <bool> bool -h, --help Print help