gap> L := []; [ ] gap> L[0] := 0; Error, List assignment: <index> must be a positive int gap> L[-1] := -1; -1; gap> L[-1000000] := 0; Segmentation fault
Here is the bug fix:
*** list.orig Sat Aug 15 22:00:18 1992 --- list.c Sat Aug 15 22:07:39 1992 *************** *** 303,309 **** { TypHandle hdList; /* handle of the list */ unsigned long type; /* type of the list */ ! unsigned long ind; /* index into the list */ TypHandle hdElm; /* handle of the selected element */ /* evaluate the list */ --- 303,309 ---- { TypHandle hdList; /* handle of the list */ unsigned long type; /* type of the list */ ! long ind; /* index into the list */ TypHandle hdElm; /* handle of the selected element */ /* evaluate the list */ *************** *** 391,397 **** { TypHandle hdList; /* handle of the list */ unsigned long type; /* type of the list */ ! unsigned long ind; /* index into the list */ TypHandle hdObj; /* handle of the object */ unsigned long l; /* physical length of the list */ --- 391,397 ---- { TypHandle hdList; /* handle of the list */ unsigned long type; /* type of the list */ ! long ind; /* index into the list */ TypHandle hdObj; /* handle of the object */ unsigned long l; /* physical length of the list */
Werner Nickel
Mathematics Research Section
Australian National University