<<< DISK$DATA:[NOTES$LIBRARY]PROGRAMMATHEQUE.NOTE;1 >>> -< Suivi des programmes DECUS >- ================================================================================ Note 84.0 SDL : every home should have one !!!! 11 replies DECUSF::PANNETIER_AM "Alain PANNETIER - TIBET" 88 lines 23-JAN-1991 22:01 -------------------------------------------------------------------------------- Contexte : Vous faites un produit nommé TOTO. Vous souhaitez le doter d'une "callable interface" Respectueux des "naming conventions", vous utilisez la nomenclature suivante pour les symbols globaux que vous souhaitez rendre public : - TOTO_ pour les procedures, - TOTO_K_ pour les constantes, - TOTO_M_ pour les masques, - TOTO_L_...etc _ et TOTO__ pour les valeurs de retour. qui de plus sont définis à l'aide de l'utilitaire message. Cas des messages : Vous souhaitez que les futurs utilisateurs de votre interface programmable aient accès à ces symbols. Il vous faut donc les mettre à leurs disposition. Mais vous ne pouvez pas présager du langage qu'il souhaiteront utiliser. Il vous faut donc faire un module pour chaque langage. Exemple : Fortran : Parameter TOTO_K_MAXTOTOSIZE = '00000100'X C : # define TOTO_K_MAXTOTOSIZE 256 BASIC : DECLARE LONG CONSTANT TOTO_K_MAXTOTOSIZE = 256 ADA : Package TOTO_ is .... K_MAXTOTOSIZE : constant := 256 ; ... end TOTO_ ; et j'en oublie... Methode DEC : DEC a les mêmes problèmes...DEC a fait un outil...SDL. Si on dispose de l'outil VERB, on peut voir qu'il y a un qualifier non documenté de l'utilitaire message : MESSAGE/SDL Si on fait MESSAGE/SDL TOTO_MESSAGES.MSG on obtient un TOTO_MESSAGES.SDL qui contient, les divers symbols TOTO exprimés dans un meta-langage : Symbol(?) Definition Language. Intrigué par le format, on fait VERB SDL et on s'aperçoit que la command SDL existe et qu'elle admet deux syntaxes : - SDL/PARSE qui doit sortir un fichier binaire qui traduit les symbols ainsi obtenus. (image SDL.EXE) On est alors supposé disposer d'un fichier TOTO.SDI - SDL/NOPARSE qui traduit ledit TOTO.SDI en différents langages. SDL/NOPARSE/LANGUAGES=(FORTRAN,BASIC...) TOTO.SDI /more_quals. Il faut pourtant disposer des différentes "librairies de routines de transcription" que l'on peut trouver dans les différents kits. BASIC034,FORT055, ( image SDLNPARSE ). Le HIC : Une fois encore, cette methode illustre la rigueur qui anime les développeurs de VMS. Le seul problème est que l'image SDL n'est pas distribuée et que donc cette méthode est inaccessible au client. Je trouve que c'est dommage... Le workaround : Il est besogneux : Ecrire en TPU un formateur de .MAP et linker/MAP. Les Questions : 1 / Y a t-il une distrib dans laquelle, de manière éphèmere le SDL est utilisé et donc INCLUS ? 2 / Sinon, DECUS ( MEADOWS ? ) dispose-t-il d'un poor man's SDL qui accepterait en entrée un TOTO.SDL, et en ferait un TOTO.SDI. 3 / Quelqu'un s'est il donné la peine d'écrire le bout de TPU qui formate un .MAP ? 4 / De manière générale : Quels sont vos commentaires ? ================================================================================ Note 84.1 SDL : every home should have one !!!! 1 of 11 DECUSF::DANA_M "Michel DANA, Telecom PARIS" 4 lines 24-JAN-1991 08:20 -< ca existe souvent >- -------------------------------------------------------------------------------- il existe des tonnes de distrib dans lequel sdl est inclus.. au hasard, de tete, VWS, et probablement, toutes celles qui demandent si on veut l'interface pour le langage ADA, FORTRAN,PASCAL,PL1,COBOL et j'enpasse des meilleures (sauf LSE remarquez..) ================================================================================ Note 84.2 SDL : every home should have one !!!! 2 of 11 DECUSF::MANET_P "Philippe Manet - Sogidec/Ylys Info" 12 lines 24-JAN-1991 10:29 -< Pas tout à fait ... >- -------------------------------------------------------------------------------- Ce qu'on trouve dans pratiquement toutes les distribs, c'est SDLNPARSE.EXE qui permet de traduire le fichier binaire (en particulier les éléments de la librairie SYS$LIBRARY:STARLETSD.TLB) dans son language préféré. Je n'ai pour ma part jamais trouvé l'image de SDL.EXE qui est utilisé pour "compiler" le fichier source. Ce qui serait bien aussi, c'est d'avoir la doc complète et officielle du langage pour l'utiliser autrement que pour les messages. Si je me souviens bien, c'est partiellement décrit dans IDS. ================================================================================ Note 84.3 SDL : every home should have one !!!! 3 of 11 DECUSF::PANNETIER_AM "Alain PANNETIER - TIBET" 5 lines 24-JAN-1991 12:24 -------------------------------------------------------------------------------- SDLNPARSE.EXE est même de base dans VMS, dans les distribs il arrive qu'on trouve les SDL.EXE ( pas pour tous, Exemple : VAXC ). Je pense qu'il serait même intéressant de connaître la signature des routines ( SDL$ ? ) qui permettent de définir un language. Je vais quand même explorer les save_set VWS. ================================================================================ Note 84.4 SDL : every home should have one !!!! 4 of 11 DECUSF::WERZ_P "Pascal WERZ, MagneTech, Orsay." 9 lines 24-JAN-1991 12:48 -< j'ai un SDL.EXE! >- -------------------------------------------------------------------------------- C'est marrant, juste quelques jours après que je constate la présence d'un SDL.EXE dans mon sys$system? Ceci dit, pas de jaloux: il se termine en ACCVIO! Question subsidiaire: d'où vient ce SDL.EXE??? PS: VMS 5.4 pascal. ================================================================================ Note 84.5 SDL : every home should have one !!!! 5 of 11 DECUSF::PANNETIER_AM "Alain PANNETIER - TIBET" 19 lines 24-JAN-1991 15:05 -< We have one winner !! >- -------------------------------------------------------------------------------- Eh bien noius avons déjà un gagnant au grattage : A mon avis, l'accvio vient du fait que vous l'avez juste activé par RUN et qu'il doit pas être très propre. Pour vérifier ça, il vous faut faire : - un fichier en source SDL ( comme je l'indique en 84.0, la manière la plus simple est de faire un MESSAGE TOTO.MSG /SDL ) - Vous allez récupérer un toto.sdl. - Pour savoir si votre SDL.EXE est exploitable, il faut alors entrer SDL/PARSE TOTO.SDL - Vous allez alors avoir un TOTO.SDI enfin si tout ce que je crois comprendre est vrai. si votre SDL.EXE est inutilsiable, vous aurez encore l'accvio mais j'en doute. - Pour connaître la syntaxe de la commande SDL, il faut utiliser VERB ou aller chercher les SDL*.CLD dans les distribs. - Après, il est possible de traduire votre SDI en un module source de votre choix ( cf 84.0 ). Ceci dit, je serais, certainement comme beaucoup d'autres, intéressé par le résultat. ================================================================================ Note 84.6 SDL : every home should have one !!!! 6 of 11 DECUSF::FOUCHET_F "François FOUCHET - FMA" 4 lines 24-JAN-1991 16:01 -< Ca n'existe pas sur la distrib officielle >- -------------------------------------------------------------------------------- J'ai cherche sur une distrib officielle de V5.4 (apres upgrade en 5.4-1A il est vrai), je n'ai trouve que SDLNPARSE. Il est plus que possible que notre gagnant ait une version anterieure a 5.4, laquelle serait restee sur son disque systeme. ================================================================================ Note 84.7 SDL : every home should have one !!!! 7 of 11 DECUSF::WERZ_P "Pascal WERZ, MagneTech, Orsay." 5 lines 24-JAN-1991 17:24 -< :-( >- -------------------------------------------------------------------------------- Eh bien non, il ne sera pas dit que j'ai gagné: ANALYZE/IMAGE de SDL.EXE révèle qu'il s'agit d'un SDLCC renommé. D'ou, je suppose l'ACCVIO (je le lance bien par $ SDL xxxx). Mais que fait ce fichier là???? Pascal. ================================================================================ Note 84.8 SDL : every home should have one !!!! 8 of 11 DECUSF::ALBERT_JN "Jean-Noël Albert:LAL/CNRS" 9 lines 2-FEB-1991 14:35 -< XDFO de DECUS >- -------------------------------------------------------------------------------- Il existe dans les bandes DECUS un utilitaire XDFO qui lit les fichiers OBJ et construit des include files definissant les symboles globaux trouves. Je possede un binaire de ce XDFO assez ancien qui fait FORTRAN et C. Il ne doit pas être bien difficile de supporter d'autres langages, si je retrouve les sources. C'est bien pratique pour les fichiers de messages et les includes C, jamais a jour apres les upgrades de VMS. Je vais chercher. ================================================================================ Note 84.9 SDL : every home should have one !!!! 9 of 11 DECUSF::FOUCHET_F "François FOUCHET - FMA" 6 lines 2-FEB-1991 16:30 -< Ca c'est une idee qu'elle est bonne !!! >- -------------------------------------------------------------------------------- XDFO : ca ne doit pas etre tres complique de le mettre a jour, etant donne que le format des .OBJ est longuement documente dans le Linker reference manual. L'idee est en tous cas tres interressante, car un .OBJ a toutes les chances d'etre plus a jour qu'un quelconque fichier source. ================================================================================ Note 84.10 SDL : every home should have one !!!! 10 of 11 DECUSF::ALBERT_JN "Jean-Noël Albert:LAL/CNRS" 7 lines 6-FEB-1991 19:55 -< XDFO est dans VMS >- -------------------------------------------------------------------------------- Ouf, j'ai reussi a mettre la main sur une version qui compile. Cela vient de Fermilab et c'est ecrit en C. Mais j'ai mis aussi les objets et l'exec (VMS 5.4), ainsi que le fichier MMS et le Help. Cela genere des includes pour ADA, C, FORTRAN, PASCAL et meme DCL et des trucs plus etranges. C'est dans VMS:XDFO.BCK ================================================================================ Note 84.11 SDL : every home should have one !!!! 11 of 11 DECUSF::PANNETIER_AM "Alain PANNETIER - TIBET" 1 line 6-FEB-1991 20:15 -< Merci pour tout, Allah vous le rendra >- --------------------------------------------------------------------------------