home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / bsd_srcs / usr.bin / lisp / lispnews / text0256.txt < prev    next >
Encoding:
Text File  |  1985-11-10  |  1.3 KB  |  41 lines

  1. There is a mistake in the open coding of (vseti vector index expression).
  2. When the generated code is executed it returns the value of the index expression
  3. and not the value of expression.  The problem is in d_vset in liszt/vector.l.
  4. The code in d_vset that generates the assembler code to compute the
  5. return value assumes that code has been generated to put the value of
  6. expression in index-reg.  This assumption is false.
  7.  
  8. I don't know the 68000 well enough to suggest a solution for it, but the
  9. following should work for the VAX.  Change the lines
  10.  
  11.          (if g-loc
  12.              then  (if (eq type 'byte)
  13.  
  14. (occuring about 3/4 of the way through d_vset) to
  15.  
  16.          (if g-loc
  17.              then
  18.              #+for-vax
  19.          (progn
  20.               (setq temp (cadr (assq type '((byte cvtbl)
  21.                                                    (word cvtwl)
  22.                                                    (long movl)))))
  23.                       (e-write3 temp vect-val index-reg)
  24.           )
  25.           
  26.           #+for-68k
  27.           (comment Do the same thing for the 68k)
  28.  
  29.                   (if (eq type 'byte)
  30.  
  31. Also, what is the current Berkeley distribution policy.  I tried ftp'ing
  32. from ucbvax, but the pub/lisp directory there is empty.  I'd like to get my
  33. hands on a distribution that has the flavors package in it.
  34.  
  35. Mark Bromley
  36. bromley@cornell
  37.  
  38.  
  39.  
  40.  
  41.