Pereira%SRI-AI@sri-unix.UUCP (11/04/83)
I agree with the gist of Richard's comments on Prolog I/O, but let me clarify the "history" of the DEC-10 Prolog I/O predicates (I implemented them starting from suggestions from David Warren). The main goal was to get some I/O going in the shortest possible time so that the system's bootstrapping compiler could read program files. In this context, most of the problems mentioned do not occur at all. Then, because writing I/O code for TOPS-10 is very painful, nobody, including myself, could be bothered to develop something satisfying better the needs of an interactive environment. Finally, because writing I/O code is totally unglamorous if not as difficult in Unix and TOPS-20, every implementor in the "Edinburgh tradition" just copied the existing evaluable predicates, not in the interests of compatibility (we didn't care about that then, after all there weren't many people using the systems), but just because it wasn't were the fun of implementing Prolog is: designing clever data structures, stack layouts, space saving techniques, etc. -- Fernando Pereira