Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

IRIX 5.3 specific problems



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;



Messages sorted by: Reverse Date, Date, Thread, Author