[comp.lang.modula2] Bugs in DECWRL

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