Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!wuarchive!usc!elroy.jpl.nasa.gov!ncar!noao!arizona!gudeman From: gudeman@cs.arizona.edu (David Gudeman) Newsgroups: comp.lang.misc Subject: Re: Answers, Chapter 1: TeX Message-ID: <27209@megaron.cs.arizona.edu> Date: 6 Nov 90 21:28:12 GMT Organization: U of Arizona CS Dept, Tucson Lines: 38 In article <5077@lanl.gov> jlg@lanl.gov (Jim Giles) writes: ] The compiler must ]provide sufficient information to tell the loader which constraints ]must be promoted across the call-tree - but this information can ]exist in a language independent form. Sounds like a fun new software tool -- a conditional linker. I wish I had time to work on it. I visualize a linker with control constructs roughly similar to the C preprocessor. One necessary exension of course, would be an error producer #error "Declaration of function %s does not match definition" f1 I expect that it would also need some extra things in the expression syntax for type checking and such, for example #if type(X) = type(Y) where X and Y are some sort of (language-independent) type expression. It could be used to conditionaly compile code depending on things that can't be determined until link time like #if guaranteed_not_aliased(A,B) /* highly optimized code that assumes no aliasing */ #else /* less optimized code to do the same thing for the case where A and B might be aliased */ #endif Furthermore, this linker could be downward compatible with linkers that don't have conditional statements, so that you could install the new linker without changing the existing compilers on your system. -- David Gudeman Department of Computer Science The University of Arizona gudeman@cs.arizona.edu Tucson, AZ 85721 noao!arizona!gudeman