Begin V2.8 CONVEX/IRAF BETA port, 6-8 August 1989. See also notes from October 1987 ALPHA port (appended). ------------------------------------------------------- Summary: Installation of V2.8 was straightforward except for a nasty bug involving the host routine BCOPY. I originally tried to use the C code versions of AMOVC etc. (installed in AS). This caused the system environment list to become mangled, due to BCOPY modifying the data it was copying during a copy used to shift by one char to align the buffer in a REALLOC of the environment buffer. The speculation is that the BCOPY uses vector instructions, and if the input and output arrays are aligned to within less than one vector register length data can be corrupted due to the whole vector segment being copied at once. Aside from that, things came up fine. There were several compiler crashes with core dumps, but all but one of these were a result of problems with the IRAF code or system configuration. In general the compiler seems to be in much better shape than during the alpha port. The final system is configured as follows: the HSI is generic (no floating point, can run on any Convex), and two architectures are supported, IEEE and NATIVE, corresponding to the two floating point architecture options available for the Convex. Detailed notes on the modifications made to port V2.8 BSD/IRAF follow. unix/as.convex/ unix/as.convex/zsvjmp.s unix/bin.convex/ Added AS and BIN directories to the HSI for the Convex. Installed the zsvjmp.s written for the alpha port. unix/boot/bootlib/osputenv.c Commented out the call to putenv() - there is no comparable facility on the Convex. unix/boot/spp/mkxc.sh Fixed a bug - the call to CC was not referencing $HSI_CF. unix/boot/spp/rpp/rppfor/declco.f Replaced by a version that enables IMPLICIT NONE, which is how undeclared variable detection is handled by the Convex compiler. unix/boot/spp/rpp/ratlibf/mkpkg.sh unix/boot/spp/rpp/rppfor/mkpkg.sh Replaced the F77 by FC, the Convex fortran compiler. There is no F77 on the Convex. unix/boot/spp/xc.c 1. Replaced all F77 references by FC. 2. The link library list for the Convex is -lF77 -lI77 -lD77 -lm -lmathC1 3. Modified the list of directories searched by sys() (for XPP and RPP) to include /local/bin, /usr/local/bin, and /iraf/local/bin. Merely another hack until the problem is fixed properly. 4. Modified the list of directories searched by run() (for FC) to include /usr/convex, which is where FC resides on the Convex (another hack until the problem is properly resolved). unix/boot/spp/xpp/xppcode.c This HSI file turned out to have code in it (for converting HMS to decimal floating) that used floating point. Replaced by an equivalent routine which uses only integer calculations. unix/hlib/iraf.h The bitwise intrinsics for the Convex are IAND, IOR, IEOR, and NOT. unix/hlib/i1mach.f unix/hlib/r1mach.f unix/hlib/d1mach.f Replaced by the Sun versions. unix/hlib/mkpkg.sf.CX noao/lib/mkpkg.sf.CX Added special file lists for the Convex. At present there is only one special file, images$geometry/geofit.x, which has to be compiled at O1 due to a fortran compiler bug. unix/hlib/irafuser.csh unix/hlib/libc/iraf.h unix/hlib/libc/libc.h unix/hlib/mkiraf.csh unix/hlib/mkpkg.inc unix/hlib/motd Routine changes for the Convex. Added a #define CONVEX to <iraf.h>. MACH is set to `convex' in the irafuser.csh. The HSI flags are setenv HSI_CF "-O -fx" setenv HSI_FF "-sa -fx -O0 -na -nv -nw" setenv HSI_XF "-q -/sa -/fx -/O0 -/na -/nv -/nw -z" The MKPKG flags for the IEEE architecture are $set FLOAT = "fi" $set XFLAGS = "-c -q -/sa -/fi -/O2 -/na -/nw -/nv" $set XSFLAGS = "-c -q -/sa -/fi -/O1 -/na -/nw -/nv" $set XVFLAGS = "-c -q -/sa -/fi -/O2 -/na -/nw" $set LFLAGS = "-z -/fi" and similarly for the NATIVE (Convex floating point) architecture. unix/os/getproc.c This file, part of the tape drive allocation code, would not compile on the Convex (it reads the kernel process table which is fairly system dependent). Commented out the offending code (a status value is returned indicating that the user does not have any processes) until the tape drive allocation problem can be resolved for the Convex. unix/os/irafpath.c Modified to look for files in unix/bin.convex if the machine type is convex. unix/os/zxwhen.c Added FPE hardware signal codes from <signal.h>. mkpkg noao/mkpkg bin.ieee/ bin.native/ noao/bin.ieee/ noao/bin.native/ noao/lib/mkpkg.inc unix/hlib/cl.csh unix/hlib/mkpkg.inc Configured the system for two architectures, IEEE and NATIVE, corresponding to the two floating point options on the Convex. The HSI is compiled generic (no floating point dependencies), hence is runnable on either type of Convex. dev/pix.imh dev/pix.pix dev/vdm.gki Installed versions for the Convex (IEEE architecture only!). sys/gio/nspp/sysint/encd.f Fixed a bug in this file - this was fixed once before but evidently never got merged back into the master system. The problem is the statement if (len (char (ns + ichar ('0'))) .eq. 2) then which is evidently unnecessary and which makes an illegal or at least very questionable use of CHAR. sys/gio/ncarutil/sysint/ishift.x sys/gio/nspp/sysint/ishift.x Commented out the code for IAND and IOR, since these are intrinsic functions in Convex/Fortran. unix/hlib/install Changed the machine type from `vax' to `convex'. ---------- Basic BETA port completed. (8/8) ---------- August 8-10: on site at the VLA testing IRAF on the VLA system, which includes two Convexes (plus some Suns and VAXes). dev/devices Configured for the Convex. (8/11) unix/hlib/login.cl Added EDT and EMACS as foreign tasks to the default USER package. (8/11) unix/as/zsvjmp.s An IMAGES task failed during testing while trying to create a type DOUBLE image, indicating that the MEM common was not double word aligned. I was able to fix this by setting the symbol __mem_ (the mem common) to the absolute value 0, which not only double word aligns the common, it aligns it to any size, and simplifies debugging by arranging for SPP pointers to directly index process virtual memory. This technique (setting __mem_ to zero) did not work for the Convex back when the alpha port was attempted. (8/12) [Postscript] Setting mem to zero evidently was the cause of a number of mysterious program crashes that occurred once the system was relinked with the new zsvjmp.o with mem=0. The problems went away when things were relinked with the mem=0 commented out, indicating that the mem=0 was the problem. There was not time to check this out, but my guess is that since on the Convex program memory begins at 0x80000000, setting mem=0 causes very large pointer offsets which can overflow to negative integer values. I changed zsvjmp.s to set mem=0x80000000 and the problems seem to have gone away, and we still get double word alignment. (8/13) unix/hlib/ic.csh + unix/hlib/install unix/hlib/login.cl unix/boot/spp/xc.c Had problems getting IMFORT programs to link. 1. The solution was to modify XC (FC) to link against the Convex library -lU77 when linking a host program. This can only be done when XC is called with the -h flag as the library will result in a multiply defined loader error message if searched when linking an SPP program. 2. The iraf foreign task FC now calls a new cshell script ic.csh, which calls XC after first determining the floating point option switch required to link IMFORT programs so that they are consistent with IRAFARCH. For example, if Convex/IRAF is running the IEEE binaries, XC will be called with -/fi. 3. Modified the install script to make a link for ic.csh. The new task name stands for imfort-compile, and is not called FC because that is the Convex Fortran compiler. Possibly FC should not be used as the command name in the USER package either, but I did not want to change that as it is shown as FC in all the user documentation. (8/12) unix/hlib/cl.csh Modified to define IRAFARCH if not already defined. (8/12) unix/os/alloc.c Modified to support the Convex tape allocation facilities. Uses the Convex TPALLOC and TPDEALLOC utilities to perform the actual tape allocate/deallocate. As a result, alloc.e no longer needs to have suid-root, although the install script will still install it that way. Verified that local as well as remote network allocation works. (8/12) pkg/images/imarith/imcmode.gx IMCOMBINE would fail when presented with a section containing pixels that all had the same value. The program would go into an infinite loop in the code at the end of imcmode.gx. Modified to avoid a floating point equality test, and to add some limit checking in a couple of places to avoid infinite looping. (8/13) unix/hlib/mkfloat.csh 1. While using "mkpkg [ieee|generic]" etc. on teh Convex, the message "usage: rm -[rif]" would sometimes appear. This turned out to be due to calling rm with a null file list when restoring from generic. The fix was to to delete the file list file in the same command which deletes the listed files, ensuring that there is at least one file in the command. 2. Also reorganized the code somewhat to use only one RMBIN rather than two, which speeds it up by a factor of two. (8/14) unix/os/zmaloc.c IMFORT programs would die on a memory allocator error: this was traced to the fact that the custom memory allocator used for BSD4.3/IRAF was still present in Convex/IRAF (which was built from the BSD version). Commented out the memory debug code in zmaloc.c and all was well. We will leave the applications relinked with the custom memory allocator in for now, since they have already been tested and did not show any problems. (8/14) ---------- ALPHA port notes follow. CONVEX/IRAF Port. D.Tody, beginning 26 October 1987. Using machine in Greenbelt, MD, as follows: ----------------------------------------------------------------------------- ********************************************************* WELCOME TO C1EAST ********************************************************* SYSTEM MANAGERS: BRIAN CHRISTIANSON & DALE LANCASTER C1EAST IS A CONVEX C1-XP MINI-SUPERCOMPUTER. - 128 MEGABYTES OF PHYSICAL MEMORY - 1.5 GIGABYTES OF DISK SPACE - 40 MFLOPS PEAK PERFORMANCE C1EAST IS CONFIGURED WITH: - 25.6 MEGABYTES OF DISK BUFFER CACHE - 64 USER SYSTEM - ETHERNET - IMAGEN LASER PRINTER - 4.2 BSD UNIX, CONVEX RELEASE 6.1.1 - VECTORIZING FORTRAN VERSION 3.0 - VECTORIZING C VERSION Beta 2.0 (vc 1.0 is still around) - ANSYS VERSION 4.2 ----------------------------------------------------------------------------- Snapshot of V2.6 IRAF restored to disk (/extra/iraf) by Convex. (10/26) Logged in via modem, took a look at Convex/UNIX, configured the IRAF login. unix/as -> unix/as.vax unix/as/zsvjmp.s Renamed the VAX assembler directory, and set up a new one for the Convex. Wrote ZSVJMP/ZDOJMP for the Convex. This took a while, and was one of the harder ones I have done, as the architecture and the C setjmp/longmp are complex. The machine has a RISC architecture but nonetheless is fairly complex (and fast and expensive). (11/2) unix/os/zxwhen.c Modified the hardware specific exception codes table for the Convex. In the process of doing this, discovered that the old code assumed that hardware codes were distinct, while in fact they can be numbered similarly for different signals. Modified the ZXGMES routine to work with hardware codes of the form SIGNAL+HWCODE rather than the old HWCODE. (11/2) unix/boot/spp/rpp/ratlibf/mkpkg.sh unix/boot/spp/rpp/rppfor/mkpkg.sh Replaced "f77" by "fc". (11/2) unix/hlib/irafuser.csh Added an "-sa" flag for fc (the Convex Fortran compiler). This flag prevents static compilation of argument lists and is necessary if C code is to be called from Fortran. (11/2) unix/hlib/libc/spp.h unix/hlib/libc/libc.h unix/hlib/libc/iraf.h Replaced the vax spp.h by the Sun version, which should be good enough for now, and may even be correct (Convex evidently supports IEEE floating as well as their native (Cray?) format). Modified the Fortran COMMON external names in libc.h to add the extra leading underscore, used by the Convex Fortran compiler to make common external names distinct from other Forran externals. Edited the iraf.h file for the new $iraf (= /extra/iraf). (11/2) unix/hlib/motd Modified logo for the Convex. (11/2) ------------------------------------- Started up a bootstrap of the HSI. This completed without incident, except for a great many copies of the following warning messages from FC: Obsolete flag '-O' - flag '-no' assumed. fc: Warning on line X of Y.f: label defined but never referenced. Modified HSI_FF (fc flags) in hlib$irafuser.csh to "-O1 -sa -nw" and repeated the bootstrap starting in the SPP directory. This worked, but now the optimizer was enabled, and it helpfully produced a zillion of the following advisory messages: fc: Advisory on line X of Y.f: more optimization is possible if this function call has no side effects. Changed the flags to "-O1 -sa -nw -na" to fix this. Tested the main HSI tasks (rmbin, rtar, wtar, mkpkg, xpp, rpp) and they all passed basic tests!. (11/2) unix/hlib/i1mach.f unix/hlib/d1mach.f unix/hlib/r1mach.f Installed the versions for the Sun (IEEE floating etc.) for now. This will probably need to be tweaked later. (11/3) unix/hlib/iraf.h Modified the name mappings for the bitwise intrinsic functions (and, or, etc.). For the Convex they are the same as in VMS Fortran. Set values of INDEFR and INDEFD, as below. (11/3) unix/boot/spp/xpp/xppcode.c Changed the Fortran mappings of the SPP "char" and "short" type coercion functions to "int2", which is implemented on the Convex. (11/3) unix/boot/spp/xpp/decl.c Convex Fortran supports IMPLICIT NONE, so I modified the code which processes a procedure declaration to output this statement. (11/3) unix/hlib/mach.h Modified the values of various numeric constants. The max exponent for real is 38, for double is 307. The INDEF values were modified slightly. The EPSILON values were very similar to those for the Sun. Byte swapping is no - most significant byte first. (11/3) unix/hlib/mkpkg.inc Set the default compiler flags as follows: XFLAGS = "-cq -/O2 -/nw -/na -/nv" XSFLAGS = "-cq -/O1 -/nw -/na -/sa" XVFLAGS = "-cq -/O2" I have added a new global flag variable XSFLAGS, to be used for the VOS routines, i.e., for pure system code. XFLAGS is for normal scientific applications code, which is pure SPP or SPP/Fortran code, and which would often benefit from vectorization. System code may call C routines (e.g., the kernel routines), and rarely involves vector operations. Distinguishing between the two broad classes of codes is necessary on the Convex in order to permit static allocation of procedure argument lists in Fortran (SPP) code. If Fortran code is to call C routines, all arguments must be pushed on the stack, hence this optimization option cannot be used in VOS code (flag -sa disables static allocation of argument lists). Optimization level O2 includes vectorization, O1 provides only local and global scalar optimization but no vectorization. The -n flags turn off various compiler informative and warning messages, which one normally will not want to see (except perhaps once during development). These messages are enabled by default only for the VOPS routines. (11/3) iraf$mkpkg sys/*/mkpkg Added the line '$set XFLAGS = "$(XSFLAGS)"' to each VOS mkpkg file, to override the default xflags with the xsflags. In the root mkpkg, added the $set to the "syslibs" program. (11/3) unix/boot/spp/xc.c unix/boot/spp/mkxc.csh -> mkxc.sh Modified XC to use "fc" rather than "f77" as the compiler; omitted the -u flag, since this is done differently for Convex Fortran. To the "run" code, added /usr/convex to the search path, since that is where fc is located (a better solution would probably be to put the path in the #define). (11/3) local/bin/ + local/bin/xc -> $hlib/xc.e (etc.) Only for the purposes of the port, set up a local/bin directory for iraf, and put it on PATH in the .login. This will work only for iraf, but avoids having to make a request to the local system manager. (11/3) ------------------------------------ Started up the first full sysgen. (11/3) Summary of results of first full sysgen: The sysgen ran to completion, but not without problems. The spool file was 19305 lines, 7205 lines when summarized (the extra stuff was mostly advisory information about vectorizing the VOPS routines). There were 23 serious runtime compiler errors of the form: fc: >>>>> C O M P I L E R E R R O R <<<<< >>>>> See your system manager for help <<<<< Error : Compiler error on line X of Y.c. These were distributed as follows: #times Error Message 16 Error : Compiler error on line 396 of misc.c. 6 Error : Compiler error on line 155 of allocSReg.c. 1 Error : Compiler error on line 584 of callintr.c. Note that these are errors in the Fortran compiler, not errors in the Fortran source. The compiler routine which generated the error is given in the message. These errors prevented compilation of the affected source file. Other errors in the sysgen were [1] fc cannot compile .c files, hence xc will have to be modified to call cc directly, and [2] in sys/gio/ncarutil/sysint/ishift.x, functions IAND and IOR are defined which appear to call themselves recursively, when the macros AND and OR are expanded. These are dealt with further below. (11/4) local/bugs/ local/bugs/spool.full local/bugs/spool.bugs Created a BUGS directory for the Convex and stored therein copies of all the Fortran sources which cause compiler time compiler failures, plus copies of the full spooled output from the first sysgen, and an edited digest of the same containing only the compiler error messages. Verified that the files cannot be compiled even at optimization level 0. All files compiled with optimization turned off EXCEPT one, the sysint/support.f file from gio/ncarutil. (11/4) sys/gio/ncarutil/sysint/support.f The subroutine ENCD in this file contained a statement which would cause the compiler to crash even with all optimization turned off. The culprit is as follows: if (len (char (ns + ichar ('0'))) .eq. 2) then This is a pretty strange statement, and after staring at it for a while I decided that it would always be false (NS can take on values only between 4 and 6) and commented it out. Of course it should not cause the complier to bomb, and I will report it to Convex, but I think the code is incorrect and should be fixed. (11/4) sys/gio/ncarutil/ishift.x This file contains source for the functions IAND and IOR, written in SPP and defined in terms of the SPP intrinsics AND and OR, which are implemented as macro defines in hlib$iraf.h. On the Convex these are defined as the Fortran intrinsics IAND and IOR, but they are declared as external functions, hence the Fortran compiler quite correctly flags them as recursive references and fails to compiler the file. A simple fix is to replace the calls to AND and OR by calls to the OSB library functions ANDI and ORI; this is inefficient, but on the Convex the calls in the NCAR code map directly to the Fortran intrinsics anyhow, and if this were not the case the routines should be encoded in assembler and put on the special file list. (11/4) unix/hlib/mkpkg.sf Added the 22 or so files with runtime compiler failures to the special file list for CONVEX/IRAF. Specifically: $set noao = "iraf$noao/" $set XCP = '& "$xc -cq -/no -/nw -/na &"' $set XCS = '& "$xc -cq -/no -/sa -/nw -/na &"' $special "sys$fio/": fseti.x $(XCS); $special "math$iminterp/": msifit.x $(XCP); $special "pkg$dataio/fits/": fits_rheader.x $(XCP) fits_wheader.x $(XCP); $special "pkg$images/imarith/generic/": imcmode.x $(XCP); $special "pkg$images/filters/": t_convolve.x $(XCP); $special "pkg$plot/": prows.x $(XCP); $special "pkg$utilities/": t_curfit.x $(XCP); $special "$(noao)proto/": t_bscale.x $(XCP) t_imscale.x $(XCP); $special "$(noao)onedspec/": t_addsets.x $(XCP) t_bswitch.x $(XCP) t_dispcor.x $(XCP) t_flatfit.x $(XCP) t_sums.x $(XCP) t_widstape.x $(XCP); $special "$(noao)twodspec/apextract/": excextract.x $(XCP) excstrip.x $(XCP) t_apnormalize.x $(XCP); $special "$(noao)twodspec/longslit/": ilsetbins.x $(XCP); $special "$(noao)imred/ccdred/src/generic/": imcmode.x $(XCP); $special "$(noao)imred/dtoi/": hdtoi.x $(XCP); (11/4) unix/boot/spp/xc.c Modified to sort out .c source files and compile these separately with CC (the original XC used f77, which would accept anything). (11/4) unix/as/zsvjmp.s This file contains the code which attempts to set the address assigned by the linker to the symbol __mem_ (the MEM common in Fortran) to 0. This is not yet working on the Convex; get multiply defined symbol errors. I have commented this out for the moment in order to proceed. (11/4) ------------------------------------ Second attempt at a sysgen. Special files all compiled ok, but got loader errors as noted above, hence no executables. After fixing zsvjmp.s I was able to successfully link an executable. Tried running it, and wonder of wonders, it actually ran and produced a prompt! The process did not quite run correctly, but most of the iraf main stuff was evidently working if we got that far, so this is encouraging. (11/4) unix/hlib/mkpkg.inc unix/hlib/mkpkg.sf I just remembered that there are a number of VOPS routines coded in C in the OSB directory, which can be called by any applications code. Fortran code compiled with static argument lists enabled cannot be call C routines directly, so until the OSB routines can be recoded in Fortran for Convex, I have added the -sa switch for applications code as well as VOS code. (11/4) ---------------------------- Third attempt at a sysgen. Deleted all non-HSI binaries and started up a full sysgen. Should work this time with all the above bug fixes. (11/4) The sysgen completed normally, and this time suceeded in producing most of the executables. The cl runs and most basic things work ok! There are a number of runtime problems however, which need to be checked out. Looking over the spooled output I find four more files that caused the compiler to crash, this time with a core dump, without even a compiler error message. The message from FC (indicating abnormal termination of a subprocess) is fc: System error in /usr/convex/fskel The files causing the problem were t_imarith.x in images, and in math, gsaccum.x, gsrejectd.x, and isresolve.x. Dale, my contact at Convex, says that there is a major new version of the Convex Fortran compiler, currently in beta test, and that I should try that. I will proceed a bit further with the current binaries before starting up another full sysgen, as these have been running 8-9 hours. (11/5) unix/hlib/mkpkg.sf Added the above four files to the special file list, to be compiled with optimization level -O1 rather than -O2 (no vectorization). (11/5) unix/hlib/mkpkg.sf After adding the above files to the special file list and resuming the compile of the gsurfit and surfit packages, more files requiring special treatment were uncovered. The total is now 34. (11/5) ----------------------------- With the math libraries now built, I was able to finish building the IMAGES package and tried out a few things - IMSTATR was about 3.5 cpusec, IMSHIFTR around 6+ cpusec. Interactive plotting is not yet working due to some problem in the CL. Error recovery in the CL is not yet working due to a problem in ZDOJMP, which has not yet been debugged. Until this is fixed, any error will cause the CL to die. (11/5) unix/boot/spp/xc.c Modified to use version 4.0 of the Convex Fortran compiler. (11/5) ------------------------------------ Sysgen 4. Archived (local/oldfc.arc) and deleted all the old non-HSI binaries. Ready to start a full sysgen with the new compiler. Will do this in such a way that the current executables remain intact for people to play with tomorrow. (11/5) local/bugs.newfc + local/bugs -> local/bugs.oldfc Set up separate bug directories for the old and new FC. (11/5) unix/hlib/sf + unix/hlib/sf/main.x + unix/hlib/mkpkg.sf The new sysgen has thus far compiled all the system libraries without any compile time errors, hence looks much better (sysgen still in progress; stay tuned). Even with the new compiler, however, I am still getting an incorrect warning message "illegal transfer out of IFERR block" from the iraf main. This was traced to the following code in the main: iferr (...) ; or call xerpsh ... if (.not.xerpop()) then goto NN NN continue Even with the optimizer turned completely off, FC is chucking out the call to XERPOP, causing the error message noted above. Since this is not an optimizer problem, the only way to fix it was to hack on the source file. The hacked version is in hlib$sf, and the file has been added to the special file list for the new-fc. This is a particularly worrisome bug, as there may be cases such as this scattered all over the system. (11/5) ----------------------------- Sysgen with new FC looks pretty good. There was one fskel coredump (vectorizer evidently) which I will check out below. (11/6) noao/onedspec/sensfunc/mkpkg noao/onedspec/sensfunc/sfgraphs.x - Deleted this zero length junk file and fixed up the mkpkg. (11/6) unix/hlib/mkpkg.sf Added an entry for file dataio$reblock/reblock_file.x, which causes fskel to coredump when compiled with level O2 optimization. Entered in special file list for level O1 optimization. (11/6) unix/as/zsvjmp.s Finished debugging ZSVJMP/ZDOJMP (this was the cause of the CL crashing upon logout and during error recovery). The Convex version of this routine was easily the most complex I have thus far encountered. The Convex architecture and instruction set is simple, no problem; the problem here as the complexity of the longjmp() code used to make ZDOJMP. Instead of saving and restoring the machine context, the routine actually pops successive stack frames off the machine stack until it gets back to the stack frame of the ZSVJMP. There are special cases, e.g., the stack frame pushed by the OS for an interrupt handler. Twas a mess! (11/12) ------------------------------------------------- Resumed work on Convex port on 5 March - don't know how much time I have to spend on this, but a little anyhow, and maybe the compiler is better. Cleaned up the some somewhat; moved some files to a save directory, deleted a lot of junk test files scattered about the system. Redid the bootstrap without incident. Deleted all binaries and started a full sysgen. As of now (5 March 5 pm) this is still in progress. The CL and x_system.e are up and look fine. Here is the /etc/motd for the current Convex system: ------------------- ********************************************************* WELCOME TO C1EAST ********************************************************* SYSTEM WINGNUTS: BRIAN CHRISTIANSON & DALE LANCASTER C1EAST IS A CONVEX C1-XP MINI-SUPERCOMPUTER. - 128 MEGABYTES OF PHYSICAL MEMORY - 1.5 GIGABYTES OF DISK SPACE - 40 MFLOPS PEAK PERFORMANCE C1EAST IS CONFIGURED WITH: - 12.8 MEGABYTES OF DISK BUFFER CACHE - 64 USER SYSTEM - ETHERNET - IMAGEN LASER PRINTER - 4.2 BSD UNIX, CONVEX RELEASE 6.1 - VECTORIZING FORTRAN VERSION 4.0 with In-Lining - VECTORIZING C VERSION Beta 2.0 (vc 1.0 is still around) - ANSYS VERSION 4.2 CONVEX COVUEshell V7.0 installed. Look in /usr/doc for new release notices. ---------------------------------------------- Resume testing yet again, this time with a new version of the Fortran compiler. unix/boot/spp/xc.c unix/hlib/mkpkg.inc 1. Added a new flag "-N" to XC. Setting this flag causes XC to try to use the beta test Fortran compiler, which is called as /usr/convex/newfc/fc -B/usr/convex/newfc ... 2. Added the -N flag to the flag macros in mkpkg.inc. (4/16) unix/as/zsvjmp.s unix/os/zdojmp.c + unix/os/mkpkg Replaced the nativ ZSVJMP/ZDOJMP I originally wrote for the Convex with a much simpler version which "piggybacks" on the C setjmp/longjmp. The old file is zsvjmp.CONVEX. (4/16) ---------------------- Deleted the main system binaries and started a new sysgen. Will use the old HSI for now. (4/16) The sysgen ran to completion with minor problems. One was the appearance of the following warning message for every file, regardless of the fact that none of our code uses any Convex Fortran preprocessor facilities: fpp: WARNING: Use of fpp is being phased out; please update your program by removing uses of #define, #if, #ifdef The second problem, more serious, what that a number of modules failed to compile due to the IMPLICIT NONE statement being out of order; in pointer functions, the Mem declarations were being output before the IMPLICIT NONE (see below). (4/17) unix/boot/spp/xpp/decl.c unix/boot/spp/rpp/rpprat/defs unix/boot/spp/rpp/rpprat/declco.r unix/boot/spp/rpp/rppfor/declco.f 1. In decl.c, deleted the code previously added to generate the implicit none statement. This is not the right place for it, as it doesn't work for pointer functions. 2. In declco.r, added code to output theIMPLICIT NONE immediately after a function or subroutine statement. 3. In defs, added a switch IMPNONE, which if defined, causes the IMPLICIT NONE statements to be output. 4. Processed the fortran for declco.r and put it in rppfor/declco.f. The defs and declco.r files were not updated on the Convex; I made the changes on lyra since this is a generally useful mod, and only copied the processed Fortran to the Convex. (4/17) ... incremental sysgen now in progress... [Ran all benchmarks except [24]USER, networking, and IMLOADs. No errors.] [4/18 SRo] [Ran all test procedures except magtape i/o; no errors. 4/27 SRo] hlib/mkpkg.sf Added the following files to the special file list, to be compiled with the old fc compiler, to avoid a fatal bug in the new 4.1 fc. sys/imfort/clargs.x sys/imfort/imemsg.x sys/imfort/imokwl.x sys/imfort/impixf.x sys/imfort/imtypk.x sys/gio/ncarutil/conlib/congen.f sys/gio/ncarutil/conran.f sys/gio/ncarutil/conrec.f sys/gio/ncarutil/isosrf.f sys/gio/ncarutil/threed.f sys/gio/ncarutil/velvct.f noao/onedspec/t_standard.x (5/13 SRo) [Relink sysgen to replace the missing executables in bin$ prior to having ] [a tape cut for mailing to NOAO. (5/13 SRo) ]