From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2319 invoked from network); 2 Jul 2001 11:18:57 -0000 Received: from sunsite.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 2 Jul 2001 11:18:57 -0000 Received: (qmail 8900 invoked by alias); 2 Jul 2001 11:17:59 -0000 Mailing-List: contact zsh-workers-help@sunsite.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 15204 Received: (qmail 8861 invoked from network); 2 Jul 2001 11:17:56 -0000 Sender: kiddleo Message-ID: <3B405869.8D05B093@u.genie.co.uk> Date: Mon, 02 Jul 2001 12:18:01 +0100 From: Oliver Kiddle X-Mailer: Mozilla 4.77 [en] (X11; U; Linux 2.2.15 i686) X-Accept-Language: en MIME-Version: 1.0 To: zsh-workers@sunsite.dk Subject: IRIX 5.3 specific problems Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit This is on a completely fresh installation of IRIX. I'd have done this before but a faulty hard drive was causing a number of extra problems. The first problem is that the configure test for `if named FIFOs work' hangs. I've fixed this by changing the open() on the reading side of the fifo from O_RDWR to O_RDONLY. After this, everything compiles fine except for this warning. cfe: Warning: 566: compat.c: 187: text following #endif violates the ANSI C standard. It was caused by the use of a C++ comment which I've corrected. Running the tests produced a few failures. Most can be put down to zpty which doesn't (and never has) supported IRIX. A couple however relate to the ksh_arrays option: Test ./D05array.ztst failed: bad status 1, expected 0 from: setopt ksh_arrays echo .${foo[1,2]}. unsetopt ksh_arrays Error output: ZTST_execchunk:2: subscript too big: 2303961 Was testing: Ksh array indexing ./D05array.ztst: test failed. ./D06subscript.ztst: starting. ./D06subscript.ztst: all tests successful. ./E01options.ztst: starting. Test ./E01options.ztst failed: bad status 1, expected 0 from: setopt ksh_arrays array=(one two three) print $array $array[2] print ${array[0]} ${array[1]} ${array[2]} ${array[3]} unsetopt ksh_arrays print $array $array[2] print ${array[0]} ${array[1]} ${array[2]} ${array[3]} unset array Error output: ZTST_execchunk:2: subscript too big: 2303961 Was testing: KSH_ARRAYS option ./E01options.ztst: test failed. I haven't worked out what is causing these. Basically, I get inconsistent problems with arrays when ksh_arrays is set. Somewhere in getarg(), r is acquiring the huge value. I'd suspect something like a piece of memory being used doubly because it doesn't fail consistently. Something as simple as `echo ${arr[1]}' can be enough to produce the error but not always. I've also altered the other three similar error messages because it was producing error messages like: zsh: big: subscript too big: 28384674 As if `big' and `small' were the names of builtins. Oliver Index: zshconfig.ac =================================================================== RCS file: /cvsroot/zsh/zsh/zshconfig.ac,v retrieving revision 1.2.2.7 diff -u -r1.2.2.7 zshconfig.ac --- zshconfig.ac 2001/06/29 15:48:45 1.2.2.7 +++ zshconfig.ac 2001/07/02 11:14:19 @@ -1304,7 +1304,7 @@ if(pid < 0) exit(1); if(pid) { - fd = open("/tmp/fifo$$", O_RDWR); + fd = open("/tmp/fifo$$", O_RDONLY); exit(fd < 0 || read(fd, &c, 1) != 1 || c != 'x'); } fd = open("/tmp/fifo$$", O_WRONLY); Index: Src/compat.c =================================================================== RCS file: /cvsroot/zsh/zsh/Src/compat.c,v retrieving revision 1.9 diff -u -r1.9 compat.c --- Src/compat.c 2000/09/18 14:22:48 1.9 +++ Src/compat.c 2001/07/02 11:14:19 @@ -184,7 +184,7 @@ ((errno = 0), PATH_MAX - dirlen))); #endif } -#endif // 0 +#endif /* 0 */ #ifdef HAVE_SYSCONF /* This is replaced by a macro from system.h if not HAVE_SYSCONF. * Index: Src/params.c =================================================================== RCS file: /cvsroot/zsh/zsh/Src/params.c,v retrieving revision 1.48 diff -u -r1.48 params.c --- Src/params.c 2001/05/31 09:44:00 1.48 +++ Src/params.c 2001/07/02 11:14:19 @@ -1381,15 +1381,15 @@ return NULL; } if (v->start < -MAX_ARRLEN) { - zerr("%s: subscript too %s: %d", "small", v->start); + zerr("subscript too %s: %d", "small", v->start); return NULL; } if (v->end > MAX_ARRLEN+1) { - zerr("%s: subscript too %s: %d", "big", v->end - !!isset(KSHARRAYS)); + zerr("subscript too %s: %d", "big", v->end - !!isset(KSHARRAYS)); return NULL; } if (v->end < -MAX_ARRLEN) { - zerr("%s: subscript too %s: %d", "small", v->end); + zerr("subscript too %s: %d", "small", v->end); return NULL; } return v;