123456789101112131415161718192021222324252627282930313233343536373839404142 |
- %
- % EVAL-WHEN.RED - Funny business to make things happen at different times
- %
- % Author: Eric Benson
- % Symbolic Computation Group
- % Computer Science Dept.
- % University of Utah
- % Date: 30 August 1981
- % Copyright (c) 1981 University of Utah
- %
- % Functions flagged IGNORE are evaluated immediately when invoked at the top
- % level while compiling to a file. Those flagged EVAL are evaled immediately
- % and also passed to the file. These functions are defined to make those
- % actions more visible and mnemonic.
- macro procedure CommentOutCode U; %. Comment out a single expression
- NIL;
- lisp procedure CompileTime U; %. Evaluate at compile time only
- U; % just return the already evaluated argument
- flag('(CommentOutCode CompileTime), 'IGNORE);
- % The functions above need only be present at compile time. Those below must
- % be present at both compile and load time to be effective.
- lisp procedure BothTimes U; %. Evaluate at compile and load time
- U;
- flag('(BothTimes), 'EVAL);
- lisp procedure LoadTime U; %. Evaluate at load time only
- U;
- PutD('StartupTime, 'EXPR, cdr GetD 'LoadTime);
- % StartupTime is kernel hack
- RemFlag('(LoadTime), 'IGNORE); % just to be sure it doesn't
- RemFlag('(LoadTime), 'EVAL); % happen until load time
- END;
|