moj@tucos.UUCP (Matti Jokinen) (06/08/89)
Description: The compiler believes that istream$can_read and istream$can_write are undefined and that istream$set_date has only one argument. The bug is in the machine-independent part of the compiler and presumably occurs in all implementations. Repeat-by: Compile the following program: p = proc(s: istream) if istream$can_write(s) cor istream$can_read(s) then s.date := now() end end p Fix: The bug is in the file ~clu/cmp/basic.types. The module itself, defined in ~clu/lib/clu/istream, is correct. Make the following changes to ~clu/cmp/basic.types and reinitialize the compiler: 1254,1255c1254,1256 < istream = cluster is open, empty, reset, flush, get_date, set_date, < get_name, close, abort, is_closed, equal, similar, copy --- > istream = cluster is open, can_read, can_write, empty, reset, flush, > get_date, set_date, get_name, close, abort, > is_closed, equal, similar, copy 1262a1264,1269 > can_read = proc (ist: istream) returns (bool) > end can_read > > can_write = proc (ist: istream) returns (bool) > end can_write > 1275c1282 < set_date = proc (ist: istream) signals (not_possible(string)) --- > set_date = proc (ist: istream, new_date: date) signals (not_possible(string)) In Unix systems you don't need to recompile or relink anything. Remove ~clu/cmp/state.N, where N is the version number, type `clu' and when the prompt appears type `kill'. In DEC-20 you must first relink the compiler unless you saved the uninitialized version when you rebuilt the compiler last time.