Path: utzoo!utgpu!watmath!clyde!att!rutgers!ucsd!sdcsvax!ucsdhub!esosun!seismo!uunet!pcrat!dry From: dry2@pcrat.UUCP (Dhrystone) Newsgroups: comp.arch Subject: Dhrystone 2.1 (1 of 3) Keywords: integer benchmark Message-ID: <629@pcrat.UUCP> Date: 4 Dec 88 07:12:01 GMT Organization: PC Research, Inc., Tinton Falls, NJ Lines: 743 12/04/88 Here comes the Dhrystone 2.1 Integer CPU benchmark sources, in three parts: dry2shar.1 (Stuff I added) dry2shar.2 (Reinhold's C version) dry2shar.3 (Reinhold's Pascal version) Look in newsgroup "comp.arch" for results to follow. #! /bin/sh # This is a shell archive, meaning: # 1. Remove everything above the #! /bin/sh line. # 2. Save the resulting text in a file. # 3. Execute the file with /bin/sh (not csh) to create: # README.RER # clarify.doc # Makefile # submit.frm # pure2_1.dif # dhry_c.dif # This archive created: Sun Dec 4 02:06:52 1988 export PATH; PATH=/bin:/usr/bin:$PATH echo shar: "extracting 'README.RER'" '(4419 characters)' if test -f 'README.RER' then echo shar: "will not over-write existing file 'README.RER'" else sed 's/^X//' << \SHAR_EOF > 'README.RER' X12/04/88 X XHere is Reinhold Weicker's DHRYSTONE 2.1 benchmark, slightly modified Xby me for instrumentation purposes only. This is an integer CPU Xbenchmark. The differences between 2.0 and 2.1 are minor, and XI believe that 2.0 and 2.1 results are comparable. X XFor purists, I've enclosed context diffs to turn what I'm posting Xas 2.1 back into what Reinhold sent me as 2.1. The changes Xare in pure2_1.dif. As you can see, it is only the instrumentation Xthat is slightly different. X XBoth the C and the Pascal versions are here. The Ada version I Xhave is marked preliminary (not to be posted). X XI've enclosed a new submission form (note new address for mailings). XPlease deluge this mailbox (..!uunet!pcrat!dry2) with your results. XI'll summarize and repost when the dust clears. Please do not Xassume that I will pull posted results off of the net (I won't, its Xtoo much work). X XI've attempted to include a Makefile for UNIX and Microsoft C (with ndmake). XPay particular attention to the HZ parameter, even though your power may Xbe 50 or 60 hertz, your computer may not be. You may have to ask someone, Xread the manual, or check: X /usr/include/sys/param.h X /usr/include/limits.h (CLK_TCK==HZ) Xfor this information. X XREPEAT: HZ IS NOT NECESSARILY THE FREQUENCY OF YOUR AC POWER !!!!!! X XThere are two versions to run, one with register variables, and one Xwithout. Please let the benchmark run for 30,000 loops on sixteen Xbit machines, and for much longer (a minute or two) on faster machines. XPlease note that "time(2)" has a resolution of 1 second, and may give Xvariable results. No matter how time is measured, a sanity check with Xa stopwatch is prudent. We've run into systems that lie about time, Xand there is always the configuration error problem. When it comes Xto time measurement on UNIX, there is no widely adhered to standard. X XFor segmented architectures, it is appropriate to submit results for Xall memory models, as shown below. X XI dropped the CODESIZE information that I attempted to add the last Xtime I posted this. People couldn't follow directions, and the Xinformation wasn't very useful anyway. X XHere's a sample submission of results: X XDHRYSTONE 2.1 BENCHMARK REPORTING FORM XMANUF: IBM XMODEL: PC/AT XPROC: 80286 XCLOCK: 8 XOS: Venix XOVERSION: SVr2.3 XCOMPILER: AT&T cc XCVERSION: 11/8/84 XOPTIONS: -O XNOREG: 1450 XREG: 1450 XNOTES: HZ=60; Small Model XDATE: 03/04/88 XSUBMITTER: pcrat!rick (Rick Richardson) XMAILTO: uunet!pcrat!dry2 X XDHRYSTONE 2.1 BENCHMARK REPORTING FORM XMANUF: IBM XMODEL: PC/AT XPROC: 80286 XCLOCK: 8 XOS: Venix XOVERSION: SVr2.3 XCOMPILER: AT&T cc XCVERSION: 11/8/84 XOPTIONS: -O -Ml XNOREG: 1043 XREG: 1043 XNOTES: HZ=60; Large Model XDATE: 03/04/88 XSUBMITTER: pcrat!rick (Rick Richardson) XMAILTO: uunet!pcrat!dry2 X XThe program that processes submission forms is rather dumb. Please Xdo not change the order, add or removes lines in the form. If your XNOTES are longer than the space provided, then they are too long for Xthe summary. Keep it terse, please. X XA form consists of all lines between: X DHRYSTONE 2.1 BENCHMARK REPORTING FORM Xand X MAILTO: uunet!pcrat!dry2 Xboth lines must be present for the form to be processed. If Xa field does not apply or is not known, leave it blank. The fields Xare: X MANUF: Computer manufacturer, e.g. AT&T, IBM X MODEL: Model number of computer X PROC: If a microprocessor CPU, the part number, e.g. 68030 X CLOCK: Clock in Mhz, if known. Numeric only, e.g. 16.67 X OS: Operating system, e.g. UNIX X OVERSION: OS version, e.g. SVR3 X COMPILER: Compiler name, e.g. cc, Microsoft, or Green Hills X CVERSION: Compiler version, e.g. 5.10 X OPTIONS: Relevant compiler options, e.g. -O3 X NOREG: Dhrystones/second, no register attribute X REG: Dhrystones/second, with register attribute X NOTES: Additional, terse comments on one line X DATE: Date of test, US format MM/DD/YY X SUBMITTER: uucp or domain address (full name) X X XHZ HZ HZ HZ HZ HZ HZ HZ HZ HZ HZ HZ HZ HZ HZ HZ HZ HZ HZ HZ HZ HZ HZ HZ X XPlease, if you are using times(2) to measure time, indicate Xthe HZ value you used in the NOTES field. Something like this is OK: X X NOTES: HZ=100; no inlining... X XHZ HZ HZ HZ HZ HZ HZ HZ HZ HZ HZ HZ HZ HZ HZ HZ HZ HZ HZ HZ HZ HZ HZ HZ X X-- X Rick Richardson, President, PC Research, Inc. X X(201) 542-3734 (voice, nights) OR (201) 389-8963 (voice, days) Xuunet!pcrat!rick (UUCP) rick%pcrat.uucp@uunet.uu.net (INTERNET) X uunet!pcrat!dry2 (Dhrystone submission forms only) SHAR_EOF if test 4419 -ne "`wc -c < 'README.RER'`" then echo shar: "error transmitting 'README.RER'" '(should have been 4419 characters)' fi fi echo shar: "extracting 'clarify.doc'" '(3195 characters)' if test -f 'clarify.doc' then echo shar: "will not over-write existing file 'clarify.doc'" else sed 's/^X//' << \SHAR_EOF > 'clarify.doc' XCLARIFICATION XThere seems to have been a great deal of confusion over what this Xbenchmark measures, and how to use these results. Let me try to clarify Xthis: X X 1) DHRYSTONE is a measure of processor+compiler efficiency in X executing a 'typical' program. The 'typical' program was X designed by measuring statistics on a great number of X 'real' programs. The 'typical' program was then written X by Reinhold P. Weicker using these statistics. The X program is balanced according to statement type, as well X as data type. X X 2) DHRYSTONE does not use floating point. Typical programs don't. X X 3) DHRYSTONE does not do I/O. Typical programs do, but then X we'd have a whole can of worms opened up. X X 4) DHRYSTONE does not contain much code that can be optimized X by vector processors. That is why a CRAY doesn't look real X fast, they weren't built to do this sort of computing. X X 5) DHRYSTONE does not measure OS performance, as it avoids X calling the O.S. The O.S. is indicated in the results only X to help in identifying the compiler technology. X X 6) DHRYSTONE is not perfect, but is a hell of a lot better than X the "sieve", or "SI". X X 7) DHRYSTONE gives results in dhrystones/second. Bigger X numbers are better. As a baseline, the original IBM PC X gives around 300-400 dhrystones/second with a good compiler. X The fastest machines today are approaching 100,000. X XIf somebody asked me to pick out the best machine for the money, I Xwouldn't look at just the results of DHRYSTONE. I'd probably: X X 1) Run DHRYSTONE to get a feel for the compiler+processor X speed. X 2) Run any number of benchmarks to check disk I/O bandwidth, X using both sequential and random read/writes. X 3) Run a multitasking benchmark to check multi-user response X time. Typically, these benchmarks run several types of X programs such as editors, shell scripts, sorts, compiles, X and plot the results against the number of simulated users. X 4) If appropriate for the intended use, run something like X WHETSTONE, to determine floating point performance. X 5) If appropriate for intended use, run some programs which do X vector and matrix computations. X 6) Figure out what the box will: X - cost to buy X - cost to operate and maintain X - be worth when it is sold X - be worth if the manufacturer goes out of business X 7) Having done the above, I probably have a hand-full of X machines which meet my price/performance requirements. X Now, I find out if the applications programs I'd like X to use will run on any of these machines. I also find X out how much interest people have in writing new software X for the machine, and look carefully at the migration path X I will have to take when I reach the (inevitable) limits X of the machine. X XTo summarize, DHRYSTONES by themselves are not anything more than Xa way to win free beers when arguing 'Box-A versus Box-B' religion. XThey do provide insight into Box-A/Compiler-A versus Box-A/Compiler-B Xcomparisons. X X Rick Richardson X PC Research, Inc. X (201) 389-8963 (9-17 EST) X (201) 542-3734 (7-9,17-24 EST) X ...!uunet!pcrat!rick (normal mail) X ...!uunet!pcrat!dry2 (results only) SHAR_EOF if test 3195 -ne "`wc -c < 'clarify.doc'`" then echo shar: "error transmitting 'clarify.doc'" '(should have been 3195 characters)' fi fi echo shar: "extracting 'Makefile'" '(3956 characters)' if test -f 'Makefile' then echo shar: "will not over-write existing file 'Makefile'" else sed 's/^X//' << \SHAR_EOF > 'Makefile' X# X# Adjust for your system! X# X# Common options for generic UNIX and Microsoft C (under DOS) X# are listed here. You can change them by switching the order, X# placing the ones you want last. Pay particular attention to X# the HZ parameter, which may or may not be listed in some X# header file on your system, such asor X# (as CLK_TCK). Even if it is listed, it may be incorrect. X# Also, some operating systems (notably some (all?) versions X# of Microport UNIX) lie about the time. Sanity check with a X# stopwatch. X# X# For Microsoft C under DOS, you need a real make, not MSC make, X# to run this Makefile. The public domain "ndmake" will suffice. X# XCC= cl # C compiler name goes here (MSC) XCC= cc # C compiler name goes here (UNIX) X XPROGS= msc # Programs to build (MSC) XPROGS= unix # Programs to build (UNIX) X XTIME_FUNC= -DMSC_CLOCK # Use Microsoft clock() for measurement XTIME_FUNC= -DTIME # Use time(2) for measurement XTIME_FUNC= -DTIMES # Use times(2) for measurement XHZ= 50 # Frequency of times(2) clock ticks XHZ= 60 # Frequency of times(2) clock ticks XHZ= 100 # Frequency of times(2) clock ticks XHZ= 1 # Give bogus result unless changed! X XSTRUCTASSIGN= -DNOSTRUCTASSIGN # Compiler cannot assign structs XSTRUCTASSIGN= # Compiler can assign structs X XENUMS= -DNOENUMS # Compiler doesn't have enum type XENUMS= # Compiler does have enum type X XOPTIMIZE= -Ox -G2 # Optimization Level (MSC, 80286) XOPTIMIZE= -O # Optimization Level (generic UNIX) X XLFLAGS= #Loader Flags X XCFLAGS= $(OPTIMIZE) $(TIME_FUNC) -DHZ=$(HZ) $(ENUMS) $(STRUCTASSIGN) $(CFL) X X# X# You shouldn't need to touch the rest X# XSRC= dhry_1.c dhry_2.c XHDR= dhry.h X XUNIX_PROGS= dry2 dry2reg XMSC_PROGS= sdry2.exe sdry2reg.exe mdry2.exe mdry2reg.exe \ X ldry2.exe ldry2reg.exe cdry2.exe cdry2reg.exe \ X hdry2.exe hdry2reg.exe X X# Files added by rer: XFILES1= README.RER clarify.doc Makefile submit.frm pure2_1.dif \ X dhry_c.dif X# Reinhold's files: XFILES2= README RATIONALE $(HDR) $(SRC) XFILES3= dhry.p X Xall: $(PROGS) X Xunix: $(UNIX_PROGS) X Xmsc: $(MSC_PROGS) X Xdry2: $(SRC) $(HDR) X $(CC) $(CFLAGS) $(SRC) $(LFLAGS) -o $@ X Xdry2reg: $(SRC) $(HDR) X $(CC) $(CFLAGS) -DREG=register $(SRC) $(LFLAGS) -o $@ X Xsdry2.exe: $(SRC) $(HDR) X $(CC) -AS $(CFLAGS) $(SRC) $(LFLAGS) -o $@ X Xsdry2reg.exe: $(SRC) $(HDR) X $(CC) -AS $(CFLAGS) -DREG=register $(SRC) $(LFLAGS) -o $@ X Xmdry2.exe: $(SRC) $(HDR) X $(CC) -AM $(CFLAGS) $(SRC) $(LFLAGS) -o $@ X Xmdry2reg.exe: $(SRC) $(HDR) X $(CC) -AM $(CFLAGS) -DREG=register $(SRC) $(LFLAGS) -o $@ X Xldry2.exe: $(SRC) $(HDR) X $(CC) -AL $(CFLAGS) $(SRC) $(LFLAGS) -o $@ X Xldry2reg.exe: $(SRC) $(HDR) X $(CC) -AL $(CFLAGS) -DREG=register $(SRC) $(LFLAGS) -o $@ X Xcdry2.exe: $(SRC) $(HDR) X $(CC) -AC $(CFLAGS) $(SRC) $(LFLAGS) -o $@ X Xcdry2reg.exe: $(SRC) $(HDR) X $(CC) -AC $(CFLAGS) -DREG=register $(SRC) $(LFLAGS) -o $@ X Xhdry2.exe: $(SRC) $(HDR) X $(CC) -AH $(CFLAGS) $(SRC) $(LFLAGS) -o $@ X Xhdry2reg.exe: $(SRC) $(HDR) X $(CC) -AH $(CFLAGS) -DREG=register $(SRC) $(LFLAGS) -o $@ X Xshar: dry2shar.1 dry2shar.2 dry2shar.3 X Xdry2.arc: $(FILES1) $(FILES2) $(FILES3) X arc a dry2.arc $(FILES1) $(FILES2) $(FILES3) X Xdry2shar.1: $(FILES1) X shar -vc -p X $(FILES1) >$@ X Xdry2shar.2: $(FILES2) X shar -vc -p X $(FILES2) >$@ X Xdry2shar.3: $(FILES3) X shar -v -p X $(FILES3) >$@ X Xclean: X -rm -f *.o *.obj X Xclobber: clean X -rm -f $(UNIX_PROGS) $(MSC_PROGS) dry2shar.* dry2.arc X Xpost: dry2shar.1 dry2shar.2 dry2shar.3 X for i in 1 2 3;\ X do\ X cat HEADERS BOILER.$$i dry2shar.$$i |\ X inews -h -t "Dhrystone 2.1 ($$i of 3)" -n comp.arch;\ X done X Xrepost: dry2shar.1 dry2shar.2 dry2shar.3 X for i in 3;\ X do\ X cat HEADERS BOILER.$$i dry2shar.$$i |\ X inews -h -t "REPOST: Dhrystone 2.1 ($$i of 3)" -n comp.arch;\ X done X Xmail: dry2shar.1 dry2shar.2 dry2shar.3 X for i in 1 2 3;\ X do\ X cat BOILER.$$i dry2shar.$$i |\ X mailx -s "Dhrystone 2.1 ($$i of 3)" $(ADDR);\ X done X Xdos: X doscopy -a $(FILES1) $(FILES2) $(FILES3) dos!a: SHAR_EOF if test 3956 -ne "`wc -c < 'Makefile'`" then echo shar: "error transmitting 'Makefile'" '(should have been 3956 characters)' fi fi echo shar: "extracting 'submit.frm'" '(170 characters)' if test -f 'submit.frm' then echo shar: "will not over-write existing file 'submit.frm'" else sed 's/^X//' << \SHAR_EOF > 'submit.frm' XDHRYSTONE 2.1 BENCHMARK REPORTING FORM XMANUF: XMODEL: XPROC: XCLOCK: XOS: XOVERSION: XCOMPILER: XCVERSION: XOPTIONS: XNOREG: XREG: XNOTES: XDATE: XSUBMITTER: XMAILTO: uunet!pcrat!dry2 SHAR_EOF if test 170 -ne "`wc -c < 'submit.frm'`" then echo shar: "error transmitting 'submit.frm'" '(should have been 170 characters)' fi fi echo shar: "extracting 'pure2_1.dif'" '(3590 characters)' if test -f 'pure2_1.dif' then echo shar: "will not over-write existing file 'pure2_1.dif'" else sed 's/^X//' << \SHAR_EOF > 'pure2_1.dif' X*** rer/dhry.h Sun Dec 4 00:08:26 1988 X--- weicker/dhry.h Sun Dec 4 00:09:00 1988 X*************** X*** 38,45 X * PC Research. Inc. X * 94 Apple Orchard Drive X * Tinton Falls, NJ 07724 X! * Phone: (201) 389-8963 (9-17 EST) X! * Usenet: ...!uunet!pcrat!rick X * X * Please send results to Rick Richardson and/or Reinhold Weicker. X * Complete information should be given on hardware and software used. X X--- 38,45 ----- X * PC Research. Inc. X * 94 Apple Orchard Drive X * Tinton Falls, NJ 07724 X! * Phone: (201) 834-1378 (9-17 EST) X! * Usenet: ...!seismo!uunet!pcrat!rick X * X * Please send results to Rick Richardson and/or Reinhold Weicker. X * Complete information should be given on hardware and software used. X*************** X*** 348,354 X /* Compiler and system dependent definitions: */ X X #ifndef TIME X- #undef TIMES X #define TIMES X #endif X /* Use times(2) time function unless */ X X--- 348,353 ----- X /* Compiler and system dependent definitions: */ X X #ifndef TIME X #define TIMES X #endif X /* Use times(2) time function unless */ X*************** X*** 353,366 X #endif X /* Use times(2) time function unless */ X /* explicitly defined otherwise */ X- X- #ifdef MSC_CLOCK X- #undef HZ X- #undef TIMES X- #include X- #define HZ CLK_TCK X- #endif X- /* Use Microsoft C hi-res clock */ X X #ifdef TIMES X #include X X--- 352,357 ----- X #endif X /* Use times(2) time function unless */ X /* explicitly defined otherwise */ X X #ifdef TIMES X #include X*** rer/dhry_1.c Sun Dec 4 00:08:36 1988 X--- weicker/dhry_1.c Sun Dec 4 00:09:09 1988 X*************** X*** 47,53 X struct tms time_info; X extern int times (); X /* see library function "times" */ X! #define Too_Small_Time (2*HZ) X /* Measurements should last at least about 2 seconds */ X #endif X #ifdef TIME X X--- 47,53 ----- X struct tms time_info; X extern int times (); X /* see library function "times" */ X! #define Too_Small_Time 120 X /* Measurements should last at least about 2 seconds */ X #endif X #ifdef TIME X*************** X*** 56,65 X #define Too_Small_Time 2 X /* Measurements should last at least 2 seconds */ X #endif X- #ifdef MSC_CLOCK X- extern clock_t clock(); X- #define Too_Small_Time (2*HZ) X- #endif X X long Begin_Time, X End_Time, X X--- 56,61 ----- X #define Too_Small_Time 2 X /* Measurements should last at least 2 seconds */ X #endif X X long Begin_Time, X End_Time, X*************** X*** 139,147 X #ifdef TIME X Begin_Time = time ( (long *) 0); X #endif X- #ifdef MSC_CLOCK X- Begin_Time = clock(); X- #endif X X for (Run_Index = 1; Run_Index <= Number_Of_Runs; ++Run_Index) X { X X--- 135,140 ----- X #ifdef TIME X Begin_Time = time ( (long *) 0); X #endif X X for (Run_Index = 1; Run_Index <= Number_Of_Runs; ++Run_Index) X { X*************** X*** 199,207 X #endif X #ifdef TIME X End_Time = time ( (long *) 0); X- #endif X- #ifdef MSC_CLOCK X- End_Time = clock(); X #endif X X printf ("Execution ends\n"); X X--- 192,197 ----- X #endif X #ifdef TIME X End_Time = time ( (long *) 0); X #endif X X printf ("Execution ends\n"); SHAR_EOF if test 3590 -ne "`wc -c < 'pure2_1.dif'`" then echo shar: "error transmitting 'pure2_1.dif'" '(should have been 3590 characters)' fi fi echo shar: "extracting 'dhry_c.dif'" '(4354 characters)' if test -f 'dhry_c.dif' then echo shar: "will not over-write existing file 'dhry_c.dif'" else sed 's/^X//' << \SHAR_EOF > 'dhry_c.dif' X7c7 X< * Version: C, Version 2.1 X--- X> * Version: C, Version 2.0 X9c9 X< * File: dhry.h (part 1 of 3) X--- X> * File: dhry_global.h (part 1 of 3) X11c11 X< * Date: May 25, 1988 X--- X> * Date: March 3, 1988 X30c30 X< * In addition, Berkeley UNIX system calls "times ()" or "time ()" X--- X> * In addition, UNIX system calls "times ()" or "time ()" X44c44 X< * Please send results to Rick Richardson and/or Reinhold Weicker. X--- X> * Please send results to Reinhold Weicker and/or Rick Richardson. X59c59 X< * History: This version C/2.1 has been made for two reasons: X--- X> * History: This version C/2.0 has been made for two reasons: X123,129d122 X< * Version 2.1 is identical to version 2.0 distributed via X< * the UNIX network Usenet in March 1988 except that it corrects X< * some minor deficiencies that were found by users of version 2.0. X< * The only change within the measurement loop is that a X< * non-executed "else" part was added to the "if" statement in X< * Func_3, and a non-executed "else" part removed from Proc_3. X< * X165,167c158,160 X< * -DHZ=nnn X< * In Berkeley UNIX, the function "times" returns process X< * time in 1/HZ seconds, with HZ = 60 for most systems. X--- X> * -DHZ=nnn (default: 60) X> * The function "times" returns process times in X> * 1/HZ seconds, with HZ = 60 for most systems. X169c162 X< * A VALUE. X--- X> * THE DEFAULT VALUE. X176,178c169,171 X< * - dhry.h (this file, containing global definitions and comments) X< * - dhry_1.c (containing the code corresponding to Ada package Pack_1) X< * - dhry_2.c (containing the code corresponding to Ada package Pack_2) X--- X> * - dhry_global.h (this file, containing global definitions and comments) X> * - dhry_pack_1.c (containing the code corresponding to Ada package Pack_1) X> * - dhry_pack_2.c (containing the code corresponding to Ada package Pack_2) X350a344 X> #ifndef TIMES X353,354c347,354 X< /* Use times(2) time function unless */ X< /* explicitly defined otherwise */ X--- X> #endif X> /* Use "times" function for measurement */ X> /* unless explicitly defined otherwise */ X> #ifndef HZ X> #define HZ 60 X> #endif X> /* Use HZ = 60 for "times" function */ X> /* unless explicitly defined otherwise */ X363c363 X< /* Berkeley UNIX C returns process times in seconds/HZ */ X--- X> /* UNIX C returns process times in seconds/HZ */ X7c7 X< * Version: C, Version 2.1 X--- X> * Version: C, Version 2.0 X9c9 X< * File: dhry_1.c (part 2 of 3) X--- X> * File: dhry_pack_1.c (part 2 of 3) X11c11 X< * Date: May 25, 1988 X--- X> * Date: March 3, 1988 X18c18 X< #include "dhry.h" X--- X> #include "dhry_global.h" X50,51d49 X< #define Too_Small_Time 120 X< /* Measurements should last at least about 2 seconds */ X55a54,55 X> #endif X> X58d57 X< #endif X73a73 X> X84a85 X> X99,100c100,102 X< /* Was missing in published program. Without this statement, */ X< /* Arr_2_Glob [8][7] would have an undefined value. */ X--- X> /* Was missing in published program. Without this */ X> /* initialization, Arr_2_Glob [8][7] would have an */ X> /* undefined value. */ X105c107 X< printf ("Dhrystone Benchmark, Version 2.1 (Language: C)\n"); X--- X> printf ("Dhrystone Benchmark, Version 2.0 (Language: C)\n"); X281c283 X< /******************/ X--- X> /**********************/ X338c340 X< /******************/ X--- X> /**********************/ X347a350,351 X> else /* not executed */ X> Int_Glob = 100; X349a354 X> X7c7 X< * Version: C, Version 2.1 X--- X> * Version: C, Version 2.0 X9c9 X< * File: dhry_2.c (part 3 of 3) X--- X> * File: dhry_pack_2.c (part 3 of 3) X11c11 X< * Date: May 25, 1988 X--- X> * Date: March 3, 1988 X18c18 X< #include "dhry.h" X--- X> #include "dhry_global.h" X189,190d188 X< else /* not executed */ X< return (false); SHAR_EOF if test 4354 -ne "`wc -c < 'dhry_c.dif'`" then echo shar: "error transmitting 'dhry_c.dif'" '(should have been 4354 characters)' fi fi exit 0 # End of shell archive