-- A user of the Ada Software Repository on SIMTEL20 recently complained -- to the ADA-SW mailing list of having problems in compiling the TRACKER -- management tool. His problem may not be unique, and, in the interest -- of trying to help him and other users who may be encountering similar -- problems, I have prepared the following terminal session. It illustrates -- the steps I took in investigating his problem. -- The following terminal session was recorded on the NOSC-TECR DDN host -- computer (in San Diego, I believe). The FTP session illustrates the -- speed of FTP between SIMTEL20 (in White Sands, New Mexico) and NOSC-TECR. -- All work is done as a "normal" user (without using my priveleged account). -- The commands required by your particular FTP server may not be the same -- as the commands I am using in this demonstration -- FTP servers differ -- widely -- but this should be generic enough to allow you to figure out -- what your particular commands are. -- My comments are on lines prefixed with "--" (like these). All other lines -- are extracted from the transmission from NOSC-TECR with much extraneous -- detail edited out (to prevent this text from being too long). -- Rick Conn, 27 Feb 86 -- The first step I took in looking at the TRACKER problem was to -- identify the program referred to. I had the following hints: -- it was named TRACKER and it was a Management tool -- From NOSC-TECR, I ran the online documentation system for the -- Ada Repository. I had copied the programs and data base over to -- NOSC-TECR from SIMTEL20 earlier, compiled the programs, and initialized -- the data base as per the documentation. See PD:. -- Upon first running the online documentation system, I saw the following -- top-level menu: Ada AI APSE Interactive Mon ANSI-LRM Benchmarks CM_Data Compilation_Order Components Cross_Reference Data Base Management DDN Editors Education External_Tools Forms_Generator General Graphical_Kernel_Sys Management_Tools Math_Library Menu Message_Handling Metrics Miscellaneous_Tools NOSC_Tools Online_Documentation Pager Pointers Pretty_Printers Program_Stubber Simulation Spelling_Checkers Starter_Kit Style_Checkers Virtual_Terminal WIS-ADA_Tools -- My guess, which later proved to be correct, was that the TRACKER -- program would be under the topic of "Management_Tools", so I selected -- this topic as shown below. Note that I only needed to type enough -- characters to be unique. Level 0 Menu: (Exit, Selection) man -- The selection "man" generated the following (white space omitted): 1 Management_Tools PD: This subdirectory contains tools for use in managing an Ada software development project. Status tracking and Manpower estimation tools are included. PD: Bytes(SZ) MANAGE.CMM.1 1397(7) .PRO.1 3795(7) MANAGETR.DOC.1 25044(7) MANPOWER.DIS.1 167(7) .DOC.1 18973(7) .PRO.1 3795(7) .SRC.1 19412(7) PPLANNER.ABS.1 1594(7) .CMM.1 995(7) .DOC.1 144593(7) .PRO.1 3590(7) .SRC.1 394030(7) .TST.1 47041(7) PPLANNERS.DIS.1 178(7) PPLANNERT.DIS.1 410(7) TRACKDOC.DIS.1 67(7) TRACKER.DOC.1 262297(7) .INS.1 2924(7) .PRO.1 3795(7) .SRC.2 456782(7) .TST.1 37240(7) TRACKSRC.DIS.1 1432(7) Total of 571 pages in 22 files -- As a guess, TRACKER was probably what I was looking for. Since I'm -- just interested in looking at the code and resolving the CALENDAR -- question, I did not bother to transfer all the TRACK*.* files to -- NOSC-TECR. Instead, I only transferred the following: -- -- TRACKER.INS -- probably installation instructions -- TRACKER.PRO -- the prologue (who wrote it and other good info) -- TRACKER.SRC -- probably the source code in pager format since -- there are no TRACKER.ADA files -- TRACKER.TST -- probably test routines or data -- -- FYI, I also looked for TRACKER in the next lower menu: Level 0 Topic: 1 Management_Tools (Print, Exit, Up, Last, Menu) m Cost_Estimation General_Management Manpower Project_Tracking -- "Project_Tracking" is probably it. For more detail: Level 1 Menu: (Exit, Up, Selection) proj 2 Project_Tracking General Management Author : GTE Sylvania Systems Group : Western Division Keywords : Tracking Abstract : The TRACKR program tracks the progress within projects and generates reports, estimates time to complete a project, and estimates project requirements. INPREP builds the data file for TRACKR interactively and outputs error messages for invalid data. The MANPOWER program based on the Simple Boehm Model produces manpower loading curves for several calculated schedules based on the number of lines of code and type of system. -- More than likely, this is what the user was referring to. If I'm -- wrong, I can use the online doc system to look further. Elapsed time -- in the online doc system so far: approx 2 minutes -- I then exited the online doc system, moved into a directory I could -- work from, and then ran FTP to connect to SIMTEL20. This directory -- was already set up with a blank Ada library to compile into. -- The FTP session follows: -- 1. Run FTP and connect to SIMTEL20 $ ftp simtel20 Connection Opened Using 8-bit bytes. TRACKER.SRC.2 started. 443709 bytes in 146 seconds--24312 bps TRACKER.PRO.1 started. 3717 bytes in 1 seconds--29736 bps TRACKER.INS.1 started. 2836 bytes in 1 seconds--22688 bps TRACKER.TST.1 started. 36681 bytes in 15 seconds--19560 bps h PAGER Commands: CHECK filename -- Ada Check on File LIST filename -- List Names of Component Files PAGE filename -- Create Paged File SCAN filename -- List Files in Paged File TOGGLE -- Indicate Flag Settings TOGGLE flag -- Toggle Indicated Flag: Comment, Include File, or Verbose UNPAGE filename -- Extract from Paged File X (Exit) -- Exit PAGER -- I can SCAN the contents of TRACKER.SRC to obtain useful information -- for later. Note the following from this listing: -- 1) data on magnitude of the software -- 2) names and sizes of the component files -- 3) if you compare this listing with the installation instructions, -- you will note that the component files are stored in -- compilation order; I can probably compile the entire -- tool by simply issuing one compilation command on the -- TRACKER.SRC file; however, I am interested in the -- CALENDAR information PAGER> s tracker.src Input File: tracker.src Ada Statements: 4343 Ada Comments: 3196 Text Lines: 13072 Checksum: 125 Component Files -- calendars.ada 29 Lines calendarb.ada 237 Lines listpkgs.ada 35 Lines listpkgb.ada 322 Lines datapkg.ada 257 Lines vt100s.ada 18 Lines vt100b.ada 844 Lines prompts.ada 54 Lines promptb.ada 2010 Lines tracker.ada 155 Lines inittr.ada 36 Lines setuptr.ada 82 Lines mandata.ada 70 Lines prior.ada 209 Lines calctime.ada 242 Lines chkpct.ada 51 Lines fixdata.ada 122 Lines fixreset.ada 131 Lines fixorig.ada 32 Lines wrdata.ada 61 Lines menudr.ada 218 Lines getdata.ada 64 Lines global.ada 138 Lines ac.ada 684 Lines ms.ada 567 Lines pr.ada 853 Lines ss.ada 519 Lines el.ada 1304 Lines report.ada 182 Lines calcpct.ada 262 Lines rcomments.ada 63 Lines rdatedone.ada 369 Lines rlistel.ada 253 Lines rlistms.ada 331 Lines rlistpr.ada 289 Lines rlistss.ada 311 Lines rpage.ada 46 Lines rparam.ada 260 Lines rpctbyss.ada 174 Lines rprinted.ada 52 Lines rsumms.ada 267 Lines rsumss.ada 266 Lines rworkbyss.ada 197 Lines rworkdist.ada 274 Lines -- Now to extract the components from TRACKER.SRC; I have to extract -- all of them, but PAGER is fast and it does not take long. Note the -- file names with the "--" prefix; it really appears that TRACKER.SRC -- was designed to be compiled without component separation being -- necessary PAGER> u tracker.src --calendars.ada 29 Lines --calendarb.ada 237 Lines --listpkgs.ada 35 Lines --listpkgb.ada 322 Lines --datapkg.ada 257 Lines --vt100s.ada 18 Lines --vt100b.ada 844 Lines --prompts.ada 54 Lines --promptb.ada 2010 Lines --tracker.ada 155 Lines --inittr.ada 36 Lines --setuptr.ada 82 Lines --mandata.ada 70 Lines --prior.ada 209 Lines --calctime.ada 242 Lines --chkpct.ada 51 Lines --fixdata.ada 122 Lines --fixreset.ada 131 Lines --fixorig.ada 32 Lines --wrdata.ada 61 Lines --menudr.ada 218 Lines --getdata.ada 64 Lines --global.ada 138 Lines --ac.ada 684 Lines --ms.ada 567 Lines --pr.ada 853 Lines --ss.ada 519 Lines --el.ada 1304 Lines --report.ada 182 Lines --calcpct.ada 262 Lines --rcomments.ada 63 Lines --rdatedone.ada 369 Lines --rlistel.ada 253 Lines --rlistms.ada 331 Lines --rlistpr.ada 289 Lines --rlistss.ada 311 Lines --rpage.ada 46 Lines --rparam.ada 260 Lines --rpctbyss.ada 174 Lines --rprinted.ada 52 Lines --rsumms.ada 267 Lines --rsumss.ada 266 Lines --rworkbyss.ada 197 Lines --rworkdist.ada 274 Lines PAGER> x -- Finally, CALENDARS.ADA was one of the files in question. The -- listing follows, and, as you can see, the "missing" definitions -- are stored here. I can only assume that the user made some -- error in transferring the files or compiling them. $ type calendars.ada generic DAYS_IN_WEEK : positive := 5; HOURS_IN_DAY : float := 8.0; DAYS_OFF_IN_YEAR : natural := 0; package WORK_CALENDAR is subtype YEAR_NUMBER is integer range 1901..2099; subtype MONTH_NUMBER is integer range 1..12; subtype DAY_NUMBER is integer range 1..31; subtype HOUR_NUMBER is float range 0.0..HOURS_IN_DAY; type DATE_TYPE is record MONTH : month_number; DAY : day_number; YEAR : year_number; end record; NULL_DATE : constant date_type := (2,31,1902); UNDERFLOW_DATE : constant date_type := (2,30,1901); function "+" (DATE : in date_type; HOURS : in float) return DATE_TYPE; function "+" (HOURS : in float; DATE : in date_type) return DATE_TYPE; function "-" (DATE : in date_type; HOURS : in float) return DATE_TYPE; function "-" (DATE1, DATE2 : in date_type) return float; function "<" (DATE1, DATE2 : in date_type) return boolean; function "<=" (DATE1, DATE2 : in date_type) return boolean; function ">" (DATE1, DATE2 : in date_type) return boolean; function ">=" (DATE1, DATE2 : in date_type) return boolean; function VALID (MONTH, DAY, YEAR : in integer) return boolean; end WORK_CALENDAR; -- The total elapsed time for this session was under 30 minutes. -- I hope this answers many questions and clarifies some points. -- There are other terminal sessions and several document files in -- the Ada Repository on SIMTEL20 which were also designed to show -- you how to do this. It is just a matter of reading through the -- files in GENERAL and the Welcome message.