diff options
author | Joseph Hunkeler <jhunkeler@gmail.com> | 2015-07-08 20:46:52 -0400 |
---|---|---|
committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2015-07-08 20:46:52 -0400 |
commit | fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 (patch) | |
tree | bdda434976bc09c864f2e4fa6f16ba1952b1e555 /doc/notes.v27 | |
download | iraf-linux-fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4.tar.gz |
Initial commit
Diffstat (limited to 'doc/notes.v27')
-rw-r--r-- | doc/notes.v27 | 2848 |
1 files changed, 2848 insertions, 0 deletions
diff --git a/doc/notes.v27 b/doc/notes.v27 new file mode 100644 index 00000000..5c2a05f6 --- /dev/null +++ b/doc/notes.v27 @@ -0,0 +1,2848 @@ +System Notes File for IRAF Version 2.6. +Begun 8 July 1987. +------------------------------------------- + +doc/notes.v25 + +local/notes.v26 + + Moved the V2.5 system notes file to the documentation library and + started a new one (this file). (7/8) + +unix/hlib/motd +pkg/cl/cl.par + Incremented the IRAF version number to 2.6. (7/8) + +local/bugs.v25 + +unix/hlib/buglog.csh + +unix/hlib/irafuser.csh +unix/hlib/login.cl + Set up a system bugs file for V2.5, to be used to record bugs in the + frozen V2.5 system as they are discovered. Added a new HSI utility + task (UNIX/IRAF only) called 'buglog', used to log new bugs. (7/8) + +unix/hlib/login.cl + Added a new foreign task to the user package called 'nbugs'. + This may be used to page the tail of the system bugsfile, to see + if any new bugs have been added. The new utility task is only + available on UNIX/IRAF and as defined will only work if the + nonstandard pager 'less' is installed, as it is on all NOAO + systems. (7/9) + +pkg/bench/bench.hlp + Added IMLOAD and IMLOADF measurements to the Sun benchmark entries. + (7/10) + +unix/hlib/buglog.csh + Will now send a copy of each bug as it is logged to the iraf mail, + as well as appending it to the system bugs file. This ensures that + all subscribers to the iraf mail see the bug report promptly. (7/10) + +doc/vmsiraf.ms + + Added a completely new, more comprehensive VMS/IRAF Installation Guide + to the docs directory. (7/20) + +GTERM (Sun/IRAF) + Made a number of obscure, mostly minor tuning enhancements to GTERM; + these have accumulated over the last couple of months. Most of these + are little things that one does not notice if things are working right. + + 1. Incremented the version number to V1.1 for the first official + release of V2.5 SUN/IRAF. + 2. Setup/reset now resets the user settable parameters to their + command line values, rather than to the builtin defaults. + 3. I discovered that due to an oversight, there was no way to set + reverse video for the graphics plane on the command line. Added + the new switches -[no]rev[erse], e.g., -rev or -norev (the default). + + 4. One can now add the sequence [task [args]] to the end of the + GTERM argument list to directly execute TASK in the window, even if the + command follows the -G in the command line. This is different than + the already provided [-I command], which executes a shell in the + window and passes it the given command. A shell process is eliminated, + and exiting the named task causes the window to quit (e.g., if the + command is "cl", logging out of the CL terminates the window). + A disadvantage (or advantage depending upon how you look at it) is + that since there is no csh, there is no job control in the window. + + 5. The F8 and F9 function keys are now recognized when the mouse is + in either the text or graphics window. Hence if one types F8 to get + into graphics mode (perhaps by accident), then closes the graphics + window, typing F9 in the text window will restore text mode. + Previously one had to get the graphics frame back in setup mode in + order to type the F9 to restore text mode. Also, typing L7 while + in graphics mode (which makes the graphics plane go away) will now + automatically restore text mode. Hence if one types F8 by accident + while in text mode, typing L7 restores everything, including making + the graphics plane go away. + + 6. Typing F8 to get into graphics mode no longer clears the graphics + plane; typing F8 WHILE in graphics mode still clears the graphics + plane. Hence, to switch to graphics mode AND clear the screen, one + can type F8 twice. Typing F8 once while in text mode merely brings + up the graphics plane, providing a handy way to get the graphics plane + back without clearing it, without having to call up the setup panel. + + 7. Fixed a problem with the -Wh (-height) frame arg, used to set the + height of the tty window in lines of text. For example, -Wh 40 may + be used to start up GTERM with the IRAF standard 40 line window. + + 8. GTERM now catches the suspend signal (SIGTSTP) and stops itself when + this signal is received. Evidently, standard sunview window processes + (such as shelltool) do not do this since the window stops responding + to mouse and keyboard events, but it is necessary for GTERM to stop + itself when so commanded in order to be able to do a (<suspend>,'bg') + of a running gterm job in a cshell (e.g., another gterm window running + a shell), i.e., to stop the job and put it in the background. + Conversely, if SIGTSTP is not caught, typing 'fg' by accident on a + background gterm job causes the cshell to hang up, requiring a <ctrl/c> + abort to recover (killing whatever the gterm process was running, + e.g., a remote login to a computer on the other side of the world). + + 9. I tested GTERM on a monochrome terminal (3/110 overlay plane). + Modified the setup menu so that it says "mono only" when working on + a monochrome terminal, instead of indicating that color is an option. + Could not get reverse video to work on a monochrome monitor, although + it works fine in monochrome mode on a color monitor. Decided to leave + it as it is for the moment (black polylines on a white background + unless entire screen is inverted). + + 10. Fixed a minor bug: when specifying frame colors for both the text + and graphics frames, the graphics frame colors would clobber the text + frame colors before the code would allocate a private colormap segment + for the second window. + + 11. Checked out a report than when printing very long lines, GTERM + might be losing characters during the wraparound. The problem was + not duplicated and all characters were printed with autowrap as + expected, both in the left column on a cleared screen, and on the + half-screen column after a vertical screen wraparound. + + 12. Added a new command line option -T, and a set of related options + in the setup panel. The options specify how the terminals responds to + graphics commands and data. If -T is specified the graphics plane is + disabled, and graphics characters are printed in the text frame as on + a non-graphics terminal. Another option allows graphics data to be + discarded entirely. These options should be useful when debugging + graphics programs, or when working over a noisy line. + + 13. All gterm specific command line arguments and switch values now + permit minimum match abbreviations. + + 14. Added a new command line argument "-ginterm [ch [ch]]", where the + [ch] are the octal values of the GIN mode terminators. Also added + support for setting the GIN mode terminators to the setup panel. + This is not required for IRAF, but for running foreign graphics + programs which require no GIN terminator, or a different value. + + 15. Reworked the setup panel code somewhat so that selecting one item + in the panel causes actions to be performed which affect only that one + item. Formerly, the setup event procedure would fetch the value of + each setup item and perform some action if the value had changed. + This could result in unnecessary actions in some cases. + + 16. Fixed another suspend-process bug. When running a command like CL + or SH which does not do job control in the gterm window without benefit + of an intermediate shell, typing the suspend character would cause the + process (and terminal) to hang, requiring a kill to recover. Added a + new command line option "-ignore" to allow filtering out of the suspend + control characters, and also a new frame menu option "continue" which + when selected, sends SIGCONT to the process group currently associated + with the terminal. This will restart a process which is accidentally + stopped by typing the suspend control character. Note that SHELLTOOL + also has this problem. + (7/23+) + +local/mail.mai - +local/mbox.txt - +local/tasks/daophot/image.dst - + Deleted these files in VMS/IRAF. (7/27) + +unix/hlib/stripper +unix/hlib/stripall [UNIX,VMS,SUN] +vms/hlib/stripper +vms/hlib/stripall + Revised the stripper scripts for V2.5 IRAF. This reduced the size + of the stripped V2.5 VMS/IRAF system from 18.7 to 14.9 Mb (with shared + libraries). The main changes were deletion of all files in the + following directories: + + local/noao + vms/hlib/share + + In addition, a dozen or so modest size files, mostly .hlp files used + to generate printed manuals, were added to the list of special files + to be deleted in the stripper scripts. (7/27) + +unix/hlib/install +local/sun/Makefile [SUN/IRAF] +local/suntools -> local/suntools.e + Changed the name of the main 'suntools' executable in the IRAF system + login directory to 'suntools.e'. This is necessary to prevent + execution of this local master copy of the suntools executable, when + entering the command 'suntools' when logged in as 'iraf'. This is + wasteful of memory, as iraf/local/suntools is run for the root window, + but /usr/bin/suntools is used for most everthing else. (7/30) + +pkg/cl/param.c + Fixed a serious bug in the code which searches for parameters where + no containing task has been specified, i.e., "param" rather than + "task.param", requiring a search of all pfiles in the search path. + There were two problems with the old code (lookup_param in param.c): + + [1] If "param" was an ambiguous abbreviation for two or more of the + parameters in one of the pfiles in the search path, the search was + being terminated and an illegal value was being returned to the + calling routine (paramsrch), causing the error message + + ERROR: task `' has no param file + + to be printed, aborting the task. The actual error would be an + ambiguous parameter name abbreviation, but even this is incorrect + since an exact match might be found in a pfile further on in the + search path. This would commonly happen when referencing the CL + parameters i,j,k,x,y,z, etc., in complex scripts, since it is easy + in a complex script to have two or more parameters whose names begin + with one of these characters. + + [2] If "param" was an unambiguous abbreviation for one of the + parameters in a pfile in the search path, that parameter would be + referenced, even though the actual parameter name given was the + exact name of a parameter in a pfile further on in the search path. + In other words, the search routine would stop as soon as it found + a parameter for which the given name was an abbreviation. Clearly, + if searching for one of the CL global params i,j,k,x,y,z, etc., + it is easy for this to occur, causing the script to fail. + + The bug has been fixed, but the workaround is simply to not use the + global CL parameters in scripts. This has always been considered + poor practice due to possible coupling problems between nested scripts + that access the same global parameters. It is also more efficient + to define the parameters as local variables, as the search path is + shorter. (7/31) + +IMTOOL (SUN/IRAF) + 1. The hardware color table is now updated twice a second on a timer + loop, allowing the displayed image to be viewed normally even while + the mouse is not in the display window. + 2. Added a rate option to continuous random pseudocolor. Also, this + maptype option will now work when the mouse is not in the display + window, due to revision 1 above. + 3. Added a command line option -maptype for setting pseudocolor options + etc. on the command line. (8/4) + +local/sun/gterm.man + +local/sun/imtool.man + +local/sun/* + I cleaned up these directories, deleting the old ./save directory, + adding a README with installation instructions, adding a Makefile, + and so on. Also, manual pages were added for both GTERM and IMTOOL. + (8/4) + +unix/gdev/sgidev/sgi2uapl.c + 1. Added code to add the tiny timestamp/logo to the corner of each + output plot, so that the machine of origin, owner, and time are + recorded automatically on each plot when generated. A -t switch + was added to disable printing of the logo (the default is to print it). + + 2. I also optimized the generated Postscript so as to speed up plotting. + This turned out to be tricky, as the Postscript interpreter is not all + that fast, hence even with the serial interface the laserwriter can + easily be cpu bound. For a test vector plot with labelled axes, plot + title, and 3 512 point vectors overplotted, the following results were + obtained. + data size, bytes clock time + ---------------- ---------- + original code 90578 1:45 + 4 byte encoding 25877 1:43 + 7 byte encoding 37956 1:12 + + The original code was clearly generating a lot more data than it + needed to to describe the plot (17 bytes per vector point), which was + the motivation for this optimization. At 9600 baud, it should take + 1:15 seconds to transmit 90Kb, suggesting that the plotting might be + i/o bound. Hence in my first attempt at optimization I used a + sophisticated encoding scheme which used only 4+ bytes to encode each + vector point to be plotted. This resulted in a very compact + representation of the plot, but the running time worked out about + the same, indicating that the processing was cpu bound due to the + overhead of the Postscript interpreter, and the relatively low speed + of the 68000 chip used in the current laserwriter. In my second + attempt I streamlined the Postscript code, increasing the encoding to + 7 bytes per vector point, with some loss of data compression, but a + significant improvement in processing time. + + The conclusion is that Postscript, due to its very general and flexible + interpreter can sometimes be slower than one would like, and there is + little that can be done about it. In many cases adding the more + expensive parallel interface would not help; the bandwidth of the + serial interface is rarely a problem, except perhaps for 1 to 1 bitmap + transfers. As faster chips are used in the laserwriters there may + come a point where the 4 byte encoding is the fastest. If the + Postscript output is to be used to save plots on disk or transmit them + via modem to remote computers, the 4 byte encoding may again be + preferable. The ideal solution would be if Postscript were to provide + direct support for a polyline primitive, rather than relying on the + Postscript interpreter to draw polylines. + + By default, the 7 byte encoding is used since it is faster. The new + switch "-4" was added to enable the optional 4 byte encoding (the + translator supports both). (8/9) + +pkg/images/tv/display/t_display.x + A new routine ds_setwcs() was added which writes a WCS descriptor file + to the directory 'wcsdir' (uparm if not defined) when an image or + image section is displayed. The WCS file contains two lines: the + first line is some text describing the image (image name and title + string), and the second line is a rotation matrix to be applied to + screen coordinate to get image coordinates. The rotation matrix + undoes the affects of the image section or display mapping + transformations. The filename is "wcsdir$<device>_<frame>.wcs", + e.g., "uparm$imtool_1.wcs". (8/12) + +doc/unixiraf.ms + + Installed the all new UNIX/IRAF Installation Guide in doc. (8/24) + +vms/os/zfioty.c + Modified the VMS terminal driver to recognize the special device name + "dev$tty", passed by the VOS to indicate the user terminal. Checked + out the operation of the TTOPEN routine (used to do i/o directly to + the terminal). (8/25) + +unix/boot/mkpkg/host.c + The u_fmove function ($move) will now physically copy the file if + necessary to move it to a directory on a different device. (8/27) + +local/tasks/mkpkg +local/tasks/peritek - + Deleted the @ccdred reference and peritek references from this mkpkg + file on Sun/IRAF. (8/27) + +dev/termcap + Added an entry for the unixpc. (8/27) + +unix/hlib/install + Extracted the file lists and moved them to the head of the file as + SET statements so that they may more easily be modified for different + machines. Added some more files to these lists for the Sun/IRAF + version of install. (8/28) + +unix/hlib/stripper +unix/hlib/stripall + Modified Sun/IRAF versions to delete the archived object files for + each floating point option during a strip operation. (8/28) + +mkpkg +unix/hlib/mkfloat.csh +unix/hlib/cl.csh +unix/hlib/irafuser.csh +unix/hlib/login.cl + Added support to Sun/IRAF for multiple binary versions of the system, + e.g., to support multiple floating point options with a single copy + of the system. There are two reasons for doing this. + + [1] When multiple nodes must access the same copy of IRAF, the + different nodes will often have different floating point + hardware. + + [2] It would be nice to not require user sites to recompile the + full system because they have different floating point + hardware then we do on our development system. + + This could have been done (could still be done by user sites if + desired) by recompiling the system with -fswitch, but this would + result in a significant loss of efficiency in some programs. + Our solution instead is to have multiple copies of the runtime + system executables. This is transparent to the user, with the + best choice being made depending on the floating point hardware + available on the machine on which IRAF is being run. + + Implementation is as follows: + + iraf$bin.f68881 Binaries for -f68881 option. + iraf$bin.ffpa Binaries for -ffpa option. + iraf$bin link to either of the above. + cl link to hlib$cl.csh, defines IRAFBIN + login.cl resets 'bin' to value of IRAFBIN + + There are two bin directories, BIN.F68881 and BIN.FFPA, compiled + -f68881 and -ffpa respectively (the HSI executables are separate + and are compiled -fsoft). The old BIN directory is now a symbolic + link to one of these two directories. On our systems, bin.f68881 + and bin.ffpa are also symbolic links to directories on a separate + device, in order to provide more flexibility in allocating such a + large amount of storage. + + The command 'cl' is now a link to the script hlib$cl.csh, rather than + a link to bin$cl.e. The script defines an environment variable + IRAFBIN giving the path to the bin directory to be used, and then + runs the cl.e in that directory. The fpa bin will be used if it + exists and if the file /dev/fpa exits, indicating that the local + node has an fpa. The revised LOGIN.CL file fetches the value of + IRAFBIN defined in cl.csh, and uses it to 'reset' the value of the + IRAF logical directory BIN. + + While it is easy to switch bin directories, it is much harder to + maintain two separate copies of all the objects and package libraries. + The system has been set up so that it can easily be configured with + either f68881 or ffpa objects, but not both at the same time. + This is done as follows: + + cd $iraf + mkpkg ffpa (configure for -ffpa objects) + mkpkg f68881 (configure for -f68881 objects) + mkpkg showfloat (show current float option) + + MKPKG is used to configure the entire system for either float option. + Once this is done, that version of the binaries are updated by the + mkpkg. The system is normally configured for f68881 so that software + development may take place on any node. Periodically the ffpa objects + and executables are updated by the following commands: + + cd $iraf + mkpkg ffpa (configure for -ffpa) + mkpkg (update libraries and relink) + mkpkg f68881 (restore to -f6881) + + This updates the ffpa version of the system, and restores the system + to f68881 when done. When not in use, all the system and package + objects and libraries are stored in the file OBJS.arc in one of the + bin.f* directories. + + IMPORTANT NOTE -- Since bin, bin.f68881, and bin.ffpa are all + symbolic links, a tar archive of $iraf no longer includes any + executables. The real bin directories (/tmp2/bin.f68881 and + /tmp2/bin.ffpa on our system) must be explicitly referenced on + the tar command line to be included in the archive. A tar of $iraf + is now only about 35 Mb, and the bin directories are about 24 Mb. + + When configuring the system for a particular site, the bin directories + may be located wherever there is space, and either directory may be + deleted if it will not be used. Of course it is always possible to + delete both and compile the system for -fswitch, etc., if desired. + + I am considering adding a gprof version of OBJS.arc for profiling + purposes, now that we have an easy mechanism for maintaining multiple + versions of the system binaries. (8/28) + +unix/hlib/install + Modifed the Sun/IRAF part of the install script to install or update + the GTERM and IMTOOL manual pages. (8/30) + +unix/hlib/zzsetenv.def + Added an entry "set stdimcur = text", so that image cursor reads will + come to the terminal by default, rather than trying to spawn the + stdimage kernel and dieing on a process not found error. (8/31) + +unix/boot/mkpkg/host.c + Thanks to the recent change to a remote bin directory on Sun/IRAF, + which causes $move to call u_fcopy, we have found a bug in u_fcopy. + The variable "totchars", used to check if the file changes size + during the copy, was not being initialized before each copy. (9/1) + +---------------------------- +Sun/IRAF V2.5 frozen and archived on tape. (9/3) + +vms/boot/mkpkg/host.c + I had to add the /NOCONTIGUOUS qualifier to the COPY command, as COPY + would issue a warning message and return an error (warning) status + code, when trying to copy an input file which was contiguous and the + output file could not be created contiguous. This was happening even + though there was no /CONTIGUOUS qualifer on the command line. (9/4) + +local/sun/gterm.c +local/sun/gtermio.c + Added a new, experimental feature to GTERM. Selecting "logging on" in + the frame menu causes all output from that point on to be logged in a + file. Selecting "logging off" disables logging. The log file filename + may be set in the setup panel if desired. Any utility such as 'cat' + may be used to replay the logfile. "Page mode" may be set in the + text window to page the played back output. This feature is useful + to spool terminal output for later review, e.g., during a terminal + session on a remote or non-UNIX node where i/o redirection is + difficult, or to provide a means of spooling the output of interactive + programs which do not provide such a facility as a builtin (e.g. a + file pager). (9/8) + +doc/pkg.hlp + Deleted some ^N, ^O control codes which were embedded in the text, + causing the file to appear to be a binary file. (9/9) + +sys/clio/clgcur.x + CLGCUR will now accept either X-Y-WCS-KEY-SVAL or KEY-SVAL as valid + input cursor value strings. In the latter case, X-Y-WCS will be + returned as INDEF INDEF 0. It is assumed that if the latter case is + used, the coordinate information is to be ignored, e.g., because the + function selected by the key does not use the coordinate information. + This is convenient when entering interactive commands in cursor mode, + e.g., with stdimcur set to "text", (or possibly in cursor lists when + the coordinate information would be meaningless for a given key). + Note that omission of X-Y-WCS is possible only when the given key + is nonnumeric. (9/10) + +doc/aosvsiraf.hlp + Installed a new version of the AOSVS/IRAF Installation Guide. (9/11) + +sys/gio/stdgraph.com +sys/gio/stgres.x +sys/gio/mkpkg +sys/gio/stgpl.x +sys/gio/stgpm.x +sys/gio/stgencode.x +sys/gio/stdgraph.h +sys/gio/stginit.x + Someone (Dyer) discovered that the graphics system was noticeably + slower than specialized test code when used to plot very long vectors, + e.g., 4096 points. Normally the software is faster than the hardware, + but for these very long vectors clipping of unresolved points becomes + a significant factor, as does all the processing needed to generate + all those points. + + Investigation showed that virtually all of the time was being spent + in three routines: gadraw, the main point drawing routine in GIO, + and stg_polyline and stg_encode, the principle polyline drawing + routines in the stdgraph kernel. + + The gadraw routine uses the most time, but examination of the code + showed that it was already fully optimized, with caching of the WCS, + use of integer rather than floating point where possible, and provision + of code to optimize the common special cases, e.g., linear WCS, + successive points all inbounds with no clipping, and so on. I don't + seem much possiblity for improvement here, it just takes a little + while to plot all those thousands of points (i.e., 0.68 seconds for + all the GIO operations for 4096 points on my 16.7 MHz diskless Sun + node with f68881 fpa). + + There was room for improvement in the polyline drawing code in the + stdgraph kernel, however, since most of the time was being spent in + a single routine. I [1] added code to the inner loop to handle the + special case of Tek-4012 encoding inline, rather than calling the + encoder, [2] substituted lookup tables for the tek encoding, rather + than computing the 4 bytes each time with divides, mods, adds, etc., + [3] substituted integer for floating point in the unresolved point + clipping code, and [4] replaced the FOR loop by a DO loop. With these + changes, I was able to reduce the running time for drawing 100 4096 + point polylines in the stdgraph kernel from 37.9 sec to 18.0 sec on + the 16.7 MHz f68881 Sun. The most significant change occurred with + optimization [3], since for these long vectors clipping is the major + operation, and the f68881 floating point is quite slow compared to + 68020 integer operations. + + In repeating the same tests on the 11/750, my 4096 point test plot + took 11 seconds to draw both before and after installing the optimized + stdgraph kernel. It appeared that the GIO time was about 2.2 sec + per plot, and the stdgraph time about 0.7 sec, indicating that the + operation was very much limited by the drawing speed of the terminal. + By decreasing the software resolution of the plot in cursor mode, + I was easily able to decrease the drawing time to 4 seconds, with + only slight degradation of the plot. Hence, it appears that the most + significant factor affecting plotting time is actually the point + elimination algorithm, which is probably more conservative in the + stdgraph kernel than in the specialized test code mentioned above. + + I conclude that, although a significant inefficiency in the polyline + drawing code was discovered and fixed, the graphics system has been + i/o limited all along (on conventional graphics terminals), and that + the differences in plotting speeds observed earlier were due to + differences in the point elimination algorithms, causing one program + to plot at a slightly different resolution than the other. (9/12) + + [Addendum 9/14: In repeating the plotting speed tests mentioned + [earlier, we discovered that the real difference was that Dyer's + [program was *subsampling* the data by 4, and hence only plotting 1024 + [points, whereas all my tests were plotting the full 4096 points. + [Repeating the IRAF test with an [*:4] image section eliminated the + [problem - and I suspect the IRAF code, despite its generality, is now + [more efficient than Dyer's specialized test code.] + +sys/gio/gactivate.x +sys/gio/greactivate.x +sys/gio/gdeactivate.x +sys/gio/gki/gkigca.x +sys/gio/gki/gkifetch.x +sys/gio/gki/gkigetwcs.x + Added some errchk declarations. (9/14) + +dev/graphcap +lib/syserr.h +lib/syserrmsg +sys/gio/gopen.x +sys/gio/cursor/gtropenws.x + 1. In the graphcap file, for device 'iis', deleted the kf and tn + capabilities (kf=bin$x_stdimage.e etc.) since there is no GIO + kernel yet for this device, and it is therefore incorrect to + indicate that there is such a kernel in the graphcap (this causes + misleading error messages). + 2. Added a new system error message SYS_GNOKF, and modified gopen.x + and cursor/gtropenws.x (GIO) to check that a device has a GIO + kernel before trying to connect it, printing an informative error + message and taking an error exit if no kernel is found. + + NOTE: All graphics devices accessed via GIO must now have the 'kf' + capability in their graphcap entry, specifiying the GIO kernel to + be used. Previously, the value of kf would default to 'cl' if no + kernel were found, but this has been changed to an error condition. + As far as I know, all graphcap entries to date have explicitly + specified the kf so this should not cause any problems. (9/15) + +pkg/cl/exec.c +pkg/cl/pfiles.c + Fixed a PSET related bug that would occasionally cause segmentation + violations in the CL when "executing" a pset task. The segmentation + violation was occurring due to an indirect reference (by pfileload() + in pfiles.c) to the param file pointer in the task structure, occurring + in the code in callnewtask() in exec.c which was in the process of + setting that very parameter. (9/20) + +pkg/cl/binop.c +pkg/cl/opcodes.c +pkg/cl/unop.c +sys/etc/envreset.x +doc/ports/notes.sun4 + +unix/mc68000/zsvjmp.SPARC + + Merged in some changes from the port of IRAF to the Sun-4, the new + RISC architecture (sparc) machine. + 1. The changes to the three CL files were to avoid use of the VALU + macro to fetch the value of an operand, when evaluating boolean + operands. The datatype of VALU, due to the union in the operand + struct, is double, and evaluation of boolean expressions in double + on the sparc cpu was not working (and obviously should be avoided). + 2. In envreset.x, the maxch argument to a strcpy was being passed as + a short rather than an int, and this was causing a bus error on the + sun-4. + 3. Saved copies of the notes file from the port, and the zsvjmp.s + (10/1) + +sys/gio/gopen.x + The recent addition of code to check for the kf parameter interfered + with the gopen action for the special device 'stdvdm'; fixed this. + (10/1) + +sys/gio/doc/gio.hlp +sys/gio/stdgraph/stgrcur.x + Added a new graphcap device parameter RE. This goes with RC, and if + defined for a device, is sent to the terminal after the cursor value + has been successfully read. This is necessary on terminals which + ignore characters coming back from the computer (e.g., due to echo + not being turned off in the terminal driver) while transmitting the + cursor position characters during a cursor read. (10/1) + +sys/clio/clgcur.x + The clgcur revision of 10 Sept (about 3 week back) introduced a bug + which would cause cursor reads returning negative x values to fail. + This has been fixed on lyra and tucana. Our policy of not exporting + code from our test systems should have prevented this bug from being + propagated to any external sites, or even to our production systems + in Tucson. (10/2) + +local/sun/Makefile +local/sun/gtermio.c + 1. Discovered and fixed a serious bug in GTERM which would cause the + terminal to lock up when trying to do graphics over a modem connection + to an external computer (evidently this was the first time this has + been tried). In this mode of operation, characters are delivered one + at a time; receipt of the GS character alone would cause the input + code to get into an infinite loop, exiting immediately each time + called, posting a callback to the notifier, which would evidently call + the input procedure back BEFORE reading pending input on the pty. + 2. Modified the makefile to strip the suntools.e executable in the + "make install" rather than when it is made, to make it easier to get + at an unstripped version for debugging. (10/3) + +doc/cluser.tex +doc/vmsiraf.ms + Corrected the spelling of Fred Romelfanger's name. (10/7) + +sys/gio/gopen.x + Corrected another problem having to do with raw metacode output. + This was diagnosed as a stdvdm problem, but wasn't really. A program + was opening device "stdvdm", but directing output to a binary file + opened by the application, and it was bombing because in this case + GIO is not writing to the stdvdm file, but to the user file. + The change was to disable checking for the existence of a graphics + kernel whenever output is directed to a stream other than STDGRAPH, + STDIMAGE, or STDPLOT. If the user is controlling where the metacode + goes, it is inappropriate to make such a check, as probably no kernel + is being used. (10/22) + +--------------------------------------- +Orion (Sun-4) updated (port actually) from lyra on 24 Oct. This was with the + BETA1 release of SunOS for the RISC Sun-4, hence will have to be redone + when we get the correct, current operating system software in. +Tucana updated from lyra on 26 Oct (both f68881 and ffpa). + +unix/boot/wtar/wtar.c + I wanted to use the -o (omit binary) feature to make a source only + update tape given a long list of individual files and directories. + This failed due to the restrictions in the unix/iraf HSI on changing + directories. I hacked away on WTAR until it could handle this + properly, and had to generalize the library routines listed below + as well. (10/27) + +unix/boot/bootlib/oschdir.c + The case which folds a subdirectory into the pathname of the current + directory was being called incorrectly when passed a directory name + of the form "path/subdir". (10/27) + +unix/boot/bootlib/osfpathname.c + The special code in this routine for vfns "." and ".." was checking + only for such a prefix, and incorrectly matching filenames such as + "./path". (10/27) + +----------------------------------- +IRAFX (draco) updated from lyra on 27 Oct. + +sys/gio/gclose.x + Added a call to gki_redir(fd,0,0,0) to cancel any redirection of a + graphics stream to an inline kernel or subkernel, when the stream + is closed. This has never been a problem, but could be required in + some circumstances. (11/2) + +sys/gio/gki/gkiredir.x + May now be called with fd < 0 to obtain the redirection information + for a stream without changing anything. (11/2) + +sys/gio/gopen.x + Checking for a kernel file in graphcap is now disabled if a graphics + stream is opened on an inline kernel or subkernel, in which case no + external kernel could possibly be needed. (11/2) + +pkg/images/tv/cv/load1.x + The CVL task was issuing the following sequence of calls: + + gki_inline_kernel + gopen, gclose + gopen, gclose + + Since gclose now resets the default GKI stream type, a second call + to gki_inline kernel is necessary before the second call go gopen, + to setup GKI for an inline kernel. (11/3) + +sys/gio/gvmark.x + Bug fix: replaced the single "marksize" argument by the "xsize, ysize" + specified in the documentation, etc. (11/6) + +sys/fio/nowhite.x +sys/fio/open.x +sys/fio/vfntrans.x + The NOWHITE procedure, used to eliminate whitespace and newlines from + a string operand, was using maxch on the output string as a terminator + and ignoring EOS on the input string (most likely harmless, but + inefficient). In the process of fixing this it appeared that it + would be useful to return the length of the output string as the + function value, and the procedure was only used in the two files + listed above, so the procedure was converted into a function. (11/6) + +sys/gio/stdgraph/stgpm.x + The STDGRAPH kernel polymarker code would draw the polymarker and then + go into an infinite loop, due to a bug in the loop termination test + introduced when the optimized polyline drawing code was transferred + to the polymarker drawing routine some time back. (11/7) + +sys/imio/imaccess.x + If an image section is specified, imaccess calls immap to see if the + image specification is legal as well as test if the image exists, + in order to avoid having to deal with the complexity of parsing image + sections etc. The problem was that the 'mode' argument to imaccess + was being passed to 'immap' directly, and thence on to the file open. + Hence, the image header file was being opened with access mode 0, + causing an error exit to be taken in FIO (see below). Changed imaccess + to open the image with mode READ_ONLY if the access mode specified + to the imaccess is 0, otherwise the user specified access mode is + used. (11/13) + +sys/fio/fgetfd.x + In the process of fixing the above bug, I found and fixed a serious + bug in FIO, which has been there since the code as written! If a file + were opened with an illegal mode or type, the FGETFD routine would + take an error exit sure enough, but it was not dealling the file + descriptor and marking the file slot unused, hence was leaving the + file descriptor allocated and half filled in. This would go undetected + until the task terminated, normally or otherwise, at which time the + file cleanup routine would find the "open" file and try to close it, + causing a segmentation violation due to the partially filled in file + descriptor. Note that this error would only be seen when attempting + to open a file with an illegal mode or type (a bug in the calling + program), hence it has probably rarely been seen. (11/13) + +unix/os/zfiomt.c + I had to make a couple of subtle mods to the MTIO driver to workaround + peculiarities in the SunOS mtio driver on the Sun-4 (GAMMA release of + SunOS). Note that none of these bugs is present on the Sun-3 or any + other UNIX system thus far tested. + + 1. On the Sun-4, it turns out that an MTBSR ioctl (back skip record), + if used to backskip over a tape mark, returns ERR, as does MTFSR, + with errno=EIO. To workaround this it was necessary to ignore ERR if + errno=EIO following a forward or backward skip record. The driver is + not technically at fault here, since the BSD mtio documentation does + not specify what the driver should do in this case, but all other unix + drivers thus far tested permit BSR to backspace over a tape mark. + + 2. This one was more subtle, so subtle in fact that I cannot be certain + I have diagnosed it properly, although everything fits my theory well. + For forward record skips, the IRAF magtape driver uses a read into a + large dummy record buffer for which space is automatically allocated on + the machine stack at function entry, e.g.: (a read rather than FSR is + used here to reliably detect tape marks) + + char buf[29184]; + int nb; + nb = read (fd, buf, 29184); + + What would happen is that in the first call to this code following + process startup, the read would fail, returning errno=14 (EFAULT, + bad address causing fault during execution of system call). What I + suspect is happening is that the page fault required to allocate + space on the process hardware stack for BUF is occuring during + execution of the dma read in the SunOS mtio device driver. Once the + stack grows large enough to provide space for BUF, the error goes + away. Adding a "buf[0] = 0" statement before the read fixes the + problem by causing the stack page fault to occur in the user process + before entering the kernel device driver. (3/12) + +sys/mtio/mtio.h +sys/mtio/mtpos.x +sys/mtio/mtlocknam.x +sys/mtio/mtfile.x +sys/mtio/mtparse.x +sys/mtio/mtosdev.x +sys/etc/xalloc.x +sys/etc/xgdevlist.x +sys/ki/kzrdmt.x +sys/ki/kzwrmt.x +sys/ki/kzwtmt.x +sys/ki/irafks.x +sys/ki/kiextnode.x + Revised these files to finish adding support to the VOS for network + access to remote magtape devices. Remote devices are accessed merely + by prefixing the device name with the node name, e.g., "orion!mta" + to access the A tape drive on node "orion". For example, to list the + headers on a FITS tape on a remote drive, + + cl> alloc o!mta + cl> rfits o!mta 1-99 make- + + The dev$devices file on the remote node is used to obtain the device + information, hence no network information is required in the device + files, and device names need not be unique in a network sense. + Performance, as measured by the clock time, ranges from 30-90% of + what is achieved using the tape drive on the local node. These + revisions also included a couple of bug fixes, e.g., the KI magtape + access bug logged sometime back, and a newly discovered missing + argument bug in some error recovery code in the device allocation + code in etc. (12/5) + +pkg/dataio/mkpkg +pkg/dataio/cardimage/conversion.x +pkg/dataio/cardimage/t_rcardimage.x +pkg/dataio/cardimage/t_wcardimage.x +pkg/dataio/cardimage/tabs.x +pkg/dataio/fits/fits_write.x +pkg/dataio/fits/t_rfits.x +pkg/dataio/fits/t_wfits.x +pkg/dataio/imtext/rt_rwpix.x +pkg/dataio/mtexamine/t_mtexamine.x +pkg/dataio/reblock/reblock_file.x +pkg/dataio/reblock/t_reblock.x +pkg/dataio/t2d/t_t2d.x + 1. Modified all programs in DATAIO to use the MTFILE operator to test + if a file is a magtape file. Formerly, these routines were using + an explicit strncmp of the "mt" prefix, which is poor information + hiding and does not work with network access. + 2. The cardimage and reblock programs were writing verbose output + to STDOUT but flushing STDERR. (12/5) + +---------------------------------------------------- +Updated tucana and orion from lyra. (12/5) + +local/sun/imtool.c +local/sun/imtool.man + Modified the way the coordinate file name is entered via the setup + panel, to make this feature easier to use. The string displayed and + entered via the setup panel is now a printf style format specification + rather than the actual file name, with the default being "frame.%d" + (the %d, if given is replaced by the frame number). There is now + visible feedback when the user types return to enter the new string, + i.e., the window frame label is updated. (12/6) + +sys/ki/kilnode.x +sys/ki/kifndnode.x [LOGICAL NODE NAMES] +sys/ki/kinode.com +sys/ki/kignode.x + Modified the KI to add support for logical node names that can be + defined in the environment. These may be used interchangeably with + the node name aliases defined in the dev$hosts; the main advantage + is that since the environment is used, the values may be changed on + a per user basis. Logical node names (similar to plot! etc.) may be + defined in the standard system, with the local node being assumed if + the given logical node name is not currently defined. (12/6) + +unix/gdev/zfiogd.x +pkg/images/tv/display/iisopn.x + Added support for IMTOOL to the master system on lyra. (12/6) + +sys/imio/imdmap.x + Noticed and fixed a harmless bug in this file. The graphcap descriptor + for the image display was being opened but never closed. (12/6) + +dev/graphcap + Added a "node!" prefix to the DD string for device 'imtool'. + The logical node name "node" is supposed to refer to the primary node + the user is logged in on. With this and the other changes noted + above, it is possible to use IMTOOL over a network connection + (there may be a byte swapping problem yet on the VAXes). (12/6) + +--------------------------------------- +Updated orion and tucana from lyra, including propagating a bug fix in +apextract. (12/7) + +local/sun/imtool.c + Modified to automatically sense whether the input data is byte swapped, + to allow generation of the display data stream on remote, possibly + architecturally incompatible nodes on the network (e.g., VAXes). + Also added code to verify the checksum of each IIS header and print + an error message on the console if a bad checksum is seen. Non-byte + packed data is now recognized and the difference in the size of the + data block allowed for (avoiding a possible data stream synchronization + problem), but currently only every other pixel will be displayed if + the data is not byte packed. (12/9) + +dev/hosts + Added entries for all the new Sun nodes, and updated the file on most + or all unix nodes in the local network (it is getting hard to be sure + if one has gotten them all). (12/9) + +sys/ki.h +sys/kigchan.x +sys/kighost.x +sys/kifchan.x +sys/kishownet.x + Adding the new nodes to the hosts table caused the internal KI node + table to overflow, revealing two bugs in the KI (sufficient to prevent + IRAF from running at all!). + 1. In kighost.x, the test for a full table was not being performed + correctly, allowing an overflow by one error. + 2. In ki[gf]chan.x, the value of 'server' was being used to index the + node tables when allocating a KI channel descriptor for a resource. + Unfortunately, when a resource is local 'server' is set to NULL. + This was causing an array to be indexed [0], overwriting the final + element of the node table (harmless until the table is full). + + I fixed these bugs and tested for overflow on an overfull host table, + then increased the maximum number of nodes from 20 to 64 (I hate to + reserve the table space, but the KI is a major interface). If there + are too many hosts the system will simply ignore the extra entries + once the internal node table is full. No error message is given, + but if the system.netstatus task is run, the warning message + + HOST NAME TABLE IS FULL + + will be seen. At some point we need to modify the code to permit a + runtime access to the host table (perhaps using the current node + table only as a cache), in order to support an arbitrary number of + nodes as is necessary in large networks. (12/10) + +pkg/system/mkpkg +pkg/softools/mkpkg +noao/mtlocal/mkpkg + Modified these mkpkg files to generate an xx_*.e executable, and rename + it to x_*.e when installing it in BIN. (12/10) + +--------------------------------------------- +Updated irafx on draco (VMS). (12/11) + +dev/hosts + In the kernel server pathnames for the Sun-3 nodes, changed the "bin" + to "bin.f68881" so that a runnable server will be selected regardless + of the floating point configuration of the system. (12/12) + +local/sun/imtool.c +vms/gdev/zfiogd.x +unix/gdev/zfiogd.x +dev/graphcap +pkg/images/tv/display/t_display.x +pkg/images/tv/display/mkpkg +pkg/images/tv/display/findz.x +pkg/images/tv/display/iis.com +pkg/images/tv/display/iis.h +pkg/images/tv/display/iisers.x +pkg/images/tv/display/iisopn.x +pkg/images/tv/display/iispio.x +pkg/images/tv/display/iisrcr.x +pkg/images/tv/display/iisrd.x +pkg/images/tv/display/iisstt.x +pkg/images/tv/display/iiswcr.x +pkg/images/tv/display/iiswr.x +pkg/images/tv/display/maxmin.x + Modified IMTOOL to add support for an 800 square display format option. + 1. Added logical devices 'imt512' and 'imt800' to the graphcap and + to gdev/zfiogd.x. + 2. Modified the DISPLAY program to eliminate all occurrences of 512 + or 511 as a constant, dimensioning everthing instead from the + graphcap entry for the device (all changes should be backwards + compatible for a standard IIS). + 3. Modified IMTOOL to add the 800 square option. This may be set + in the setup panel, but more commonly it will be set automatically + when the user writes to the device imt512 (imtool) or imt800. (12/12) + +------------------------------------------ +Updated all systems. (12/12) + +unix/os/zfioks.c + There was a bug in the UNIX/IRAF zfioks (kernel server) driver which + would cause it to needlessly open a host file descriptor every time it + was called to attempt to open a connection to a remote node. + This bug has gone undetected until now because once a connection to a + remote node has been opened, it tends to remain open for the lifetime + of the client process, and a process is not likely to connect to very + many nodes. + + The bug was found on our diskless sun nodes, due to a circumstance + which was causing the connect to fail, resulting in a connection + attempt (and additional wasted file descriptor) every time a remote + file was accessed. This rapidly used up the available file + descriptors. What was happening was that a large number of images + were read from tape to disk on the server node (tucana). The user + then logged in on a diskless node and attempted to access the images. + The user did not have a .irafhosts file, hence dev$hostlogin was + used, but this old file did not contain any login information for the + node in question, hence the connection would always fail. If a resouce + cannot be accessed over the network the KI currently tries to access + it on the local node (probably not a good idea). In this case this + would work, since the images were created on a disk which was shared + by the two nodes via NFS. + + This problem occurs because of the pixel file pathname in the image + header. This pathname includes the name of the node on which the + pixel file resides, i.e., it is the network pathname of the file, + as is needed in the general case if the file is to be accessed from + any node. In the case described here the pixel file could be + accessed via either IRAF networking or NFS; in the general case only + IRAF networking would work. The recommended solution is to either + use a .irafhosts file and IRAF networking, or use the imdir=HDR$pix/ + option to eliminate the network pathname. (12/19) + +dev/irafhosts + The original contents of this file contained a list of NOAO network + nodes with login information for the now defunct login 'ace' on each + node. This has been changed to the system and user independent form + + * : <user> ? + + meaning for an attempted connection to any node (*), try to login with + the user name as used on the local host system (<user>), prompting for + the password. I also added comments to the file describing the syntax + and usage of the file. (12/19) + + NOTE -- Since this file is now system independent and will result in + a reasonable action for any user on any node, it is no longer necessary + for each user to have a .irafhosts file unless they with to specify + the password or they wish to use a different login on remote nodes + than is used on the local node. + +unix/os/zfioks.c +unix/os/net/zfioks.c +vms/os/net/zfioks.c + Modified to add support for the "<user>" syntax. This symbol, + appearing in the username field of a .irafhosts or dev$hostlogin + node entry, is replaced by the current login name of the user on + the client node. (12/19) + +vms/hlib/gripes.cl +vms/hlib/gripesfile +/u2/sites/sitelog.c [noao only] + 1. The site mail logging facility (used internally to the IRAF project) + was not logging mail from VMS addressed as + + To: "IRAF" ... + + The program was modified to ignore the quotes. + + 2. Modified the GRIPES facility for VMS to use the "Subject:' text + entered by the user as the subject for the VMS mail as well as in + the gripe header. Commented out the code which would append the gripe + to hlib$gripesfile, since it can be assumed that this file will not + be writable on many VMS nodes, and the code is being disposed of via + mail anyhow. (12/19) + +sys/imio/iki/oif/oifrename.x + The imio.imrename primitive was not working properly for an OIF type + image, when moving the image to a different directory. The header + file would be moved but the name of the old pixel file was being + generated improperly, causing it to fail to be moved. This would + affect not only the IMRENAME task, but any in place image operation + where the output image was created in a temporary image in the current + directory, then renamed to replace the old image. (12/19) + +sys/imfort/imps3r.x + This routine would appear to function correctly, but when used to + output a 3 dimensional section, would replicate the first line of + the input section to fill the first output band, then fill the second + output band with the second line of the first input band, and so on + (the pointer into the input section was being incremented in the + outer, rather than inner, loop!). All other IMFORT 3-dim i/o routines + were checked as well, but the bug was present only in the one routine. + (12/20) + +pkg/images/tv/display/t_display.x + Modified the code which output the WCS file to: + 1. Take account of reduced dimension sections such as [5,*,*], + defining the WCS relative to the two dimensional section specified in + such a case. + 2. Fixed a bug (oversight) which would cause the WCS matrix being + output to be incorrect if the image were loaded anywhere but at + xcen=ycen=0.5. + 3. Output greyscale transformation information in addition to + the spatial information already output. (12/20) + +sun/imtool.c [SUN/IRAF] + 1. In constant coordinate readout mode, will now print the intensity + of the pixel underneath the cursor, in addition to the x,y values + already output. The pixel intensity is given in image intensity units + if the display transformation was linear, in display pixel units + otherwise. + 2. The display window can now be resized without affecting cursor + readout or control, or the visibility of the WCS coordinate output + box. If the displayed image is loaded into the upper left corner of + the imtool window, the window may be resized to exactly fit the + displayed image regardless of its shape. + 3. The gclear function in the setup panel (graphics clear) now works + properly. (12/20) + +-------------------------------------- +All systems updated (lyra, tucana, orion, irafx@draco). (12/20) + +sun/imtool.c [SUN/IRAF] + 1. If the cursor is positioned to an area of the display window which + has not been loaded with image or colorbar data, the pixel value is + output as 0. rather than some miscellaneous fictious value. + 2. If the pixel value is being output in raw display units for some + reason (e.g., because the WCS file could not be read, or a nonline + greyscale transformation was used to load the image), the pixel value + is displayed as an integer to flag this condition for the user. + 3. Added an option to make the display window background color (the + color to which the window is set when the image is cleared) black, with + white being the default as before. Settable via either a command line + argument or the setup panel. (12/21) + +dev/hosts +dev/termcap +dev/graphcap + Changed the names of the logical node names "print" and "plot" to + "lpnode" and "plnode" (line printer node and plotter node). The node + name "plot" was no longer working due to the recent modification of + the networking code to permit logical node names to be defined in the + environment; "plot" is already defined in the environment as a logical + directory. (12/22) + +sun/imtool.c + Decreased the cursor gap from 10 to 6 pixels in response to a user + complaint that it was hard to center the cursor precisely on objects + due to the gap being too wide. (12/24) + +sun/screendump.c + 1. The output image is now fractionally scaled to fill the page. + Formerly an integer scale factor was used in the hopes that this would + be faster (it permits simple pixel replication), but there is little + speed difference, and having the output always scaled to fill the + page is nicer. + 2. The screendump code now knows about devices like the 3/110 and 3/60 + which have 10 bit frame buffers (8 bit color plus 1 bit overlay plus + 1 bit overlay enable mask). Hence, textcopy, graphcopy, and screencopy + will now work for all current Sun workstations. (12/24) + +sun/gterm.c +sun/gterm.man +sun/imtool.c +sun/imtool.man + 1. Incremented the GTERM version number to V1.2 and updated the + manual page. + 2. Added a "pan" capability to IMTOOL. Provided that the display + window is smaller than the image, the middle mouse button may be + used to mark a position to be moved to the center of the display + window. Panning is either instantaneous or via a smooth scroll; + the latter is selected by holding the control key down while pressing + and releasing the middle mouse button. (12/26) + +pkg/images/tv/display/sigl2.x +pkg/images/tv/cv/sigl2.x + Fixed a short/int datatype mismatch bug in a call to adivks. The bug + had already been fixed in plot/crtpict/sigl2.x (the only other copy of + this routine I know about), but evidently the bug fix had not been + propagated to the other routines. (12/28) + +unix/os/zfiobf.c [SUN/IRAF] + Added support for FIFO (named) pipes, as are used by the display server + code (gdev$zfiogd.x) on Sun/IRAF. + 1. Files opened read only or write only are opened with the O_NDELAY + flag, necessary to prevent the client process from blocking until the + server makes a connection (which in my case was not until the client + requested the connecton, leading to deadlock). + 2. A close on a FIFO opened for reading by the client was causing the + error EPERM (insufficient permission) to be returned for the close. + This was highly inconvenient, so I modified ZCLSBF to ignore this + error. Hopefully the file descriptor is actually getting freed; I did + not take the time to check. (12/28) + +sun/gtermio.c +sun/gterm.esc +sun/gterm.man + Added support for the ESC ENQ function to GTERM. This was necessary + to get GTERM to work for FORTH graphics. (12/30) + +sun/gterm.c + Looked into a bug reported by Joe Schwarz at CFA. While in cursor + mode, the mouse was moved into the gterm text window and the user + tried to exit the program (implot) by typing the usual 'q'. This was + ignored, but typing 'q'<cr> three times would do the trick, but would + leave GTERM in a funny state, requiring a setup-reset to recover. + + The reason typing 'q'<cr> three times would terminate cursor mode + is because this produces a six character sequence ending with CR, + which is what a tek cursor sequence is. The reason GTERM got + confused was because it thought the cursor read was still in effect, + since cursor mode was not exited normally. + + The suggested fix was to make input equivalent in either window, + hence typing 'q' in the text window would terminate the cursor loop + and applications program. The problem is that a valid cursor sequence + requires an [x,y] position as well as a keystroke, and the cursor + position for a cursor read is invalid when the mouse is in the text + window. Of course in this case the application does not need the + [x,y] to do a quit, but there is no way that the terminal could know + that. Nonetheless, GTERM should not get into a funny state, so I + fixed the bug by having the text window discard ascii input entered + in the text window during a cursor read (rather than passing it on to + the application program as it was). (12/30) + +pkg/images/tv/display/iispio.x + In testing the new display code (to be documented here shortly) I + found that it was easy to lose datastream synch to the display server + (an IIS or IMTOOL), when a user interrupt would arrive while a data + transfer was in progress, i.e., due to the user interrupting the + display program while loading the display. I had to add calls to + intr_disable,intr_enable around the code which does i/o to the + display, to ensure that complete data packets are always sent. + This makes the display process immune to interrupts, but if an + interrupt arrives during a data transmission it may be ignored, + making it necessary for the user to type interrupt several times to + abort the task. (12/31) + + TODO: Modify the interrupt disable/enable code to queue interrupts + for later delivery, rather than discard interrupts as at present. + +sys/fio/zfiott.x + Made some changes affecting the 'playback' feature of STTY: + 1. Fixed a bug that would cause logfile lines containing only control + directives but no data, i.e., \{...\} alone on a line, to cause + premature EOF on the logfile, terminating playback. + 2. There was a bug in the ztt_query code, used to process and execute + \{...\} control directives. In effect, the way the code was written + embedded playback control directives could not be used while reading + text in raw mode. + 3. Carriage return as well as space bar may now be used to continue + execution following a verify-pause. (1/1-1988) + +pkg/language/doc/stty.hlp + Extensively revised the help page for STTY (the terminal driver), + mostly to add a discussion of the playback facilities. (1/1) + +dev/graphcap +local/sun/imtoolrc +unix/hlib/install + 1. Replaced the IMTOOL device entries in graphcap by a set of a + dozen or so logical device entries imt512, imt800, imt1024, imt2048, + etc., defining the set of defined frame buffer configurations for + the IMTOOL display server (this is site configurable). + 2. To local/sun (Sun/IRAF), added the file imtoolrc, which is read + at startup time by IMTOOL to get the set of defined frame buffer + configurations. This file is intended to be copied into a public + library at 'install' time, e.g., /usr/local/lib/imtoolrc. The entries + in this file must have corresponding entries in the graphcap. + 3. Modified the install script to install the imtoolrc file in + /usr/local/lib. (12/26-1/3) + +sys/imio/imdmap.x + Modified to save the value of the graphcap parameter 'cn', the IMTOOL + frame buffer configuration number (if defined) in IM_LEN(im,3). + This is then picked up by the DISPLAY code and passed on to the + display server to specify the frame buffer configuration to be used. + (12/26-1/3) + +unix/gdev/zfiogd.x + Deleted the IMT512 and IMT800 logical device entries, and added a + capability to parse the display device frame buffer width and height + from the DD string. (12/26-1/3) + +local/sun/imtool.c +local/sun/imtool.man +pkg/images/tv/display/iis.com +pkg/images/tv/display/iisers.x +pkg/images/tv/display/t_display.x + A new, and hopefully final (for a while) version of the IMTOOL display + server has been completed and installed, along with a few corresponding + changes to the DISPLAY task. The latter will still work for ordinary + IIS displays as well as with IMTOOL. The major revisions were the + following. + + 1. The scheme of a "standard" configuration (512 square) and a "large + format" configuration (800 square) has been scrapped and replaced by + a more general scheme. There can now be up to 64 different frame + buffer configurations defined at any one time, with no restrictions + upon the sizes of the frames other than that they be defined when + IMTOOL is started up (a SunView restriction also requires that the + frame width be even). An "imtoolrc" file, with corresponding entries + in the IRAF graphcap, is used to define the possible frame buffer + configurations for both IMTOOL and IRAF. These may be modified or + extended by a site, and the user may have private, custom copies if + desired. + + The default configuration file is stored in /usr/local/lib/imtoolrc. + The contents for our system are as follows at present: + + # IMTOOL -- Defined frame buffer configurations. Note... + # is only a starting point, and may be modified during... + # values are preferred. The configuration numbers may... + # but must be unique and in the range 1-64. + # + # Format: configno nframes width height + + 1 2 512 512 # imt1|imt512 + 2 2 800 800 # imt2|imt800 + 3 2 1024 1024 # imt3|imt1024 + 4 1 1600 1600 # imt4|imt1600 + 5 1 2048 2048 # imt5|imt2048 + 6 1 4096 4096 # imt6|imt4096 + 7 1 4096 1024 # imt7|imt4x1 + 8 1 1024 4096 # imt8|imt1x4 + 9 2 1142 880 # imt9|imtfs full screen... + + 20 2 384 576 # imt20|imtgec GEC CCD detector format + 21 1 3040 976 # imt21|imtkpca KPCA detector format + + The frame size to be used is defined by the client program (the DISPLAY + task) at image load time. In the case of IRAF, this is done via the + stdimage environment variable, e.g., + + cl> reset stdimage = imt1600 + + This is converted into the frame buffer configuration number (via the + 'cn' parameter in the graphcap entry) and passed on to IMTOOL via a + a few unused bits in the otherwise IIS compatible datastream headers. + + 2. Multiple frame buffers are now supported by IMTOOL. As far as + IMTOOL is concerned there could be any number of frame buffers (subject + to memory limitations), but DISPLAY task limitations currently limit + us to up to 4 frames; this will be plenty for most applications. + + 3. The display window is now completely decoupled from the frame buffer + size, i.e., the same modest sized window is typically used regardless + of the frame buffer size, relying upon pan to access the full frame. + + 4. A frame blink option has been added. Frame selection for viewing + may be done either under program control or with the mouse or keyboard + in any of several ways. + + 5. A "smooth pan" feature has been added. This smoothly pans the + image to the new center, insteadof going there in one step. The big + step pan is still the most useful, however. + + 6. The colorbar is now implemented differently, allowing it to always + be visible on the screen regardless of the window size or pan offset. + The colorbar may be turned off an on via the setup panel if desired. + + 7. The setup panel and frame menu now contain a number of new items, + e.g., register all frames, turn blink on and off, enter a list of + frames to be blinked, adjust the size of the display window to fit + the full frame, display the next frame in sequence, save the current + frame in a Sun rasterfile, load the current frame from a Sun + rasterfile, and so on. + + 8. The setup panel has been made shorter so that it will fit "behind" + most display windows. If you use it frequently, it may be most + convenient to leave it open all the time, and use the L5 function + key to display it (move it to the front) when needed. It can also + be repositioned to an otherwise unoccupied area on the screen if + desired. + + 9. Output of the pixel intensity in cursor readout mode was added in + an earlier revision. + + 10. I/O to the server is now bidirectional (image data can be read + back as well as written to the server), allowing use of the erase- + option in the DISPLAY task to write into subregions of the frame + buffer, e.g, for mosaics. Only the last WCS is saved. + + 11. The manual page has been updated. + + The parameters for the different frames, e.g., monochrome or + pseudocolor, slope and offset of the transfer function, pan offset, + WCS, coordinate lists, etc., are independent. When you change frames + all the values appropriate for that frame are set. + + There were many other changes and bug fixes probably not worth noting + here. Basically, while the prototype display server is still pretty + limited in some ways (full interaction with applications programs is + not supported, no graphics and text overlay support), it now does the + most basic things fairly well. Probably all of this will change in + six months or so when SunOS 4.0 comes out - the NeWS/X in this will + probably trash both GTERM and IMTOOL, and when the features in IMTOOL + and the X based CFA XIMAGE are merged into the final display server. + Read the new manual page for additional details. (written 1/3) + +------------------------------------ +Updated tucana, orion, irafx@draco from lyra. (1/6) +Updated pegasus and octans from tucana. (1/7) + +sun/screendump.c + For Sun rasterfile output, the colortable length was being output as + NGREY*3 (256*3) rather than NGREY, due to a confusion about the use + of the length parameter in rasterfiles (usage differs in the rasterfile + header and in a colormap struct). This is a bug, but the generated + rasterfiles would actually be legal rasterfiles, since the colortable + length was being recorded correctly - it was just that more than 256 + bytes of data were being stored for each colortable. (1/7) + +sun/imtool.c +pkg/images/tv/display/iisers.x + 1. In imtool.c, added some protection against being passed a negative + or zero config number. + 2. In iisers.x (DISPLAY), added a max(0,... to the code which encodes + the frame buffer configuration number in the TID field, to avoid + passing a config of -1 to the display server, if the 'cn' field is + absent from the graphcap entry for the device for some reason. (1/7) + +sys/etc/symtab/mkpkg +sys/etc/symtab/README +sys/etc/symtab/stsize.x + +sys/etc/symtab/zzdebug.x + Added a new routine STSIZE to the symbol table package. The new + routine is used to determine the number of chars of file storage + required to store the symbol table in its external form, e.g., before + a call to STSAVE to save the table in a file. (1/8) + +local/sun/imtool.c + In remark_objects(), modified a test used to test if the next file + line begins with a number to permit the first character to be a minus + sign, e.g., a negative number. (1/15) + +sys/osb/shift.c + There was an error in the way the shift-negative case was handled. + Replaced (a >> bits) by (a >> -bits) in the three routines. (1/27) + +unix/as/zsvjmp.s +unix/os/zdojmp.c + +unix/os/mkpkg + Currently one of the hardest parts of a UNIX port is writing the + ZSVJMP/ZDOJMP routines, since the routines are complex and must be + coded in assembler. In an attempt to simplify this task I have + rewritten the routines to interface to the standard C library + setjmp,longjmp routines. Some assembler code is still required, + since setjmp cannot be called as a function, but must instead be + called in the context of ZSVJMP by a jump. This appears to work, + but more testing is required. At present I am making the change + only on tucana (the Sun/3 - MC68020). (1/29) + +unix/os/zgcmdl.c + This routine is called from IMFORT (host level) programs to get the + command line as a string. Since the routine is in a support library + and does not have ready access to the main, it cannot access ARGC and + ARGV directly, but must instead use a heuristic to guess where the + arrays are stored, relative to some well know landmark. The technique + used to do this was working on the VAX and the Sun-3, but would fail + on the Sun-4. A different heuristic was substituted which works in + all cases. In this, the well known landmark is 'environ', which points + to the environment list array. We assume that ARGC and ARGV are + stored immediately before the environment list array. This holds on + all the machines currently at hand, but the routine should be regarded + as potentially host system dependent. (1/31) + +unix/hlib/mkpkg.sf.SUN4 + Added an entry to the list of files requiring special compilation due + to optimizer bugs. In file imfort$imemsg.x, the length of a Fortran + character*(*) string is passed as an argument in an input register. + The register value has been modified by the time the register is later + used to pass the string length on to _i_len (the F77 len intrinsic + function), causing an incorrect string length to be computed, resulting + in string overflow in a subsequent call to F77PAK. (1/31) + +local/sun/imtool.c + IMTOOL will now print "cannot be used on monochrome displays" and exit, + rather than dump core on a segmentation violation during startup. + (1/31) + +unix/boot/wtar/wtar.c [lyra,tucana] +vms/boot/wtar/wtar.c + The WTAR program was incorrectly writing a short block at the end of + the tar file, contrary to the tar format specification. Now it always + writes a full block. (2/4) + +sys/mkpkg + In the module libmain.o, changed the + + $set XFLAGS = "-c" + to + $set XFLAGS = "-c $(HSI_XC)" + + since this entry compiles os$zmain.c, which is part of the HSI. (2/4) + +local/sun/imtoolrc +dev/graphcap + Added some more entries to the site-specific section of the imtoolrc + file (predefined frame buffer configurations). (2/5) + + # Some site specific formats for NOAO. + 20 2 384 576 # imt20|imtgec GEC CCD d... + 21 1 3040 976 # imt21|imtkpca KPCA dete... + 22 1 1520 128 # imt22|imt2df1 2D-Frutti + 23 1 1520 256 # imt23|imt2df2 2D-Frutti + 24 1 1520 512 # imt24|imt2df5 2D-Frutti + 25 1 1520 960 # imt25|imt2df9 2D-Frutti + +dev/termcap +dev/cachet.dat +pkg/cl/builtin.c +pkg/system/help/t_help.x +sys/libc/cttset.c +sys/gio/mkpkg +sys/tty/mkpkg +sys/tty/ttygsize.x + +sys/tty/ttyread.x + +sys/etc/mkpkg +sys/etc/pagefiles.x +sys/etc/sttyco.x +sys/etc/xttysize.x + + Modifications and extensions were made to STTY and the TTY package to + support terminals which can dynamically change size at runtime, e.g., + workstation windows. This was done using a status query, i.e., an + escape sequence is written to the terminal commanding it to send the + screen size, and then the response is read back and decoded. This + technique raises the possibility of blocking if a character is lost + (easily recovered from by having the user type return), but has the + advantage that it works over remote network connections to possibly + foreign host machines. + + 1. The new routine XTTYSIZE was added to ETC, and calls to this routine + were added in pagefiles.x and t_help.x. XTTYSIZE recompute the screen + size and resets the values of the ttyncols and ttynlines environment + variables. If the terminal supports querying of the screen size, the + screen size is determined by such a query, otherwise the default values + given in the termcap entry for the device are used. This routine is + not intended to be called in regular applications code; applications + should continue to access the environment variables directory, or use + TTYSTATI (which does the same thing). This will still work, since once + any system task like PAGE or HELP is called after the screen size + changes, the environment variables are updated, and all subsequent + tasks which use these variables automatically pick up the new screen + size. + + Note that calling XTTYSIZE globally updates the values of the ttyncols + and ttynlines environment variables for the entire process tree. If + the procedure is called from within a task executing in a connected + subprocess, the task posts a command to the STTY task in the CL which + is where the actual querying of the terminal takes place. + + 2. The new routine TTYGSIZE and the associated routine TTYREAD were + added to the TTY package. These are the low level system routines + called by XTTYSIZE (when called from the STTY task in the CL) to do + the actual i/o to the terminal to determine the screen size. Two new + termcap parameters are defined to describe terminals which support + this capability. + + qs Command sequence to be sent to the terminal to query + the screen size in characters. + + wh A string used as input to the pattern matching + facilities to determine when the full response to + the screen size query has been received, as well as + to decode the response. + + The qs capability is a simple fixed control sequence. The wh string is + more complicated, serving both as a pattern and as a decoding format. + For example, here is the entry for the GTERM SunView virtual graphics + terminal: + + :qs=\E[18t:wh=\E\[8;%H;%Wt: + + The %H and %W fields tell where the screen width and height appears + in the response sent by the terminal. All other characters appearing + in the string must match what is actually sent by the terminal. Note + that this string is used as input to the pattern matching code, hence + all the usual pattern matching characters are recognized (the %H and + %W fields are a special case, and are preprocessed into sequences of + the form "%[0-9]*" before patern matching takes place). Any data read + from the terminal before the pattern is matched is probably type-ahead, + and is pushed back into the input stream minus the matched substring. + + 3. A new option "resize" was added to the STTY task, i.e., to sttyco.x + in ETC. "stty resize" causes the values of ttyncols and ttynlines to + be reset; the terminal is queried for the screen size if such queries + are supported, otherwise the termcap defaults are used. This feature + is not really intended for the user (although it can be used), and was + provided mainly for XTTYSIZE. Setting the terminal type with STTY will + also cause the screen size to be queried if possible. + + For example, + + cl> stty resize show + gterm40 ncols=80 nlines=47 + + will cause the terminal to be queried for the current screen size, + update the environment accordingly, with the current settings being + displayed as shown. + + 4. In LIBC and ETC, the calling sequence for the STTYCO procedure was + modified to add the arguments "ttin" and "ttout", the file descriptors + of the input and output streams to the terminal. Formerly STDIN and + STDOUT were assumed. + + 5. In the termcap, the logical device entries 'gterm24', 'gterm34', + 'gterm40', etc., were all converted into aliases for 'gterm'. All are + equivalent now, and use of only 'gterm' is recommended. The .ttyswrc + function key definitions, used to quickly change the screen size, + are retained as they are still useful for quickly resizing the screen, + but it is no longer necessary to run STTY after a resize to set the + new screen size. A new entry 'gterm-nqs' was added for using GTERM + with auto screen size querying disabled. This may be desirable when + working over a noisy modem connection, which could prevent the screen + size from being determined reliably. + +sys/gio/gpagefile.x + Modified to call gdeactivatews and greactivatews only if the + workstation is activated when the routine is called. (2/6) + +sys/fmtio/parg.x + When printing negative integer numbers of type short or char in octal + or hex, the number of digits actually printed would correspond to type + long, with way more sign extension than is valid for a machine word. + Added some special case code to eliminate the extra sign extension, + which is only an artifact of the use of GLTOC to encode the number. + (2/7) + +unix/hlib/login.cl +vms/hlib/login.cl + Modified to print the message + + set terminal type to U_TERM... + + immediately before executing stty U_TERM, to warn the user that the + terminal type is being set to the indicated type. (2/10) + +pkg/images/tv/display/t_dcontrol.x + Added some code to set the values of iis_[xy]dim and iis_config from + the graphcap entry. (2/11) + +sys/tty/ttygsize.x + Disabled the screen size query when STTY login or playback mode is in + effect. (2/12) + +dev/termcap +dev/cachet.dat + Making the gtermNN (gterm24,gterm34,etc.) simple aliases for 'gterm' + was a mistake. When autosizing is disabled the termcap entry + determines the default screen size, hence the separate entries are + still needed; they have been restored. The gtermXX entries are set + up to disable autosizing, hence entry 'gterm' must be specified to + make use of the autosize feature. (2/17) + +pkg/cl/eparam.c +sys/libc/cxttysize.c + +unix/hlib/libc/xnames.h +vms/hlib/libc/xnames.h + 1. Added a new routine c_xttysize() to the LIBC package. + 2. Modified EPARAM to call c_xttysize to read the screen size, + allowing autosizing. (2/17) + +unix/boot/rtar/rtar.c +vms/boot/rtar/rtar.c + This code contains a heuristic used to determine whether a file on the + tape is a text or binary file, which it must know in order to create + the file on disk on systems like VMS. This heuristic was failing for + FITS files, which have an ASCII card iamge header which resembles a + text file except for the lack of line delimiters. I had to make the + same change to the RTAR code as was made to ZFACSS some time ago, for + it to recognize this case of a binary file. (2/17) + +pkg/system/help/t_help.x + XTTYSIZE is now called only when paging the output and the output is + not redirected, to avoid the terminal query when screen oriented + terminal output is not desired (as in a pipe, or in a background job). + (2/17) + +iraf/sys/fmtio/dtoc.x + The input format-code argument (fmt) was being used directly in a + logical test, rather than the internal lower case version, causing + the routine to be partially case sensitive to the floating point + format code character (efg etc.). (2/19) + +unix/os/zfacss.c + When called to test the file type, this routine would hang when called + on a unix FIFO type file, due to the blocking-open associated with this + type of file. The routine stats the file and only looks at it if it + is a regular file, but it was unnecessarily opening and closing the + file whether or not it needed to read from it. (2/19) + +--------------------------------- +Version 2.6 of Sun/IRAF was frozen and taped. (2/24) + +sys/fmtio/gstrcat.x + Fixed a bug in gstrcat - the string length being returned was one + greater than it should be. (2/25) + +sys/gio/nspp/portlib/flash1.f +sys/gio/nspp/portlib/flash2.f +sys/gio/nspp/portlib/flash3.f +sys/gio/nspp/portlib/flash4.f +sys/gio/nspp/portlib/flushb.f +sys/gio/nspp/portlib/preout.f +sys/gio/nspp/portlib/z8zpii.f +sys/gio/nspp/sysint/packum.x +sys/gio/nspp/sysint/loc.x +sys/gio/nsppkern/writeb.x + The NCAR code used a function LOC, evidently a non-standard intrinsic + function on the ancient Cyber machine the code was originally developed + on. We ported the code by emulating the function, but it turns out + that the new Fortran compiler on the Sun-4 has its own LOC intrinsic + function which doesn't behave quite the same way, hence the 'stdplot' + gio kernel was failing on the Sun-4. I fixed the problem by changing + all LOC references to LOCI. (2/28) + +sys/vops/mkpkg + Horrible bug! A user reported that the VOPS routine aiftrx (inverse + fourier transform) was not working properly. Careful testing showed + that the code was correct, but that the combiled object in the VOPS + library did not agree with the code, even though the module dates + looked ok! This turned out to be due to a bug in the mkpkg file, + which has probably been there since the file was written around 1985. + In the $ifolder clause, the actions were "cp file.x ak", which is a + UNIX, not MKPKG, command, which MKPKG was evidently ignoring every + time it tried to updated the ./AK versions of the files. This was + changed to "$copy file.x ak/file.x", and all is well. (3/2) + +unix/boot/spp/mkxc.csh + Renamed to mkxc.sh. (3/9) + +unix/hlib/libc/kernel.h +unix/os/irafpath.c + +unix/os/mkpkg +unix/os/zalloc.c + I added a new utility routine IRAFPATH to the UNIX/IRAF kernel. Given + a filename, this routine searches the standard IRAF runtime directories + for the file, and returns the absolute system pathname of the file if + found. In particular, on hosts like the Sun which can have multiple + bin directories for different architectures, the routine will find the + (HSI) executable appropriate for the current host. (3/10) + +unix/boot/spp/xc.c + Modified XC to use IRAFPATH to determine the pathnames of the XPP and + RPP executables. (3/10) + +mkpkg +unix/mkpkg.sh +unix/hlib/install [SUN/IRAF only] +unix/hlib/irafuser.csh + For Sun/IRAF, modified the HSI to permit multiple copies of the HSI + executables. This is necessary to be able to use a single copy of IRAF + to support multiple incompatible binaries, e.g., sparc and mc68020. + + 1. To the 'unix' directory (host$), added subdirectories bin.sparc and + bin.mc68020. The second field is what is returned by "mach" on a Sun. + The bin directory appropriate for a particular node is called HBIN, + and is defined as such in the irafuser.csh file, although HBIN need + not be defined to run the system. + + 2. All the .e files formerly in HLIB are now kept in HBIN. The .csh + executable files are still in HLIB, since we can use one copy for both + architectures. Runtime selection of the appropriate HBIN is via + symbolic links set by INSTALL (see below), or via the IRAFPATH routine. + + 3. The INSTALL script was extensively modified to support multiple + HSI binaries. A Sun-4 server configured for both sparc and mc68020 + hosts will have separate /usr.SPARC and /usr.MC68020 directories; + these are the "/usr" directories for the two types of machines. + IRAF can be installed anywhere, provided it is on a disk partition + which can be accessed from all nodes, either directly or via NFS. + Each machine type is assumed to have its own local/bin directory, + e.g., /usr/local/bin, where /usr is linked to /usr.MACH. + + Since root can only modify files on the local node, the INSTALL script + must be run on the central file server. To install the local (sparc) + copy of IRAF, one runs INSTALL in the usual way, e.g., + + % cd $hlib + % install + + To install the MC68020 version of IRAF on the fileserver, for access + by all Sun-3 nodes, + + % cd $hlib + % install -m mc68020 + + For this to work properly, one must carefully enter the correct + pathnames, since the defaults will be for sparc rather than for + the mc68020, e.g., + + iraf root can be made the same for both systems + imdir can be made the same for both systems + tmp can be made the same for both systems + + /usr/bin /usr.SPARC/bin or /usr.MC68020/bin + /usr/local/bin /usr.SPARC/local/bin or /usr.MC68020/local/bin + + When run on the Sun-4 host, /usr/bin is the same as /usr.SPARC/bin, + and /usr/local/bin (if there is one) is /usr.SPARC/local/bin. + For the Sun-4 installation, the script will put links to the + host$bin.sparc executables into /usr/bin, and install the suntools + executable into /usr/bin. For the Sun-4 (MC68020) installation, + the links in /usr.MC68020/local/bin will point to host$bin.mc68020, + and the MC68020 suntools executable will go into /usr.MC68020/bin. + + As before, although all versions of the executables are maintained + online and any version of the system may be executed, only one version + of the objects and libraries is online at any one time, and the system + must be reconfigured before a version of the system can be updated. + For example, assume the system is currently configured with the SPARC + objects. Typing + + % cd $iraf + % mkpkg f68881 + + would reconfigure the system for the f68881 binaries. One could then + log onto a Sun-3 diskless node and update the f68881 binaries, after + which the SPARC binaries could be restored with mkpkg sparc. + + A boostrap of the HSI will automatically update the binaries in the + appropriate HBIN directory. If a single directory is subsequently + updated, however, the new executable will be placed in HLIB, and after + testing one must manually move the executable to the appropriate HBIN + directory. (3/10) + +unix/sun/Makefile +local/sun -> unix/sun + 1. The custom suntools sources (formerly local/sun) have been moved + to unix/sun. + 2. The suntools.e executables are now installed in the host$bin.XX, + rather than in LOCAL. (3/10) + +local/.login + FLOAT_OPTION is not used for the Sun-4 (it will cause an error if + defined), hence this is now conditionally defined depending upon the + machine type. (3/10) + +local/notes.orion - +doc/ports/sun4_sep87.doc + Appended the contents of the "notes.orion" file to the record for the + Sun-4 port, and deleted the orion notes file, which we won't need + anymore. (3/10) + +dev/hosts + Changed the iraf/bin in the entry for orion to iraf/bin.sparc. Updated + on all nodes. (3/10) + +unix/gdev/sgidev/sgidispatch.c +unix/gdev/sgidev/mkpkg.sh +unix/hlib/sgi.tab - + Simplified SGIDISPATCH considerably by using IRAFPATH. The "sgi.tab" + file is no longer used; the translators may be anywhere irafpath can + find them, but are expected to reside with the other HSI executables. + (3/11 SRo) + +unix/os/zfioks.c + I made an attempt to use RCMD and the /etc/hosts.equiv mechanism to + implement connections to friendly hosts in the local network without + requiring login authentication. Unfortunately, for this to work the + process calling RCMD must have uid=root, and it is not possible to + set root ownership on the IRAF executables, hence IRAF cannot use the + equivalent host mechanism (at least, without some sort of intermediary, + which would be too inefficient). (3/12) + +unix/boot/spp/rpp/rpprat/defs +unix/boot/spp/rpp/rppfor/*.f + I had a problem with "too many characters pushed back" in a compile, + and upon investigation discovered that the pushback limit was set to + 100 characters, a very small amount. I increased this and a number + of other size limiting parameters affecting macros - the maximum + definition size is now 2048, the max pushback is 3192 chars, and the + total amount of storage reserved for definitions was increased by + 50%. (3/13) + +unix/os/zfiopl.c +unix/os/zfiolp.c + The ZOSCMD primitive, used to send commands to the host shell, provides + filename arguments which may be used to save any stdout or stderr + output in a file. If the filenames are omitted the stdout and stderr + are left alone, i.e., left connected to the streams inherited from + the parent process. The bug occured in the printer and plotter drivers + ZFIOLP and ZFIOPL, when called from a connected subprocess, i.e., a + child process of the CL. In the case the standard i/o streams are + the IPC channels to the CL, and any output from the shell would be + sent to the CL, possibly corrupting the CL IPC prototol. I changed + the calls to ZOSCMD in the two drivers (in the dispose spoolfile code) + to open /dev/tty for shell output, rather than inheriting the streams + from the CL, if the process is a connected subprocess. (3/25) + +pkg/images/tv/display/t_display.x + Modified the DISPLAY program to accept either "wcsdir" or "WCSDIR". + (3/28) + +--------------------------------- +Updated all Sun/IRAF systems. (3/25,28) + +unix/as/zsvjmp.s +unix/os/zdojmp.c [VAX only] +unix/os/mkpkg + Installed the more portable version of ZSVJMP/ZDOJMP, which transform + into calls to the UNIX setjmp/longjmp, in the BSD (VAX) UNIX/IRAF HSI. + The original code was more compact and faster for the VAX, but the BSD + code is often used as a starting point for ports to new machines, and + the more portable version is a much simpler technique to code. (3/28) + +sys/fmtio/ctowrd.x + This routine was returning an incorrect function value, the number of + non-white characters converted from the standard input. There was + also a problem with how quoted strings were handled. (3/31) + +sys/osb/miipak8.x +sys/osb/miipak32.x +sys/osb/miipak16.x +sys/vops/achtgen/*.x + Added entries for TY_POINTER and TY_STRUCT to the TY_INT switch in the + case statements (one for each SPP datatype) in these routines. (4/2) + +sys/etc/symtab/stalloc.x + Modified to align to double, rather than int, buffers allocated in the + symbol table. (4/2) + +--------------------------------------- +IRAFX updated. (4/3) + +unix/portkit + +unix/mc68000 - + Replaced the old MC68000 directory by a new directory PORTKIT, + containing updated notes and replacement source files for porting + the 4.3 BSD version of UNIX/IRAF to new machines. (4/4) + +unix/os/irafpath.c +unix/boot/bootlib/ossysfile.c +unix/boot/spp/xc.c + 1. In BOOTLIB, modified os_sysfile() to call irafpath(). + 2. In XC, replaced the calls to irafpath() with calls to os_sysfile(), + so that all file-searching is done through this one call. + 3. Modified irafpath() to add support for searching user defined + libraries, in addition to the default action of searching the + standard libraries. To make use of this feature the user must + define the environment variable IRAFULIB, the value of which + consists of a whitespace delimited list of directory pathnames + (trailing underscore optional). + + The purpose of this change is to provide greater flexibility for + debugging software developed outside of the standard system, e.g., + during testing and before the software has been installed. This + allows VOS software which includes <file.h> style include file + references to be tested outside the system without having to modify + the installed versions of the referenced include files. It is not + intended as a means of adding new system libraries to the standard + search path. (4/5) + +pkg/images/imdebug/mkpkg + Modified to produce the local executable "xx_imdebug.e" rather than + "x_imdebug.e", with the named changed to the latter at install time, + as per current standard practice. (4/7) + +sys/vops/mkpkg +sys/vops/tf/mkpkg +sys/vops/aveq.gx + + Added a new vector,vector->scalar operator, AVEQ, used to compare two + vectors for equality, returning a boolean result. (4/11) + +unix/boot/mkpkg/tok.c +vms/boot/mkpkg/tok.c + 1. Modified MKPKG so that system file names of the form "<file.h>" can + appear in the argument lists of $IF directives. (4/14) + 2. Generalized further to include most other macro statements. (4/15) + +unix/hlib/install +unix/sun/imtool.c [SUN/IRAF] +unix/sun/mksuntool.csh + 1. Modified IMTOOL to use "HOME" rather than "home" as the user login + directory. + 2. Fixed a bug in mksuntool.csh that would cause it to unnecessarily + rebuild the suntools subdirectory. + 3. Updated the Sun/IRAF INSTALL script, changing the pathname of the + imtoolrc and manual page files from $iraf/local/sun to $iraf/unix/sun, + to reflect the recent move of the code to the HSI. (4/16) + +unix/sun/imtoolrc +dev/graphcap + Added two new IMTOOL logical devices: + + imtcryo 512x800 + imtgcam 348x800 (4/16) + +unix/boot/spp/rpp/rpprat/defs +unix/boot/spp/rpp/rpprat/declco.r +unix/boot/spp/rpp/rppfor/declco.f + Modified RPP to conditionally output the IMPLICIT NONE statement + (a nonstandard extension to Fortran) in every subroutine or function + declaration. The define IMPNONE in the 'defs' file should be + uncommented and the Fortran for declco.f generated, to enable this + feature. This was added for Convex/IRAF, but should be of general + utility since IMPLICIT NONE is a common extension. (4/17) + +vms/* + Updated the VMS/IRAF HSI. Copied to lyra and did a diff/merge, leaving + an up to date copy on lyra. About the only thing affected was the RPP + sources; everthing else has been kept up to date. (4/17) + +---------------------------- +Updated IRAFX@draco. (4/17) + +unix/hlib/mkpkg.sf [VAX-UNIX/IRAF] + Commented out the special file list entries for the aadd*, amap*, and + awsu* VOPS entries. The hand optimized versions of these routines + date back to the early days of BSD UNIX (4.1), when the compiler was + not so good, but nowadays the optimizer is good enough so that they + are probably not worth maintaining. (4/20) + +pkg/images/tv/display/dsulut.x +pkg/images/tv/display/display.h +pkg/images/tv/display/t_display.x + Added a capability for a user defined lookup (intensity transformation) + table. (Coded by SH). (4/21) + +sys/gio/stdgraph/stgrtty.x +sys/gio/stdgraph/zzdebug.x + The routine which reads from the status line was modified to echo \r\n + when either \n or \r is typed in by the user to terminate an input line + of text. Since writing a newline to the status line erases the line, + this will cause the text input up to that point, e.g., a prompt + followed by the user's response, to be cleared, giving the user some + positive feedback to indicate that the newline was seen. Clearing the + line is also consistent with the model of the status line as a one-line + terminal screen. This change to the semantics of status line i/o may + affect some programs, although it should be harmless. (5/1) + +--------------------------------- +Updated tucana and irafx@draco. (5/1) + +sys/fio/vfntrans.x + Change directory commands such as the following would not work: + + cl> cd imio.pl/plio + + This turned out to be due to the filename mapping code, which was + losing the .pl when it occurred as part of a subdirectory name + followed by a /. The code was changed so that any . delimited fields + occuring in a / delimited subdirectory name are considered part of + the root subdirectory name, rather than being parsed off and treated + as filename extensions. (5/2) + +sys/mtio/mtalloc.x + Fixed a typo in the file header. (5/9) + +unix/sun/imtoolrc + Changed the frame buffer width for the GEC format from 384 to 386. + (The actual width is 385 but imtool requires that it be rounded to + an even number; a user complained about the missing column). (5/10) + +unix/os/alloc.c +unix/os/getproc.c + +unix/os/mkpkg +unix/os/mkpkg.sh + Fixed a bug which would cause device allocation (magtape) to fail + over the network. What would happen is that a remote user using the + magtape would not be logged in on the local node, even though they + had a kernel server executing with the device allocated. A local + user could then reallocate and "steal" the device from the remote + user (or vice versa). This was fixed by adding code to alloc.e to + test if the given user has any processes executing on the server node + for the device. (5/10) + +unix/os/zmain.c +unix/os/zfioks.c + 1. In Sun/IRAF, if one submitted a bkg job from a CL running in a + terminal window and then subsequently selected "Exit Suntools" in the + root Sunview menu to give the parent CL the axe, the bkg CL job + would be killed too; this would not happen if one logged out of the + foreground CL before exiting suntools. This was probably due to + suntools sending SIGTERM to all processes in the same process group + as the terminal window. The fix was to modify ZMAIN.C to put a + detached process (such as a bkg CL) in its own process group. + This fixes the signal problem, and also prevents a detached process + from reading from the terminal of the foreground process, e.g., to + satisfy a password query (the detached process will now be suspended + indefinitely (SIGSTOP) if it attempts such a read). + + 2. ZFIOKS.C was modified to prevent a detached process from trying + to access the foreground process's terminal for a password query. + The server connect will fail, causing KI to attempt to access the + resource on the local node. This is questionable (it has always + been that way), but it works out well if the resource is a file on + a shared (NFS) disk, since the result will be a valid file access. + (5/16) + +pkg/softools/mktags.x + Someone suggested that we make an alphabetized index of all the + procedures in the VOS. I used the MKTAGS task to do just that, but + had to increase the size of the internal tables to accomodate such + a large number of files and procedures. (The index files are stored + in /u2/sites on lyra, and were not installed in the main system). + (5/17) + +pkg/cl/cl.par +vms/hlib/motd +unix/hlib/motd +vms/hlib/zzsetenv.def +unix/hlib/zzsetenv.def + Incremented the version number to 2.7 - will continue to note system + changes here until this version stabilizes. (5/21) + +-------------------------- +Updated tucana and irafx@draco. (5/21) + +sys/fio/nowhite.x + This procedure, used to delete whitespace from filenames, evidently + was not working at all, due to a (ch < ' ') test which should have + been a (ch <= ' '). (5/25) + +sys/gio/gascale.x +sys/gio/grscale.x + These routines were not checking for INDEF when computing the min and + max values of the data arrays. (6/2) + +unix/sun/gterm.c + Changed the default "close workstation" action to NO_ACTION. Most + people seem to be annoyed when the graphics plan automatically gets + obscured at the end of a plot, and would prefer to control the + windows manually with the keyboard function keys. (6/2) + +pkg/lists/rgcursor.x +pkg/lists/rimcursor.x + These tasks would abort if they could not GOPEN the stdgraph or + stdimage stream. This was not necessary, since may still be possible + to read either cursor even if a graphics kernel cannot be connected, + so I put iferr() conditionals around the gopen's to ignore any errors. + (6/2) + +unix/sun/Makefile +unix/sun/imtool.cursor +unix/sun/imtool.c +unix/sun/mouse.c +pkg/images/tv/display/iis.h +pkg/images/tv/display/mkpkg +pkg/images/tv/display/zzdebug.x +pkg/images/tv/display/imdrcuro.x +pkg/images/tv/display/imdrcur.x +sys/libc/mkpkg +sys/libc/cimdrcur.c +unix/hlib/libc/xnames.h +unix/hlib/zzsetenv.def +pkg/cl/mkpkg +pkg/cl/modes.c + Added a simple interactive image cursor readback mechanism (=IMCUR). + For the moment, this bypasses both cursor mode and the whole of GIO, + and goes directly to the display server to carry out a logical cursor + read. While the interface is limited, it does provide a working + =imcur, and it remains device independent (or as much so as the rest + of the "display" interface), and uses the network interfaces, allowing + cursor readback from a display server on a remote node. + + 1. Modified IMTOOL to add support for another pseudo-IIS subunit 020, + used for logical cursor reads (a logical cursor read knows about the + WCS and can return image pixel coords, and can use the keyboard or + mouse to trigger the cursor read). When a cursor read is initiated + the mouse is grabbed and moved into the IMTOOL window, and the regular + 2 Hz "plus" cursor becomes an 8 Hz circular cursor, with the rapid + blinking intended to indicate to the user that a cursor read is in + progress (there is no other indication). A key or the left mouse + button (if aliased to a key) is used to terminate the cursor read, + at which time the cursor value is returned to the client program, + the regular IMTOOL cursor is restored, and the mouse position is + restored to what it was before the cursor read began (usually a + different window). Sampling and frame buffer coordinate cursor + reads are also supported. + + 2. To the DISPLAY package I added a new routine IMDRCUR, used to + read the logical image cursor of the named device (a lower level + routine imdrcuro is used for multiple reads on an open device). + Since the new routine needs to be called from the CL for a cursor + read, the display package library was exported to lib$libds.a. + Note that these new routines are temporary and will go away in + the future, but not until the new display interfaces are in place. + + 3. Added a C binding routine c_imdrcur to LIBC. + + 4. In the CL, modified the query code in modes.c to call c_imdrcur + to satisfy a physical image cursor read. Note that the image cursor + (stdimcur) may still be redirected to either stdgraph, the terminal, + or a list file. In the future, image cursor reads will be performed + in cursor mode, using the (currently nonexistent) stdimage kernel + to access the physical device. + + 5. The default value of the environment variable "stdimcur" was + changed from "text" to "stdimage", but only on Sun/IRAF for the + moment, since people running IRAF on other systems are likely to + be accessing a display device that does not yet have cursor input. + + reset stdimcur = stdimage + + To use the new image cursor facilities, make sure that "stdimcur" is + set to "stdimage", and then type "=imcur", or run any program which + reads the logical image cursor, e.g., lists.rimcursor or apphot.*. + (6/2) + +-------------------------- +All development systems updated. (6/2) + +unix/sun/gterm.c + Added a new function key F7 (to go with F8 and F9 which are already + used). This key toggles the graphics between fullscreen mode and + some other size window. (6/5) + +unix/sun/imtool.c + Added multiple cursor marker types (the marks drawn at the cursor + position when a cursor read is terminated). The 'Cursor mark' entry + was deleted from the frame menu and replaced by a choice option in + the setup panel. The choices are None, Circle (the cursor pixrect), + Cross, and Square. The default is Square. Circles are the most + visible, Squares are modest and unobtrusive, and Crosses are real + small. (6/5) + +dev/graphcap + Added a couple of new device kernel parameters for the image display + devices. LC, if present, indicates that the display server supports + the new logical cursor operation, described under the IMTOOL revision + of 5 June. This parameter was added to all IMTOOL entries in the + system graphcap file. A second parameter BS specifies whether the + device is byte swapped. (6/7) + +sys/mkpkg + Added an entry for the new library LIBDS. (6/7) + +pkg/images/tv/display/mkpkg +pkg/images/tv/display/iishdr.x +pkg/images/tv/display/iisio.x +pkg/images/tv/display/iispio.x +pkg/images/tv/display/iisrcr.x +pkg/images/tv/display/iiswnd.x +pkg/images/tv/display/imdrcuro.x +pkg/images/tv/display/imdrcur.x +pkg/images/tv/display/imdgetwcs.x + 1. Modified the DISPLAY read cursor code to add support for cursor + reads to the standard IIS device with no LC (logical cursor) operation + at the server level. The cursor read sequence is very similar to that + for a LC read with IMTOOL, i.e., + + - Enable cursor blink (the shape does not change in this case). + There is currently no prompting other than the blinking cursor. + + - Enter a loop (raw mode ukey read) waiting for the user to type + a key on the *terminal keyboard* to signal the end of the + cursor read. If the key is : the : is echoed and a string + value may be entered. If the key is ctrl/z or ctrl/d EOF is + returned as the cursor value. + + - When a key is typed to terminate the cursor read, IIS cursor + blink is turned off, and a small square mark is draw at the + position of the cursor, by overwriting the pixels in the + image frame buffer (the graphics overlay is not used). No + marker type options are provided for the IIS. The marker + is displayed with z=1 pixels, i.e., white with a negative + transfer function, or black with a positive transfer function. + + While in "cursor mode" (not the normal cursor mode, which isn't + implemented yet for =imcur) the following keys are special: + + ctrl/f display next frame (N' = N+1) + ctrl/r display prev frame (N' = N-1) + ctrl/[dz] EOF + + The same keys are recognized by IMTOOL, but in the case of IMTOOL + they are recognized at all times, whereas for an IIS cursor read + they are recognized only while the cursor is blinking. + + To invoke cursor mode for the IIS, the user merely types "=imcur", + or calls some program such as lists.rimcursor which reads the image + cursor, after setting STDIMAGE to an IIS device, e.g., + + reset stdimage = iism70l + + If the IIS is on a remote node the system will prompt for the login + name and password to be used to access the display on that node. + + Note that the DISPLAY code generates an "IIS compatible" datastream + (similar to a "Tektronix compatible" datastream for graphics + terminals), hence anyone who is desperate for interactive cursor + readback and doesn't want to wait for the full display interfaces + could in principle interface a different device. + + 2. The DISPLAY program and the TV tasks may now be used to drive the + IIS display from a Sun terminal. This feature requires special + support since the IIS is configured for a VAX, hence the bytes are + swapped relative to the Sun. The CV* programs are not currently + supported on Sun/IRAF. (6/9) + +--------------------- +All development systems updated. (6/9) + +pkg/images/tv/display/sigl2.x +pkg/images/tv/display/t_display.x +pkg/images/tv/display/display.par +pkg/images/tv/doc/display.hlp + Modified the DISPLAY program to add support for image scaling via + pixel replication, to supplement the bilinear interpolation already + provided. This was done by adding a new parameter "order", specifying + the order of the interpolator. Order 0 gives pixel replication, 1 + gives bilinear interpolation. Other changes were made to ensure that + the coordinate system of a greatly expanded image is accurate. The + coordinate system used is such that the coordinates [i,j] refer to + the *center* of the displayed pixel [i,j]. Since the range of the + display window goes from 1 to N, only half of each pixel on the edge + of the window is displayed, and the extent of the window is N- + (expanded) pixels. This is consistent with the IRAF convention, + and preserves the information content of the image, but may not be + what is expected. (6/13) + +pkg/images/doc + Edited the EXAMPLES section of a number of these manpages to make the + formatting more consistent (they still need work). (6/13) + +--------------------- +Updated all UNIX development systems. (6/13) + +pkg/cl/builtin.c + A CHDIR command to a directory with a name such as 123 would't work + unless the directory name string was explicitly quoted. CHDIR was + modified to accept an argument of any type, coercing the operand to + type string before trying to access it. (6/17) + +--------------------- +Updated all development systems. +Started a full bootstrap and recompile of IRAF on tucana (need to do this +occasionally to catch compile bugs that creep in). (6/17) + +unix/os/mkpkg.sh + Added an "rm alloc.o" before building the library; this object is + the main for a task and should not be in libos.a. (6/17) + +unix/hlib/buglog.csh +unix/hlib/mkiraf.csh +unix/hlib/mkmlist.csh + Added a "#! /bin/csh" to the top of each script. (6/18) + +--------- +All development systems updated. (6/25) +All development systems updated. (6/28) +All development systems updated. (7/1) + +unix/os/alloc.c +unix/os/zalloc.c + The fix recently made to alloc.c to prevent a user on one node of the + network from stealing a device already allocated by a user on another + node was fine, but this still left the primitives in zalloc.c, called + by iraf programs, unable to determine accurately if the allocation + status of a device in a network. The VOS would check to see if the + device could be allocated, and if it were allocated to a user on a + different node than the node serving the device, the VOS (via zalloc.c) + would think that the device could be allocated, then when it tried to + actually allocate it, the alloc.e would refuse to do so, causing a + confusing error message. + + Fixing this was not trivial, since the test for network device + ownership requires reading the system process table, which requires + reading /dev/kmem, which can require root priviledge. The solution + was to add a new flag -s (stat) to alloc.e, and modify the code in + zalloc.c to execute the alloc.e task to check the device status in + the one case where it mattered. (7/7) + +--------- +All development systems updated. (7/14) + +sys/etc/miireadc.x +sys/etc/miireadi.x +sys/etc/miireads.x + These routines could return more than the requested number of data + elements in some cases. (7/25) + +--------- +All development systems updated. (7/27) +All development systems updated. (7/28) + +============================================================================== +31 July 1988 - the TUCANA complex, a Sun-3 server plus iraf software +development workstations, replaces the BSD 4.3 VAX 11/750 LYRA as the +master IRAF software development machine. +============================================================================== + +Did a full file inventory on lyra, looking for junk files to be deleted. + +vms/hlib/share/common.map - +vms/hlib/share/makeshare.cl + Modified the makeshare script to delete the large "common.map" file + after the shared library has been built. (7/31) + +LYRA + No changes after today. Will be archived automatically when the system + is taken down for the final time tuesday. (7/31) + +CARINA + Deleted the entire carina version of iraf and replaced it by the full + lyra system. Carina now contains the exact same system as lyra except + for the devices and motd files. Hereafter, carina will be used to + maintain BSD VAX/UNIX IRAF, and will be maintained as a (sporadically + updated) irafx development system. (7/31) + +TUCANA + Tucana becomes the new master development system. Deleted doc, lib, + math, noao, pkg, and sys and restored from lyra. Most files are now + owned by the responsible programmers rather than by iraf, as on lyra. + Diff/merge check of dev, local, and unix. Did a full bootstrap. + A full recompile of the entire system will follow later today. (7/31) + +/u2/sites + Moved the extra.v25 stuff to /iraf/extra on carina. + Moved everything else to /u2/sites on tucana. (7/31) + +Moved irafmail facility. +Moved sitemail facility. +Moved aipsmail facility. +Moved vms mail facility. +Moved buglog facility. +Moved emaildb facility. +Moved assorted /local tasks. + (7/31) + +-------------------------- +Did a full bootstrap and sysgen of both f68881 and ffpa on tucana. (8/1) + +dev/vi.ed [VMS] + The set/terminal command in the host command used to run VI was + modified (by Nigel) to get around a problem with VI that was causing + the terminal driver to be left in a funny state - flow control was + being turned off or something. The symptom was that after running + VI, the user would get into a graphics cursor loop, and the raw mode + cursor read would read a great deal of garbage characters (ctrl/s's), + causing the cursor mode to get repeated bad cursor reads, beeping + the terminal for an extended time. (8/3) + +vms/boot/bootlib/osfdate.x + As an experiment, I changed this to use the file modify date rather + than the create date to test when a file was last modified. This may + cause problems, as we have found in the past that on VMS, the file + modify date is often changed even when the file data is not modified. + (8/4) + +pkg/lists/* + Deleted the COLUMNS task. (8/11) + +---------------------------- +Updated IRAFX@draco. (8/13) + +vms/gdev/sgidev + All the VMS/SGI translators have been modified so they require only an + input file name. This fixes the problem of two $F filename expansions + (input and output files) causing the submit command from the graphcap + DD string to be truncated. (8/15 ShJ) + +dev/graphcap +vms/hlib/sgiqueue.com + These files were modified to accomodate the change made to the + VMS/SGI translators documented above. (8/15 ShJ) + +unix/sun/Makefile +unix/sun/imtool.c +unix/hlib/install + Modified these files to add support for separate compilation of GTERM + and IMTOOL under SunOS 4.0. In the new operating system, which has + shared libraries, GTERM and IMTOOL are just regular programs and there + is no "custom suntools" executable. The new sun directory sources and + install script will automatically sense the OS version and do the right + thing on any version of SunOS. (8/28) + +unix/boot/spp/rpp/rpprat/deftok.r +unix/boot/spp/rpp/rpprat/entdkw.r +unix/boot/spp/rpp/rpprat/initkw.r +unix/boot/spp/rpp/rpprat/swend.r +unix/boot/spp/rpp/rpprat/common +unix/boot/spp/rpp/rpprat/defs +unix/boot/spp/rpp/rppfor/*.f +unix/boot/spp/rpp/mkpkg.sh + Added (experimental) support for a new SPP compiler directive, PRAGMA. + This is used to advise the compiler about succeeding statements to + modify the default behavior of the compiler, e.g., to optimize the + code is some nonstandard way. The only pragma currently supported is + 'pragma switch_no_range_check', which is used to eliminate the range + check in a SWITCH statement in cases where the extra efficiency makes + it worthwhile and it can be shown that the switch will always be in + range. The keyword `pragma' is treated as data if the pragma is not + recognized, so that existing code using this keyword as a variable or + whatever will not be affected. (9/5) + +unix/sun/imtoolrc +dev/graphcap + Modified the 2D-Frutti entries after discussions with Steve Heathcote. + The long (dispersion) axis of the 2D-Frutti is y, not x, as the + previous entries assumed, and so the x and y dimensions of imt22 + through imt25 entries were interchanged. An additional entry for the + largest format of the 2D-Frutti was added (imt28). + + CN# device alias dimensions + + imt22 imt2df1x1 imt2df1 128 x 1520 + imt23 imt2df2x1 imt2df2 256 x 1520 + imt24 imt2df5x1 imt2df5 512 x 1520 + imt25 imt2df9x1 imt2df9 960 x 1520 + imt28 imt2df9x3 976 x 3040 + + The current set of frame sizes and aliases for the 2D-Frutti are + summarized in the figure above. (9/6 ShJ/dct) + +sys/fio/fstati.x + Added an entry for F_BUFPTR, which seems to have been inadvertently + omitted. (9/6) + +unix/hlib/clpackage.cl +unix/hlib/zzsetenv.def + Changed all references to 'sdas' to 'stsdas'. (9/6) + +unix/boot/spp/xpp/decl.c +unix/boot/spp/xpp/xppcode.c + Increased the size of the string buffer used to store procedure + declarations text from 2048 to 4096. (9/19) + +pkg/images/tv/display/dsulut.x +pkg/images/tv/display/t_display.x + 1. With the user lookup table option, the buffer for the lookup table + was being allocated but never freed. + 2. Fixed a typo in a call to pargstr made in an error handler - the + pointer ztrans was not being dereferenced. (10/4) + +unix/hlib/d1mach.f + Modified to use the IEEE rather than PDP values (presumably we don't + have any software which actually uses these double constants yet). + (10/14) + +pkg/images/tv/display/gwindow.h +pkg/images/tv/cv/gwindow.h + The offset to the W_IMSECT string was being calculated incorrectly, + causing the 4th WCS structure to be overwritten. This bug was only + recently detected following addition of some code which looks at all + the WCS at shutdown time, and which was expecting to find NULLs in + the high numbered, unused WCSs. (10/14) + +---------------------------- +Updated the IRAFX systems (irafx@draco, carina, tucana f68881/ffpa). (10/14) + +unix/sun/screendump.c + Removed the -s flag from the lpr command in the default R_DISPOSE, + as this doesn't work any more under SunOS 4.0 (when writing to a + remote node and the link cannot be made, lpr is sending mail back + to the user, rendering the option effectively unusable). (10/17) + +lib/nspp.h +sys/gio/nspp/sysint/packum.x + Delted the SWAP_MCWORDS definition from nspp.h, and modified packum.x + to use the standard definition BYTE_SWAP2 in mach.h. (10/18) + +sys/libc/csalloc.c + This file contained a reference to a nonexistent routine STKCMP, + intended for order comparision of buffers on the stack. This has + never been used and it is not clear why we need such a routine, + so I deleted c_stkcmp and the reference to STKCMP. (10/19) + +---------------------------- +Begin merge of revisions from SunOS 4.0 and RoadRunner (386i) ports into +Sun/IRAF. (10/19) + +unix/hlib/config.h +unix/hlib/libc/spp.h + Increased LEN_JUMPBUF from 16 to 64, to accomodate the worst case + save buffer size. (19/19). + +unix/hlib/libc/kernel.h + Added a definition of PFI (pointer to function returning int). This + is used in a number of OS files. (10/19) + +pkg/cl/main.c + Changed the definition of the variable "cldebug" from + int cldebug; + to + int cldebug = 0; + to allow initialization with "adb -w cl.e" to enable debugging. + Some systems, including SunOS 4.0, don't allocate storage in the + executable unless the value of the variable is explicitly initialized. + (10/19) + +unix/as.i386 + +unix/bin.i386 + + Created these new directories. (10/19) + +unix/boot/spp/xc.c + 1. Hacked XC to use F77 only to compile Fortran source files, and to + use CC for everything else. + 2. Added /usr/local/bin to the list of directories to be searched for + commands like XPP and RPP. + 3. Changed the defined names from "xpp.e" and "rpp.e" to "xpp" and + "rpp", since this is how they appear in /usr/local/bin. + (These changes originated in the 386i port). (10/20) + +------------------- +Sysgen-ed tucana (f68881,ffpa) and updated draco as well. (10/20) + +------------------- +During the period 21-27 October, the NOAO Sun systems were down for the +upgrade to SunOS 4.0. The Sun/386i port of IRAF was also completed during +this period. Some of the following changes were made as a result of these +efforts. + +unix/boot/mkpkg/scanlib.c + Had to add + + #ifdef i386 + #define PORTAR 1 + #endif + + at the top of the file to get include <ar.h> to define the appropriate + library format. Also, on the 386i, the code which scans the library + has to deal with the following peculiarities: + + o The first "file" in the archive is a dummy entry containing + symbol information; the name field is null, hence the code + can skip this entry by checking for archive members with + null-string names. + + o The names of the archive members now have a trailing /, + e.g., "file.o/", followed by blank padding. Previously + only the blank padding was there. I modified the code to + accept either / or blank as the name delimiter. + + I also added some debug code which prints the name and date of each + archive member as the library is scanned, if debug > 1. These + changes should be portable to other systems. (10/19) + +SUNBUG - f77 + The command "f77 -c -O file.c" produces the following: + + Assembler: /tmp/optim.01231.5.s + aline 1 : Warning: cannot field update- '.file' not + on first line + + This prevents use of f77 to compile C files, at least on the 386i! + (It works if the optimizer is not used). Will have to modify XC to + use CC instead. (10/19) + +unix/hlib/mkpkg.inc +unix/hlib/mkpkg.sf.I386 + + Added code for case FPU = i386 (not really an fpu), plus a special + file list for the 386. (10/19) + +unix/hlib/cl.csh + Added a case for the i386, similar to that for sparc. (10/19) + +--------------------- +Sysgen completed with a half a dozen files with errors, but no executables +were linked due to a library conflict with the dummy zsvjmp.s I wrote. (10/20) + +unix/as.i386/zsvjmp.s +unix/as.i386/zzdebug.c + Wrote a ZSVJMP.S for the 386i (80386), plus a little test program to + make sure it works. (10/20) + +--------------------- +Linked x_system.e and it runs on the first attempt!! (10/20) +Start another sysgen - ignore files that didn't compile for now, until we +see which executables they prevent from being linked. + +sys/vops/acht.gx + On the 386i, statements of the form "b[i] = a[i]", where B was + COMPLEX and A was INTEGER*2, revealed a compiler error in the + 386i Fortran compiler (the error was a syntax error in the assembler + code input to the system assembler). I decided that assigning + an integer*2 to a complex in a straight assignment wasn't a very + safe thing to do anyhow, so the generic source was changed to + generate "b[i] = complex(real(a[i]),0.0)" instead, whenever B + is complex and A isn't. (10/20) + +sys/vops/amod.gx + No changes here, just logging the compiler bug. The code is as + follows: + + do 110 i = 1, npix + c(i) = mod (a(i), b(i)) + + where A, B, and C are integer*2. Once again, the compiler is + generating incorrect assembler for this case, causing a "syntax error" + from the assembler (evidently, because of the rather restrictive + instruction set of the 80386). I am not sure there is anything in + IRAF that uses this routine anyhow, so we will try to ignore it for + now. (10/20) + +noao/astutil/pdm/pdmstatistics.x pdmstats.x +noao/digiphot/apphot/center/apcentercolon.x apcencolon.x +noao/digiphot/apphot/center/aprefitcenter.x aprefitcen.x +noao/digiphot/apphot/center/apfitcenter.x apfitcen.x +noao/proto/t_mkhistogram.x t_mkhgm.x + Shortened the names of the above source files. These will not compile + on the 386i, which has a limit of 14 characters for the names of + modules in object libraries (which are COFF format libraries from + Sys V, hence the 14 char limit). (10/21) + +unix/hlib/mpkg.sf.I386 + Turned off the optimizer for conrec.f, srface.f, pwrzi.f. An apparent + optimizer bug was causing declaration of an external which would cause + an unsatisfied exernal error at link time. (10/21) + +pkg/images/iminfo/t_imstat.x + Replaced some ==INDEF constructs by IS_INDEF, and took the n=n+1 out + of the inner loop, since it isn't needed. (10/21) + +unix/boot/mkpkg/host.c + Disabled the ranlib (library rebuild) on the 386, since it uses COFF + type libraries, which don't need to be ranlib-ed. (10/21) + +unix/hlib/mpkg.sf.I386 +unix/as/amods.s + + Edited the assembler for the VOPS amods routine (to work around the + compiler bug mentioned above) and placed the assembler version in + AS and added the file to the special file list for the 386i. (10/21) + +--------------------------------- +Restored IRAF on the ORION complex (Sun-4 plus Sun-3 nodes), now running +SunOS 4.0. Booted up the system and sysgen-ed the sparc, ffpa, and f68881 +binaries. (10/23-25) + +--------------------------------- +Following a period of outage due to hardware problems, the TUCANA complex +came back on the air, also under SunOS 4.0. Moved the ffpa and f68881 binaries +over from orion, and udpated the few files that had been modified. (10/27) + +sys/ki/kishownet.x + ki_shownet, and hence the task NETSTATUS, now checks for name + collisions between node name aliases and the system environment + list, and prints a warning message if the same name is found + in both name spaces. (10/28) + +unix/sun/gterm.c + Several users pointed out that if enough GTERM windows are opened + up, the system will run out of some critical resource and it won't + be possible to open any more windows (for some reason this did not + happen until we upgraded to SunOS 4.0). This was traced to the + system actually running out of /dev/win* entries. According to + /etc/pstat -i, GTERM was using 11 entries, whereas SHELLTOOL was + using only 2. This is somewhat reasonable since GTERM does provide + more windows, but a factor of 5 is too much. It turns out that + things like the setup panel and "pause" panel in GTERM were using + window descriptors, even when not in use. GTERM was modified to + create the windows each time they need to be used, reduing the number + of window descriptors used from 11 to 5. (11/2) + +sys/fio/mkpkg +sys/fio/close.x +sys/fio/filbuf.x +sys/fio/ungetci.x + + The hitherto little used pushback feature of FIO has come into use + recently, leading to the following bugs being fixed. + 1. filbuf.x did not permit pushback on a string or spool file, + although it worked for ordinary files. + 2. A bug in close.x was causing fcanpb (cancel pushback) to be + called with the wrong file descriptor. + 3. Added a new routine UNGETCI to complement the already existing + routine GETCI. (11/7) + +sys/memio/salloc.x + Found and fixed a horrible bug, while testing the QPOE code on the + 386i. The alignment logic in the stack allocation code (SALLOC) + had an error which would cause it to work for types up to the size + of an int or real, but which would cause misaligned buffers for types + double or complex. The MALLOC code was correct, however. (11/8) + +pkg/cl/builtin.c + Added a new builtin "d_m" which prints some information on memory + usage, i.e., the dictionary and stack. (This is like the old d_d, + except that since it is not built into the gramar with lookahead, + the incomplete input '>>>' nonsense is avoided). (11/8) + +unix/hlib/libc/make.h - + Deleted this obsolete file, a make template used back in pre-mkpkg + days when makefiles were used to maintain IRAF. (11/10) + +----------------------- +Snapshot of development system sent to CFA. (11/14) + +unix/os/irafpath.c + Added a #ifdef i386 case so that irafpath() would be able to find + bin.i386. (11/14) + +unix/boot/mkpkg/host.c + Added support for IRAFULIB (a user defined private library) to + the $checkout and $checkin directives. For example, in + + $checkout libex.a lib$ + + if file libex.a is found in IRAFULIB, that version is checked out, + rather than the one in the system directory lib$. (11/15) + +sys/fio/fseti.x +sys/fio/fstati.x + Added the case F_FILESIZE so that low level systems programs which + extend files by direct calls to the kernel routines can update the + file size in the FIO file descriptor. (11/17) + +unix/hlib/mkpkg.sf.S34 + Added a special file list for SunOS 3.4, with the SunOS 4.0 files + thrown in so that it will work for both systems. (11/18) + +unix/boot/bootlib/osfiletype.c + Added ".fits" and ".mip" as known "source file" extensions, i.e., + file types not deleted by rmbin, and movable between machines with + wtar -o. These are really binary file types, but they are closer + to text in their usage. (.mip is something just invented to denote + a machine independent file of some type). (11/18) + +--------------------------------------- +Updated tucana.ffpa(Sun-3/OS4.0), pegasus(Sun-386i/OS4.0), and +serpens(Sun-3/OS3.4). (11/17-18) + +pkg/cl/edcap.c + Removed a pointless restriction to 10 characters on the length of + the editor name. (11/19) + +unix/gdev/sgidev/sgidispatch.c + Fixed an automatic coredump if called with no arguments. (11/22 SRo) + +sys/imio/db/idb.h +sys/imio/db/idbfind.x +sys/imio/db/idbfind.x +sys/imio/db/idbdelf.x +sys/imio/db/idbaddf.x + Modified these routines to automatically truncate the keyword passed + in by the caller to 8 characters, in accord with the FITS conventions + used to format user keywords. (11/28) + +------------------------ +Updated orion. (11/28) + +sys/imfort/db/impstr.x + In the call to amovc, added a 1 to the computed offset of the output + string; numeric values were being output shift one space to the left + of what the FITS format requires. (12/2) + +pkg/system/directory.x + Removed an extra argument from a call to getline(). (12/2) + +------------------------ +Updated tucana (Sun-3, f68881,ffpa), orion (Sun-4, Sun-3 nodes), serpens +(Sun-3 under 3.4, f68881, ffpa), pegasus (386i) and carina (BSD/VAX). +(VMS/IRAF update to follow tomorrow). (12/2) + +vms/boot/bootlib/osfiletype.c + Added ".mlb" to the list of known binary file types, and ".fits" and + ".mip" to the list of known "source" file types. (12/3) + +vms/hlib/share/mkpkg +vms/hlib/share/irafcom.x + 1. Modified irafcom.x to add a ,QUAD to the entry for the MEM psect. + 2. Added an entry "mkpkg x_mkshare" to automatically build the + mkshare executable, which is needed before the shared library can + be built. (12/4) + +VERSION 2.7 EXPORT |