From 40e5a5811c6ffce9b0974e93cdd927cbcf60c157 Mon Sep 17 00:00:00 2001 From: Joe Hunkeler Date: Tue, 11 Aug 2015 16:51:37 -0400 Subject: Repatch (from linux) of OSX IRAF --- doc/ports/notes_v22.st | 1185 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1185 insertions(+) create mode 100755 doc/ports/notes_v22.st (limited to 'doc/ports/notes_v22.st') diff --git a/doc/ports/notes_v22.st b/doc/ports/notes_v22.st new file mode 100755 index 00000000..230ab876 --- /dev/null +++ b/doc/ports/notes_v22.st @@ -0,0 +1,1185 @@ +Space Telescope Science Institute iraf$local/notes.st + +[ Many of the below notes and bugs have long been fixed, however the CL ] +[ changes have yet to be fully integrated into both ST and NOAO versions, ] +[ so we'll keep them around for a little longer. Some notes have been ] +[ added below (in [[ ]]) where necessary/appropriate. JJT 8-Mar-1986 ] + +-------------------------------- +Monday 23-DEC-1985 17:32:26.42 + +Subject: CL Changes Nov-Dec 1985 + (T.McGlynn, J.Travisano) + +grammar.y + - delete opnl's in procedure declarations to eliminate s/r conflicts. + - create LP and RP for parentheses to eliminate some expressions. + - repositioned initialization processing. + - modified var_decls slightly. + - if/else fixes, so don't need { if ... }. + - better syntax error reporting in scripts: gives (correct) line number, + points to offending position, and continues parsing script for errors. + +history.c gram.c + - changes to support above grammar changes + +history.c exec.c pfiles.c decl.c + - changes to deal with script line numbers correctly, i.e. + task->t_scriptln, which is used in syntax error messages; also, + a fix in the skip_to() function in decl.c. + +history.c + - problem of getting a "begin" in the history when running (or parsing) + a procedure script was fixed. The original command is now recorded + in the history (and logfile) correctly. Unfortunately, there is + one case where this does not work -- when get an error parsing the + parameter declarations in a procedure script. + +eparam.c + - format changes for real arrays (so exponent shows up) + - tried to fix MOVE_END problem when going across page boundaries; + can't seem to find the bug, so for now just print out a message that + says to use NEXT_PAGE a few times instead of MOVE_END. + +pfiles.c param.c gram.c + - added support for '\r' and '\f', so can be used in prompt strings + for better formatting control (\f not fully supported in EPAR yet) + +modes.c decl.c pfiles.c + - whitespace-only filename parameters are turned into null strings; + so users can check null filenames easily in a script (fn != "") + without having to deal with whitespace. Filenames with whitespace + only are not really legal anyway (?). + +modes.c + - bug fix to prevent trashing of enumerated parameters in certain + instances. + +param.h + - minor typo 'ai' --> 'ar' + +-------------------------------- +Friday 27-DEC-1985 14:47:48.01 + +Subject: CL history editor [[ known feature ]] + +The following is another lexmodes=yes problem: + + pl> contour img1[*:16,*:16] + ... + pl> surface ^^ + surface img1[*:16 + Warning: ... + +The get-arguments code in pkg/cl/history.c checks for comma-delimited strings. +Putting the whole argument in quotes, i.e. "img1[*:16,*:16]", and then using +^^ works fine. (No fix/change was made.) + +-------------------------------- +Friday 3-JAN-1986 14:59:06.87 + +Subject: Local vars in CL procedure scripts + +It is generally assumed that local variables in CL procedure scripts, i.e. +those after the "begin" statement, will be initialized by the user with +simple assignment statements. There is one (possibly more) case where this +assumption can cause problems. For example, + + ... + begin + string buf + + if (fscan (plist, buf) != EOF) ... + ... + +Here, "buf" is used before being initialized, and the result is an error +saying "Attempt to use uninitialized local variable 'buf'". Perhaps local, +uninitialized variables should be initialized automatically by the CL, but +have done nothing to fix/change this yet; just making a note of it. + +-------------------------------- +Tuesday 7-JAN-1986 15:37:59.59 + +Subject: Miscellaneous + +These are various notes and suggestions by IRAF users at STScI and elsewhere. +I decided to finally add them all here since they were beginning to pile up +on various scraps of paper on my desk. Some of them are minor bugs, but most +are suggestions of some kind. Nothing has been done with any of them in terms +of IRAF changes. Most of the text is from mail messages or typed in verbatim +from paper copies. Any notes by me (JayT) are indicated in brackets []. + + +From ST users: + +CL + Would it be possible to put a feature into iraf whereby you say +'task=xxx', which would then set a default so that you could just +type lpar, or an input, without having to specify which task? +Ie, instead of having to type 'xxx.infile=etc', you could specify +the task and then just type 'infile=etc', with iraf filling in +the task name. This would not interfere with those who like the +system as it is, but could streamline things for those of us who +like the way AIPS does things. + +Integer parameters + We have encountered another peculiar feature of IRAF. Suppose you have a +parameter that is declared as integer in a .par file, and the user attempts +to put in a value for that integer that exceeds the range of INT*4. The cl +fills in that parameter with the value 'indef', a character string. When +SDAS goes to read the parameter, we get a crash because the parameter is not +in integer form. Now, it seems that a parameter declared as an integer ought +to be an integer no matter what, not a character string. Wouldn't it be better +to leave the parameter value unchanged from its current or default value rather +than put in this string? + + +From RAL users: + +CL Parser + li> ?? | words | match ':' stop+| sort | table + + does NOT work correctly, but separating the "+|" to "+ |" works okay. + +Help on parameter prompt + It is very complicated to provide additional help at the prompt for + parameter stage especially for non-string parameters. This facility + is almost essential to provide a user-friendly interface. + For example: + A string specified in the parameter file is output if ? is + typed in response to a prompt or possibly even enter the help + system. + + [NOTE: One can make the prompt quite verbose, up to something + like 2K characters; e.g., many SDAS prompts are long and multiline.] + +Range check and default display in sexagesimal + There needs to be an option in the parameter file to cause the range + check and default information to be output in sexagesimal. For example, + it is ugly to type in 12:34:56.7 and have it reappear as 12.582417. + +Date type + I think there ought to be special facilities for handling dates. At + present you can't enter a date all in one line (except using a + grotty fudge involving sexagesimal, which precludes proper range + checking), and if you enter the Y,M,D separately you can get things + like 1985 2 30 past the range checks. + + +From U. of Cal/San Diego (Doug Tudhope): + +lists.gcursor [and imcursor] [[ fixed in feb release ]] + Get syntax error line 2. [known "feature" since CL2 grammar] + + [NOTE: doing an "lpar gcursor" activates the graphics cursor, + but then get an error of "EOF encountered in list parameter..."] + +plot.graph task + If only 2 points are given, only the axes are drawn, e.g. + + pl> graph STDIN + 10 10 + 20 20 + + axes, but no line! + pl> + +images.imtranspose + Made a transposed output file of a real 190*800 image -> 800*190 + but neither onedspec.splot nor images.implot would work on it. + they stopped with "reserved operand fault". + When imcopy run on transposed image, got "pixel storage file truncated". + +-------------------------------- +Tuesday 7-JAN-1986 15:51:02.98 + +Subject: pkg/softools/boot/spp/xc.c [VMS] [[ now in vms/boot/spp/ ]] + +Added EXTEND_SOURCE option for calling Fortran compiler from XC. This lets +source statements go up to column 132 (instead of 72). One line added to +source: + +fcompile() { + ... + sp = strcpy (outbuf, F77); ++ sp = strcpy (sp, "/EXTEND"); /* Allow statement in cols 1-132 */ + if (portable) + ... +} + +-------------------------------- +Tuesday 7-JAN-1986 16:11:20.85 + +Subject: pkg/images/tv/display/deanza/* [[ updated in march ]] + +Deanza now works with tv/display under VMS! All of the source files and Deanza +libraries are here. See the README file for more detailed information. + +Also changed "pkg/image/tv/display/mkpkg.com" to make the Deanza code instead +of the IIS-dependent code. + +-------------------------------- +Wednesday 8-JAN-1986 12:21:09.73 + +Subject: pkg/imred/.../*.e [[ fixed with new iraf$bin/ dir ]] + +The ONEDSPEC executables are copied all over the place into IMRED. Comments in +the mkpkg.com files say this is to use different par files for different +directories. There's GOT to be a better way, as this eats up a lot of +diskspace (and tape as well at distribution time), which we always seem to be +running up against here. + +-------------------------------- +Friday 10-JAN-1986 15:29:37.13 + +Subject: More SDAS concerns/suggestions + +Environment variables [[ discussed, to be resolved ]] + When a script task ends or a user bye's from a package, all "set" + declarations made in the task or since the package started are + "popped" during task restoration. Comments in pkg/cl/exec.c indicate + that this is for keeping the environment the same across processes. + + However, this can lead to confusion. If a user does a "set stdgraph=" + and later bye's out of a package, stdgraph reverts back to the + previous value, just as any other environment variable. The same + thing occurs in script tasks during the restore, making it difficult + to have global environment variables. Putting a "keep" in scripts at + various places can get around this to some degree, but it's sometimes + awkward. + +Process cache + SDAS has been set up under IRAF such that the user can choose which + version of SDAS he wants (baseline|standard|develop). This choice + can be made when starting the sdas package or any of its packages. + There is a problem, however, when running a package from 'standard' + and then running the 'develop' version when the executable is already + out there. When a task is invoked, it will simply use the subprocess + already in the cache, even though it's a different executable (with + the same IRAF logical name). + + The suggestion that came up was to do an implicit "flprcache" whenever + there is a "bye" to a package, i.e. when all the tasks associated with + the executable are gone. I've looked at this a little bit and don't + see an easy way of determining when we're bye'ing from a package which + has tasks that are in an executable. I imagine there's a decent amount + of overhead associated with checking all the tasks associated with + an executable as well. In general, getting rid of old executables + does make sense if they're not longer referenced, since it frees up + system and user resources (especially important on VMS given the + large process and executable sizes). + +Table parameters + SDAS and CDBS now have a new type of input file, a table, which may or + may not have a header as well. They have asked if it would be easy + to add a new parameter (or two) to IRAF, i.e. a table parameter and + possibly a table-with-header parameter. + + I don't think this is a good idea, as it is something which only + benefits SDAS and CDBS, and does very little if anything for IRAF. + I have encouraged the SDAS people to find an SDAS-only solution to + this problem using existing IRAF facilities. One simple way is to + have tasks which use tables to have a 'type' parameter which tells + if the input file is a table or something else. + +-------------------------------- +Tuesday 14-JAN-1986 08:48:36.11 + +Subject: doc/clintro* [[ missing again, noao has most recent version ]] + +Copied the TeX source for the CL User's Intro doc from Peter's directory +to the general IRAF DOC directory. + +-------------------------------- +Tuesday 14-JAN-1986 10:49:06.01 + +Subject: Size of IRAF... [[ resolved w/ Feb release ]] + +A concern has risen, once again, on the size of IRAF. Garrett Jernigan +(Berkeley Space Sciences Lab) has mentioned problems finding diskspace to +handle all of IRAF. The suggestion he made to Peter was "to split the source, +obj and executables into separate libraries for the distribution, or at least +put them into different sub-directories. If either a tape could be generated +that only had executables, or that had the whole works, but allowed only the +required files for execution to be loaded it would be a real boon." I guess +this means having something analagous to the bin/, src/ scheme in Unix. + +I think a better solution to this is to add something to the installation docs +to describe how to load only parts of IRAF, i.e. everything, or no source, +etc., so the IRAF installer can load only the parts needed/desired. Both Tar +and Backup can handle selective copying in some manner. + +-------------------------------- +Tuesday 14-JAN-1986 11:37:46.40 + +Subject: CL strings + +It is currently impossible to get the length of a string in the CL. This +should be quite trivial to implement, but it is not. The documentation on +"paramaters" states that p_length contains the maximum length of the string, +though in reality, saying =param.p_length simply prints the string, just as +=param does. + +There should be some way of getting the current length of a string, since it +could be used as the 'last' parameter in stridx, for getting the rest of a +string starting at column n. ST users have continually asked me about ways to +get the current length of a string parameter (e.g., from within a CL script). + +One solution is to change the meaning of some of the parameter attributes for +string parameters to something which makes more sense: + + p_length -- contains the current string length, updated whenever + the parameter is changed. + p_max -- contains the maximum string length + +These would require changes primarily in param.c and gram.c. + +Also, currently trying an =param.p_min or p_max on a string parameter results +in an access violation. + + +===> Released new Public version of IRAF at STScI, Mon Jan 13, 1986 <=== + +===> Sent Notes, CL changes, SDAS-related items to KPNO, Thu Jan 16, 1986 <=== + + +-------------------------------- +Thursday 16-JAN-1986 13:58:15.69 + +Subject: pkg/cl/config.h + +Changed DICTSIZE from 20000 to 25000 and STACKSIZ from 4000 to 8000, to deal +with large scripts and tasks with zillions of parameters now used at STScI +which have been causing some overflows. The VMS CL's executable size is no +larger, since uninitialized arrays are allocated at run-time. + +Also changed NFGPROC from 4 to 3. Originally changed in an effort to improve +performance, it's causing more problems with page-file quotas because of the +very large SDAS executables, so back it goes. + +-------------------------------- +Friday 17-JAN-1986 09:25:22.96 + +Subject: Loading packages from within procedure scripts [[ resolved below ]] + +It is a known "feature" in the CL that packages cannot be loaded from within a +procedure script or from within braces. An old-style script, like the current +IRAF package scripts, can contain statements which load packages (e.g. onedspec +loads the list and plot packages). + +Loading packages from within procedure scripts should be supported at some +point (if possible). SDAS uses procedure scripts almost exclusively now, even +their package scripts are procedures. + +Checking into it a little bit, it appears that putting a `keep' statement in +the package script fixes this problem. But this is not a good solution for +general interactive use. A possible solution is to add an implicit `keep' when +a cl() call is made from a script called by a script (as in most package +scripts). This may be the easiest solution and will require no changes to +existing package scripts. + +-------------------------------- +Monday 20-JAN-1986 11:17:09.92 + +Subject: pkg/language/doc [[ used Feb release instead ]] + +A few minor changes to the help text; typos, corrections, added examples, etc. + +-------------------------------- +Monday 20-JAN-1986 16:42:18.87 + +Subject: pkg/cl/Makelib [[ use mkpkg instead ]] + +Corrected Makelib file to contain correct include files for CL source. + +-------------------------------- +Tuesday 21-JAN-1986 12:25:29.74 + +Subject: pkg/system/gripes.cl [[ now in vms/hlib/ ]] + +Changed to mail entire gripe text to IRAF development account, as in KPNO +version, and not just a message that a gripe has been made. Also changed +to use `userid' for the From field instead of `home'. + +-------------------------------- +Tuesday 21-JAN-1986 15:37:48.27 + +Subject: pkg/cl/grammar.y + +Added initialization code for the label list structure used for goto statements +in CL scripts. Simply added "label1 = NULL;" statements to the three places in +the grammar where things are initialized. The absence of this would eventually +cause access violations and other fatal side effects when goto's were used +again and again. + +-------------------------------- +Wednesday 22-JAN-1986 09:12:46.73 + +Subject: pkg/cl/builtin.c [[ fixed at noao too ]] + +Two instances of + flags != LT_PFILE; +changed to + flags &= ~LT_PFILE; + +-------------------------------- +Friday 24-JAN-1986 08:11:29.20 + +Subject: pkg/cl/pfiles.c + +Added line to reset parse state in certain circumstances within a script. + +-------------------------------- +Tuesday 28-JAN-1986 09:16:18.48 + +Subject: sys/fmtio/lexnum.x [[ fixed at noao too ]] + +A previous fix to lexdata.xi caused a bug in lexnum.x to show up, although the +relation between the two is unknown. The stk_ip[] array in lexnum() was +declared as short; this would sometimes overflow since it was storing pointers +which could be quite large. This showed up when a user tried to add a field in +an image header with 'hedit', resulting in an arithmetic trap. The fix is to +declare stk_ip[] as int instead of short. + +-------------------------------- +Tuesday 28-JAN-1986 11:06:27.14 + +Subject: GIO and graphcap [[ fixed in Feb release ]] + +Setting stdgraph to tek4014 results in an "openws: illegal graphics window" +error message when running the graph task. Using showcap to see what is +really in the graphcap entry shows that although it points back to tek4012, +all of the upper case values (X1,X2,Y1,Y2,etc) do not get set properly. + +-------------------------------- +Tuesday 28-JAN-1986 11:44:54.72 + +Subject: pkg/cl/exec.c [[ #ifdef st stuff removed 3/11 ]] + +Quick patch to allow packages to be loaded from within any type of script. This +fix has been #ifdef ST'd for now (ST is #define'd in config.h). Basically, when +a "cl" or "clbye" statement is encountered within a script, the package is kept +for the duration of the script task that called it. + +-------------------------------- +Tuesday 28-JAN-1986 16:29:25.83 + +Subject: pkg/twodspec/longslit/apdefine.x [[ fixed at noao too ]] + +Was getting a lot of "adjustable array dimension errors" when running apdefine. +The following changes fixed them: + + real apdata[3, naps] --> real apdata[3, NAPS] + real imdata[npts] --> real imdata[ARB] + +In the original code, if 'naps' or 'npts' were invalid (e.g., zero or negative) +when the arrays were declared, this error occurred. + +-------------------------------- +Monday 3-FEB-1986 10:25:45.69 + +Subject: iraf$vms/loc.c [[ ST tool, moved to local/ ]] + +Threw together a quick and dirty Lines-of-Code counter to handle C, SPP, +Fortran, MACRO and Ratfor source files for IRAF. It only counts non-blank and +non-comment lines, considering them "executable". (NASA folks like this +software metric to see how much we're supporting.) + +-------------------------------- +Monday 3-FEB-1986 13:00:23.77 + +Subject: pkg/twodspec/longslit/apextract.x [[ fixed in Feb release ]] + +Changed + int fopen(), ... +to + int open(), ... + +Would result in a "bad file descriptor" error message in IRAF/VMS since open() +function was assumed to be real instead of int. + +-------------------------------- +Tuesday 4-FEB-1986 13:40:44.07 + +Subject: sys/os/zopcpr.c [VMS Kernel] + +Added the following initialization code before the call to ZOPNPR to prevent +error recovery problems which occurred occasionally. + + *inchan = *outchan = XERR; + +-------------------------------- +Tuesday 4-FEB-1986 15:43:51.21 + +Subject: sys/tty/ttyputl.x [[ see below... ]] + +The parameter 'map_cc' in this routine is declared as 'int', but everything +that calls it (e.g. lprint, type, page, help), passes in a 'bool'. This is +probably a bug and most certainly a possible portability problem. I did not +change anything, but 'map_cc' should probably be treated as a 'bool' in this +routine. + +-------------------------------- +Wednesday 5-FEB-1986 13:47:01.28 + +Subject: pkg/cl/exec.c + +In mk_startupmsg(), added redirection support for STDERR, so the iraf main will +know about it as well as STDIN and STDOUT (for STDERR, the string sent down is +" 5> $"). A low-level SPP routine used by SDAS for error logging depends on +knowing the redirection status of STDERR. + +-------------------------------- +Wednesday 5-FEB-1986 16:30:12.55 + +Subject: sys/os/zfiopr.c [VMS] [[ in Feb release ]] + +Made changes in the memory allocation strategy. Instead of using _zmaloc and +then mapping to it, let the $crmpsc and $mgblsc system services create and map +the global memory sections. This is a simpler and more standard way of doing +things, according to the examples in the VMS documentation. The system service +$deltva is used to delete the sections. + +These changes were prompted by spurious errors when creating connected +subprocesses, with the following VMS error from $crmpsc: + + SECTBLFUL, section table (process/global) is full + +There is a system paramater (GBLPAGFIL) that controls this and may be too low. +However, the initial implementation of zfiopr with _zmaloc may have been +causing some troubles as well. Memory sections may not have been fully +unmapped/deleted because of problems with memory (de)allocation in the context +of global pagefile sections. The solution mentioned attacks this concern, +and it is better than changing system parameters in the long run. + +Inter-process communication still works fine with this new implementation of +zfiopr and I haven't been able to recreate the error above, so I'm hoping it's +fixed and behaves better as far as deallocation of global pagefile sections. + +Warning: DEC recommends that programs which allocate memory not mix allocation +techniques (lib$get_vm vs. $cretva/$expreg), so there still may be some strange +problems. The full warning is in the VMS System Services manual and some notes +on it are in sys/os/zvaloc.c. + +-------------------------------- +Wednesday 12-FEB-1986 09:07:16.44 + +Subject: sys/os/zmain.c [VMS] + +For interactive HOST and non-batch DETACHED processes, the error channel is now +set to the output channel explicitly. It used to be opened as a separate +channel to the VMS SYS$ERROR. This makes no difference within IRAF, as FIO +(and the CL) keeps track of them as separate entities. It does, however, give +us more control over the VMS SYS$ERROR stream, for example, to redirect +SYS$ERROR to a file to get SDAS tracebacks, etc. + +Also modified to translate SYS$ERROR for the logical assignments made when a +connected subprocess (rather than assigning in/out/tt/command to "SYS$ERROR"). + +-------------------------------- +Wednesday 12-FEB-1986 09:22:34.24 + +Subject: pkg/cl/eparam.c + +A number of changes have been made: + + - bug fixes for arrays and multiline prompts, and movement in + multiple pages when these things are around. + - bug fixes for old patches - the "real" bugs have been found + and fixed. + - enhancement for hidden parameters; now, Eparam output of hidden + params (when showall set in epinit) is similar to Lparam, i.e., + `(name = value) prompt' and for arrays, `(name) prompt \n values' + - updated and added comments where appropriate (and necessary) + - made all debugging/diagnostic code (within eparam) print at the + bottom of the screen, to prevent screen rolling while in eparam. + cldebug messages elsewhere still cause screen craziness, however. + - a bit of code reorganizing and cleaning up + +Eparam continues to get harder to debug. Some of the changes here will +hopefully make future debugging easier. At some point, much of this code +should probably be redesigned/rewritten (as mentioned before). + +-------------------------------- +Wednesday 12-FEB-1986 13:01:46.18 + +Subject: pkg/language/language.hd [[ use Feb release instead ]] + +Added entry for 'stridx', pointing at "string.hlp" + +-------------------------------- +Thursday 13-FEB-1986 13:08:00.00 + +Subject: pkg/cl/gquery.c + +This is used by EPARAM for checking ranges and enumerated values. Fixed some +bugs in the range message generation. Old messages would stay around in a +static array and show up on different parameters in Eparam; modified to null +out string when no range specified. Also did a little bit of cleanup on the +source file. + +-------------------------------- +Thursday 13-FEB-1986 13:13:01.10 + +Subject: sys/os/zxwhen.c [VMS] + +Changed TRACEBACK code (conditionally compiled to show VMS tracebacks rather +than recovering) to force traceback to a file as well as the terminal. This +also gets rid of the double traceback seen when subprocesses abort. The output +file is called ".ERROR", and will be written in the user's current directory +(if writable). + +-------------------------------- +Thursday 13-FEB-1986 17:12:52.80 + +Subject: pkg/cl/decl.c + +Changes to deal with parameters declared in the procedure statement that are +later defined as hidden. We print out a warning message and override the mode, +from hidden to auto. If the user really wants a parameter hidden, it should +not be in the procedure statement, as this can screw up positional arguments. + +-------------------------------- +Thursday 13-FEB-1986 17:54:59.57 + +Subject: abbreviations in the CL + +This "feature" continually comes up here at ST. A lot of people are writing +scripts here and always having problems with abbreviations. The comments +in the abbrev() function in pkg/cl/modes.c says that only interactive (or +batch) tasks can be abbreviated, meaning tasks called from within scripts +must always be fully spelled out. + +I imagine the original reason for this was to insure "good" script programming +practices at the expense of convenience. However, when writing front ends that +use tasknames as parameters and then call lparam, eparam, etc. (e.g., +system.mkscript), it forces the user to type the taskname in full, which makes +it inconsistent with normal interactive usage. + +-------------------------------- +Friday 14-FEB-1986 08:27:57.42 + +Subject: pkg/clpackage/clpackage.men [[ fixed ]] + +typo: 'utilties' --> 'utilities' for System package + +-------------------------------- +Friday 14-FEB-1986 09:35:58.21 + +Subject: package rearrangement for ST [[ to be further resolved ]] + +Put most of the KPNO-specific and general IRAF packages into a new package +called NOAO. This is to avoid name conflicts and confusion with the ST +software, especially SDAS and CDBS. The files affected are: + + lib/clpackage.cl + + lib/noao.cl + pkg/clpackage/clpackage.hd + pkg/clpackage/clpackage.men + + pkg/clpackage/noao.hd + + pkg/clpackage/noao.men + +CLPACKAGE now consists of: sdas noao language lists softools system. + +-------------------------------- +Friday 21-FEB-1986 14:34:26.46 + +Subject: lib/clpackage.cl login.cl [[ now vms/hlib/ ]] + +Changed startup file and template login.cl so filewait="no" is the default. +Too many "Waiting for access to file" messages, especially on the logfiles, +which are in heavy use around here for lots of things besides what the CL +puts in them. + +-------------------------------- +Tuesday 25-FEB-1986 13:48:30.21 + +Subject: pkg/cl/builtin.c + +clhidetask(): Removed check for tasks without parameter files. This should +not matter when hiding a task. The inability to hide foreign tasks prompted +this change. + +-------------------------------- +Monday 3-MAR-1986 13:25:02.14 + +Subject: pkg/cl/eparam.c + +Minor change in eparam to clear the bottom line before returning to the CL. +This clears the " for Help" message from the command line, to avoid +confusion. + +-------------------------------- +Thursday 6-MAR-1986 09:24:31.20 + +Subject: system package, copy and rename + +Copy does not allow wildcard files as output, but rename does. Thus, copy +seems to be modelled after the Unix cp whereas rename acts like the VMS task of +the same name. This seems inconsistent and is sometimes annoying to users +here. + +Also, if the copy command cannot read the input file for some reason, the +resulting error message says that it can't create the output file (because the +call to zfmkcp fails). This is misleading, and is due to the logic in +fio$fcopy and fmkcopy, which check only for the existence of the input file and +not whether it can be read. + + +---------------------------------------------------------- +Merge Notes -- NOAO Feb release +Starting March 6, 1986 Jay Travisano + +Mostly ST-specific notes, but some notes on VMS/IRAF... +---------------------------------------------------------- + +Read backup tape to [iraf.new...]. Will merge IRAFX changes into that and then + backup whole thing; NOAO has made a lot more changes than we have. + +doc/vmsnotes.* --> doc/ports/* + save old vmsnotes files, may be useful + +vms/hlib/irafuser.com + site-dependent changes; also added MYDISK job logical to deal with + dollar signs in disk names. Will change mkiraf.com to use MYDISK + if can't get rid of dollar sign in home disk. Also, reinstate + IMDIRDISK for the IRAFTMP directory... +*** + We don't have system logical names without '$' in them and even the + physical names have them too (VAX cluster). Having another system + logical name without the '$' is not the answer here, since we have + over 30 cluster disks. Forcing IRAF sites to change system logicals + is an unreasonable method to avoid the '$' (as the installation doc + recommends). It may be easy at NOAO but our experience here and + at other VMS-only sites shows otherwise; system managers around here + are even reluctant sometimes to raise users' paging file quotas, as + it requires more pagefile space on the system disks. + + One solution to this is to have a fully supported (consistent) escape + mechanism. The "disk\\$newton:[irafx]" works in most cases + and is used currently at ST. The MYDISK job logical for the home + directory in the login.cl also helps out. + + A better solution perhaps is to change vfnmap/vfntrans so that + during logical dir translation, a check is added to see if we have + an OS path. If so, don't bother rescanning the string for more + logical directories. This would allow + + set junk = "disk$newton:[iraf.local.jay]" + type junk$file + + and after the first translation of "junk$", it would realize that + we've got an OS path and continue on with the "file" portion. +*** + +vms/hlib/libc/iraf.h + site changes for ST; not crazy about site disk and dir names in this + file which must be moved to sys$library. assuming vms logicals + will be set correctly so won't need to read this file at run-time. + +vms/hlib/gripes.cl + added subject to mail message + use USERID instead of HOME for From field + +vms/hlib/install*.com + changed for ST; only install CL and SYSTEM package here + +vms/hlib/irafemacs.com + newer version of emacs command file, plus a few minor changes for IRAF + +vms/hlib/zzsetenv.def +vms/hlib/login.cl +vms/hlib/mkpkg.inc + setups for ST + +vms/hlib/mkiraf.com + use MYDISK job logical instead of SYS$DISK; avoids '$' garbage. + +vms/os/net/zfioks.c + turned on DECnet instead of TCP; never worked all that well, but we'll + try it again + +vms/os/zmain.c + merged in our changes and updated comments + +vms/os/zopcpr.c + merged in old change missing from noao distribution + +vms/os/zxwhen.c + merged in new traceback handling stuff + *NOTE*: this is currently turned ON for ST, for debugging of access + violations and arithmetic faults. To turn it off, #define NOTRACEBACK. + +vms/os/rms.c + (debug) references to EP2 changed to _EP2 + +vms/boot/spp/xc.c + added /EXTEND qualifier for Fortran; allow statements in cols 1-132 + +dev/devices + magtape entries for ST cluster + +pkg/cl/tests/* + Note in Unix notes file says this was deleted because it wasn't used + anymore. In fact, it has been used here at ST for (crude) regression + testing when making CL changes. Have moved these into my (Jay) + private directory in case they're needed in the future. + +vms/boot/spp/rpp/mkpkg.com + DCL syntax errors in "if f$search()" line: + () screwed up + "then" missing + (I booted the tools from scratch, to test everything out) + +pkg/cl/* + used ST version as a base; merged in NOAO changes where necessary + +pkg/cl/mkpkg + added lines to lex and yacc the grammar, if stsci and vms, since we + muck around with the grammar too. + also, typo in install comment (move to bin$, not lib$) + +vms/hlib/notes.com rcscom.com --> local/ + these are ST-specific tools; notes file (notes.st) will also be here + +doc/ports/ <-- old vms/ctio.hlp vmsprog.hlp (from old distribution) + +backup current ST develop/experimental version (IRAFX) to tape +backup new merged version to IRAFX +remake... +testing... +everything looks good... + +Networking w/ DECnet seems to work fine; tried remote file access, remote +subprocesses (will be useful for IDM access). Tried very simple remote tape +access and didn't work; seemed to abort quickly though as if it failed on +local host. The noao notes file says it won't work on VMS because of the +process structure; not sure what this means exactly -- looks like it should +work with the allocation built into the kernel server as it is now. Will +look into it more later... + +dev/hosts + set up ST nodes +*** + took out the single quotes on the vms executable name (from noao). + can't access "node!iraf$file" with them in, i.e., the "iraf$" + logical doesn't get set up correctly. appears that the quotes are + left over from some previous syntax. don't think noao has vms + servers (for tcp) yet (?). +*** + +vms/hlib/irafuser.com + changed most job logicals to process ones, since they aren't needed + at the job level, and job table space is limited around here. + (Process logicals are automatically copied when spawning DCL commands + or background jobs.) So, now (at least for ST), + job logicals: IRAFDISK (IMDIRDISK) IRAFTMP IRAFIRAF IRAFHOST + IRAFHLIB + process logicals: IRAFLIB IRAFBIN IRAFLIBC IRAFVMS batch-logicals + +vms/hlib/mkiraf.com + bypass sections that delete login.cl and uparm files; + let a new version of the login.cl be made in case user must go + back. for uparm files, the 'out of date' message will be enough + to tell the user to do an unlearn. besides, the sdas par files + don't change that much (or do they?) In any event, I'd get lots of + complaints if everyone's par files disappear when running mkiraf. + +vms/gdev/ + made library as is, to resolve link references w/ irafks, display and + cv. For deanza at ST, probably won't use this interface; easier to + use old deanza code until new display code and image interfaces are + in place. + +pkg/language/doc/edit.hlp + typo: edcapf --> edcap + +pkg/system/doc/directory.hlp + typo: \fb --> \fB + +pkg/* + many packages list a 'revisions' task in the help menu but don't + have one in the package; I imagine this is a future enhancement. + +pkg/images/tv/display/mkpkg + /deanza/* + Added temporary deanza code (vms and stsci dependent). Changed mkpkg + in display/ to make the deanza/ subdir instead. + +dev/graphcap + added entry for `deanza'; no more .imh files...Yeah! + added entries for Selanar-enhanced vt100 (vt100s), and Pericom. + +dev/termcap + added/updated ST entries. + +vms/hlib/clpackage.cl + changed 'page' to 'type'. if a long motd, user may inadvertantly + type ahead and get all screwed up, so just type the message out. + +pkg/cl/grammar.l + modified to accept double precision real numbers on input, e.g. + + cl> task.param=12d20 + + used to give a syntax error. Simple change in lex input, namely: + [eE] --> [eEdD] for real numbers. + +vms/as/README +vms/as/cstr.mar + + Added assembler versions of LIBC string routines; added to list in + README file. These are much faster than the LIBC string routines + written in C, and although they may not make a significant increase + in performance of the CL, we have them, so why not use them. + +sys/libc/mkpkg + Modified to use as$cstr.s if available, otherwise use the portable + routines written in C. + +vms/boot/mkpkg/mkpkg.help + typo: \fmkpkg --> \fBmkpkg + +math/mkpkg + added "$purge lib$" at end of 'mathgen' + +----------------------- +CL Logging Enhancements +Feb/Mar 1986 +----------------------- + +The following enhancements to the CL logging facilities were made: + + 1) a 'putlog' builtin was added, so a user's script or program + can log important messages and errors + 2) added logging from the CL itself, when script and executable + tasks are started/stopped (i.e., a task trace) + 3) errors are logged, from the CL, when from a script or executable + 4) background logging supported (a result of above changes) + +These functions are parameter controlled, by the CL parameter `logmode', e.g., + + cl> logmode = "commands background error trace" + (nocommands nobackground noerror notrace) + +The old `keeplog' parameter has the same function, turning the whole thing +on or off. + +Note: To avoid file access conflicts (e.g. bkg logging), the environment + variable 'filewait' must be set to "no". (This is now the default + at ST.) As a result, some log messages, especially those from the + background, may still not get to the (single) logfile. The use of + multiple logfiles is encouraged because of this, but SDAS developers + and testers prefer a single logfile with everything in it. Not much + we can do to change their minds. + + +Source changes in pkg/cl/: + +builtin.c + Added clputlog() function for the 'putlog' builtin. + Added code so that the clerror() function calls putlog with + the error message, when logging is on. + +history.c + Fixed the code for shared logfile access. Modified so login/logout + messages are not printed for background jobs. + Added putlog() function, which formats the log messages from the + user and/or the CL and writes to logfile. + Added reset_logfile() function to reopen logfile if name is changed. + This is only for share_logfile=no and has not been tested here, + but it's just a close and reopen. + +exec.c + Added code to log a message when starting/stopping a script or + executable task. This is the "trace" feature. + +bkg.c + Added code to log a message when a background job is started or + completes. + +errs.c + Added code to log the error messsage if a script or executable task + (and it hasn't already been logged by clerror()). + +param.h + Added P_CL value for p_flags field of the param structure. This + is used to test (quickly) whether a parameter is a CL parameter. + +param.c + Added check in paramset() for a CL parameter (p_flags & P_CL); + if so, call parse_clmodes() (below). + +modes.c + Added parse_clmodes(), to parse logging control parameter and + epinit/ehinit parameters and to call reset_logfile() if logfile + name is changed. + +clmodes.h + Added extern declarations for logging/epinit/ehinit variables + +eparam.c +history.c +cl.par + "epinit" and "ehinit" changed from environment variables to CL params + as per mail discussion with Doug. Removed all setoption() stuff as + this is now taken care of in parse_clmodes() (in modes.c). + +hlib/clpackage.cl + Removed epinit and ehinit env vars. + +hlib/login.cl + Added commented out default values for logging and epinit/ehinit + parameters to the template login.cl file. + +pkg/language/doc/cl.hlp + ehistory.hlp + eparam.hlp + Modified due to move of epinit/ehinit vars to CL parameters and + addition of new logging parameter. + +pkg/language/language.hd + language.men +pkg/language/doc/logging.hlp + + putlog.hlp + + Added help for the "logging" discussion and the "putlog" builtin. + The "logging" man page talks about the CL logging as a whole, + discussing the parameters involved in a little more detail than the + help on the cl. + +------------------- + +pkg/cl/* + Cleaned up some of the CL source code; mostly just removed some + old, useless cldebug statements, etc. Also cleaned up grammar.y + a lot, at least to make the style consistent and more readable. + Gram.c and decl.c also got a bit of this as well. + +pkg/cl/README + Updated text; still referred to Unix "make" and VMS DCL/Makelib + generation techniques. + +-------------------------------- +Monday 24-MAR-1986 12:01:48.70 + +Subject: VMS/IRAF Plotting + +dev/graphcap + Added entries for QMS, EQMS, and NULL (testing) for STScI. + +vms/os/ vms.h + zfipol.c + mcsub.c + + mkpkg + +Implemented ZFIOPL for VMS to use NCAR Metacode translator (MCVAX). A +spoolfile is written in the necessary VMS file format by ZFIOPL. On close, +MCVAX is started up as a subprocess and commands are sent to it to set the +device (from graphcap DD string), read the spoolfile, and plot until finished. + +This code may depend on peculiarities of the ST version of MCVAX which I don't +know about. + +-------------------------------- +Tuesday 25-MAR-1986 11:53:12.75 + +Subject: vms/boot/bootlib/vfn2osfn.c + +Changed to return a null string if an error occurs mapping the file; it used to +return the last result of a filename mapping operation. This would to lead to +problems in mkpkg, e.g., + + $delete dir$sub/file.c + +If this file did not exist, the previous filename returned by vfn2osfn() would +be deleted. + +-------------------------------- +Wednesday 26-MAR-1986 12:04:53.81 + +Subject: mkpkg + +vms/boot/mkpkg/tok.c + $ifdef/$ifndef was not working -- bug when setting boolean variable; + fixed. + + changed os_cmd() to host_xc() for do_omake(), do_link(), do_xc(), so + the VMS DOCVCL routine can be used (to eliminate some spawning). + +vms/boot/mkpkg/host.c + docvcl() -- don't check return status and change to XYES/XNO; + leave as is (OK or ...) + + added host_xc() routine to call docvcl(). + +vms/boot/spp/xc.c + bug fix -- `firstobj' variable was not being reinited to NULL; caused + problems with above host_xc() changes. Added reinit in do_cleanup(). + +vms/boot/mkpkg/mkpkg + added ../spp/xc.c dependency for xcsub.c + +-------------------------------- +Friday 28-MAR-1986 09:37:16.83 + +Subject: ttyputline and map_cc + +pkg/system/lprint.x + page.x + type.x + ./help/houtput.x + + Changed map_cc from bool to int to work correctly with ttyputline(), + which expects an int and checks for YES/NO. In VMS Fortran, .true. is + encoded as a -1, not a 1 (YES). To change ttyputline() would mean + changing the LIBC interface c_ttyputline() so that it knew about this + feature of the host Fortran, so let's use the int YES/NO method. + +-------------------------------- +Friday 28-MAR-1986 10:12:49.38 + +Subject: graphcap entry for selanar hirez 100xl + +Not sure if this is a graphcap entry problem or a limitation on the selanar +itself: When in cursor mode in a task (e.g. onedspec.splot), typing 'c' to +print the cursor position will print "x,y: ... ..." in the lower left hand +corner, but then immediately erase it. Help via '?' does the same thing, i.e., +gets printed and erased immediately. + +-------------------------------- +Wednesday 2-APR-1986 13:22:46.16 + +Subject: pkg/cl/edcap.c + +Added the editor name to the eparam help page. + +-------------------------------- +Wednesday 2-APR-1986 15:24:20.96 + +Subject: vms/boot/bootlib/dcl.c + +Added interrupt support. When ^C typed, return status of dcl() (and os_cmd) +will be SYS_XINT, so MKPKG can deal with the error as on Unix. + +-------------------------------- +Wednesday 2-APR-1986 16:51:37.03 + +Subject: vms/boot/spp/... + +xc.c fixed inconsistencies in error/status checking, removed + old code, rearranged some functions (main to front, etc)., + and general cleanup. +xc.com command file to make xc (only) +mkpkg.com call xc.com + +-------------------------------- +Thursday 3-APR-1986 08:06:49.57 + +Subject: editor + +Just realized that "editor" is still an environment variable, used by +eparam/ehistory and the edit builtin. Epinit/ehinit have been changed to CL +parameters during the logging changes, but I forgot about this one. + +Should we change "editor" to a CL parameter, too? If so, it would require +changes in pkg/cl/edcap.c,builtin.c,cl.par and the help files for +eparam,ehistory,edit,cl. -- cgit