home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #20 / NN_1992_20.iso / spool / comp / lang / rexx / 966 < prev    next >
Encoding:
Text File  |  1992-09-09  |  2.6 KB  |  61 lines

  1. Newsgroups: comp.lang.rexx
  2. Path: sparky!uunet!mcsun!sunic!ugle.unit.no!ugle!anders
  3. From: anders@lise1.lise.unit.no (Anders Christensen)
  4. Subject: Re: regina bug with very long strings
  5. In-Reply-To: SEB1525@MVS.draper.com's message of Tue, 8 Sep 1992 22:02:00 GMT
  6. Message-ID: <ANDERS.92Sep9155854@lise1.lise.unit.no>
  7. Sender: news@ugle.unit.no (NetNews Administrator)
  8. Organization: University of Trondheim, Norway
  9. References: <19920908170207SEB1525@MVS.draper.com>
  10. Date: 9 Sep 92 15:58:53
  11. Lines: 48
  12.  
  13. In article <19920908170207SEB1525@MVS.draper.com> SEB1525@MVS.draper.com (Steve Bacher) writes:
  14.  
  15. > There appears to be a bug in Regina 0.03d with long strings.
  16. > [...]
  17. > I get a segmentation fault.  Where exactly the fault occurs depends on
  18. > if I run the SunOS version or the AIX version.
  19.  
  20. The length of strings in Regina 0.03d is bounded by the size of an
  21. (signed) short in C, which is at least 32k (on Crays it's 16384 Tera).
  22. At least it ought to be unsigned short, which enables lengths of at
  23. least 64k. If you change two lines in string.h (change the only two
  24. references of 'short' to 'int') it will work for strings up to 2G.
  25.  
  26. > Shouldn't Regina recover more gracefully from attempts to create a
  27. > string longer than the maximum value it can handle? 
  28.  
  29. Yes, it should.
  30.  
  31. >                                                     Is this maximum
  32. > value documented, anyhow?  
  33.  
  34. I have been searching for the implementation minimum length of values in
  35. variables, but I didn't find it (I seem to remember having read 50000
  36. somewhere, but I don't know where).
  37.  
  38. TRL 2nd ed states that variable values can have any length (5th
  39. section), but 2nd section states that the limit of length of variable
  40. values should be "much larger" than 50 characters. This is rather
  41. unspecified (and even a contradiction IMHO), does anyone else know
  42. more about this?
  43.  
  44. >                           It would be less painful if the length of a
  45. > string were held as an int rather than a short (see src/strings.h).
  46.  
  47. Yes. Using ints instead of shorts eats on an average 4 bytes more pr
  48. string. If you can live with that, apply the changes I outlined above.
  49. It still doesn't detect too long strings, but if you should happen to
  50. need strings bigger than 2 GB, then I think you are going to crash
  51. into practical limits for virtual memory long before that.
  52.  
  53. Using unsigned int will set the limit to 4GB, but the difference is
  54. hardly of any practical significance. 
  55.  
  56. There is another problem, in some cases it doesn't sense allocations
  57. of more memory than is available. I have fixed that, and it will be
  58. available in the next version of Regina.
  59.  
  60. -anders
  61.