Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!godot!ima!johnl From: johnl@ima.UUCP Newsgroups: net.lang Subject: Re: Re: Smart compilers Message-ID: <457@ima.UUCP> Date: Sun, 13-Jan-85 23:38:19 EST Article-I.D.: ima.457 Posted: Sun Jan 13 23:38:19 1985 Date-Received: Tue, 15-Jan-85 02:11:14 EST Lines: 14 Nf-ID: #R:cheviot:-20600:ima:9800003:000:695 Nf-From: ima!johnl Jan 12 23:13:00 1985 >For example, suppose SQRT was a user function which >modified the COMMON block variable I as a side-effect. Or suppose, SQRT >gave a negative result and Y was EQUIVALENCE'd onto X(3). Ah, but it's not. The Fortran 77 committee gave a lot of thought to making sure that useful optimizations would be possible. One of the things they did was to define a list of "intrinsic" functions of which SQRT was one, and to say that they are well-behaved. If for some masochistic reason you want to define your own version of SQRT, you have to declare it in a special EXTERNAL statement, and the compiler is duly warned to be careful. John Levine, ima!johnl PS: So how does this all work on a Perq?