Path: utzoo!attcan!uunet!know!sdd.hp.com!wuarchive!julius.cs.uiuc.edu!psuvax1!psuvm!f0o From: F0O@psuvm.psu.edu Newsgroups: comp.lang.prolog Subject: Re: PDC prolog gripe/question Message-ID: <90288.092534F0O@psuvm.psu.edu> Date: 15 Oct 90 13:25:34 GMT References: <90285.232430F0O@psuvm.psu.edu> <145400@kean.ucs.mun.ca> <90287.103007F0O@psuvm.psu.edu> Organization: Penn State University Lines: 33 In article , garym@cognos.uucp@uunet.uu.net (Gary Murphy) says: >It gets worse: the project declaration is used to identify the .SYM >file used by all the modules. If one file changes, the SYM may be >changed, and this will require recompilation of all modules. By >poking around with a hex editor, I did find that the .SYM didn't >always change, but unfortunately, there is no way to ensure that it >didn't. This almost totally cancels any benefit of using a command-line >compiler within a MAKEFILE script. Does anyone know what is actually happening to the .SYM file as each module you compile does something to it? I keep wondering this every time I see a reference to the .SYM file in the message window. >One one hand, it is commendable, as it does allow their WAM'ish >compiler to easily attach to C language .LIB's and .OBJ's (unlike >Arity et al where the interface is much more awkward), and it was one >of the first prologs to address the 'flatness' of prolog predicate >scope. On the other hand, it totally destroys any chance of code-reuse >through building .LIB's of predicates (unless all are declared to be >'language c'). Like everyone else, I don't like the 'project' declaration, >but I really can't see any way they could have avoided it. What do you mean by 'WAM'sih'? What does 'flatness of prolog predicate scope mean? The way I think they could get around the project keyword is to simply take the first filename in the makefile, assume that is the primary program and give the project that name. Yes/No/maybe? [Tim]