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

  1. cvt_unix_to_vms() is not part of the Franz sources: it is a Eunice function.
  2. We don't have 4.0 Eunice yet, but it should be easy to test this function out
  3. of context. Although I don't have the exact specs for 4.0 filenames, I'd guess
  4. that you probably could probably just blow away all calls to cvt_unix_to_vms()
  5. (there's only a few of them). Or writing your own wouldn't be too tough.
  6.  
  7. -------
  8.  
  9. I suspect the Eunice image activation error message is in reality VMS's 
  10. IMG_SIZ error message (found on 2-205 of the 4.0 System Messages Manual).
  11. This means that your image header is fotched. Here's what happened to me:
  12. we've got a bunch of MicroVaxes and VaxStation 100s running various 
  13. incarnations of VMS 4.X. Recently I tried to port Franz to them from our 780
  14. (running VMS and Eunice). Initially I just copied the Franz image to the
  15. workstation, but this resulted in the aforementioned image activation error.
  16. So then I copied the components needs to build an interpreted Franz by hand
  17. --- Rawlisp and the 10 or so .l files. This worked, but if I did a (dumplisp)
  18. to save the lisp, I would get the image activation error again. As it turns 
  19. out, the code for (dumplisp ...) has a slight bug that has only become 
  20. apparent under 4.X. 
  21.  
  22. The fix is trivial ---- there is a field in image headers that need not be
  23. set under 3.X, but must be set under 4.X. NDumplisp, the routine that creates
  24. a new lisp image, was not setting this field. Below is a fragment of my hack
  25. to NDumplisp:
  26.  
  27. File:        Fex3.C
  28. Routine:    NDumplisp
  29. -------------------------
  30.  
  31. /* Setting up the image header... */
  32.  
  33.     Buffer.Header.Ihd.majorid[1]    = '2';
  34.     Buffer.Header.Ihd.minorid[0]    = '0';
  35.     Buffer.Header.Ihd.minorid[1]    = '2';
  36.  
  37. /* Here's the hack..... */
  38.  
  39.     Buffer.Header.Ihd.hdrblkcnt    = 1;    
  40.  
  41. /* EOH */
  42.  
  43.     Buffer.Header.Ihd.imgtype    = IHD_EXECUTABLE;
  44.     Buffer.Header.Ihd.privreqs[0]    = -1;
  45.     Buffer.Header.Ihd.privreqs[1]    = -1;
  46.  
  47. -----
  48.  
  49. If anyone is planning to be running on 4.0, you must set this field, or any
  50. lisp created via dumplisp will not run.
  51.  
  52. John Zoll
  53. Carnegie-Mellon University
  54. Zoll@Cmu-Psy-A.Arpa
  55.  
  56.  
  57.