dhemm@wright.EDU (David Hemmendinger) (12/30/87)
A year ago there was a posting of a list of bugs in the DECWRL Modula-2 compiler. It did not include these two: 1. If 'writef' is passed a constant string to be printed using the '%s' format, it fails if the string is 4 characters or less. The reason is simple; if writef is passed a string short enough to fit into 4 bytes, it passes the string by value to the system's printf routine, though it passes long strings by reference. However, printf's %s format always expects a pointer to a string. This is an optimization that doesn't work. 2. The 'Newprocess' routine returns an incorrect pointer to the process descriptor -- apparently it points to the wrong end of the data structure. I obtained a corrected version of the compiler's coroutine module from the author. Well over a year later, though, DEC was still distributing the incorrect version with Ultrix 2.0. The correct version can be identified by an error message that Newprocess displays if one tries to create a process descriptor smaller than 512 bytes; the incorrect version gives no such message. -- David Hemmendinger CSNET: dhemm@CS.wright.EDU UUCP: ...!cbosgd!wright!dhemm Computer Science Dept., Wright State University, Dayton, Ohio 45435 +1-513-259-1345