nagy%warner.hepnet@LBL.GOV (Frank J. Nagy, VAX Wizard & Guru) (01/19/88)
> Awright, guys, I give up. What's SDL? It's not in the Master Directory, and > it's not in my DEC Dictionary. The system responds to '$ SDL' with '_File:', > and there's an SDLNPARSE.EXE in SYS$SYSTEM, but no help that I can find. > Curiosity is going to kill this cat :-). SDL stands for one of System/Structure/Symbolic Definition Language (sort of like EVE, take your pick). It is the successor to MDL - Maynard Definition Language (.MDL files from older fiche). You can't find SDL because its not distributed with the system (boo hoo ;-) as it is not a "supported" product. A number of people have been trying for years to get Digital to document and ship SDL with VMS or sell it as a layered product to no avail. Why? Well, VMS makes it so easy to write subsystems and applications using multiple languages *EXCEPT* for providing a means to generate symbol/structure definitions for those multiple language modules from a common source. Anyone with SCAN want to write a PD version of SDL for the net and DECUS? = Frank J. Nagy "VAX Guru & Wizard" = Fermilab Research Division EED/Controls = HEPNET: WARNER::NAGY (43198::NAGY) or FNAL::NAGY (43009::NAGY) = BitNet: NAGY@FNAL = USnail: Fermilab POB 500 MS/220 Batavia, IL 60510
I7100501@DBSTU1.BITNET (Eckart Meyer) (01/24/88)
Someone posted this information a few weeks ago, but I think, it should be repeated: People having the VWS Software (Workstation) do have SDL programs for FORTRAN, MACRO, PASCAL, C, BLISS and PL/1. Get SDL*.EXE from the .A saveset and SDLV3.CLD. Then type $ SET COMMAND SDLV3 $ SDL/NOPARSE/LANG=language sdl_file output_file Be shure to use SDLNPARSE from the VWS-Kit since this seems to be another Version than the one from VMS 4.5. Language is BLISS,CC,FORTRAN,MACRO,PASCAL or PLI. I extracted all modules from STARLETSD.TLB and used SDL to convert them into .H files for the C language (LANG=CC). ----------------------------------------------------------------------------- Eckart Meyer BITNET: I7100501@DBSTU1 Inst. f. Nachrichtentechnik PHONE: 0531 / 391-2454 Technical University of Braunschweig ADDR: Schleinitzstr. 23 Germany 3300 Braunschweig -----------------------------------------------------------------------------
JOE@FHCRCVAX.BITNET (Joe Meadows) (01/28/88)
>It would be highly intresting to see some SDL definitions, just >to get an idea about it. Is there anyone out there who can demonstrate >how to define, say, SYS$GETJPI or something? Okay, from the Fiche, here's the SDL for SYS$GETJPI: (note - discussion of SDL project at end of message) /* $GETJPI /* Get Job process information /* (and so on...) ENTRY SYS$GETJPI ALIAS $GETJPI PARAMETER ( LONGWORD UNSIGNED VALUE NAMED EFN DEFAULT 0, {/* TYPE(EFNUM), LONGWORD UNSIGNED NAMED PIDADR IN OUT DEFAULT 0, {/* TYPE(PROCID), CHARACTER DESCRIPTOR NAMED PRCNAM IN DEFAULT 0, {/* TYPE(PROCNAME), ANY NAMED ITMLST IN, {/* TYPE(ITEMLIST), QUADWORD UNSIGNED NAMED IOSB OUT DEFAULT 0, {/* TYPE(IOSB), ADDRESS(ENTRY) NAMED ASTADR DEFAULT 0, {/* TYPE(ASTADR), LONWORD UNSIGNED VALUE NAMED ASTPRM DEFAULT 0, {/* TYPE(USERPARM) ) RETURNS LONGWORD; {/* TYPE(CONDVALU); And here's a structure definition (for $STSDEF): module $STSDEF; /* Macros to define system service failure and status codes /* (and so forth - down to the meat) aggregate STSDEF union prefix STS$; STSDEF_BITS0 structure fill; SEVERITY bitfield mask length 3; /* severity code COND_ID bitfield mask length 25; /* condition id CONTROL bitfield mask length 4; /* control bits end STSDEF_BITS0; STSDEF_BITS1 structure fill; SUCCESS bitfield mask; /* success FILL_1 bitfield length 2 fill prefix STSDEF tag $$; /* skip severity level MSG_NO bitfield mask length 13; /* message number end STSDEF_BITS1; STSDEF_BITS2 structure fill; FILL_2 bitfield length 3 fill prefix STSDEF tag $$; /* skip severity level CODE bitfield mask length 12; /* code FAC_SP bitfield mask; /* 1 if facility specific FILL_3 bitfield length 11 fill prefix STSDEF tag $$; CUST_DEF bitfield mask; /* 1 if subsystem is customer (or css) defined INHIB_MSG bitfield mask; /* 1 if message should not be printed FILL_4 bitfield length 3 fill prefix STSDEF tag $$; /* reserved control bit s end STSDEF_BITS2; STSDEF_BITS3 structure fill; FILL_5 bitfield length 16 fill prefix STSDEF tag $$; /* skip message # FAC_NO bitfield mask length 12; /* facility is 12 bits FILL_6 bitfield length 4 fill prefix STSDEF tag $$; /* control bits end STSDEF_BITS4; /*+ /* define severity codes /*- constant WARNING equals 0 prefix STS tag $K /* Warning constant SUCCESS equals 1 prefix STS tag $K /* Success constant ERROR equals 2 prefix STS tag $K /* Error constant INFO equals 3 prefix STS tag $K /* Info constant SEVERE equals 4 prefix STS tag $K /* Severe end STSDEF; end_module $STSDEF; !------------------------------------------------------------- Of course, the above isn't shipped with VMS, at least, not in that form. Apparently SDL can read the above file, and write out a binary definition file (which is much smaller), and these short binary files get included in the VMS distribution. Nowhere is this file format documented (unless I have somehow overlooked it, I looked through the fiche for anything to do with it and found nothing). However, the command SDL/NOPARSE/DUMP will read one of these files (they are all stored in the text library SYS$SHARE:STARLETSD) and create a dump for you, and if you paw through the fortran or basic installation tapes you can find utilities that can be used with SDL/NOPARSE/LANGUAGE=(), or if you are lucky enough to have VWS than apparently you get all the major language modules for use with SDL/NOPARSE/LANGUAGE=(). Not having VWS, and wanting more control over the looks of the include/header files, I have been working on writing replacement modules for use with SDL/NOPARSE/LANGUAGE=(), and have a working DUMP module, and am currently working on a C module. I hope to be able to create a document explaining how to do this, and I will post it and the code I come up with in the near future. Until then, you can contact me for "pre-release" copies. My hopes are to get several people to work on several different modules (i.e. MODULA, PASCAL, etc.) and bring all the work together in one place, submitting it to DECUS all at the same time. The code I have for the DUMP module and C module is in C. I plan on writing a document explaining the structures and how things get glued together (as soon as I know how they are!) and I would hope that people writing modules for other languages might write in the language they wish to create include/header/definition files for. If there is enough interest, I will post the code to the net, otherwise it will just make it to the DECUS library. I will keep the net posted on the progress. Cheers, Joe Meadows joe@fhcrcvax p.s. I want to create a module that will create "routine templates" for use in TPU, if anybody has some ideas, let me know.. I was just thinking of creating an indexed file, indexed by routine name, with the template format in text form as the rest of the record... and having a call_user routine to read the indexed file.. -------
I7100501@DBSTU1.BITNET (Eckart Meyer) (02/11/88)
FOP@SECTHF51, Daniel Berglund, writes: > It would be highly intresting to see some SDL definitions, just > to get an idea about it. Is there anyone out there who can demonstrate > how to define, say, SYS$GETJPI or something? The definitions for SYS$GETJPI, for example can be found in module STARDEFFL in STARLETSD.TLB. You have to extract this module from the library and use SDL to make a definition file. BTW: STARDEFFL means STARlet DEFinitions from F to L, so JPI$... is in this range. ----------------------------------------------------------------------------- Eckart Meyer BITNET: I7100501@DBSTU1 Inst. f. Nachrichtentechnik PHONE: 0531 / 391-2454 Technical University of Braunschweig ADDR: Schleinitzstr. 23 Germany 3300 Braunschweig ----------------------------------------------------------------------------- -------