1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2% 3% File: PU:DEFMACRO.SL 4% Description: Tools for destructuring and macro definition 5% Author: Don Morrison, Hewlett-Packard CRC 6% Created: Wednesday, 12 May 1982 7% Modified: 7 May 1984 1100-PDT (Nancy Kendzierski) 8% Status: Experimental (Do Not Distribute) 9% Mode: Lisp 10% Package: Utilities 11% Compiletime: 12% Runtime: PL:DEFMACRO1.B PL:DEFMACRO2.B 13% 14% (c) Copyright 1983, Hewlett-Packard Company, see the file 15% HP_disclaimer at the root of the PSL file tree 16% 17% (c) Copyright 1982, University of Utah 18% 19% Redistribution and use in source and binary forms, with or without 20% modification, are permitted provided that the following conditions are met: 21% 22% * Redistributions of source code must retain the relevant copyright 23% notice, this list of conditions and the following disclaimer. 24% * Redistributions in binary form must reproduce the above copyright 25% notice, this list of conditions and the following disclaimer in the 26% documentation and/or other materials provided with the distribution. 27% 28% THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 29% AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 30% THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 31% PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNERS OR 32% CONTRIBUTORS 33% BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 34% CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 35% SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 36% INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 37% CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 38% ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 39% POSSIBILITY OF SUCH DAMAGE. 40% 41%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 42% 43% Revisions: 44% 45% 6 May 1984 1621-PDT (Nancy Kendzierski) 46% Added compiletime loads and split into two parts to allow separate 47% compilation, without requiring itself. This just loads the two parts. 48% 19 Jan 1984 1431-PST (Brian Beach) 49% Added standard header. 50% 03-Nov-83 16:39:02 Nancy Kendzierski 51% Removed circularity in rebuilding USEFUL by removing use of SETF in this 52% file. Changed "setf (get '!%displaced-macro 'compfn) #'&comprogn)" to 53% "(put '!%displaced-macro 'compfn #'&comprogn)". SETF isn't defined in the 54% module USEFUL until after defmacro.sl is processed -- setf is defined 55% in set-macros.sl, using defmacro, which is defined in this file! 56% 57%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 58 59(load def1macro def2macro) 60