install

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
install [2026/08/02 12:39] rootinstall [2026/08/02 12:51] (Version actuelle) root
Ligne 1: Ligne 1:
-__false__+===== Installation =====
  
 +//En construction//
 +
 +
 +==== Test ====
 +
 +[[https://w.lanisys.fr/wapi.php|Cliquer ici]] pour tester le langage W dans une console sécurisée (merci de patienter une dizaine de secondes pour avoir le terminal).
 +
 +
 +==== Téléchargement ====
 +
 +[[:download|Téléchargements]]
 +
 +
 +==== Variables d'environnement ====
 +
 +L'exécution de W nécessite la présence de 2 variables d'environnement obligatoire et 1 facultative :
 +
 +  * WBIN ⇒ donne le répertoire de tous les binaires complémentaires aux binaires du langage : bibliothèques partagées (''*.so''  et ''*.dll''), modules externes ''*.o''. D'éventuels sous-répertoires ne seront pas pris en compte.
 +  * WLIB ⇒ donne l'emplacement des programmes W compilés, autonomes et //library//. Pas de sous répertoire.
 +  * WSRC ⇒ obligatoire pour la compilation, facultative pour le run-time. Donne le répertoire de base des sources des programmes, fichiers ''*.w''  : utilisé par l'interpréteur et lors de la compilation (pour les instructions [[:reference#include|include]]). Ce répertoire sert aussi au debugger. Si cette variable n'est pas renseignée, il ne sera pas possible d'interpréter les sources, et en mode //debug//  le positionnement dans le source originel ne sera pas disponible. A noter que les sources seront recherchés dans l'arborescence présente dans WSRC.
 +
 +
 +==== Utilisation ====
 +Pour exécuter un programme W, programme principal et //library//, il faut lancer 3 commandes :
 +  - compilation : le source W est compilé en //assembleur W//, au format texte
 +  - assemblage : l'assembleur W au format texte est compilé en binaire : ce dernier format est celui reconnu par le run-time W
 +  - exécution : le binaire W est interprété par le run-time W. L'appel d'une //library// ne peut se faire qu'avec la version binaire W de la bibliothèque appelée
 +Nota : les modules appelés par //invoke// sont des librairies partagées au niveau OS (dll sous windows, so sous Unix).\\
 +Exécutables complémentaires :
 +  * formatage source W : ce programme permet de (re)formater tout un source W, de manière uniforme
 +  * compilateur de règles lex : ce programme compile les règles lex (format du moteur interne de W), pour pouvoir être utilisé dans les programmes W mais aussi dans le run-time W.
 +=== Compilation ===
 +<code>
 +>
 +> Usage: lwc [-WSRC:<path>] [-WLIB:<path>] <file>.w
 +>
 +</code>
 +Le compilateur ''lwc'' a besoin de connaître :
 +  * le répertoire contenant les sources, pour trouver le fichier à compiler ''<file>.w'' : variable d'environnement WSRC, ou à défaut la valeur du paramètre -WSRC de la ligne de commande
 +  * le répertoire où mettre le fichier résultat, assembleur W au format texte, variable d'environnement WLIB, ou à défaut la valeur du paramètre -WLIB de la ligne de commande
 +Le compilateur s'arrête à la première erreur rencontrée, en affichant le libellé de l'erreur, la ligne de source concernée et la position de l'erreur.\\
 +Une fois le programme W compilé sans erreur, un fichier nommé ''<file>.wa'' sera créé dans le répertoire //WLIB//.
 +=== Assemblage ===
 +<code>
 +>
 +> Usage: lwa [-c|u] [-WLIB:<path>] <file.wa|file.wp>
 +>
 +</code>
 +L'assembleur ''lwa'' a besoin de connaître le répertoire où lire le fichier assembleur source et où écrire le binaire w généré : contenu de la variable d'environnement WLIB, ou à défaut la valeur du paramètre -WLIB de la ligne de commande. L'assembleur convertit un fichier ''*.wa'' en ''*.wp''\\
 +L'option ''-c'' à l'assemblage permet de compresser le binaire //wp// généré. Les binaires compressés sont automatiquement pris en charge par le désassembleur (option ''-u'' et par le runtime w (programme ''lw'' ci-dessous).\\
 +L'assembleur permet également de désassembler un binaire W en produisant le source assembleur au format texte : mettre l'option ''-u'' à la commande. Le désassembleur convertit un fichier ''*.wp'' en ''*.wa''. La règle sur le répertoire WLIB est valable pour le désassemblage, comme pour l'assemblage.
 +=== Exécution ===
 +<code>
 +>
 +> Usage: lw [-d] [-t] [-WBIN:<chemin>] [-WLIB:<chemin>] [-WSRC:<chemin>] <prog> [parms...]
 +>
 +</code>
 +Le run-time W se lance avec l'exécutable ''lw''. Le run-time W a besoin de connaître :
 +  * le répertoire contenant les binaires de l'OS (librairies utilisées par le run-time), mais aussi les modules sous forme binaire de l'OS (appelés par //invoke//) : variable d'environnement WBIN, ou à défaut la valeur du paramètre -WBIN de la ligne de commande
 +  * le répertoire où lire les binaires W (programme principal, mais aussi les éventuelles //library// W), variable d'environnement WLIB, ou à défaut la valeur du paramètre -WLIB de la ligne de commande
 +Le run-time W se trouve dans un répertoire présent dans le //PATH// de l'OS, et doit donc être trouvé automatiquement par le shell.\\
 +Le répertoire contenant le chemin de base des sources (//WSRC//) est facultatif. Il est utile si le debugger doit être utilisé.\\
 +L'option ''-d'' permet de démarrer le run-time en mode debug sur le programme.\\
 +L'option ''-t'' permet d'afficher dans la console les instruction assembleur exécutés par le run-time, pour le programme demandé.\\
 +Le run-time exécute le programme binaire W <prog> (l'extension ''.wp'' n'est pas à mettre). A suivre d'éventuels paramètres qui seront utilisés par le programme W (pas par le run-time).
 +=== Formatage ===
 +<code>
 +>
 +> Usage: lwf <file.w>
 +>
 +</code>
 +Le formateur lit le fichier entrée, <file.w>, le remet en forme puis écrase le fichier origine avec la version formatée.\\
 +La version formatée est également envoyée sur la sortie standard.\\
 +Le formatage est fait à la norme //W// :
 +  * indentation par pas de 3 espaces
 +  * les commentaires de fin de ligne, commençant par '';'', sont séparés du code par des espaces pour s'aligner sur un colonage multiple de 8
 +  * les instructions suivantes augmentent le niveau : ''begin library background sub if loop foreach''
 +=== Compilation lex ===
 +//En construction//
  • install.1785674375.txt.gz
  • Dernière modification : 2026/08/02 12:39
  • de root