1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 03:40:34 +02:00

Update psyntax copyright notice

* module/ice-9/psyntax.scm: Use the newer LGPLv3 header.  Add FSF
copyright lines for each year the file was modified.  Remove inline
changelogs.  Remove some comments describing psyntax in other Scheme
implementations.
This commit is contained in:
Andy Wingo 2024-08-26 09:51:53 +02:00
parent d0790d766b
commit a970ed5bd5

View file

@ -1,25 +1,23 @@
;;;; -*-scheme-*- ;;;; -*-scheme-*-
;;;; ;;;;
;;;; Copyright (C) 2001, 2003, 2006, 2009, 2010-2022 ;;;; Copyright (C) 1997-1998,2000-2003,2005-2006,2008-2013,2015-2022,2024
;;;; Free Software Foundation, Inc. ;;;; Free Software Foundation, Inc.
;;;; ;;;;
;;;; This library is free software; you can redistribute it and/or ;;;; This library is free software: you can redistribute it and/or modify
;;;; modify it under the terms of the GNU Lesser General Public ;;;; it under the terms of the GNU Lesser General Public License as
;;;; License as published by the Free Software Foundation; either ;;;; published by the Free Software Foundation, either version 3 of the
;;;; version 3 of the License, or (at your option) any later version. ;;;; License, or (at your option) any later version.
;;;; ;;;;
;;;; This library is distributed in the hope that it will be useful, ;;;; This library is distributed in the hope that it will be useful, but
;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
;;;; Lesser General Public License for more details. ;;;; Lesser General Public License for more details.
;;;; ;;;;
;;;; You should have received a copy of the GNU Lesser General Public ;;;; You should have received a copy of the GNU Lesser General Public
;;;; License along with this library; if not, write to the Free Software ;;;; License along with this program. If not, see
;;;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ;;;; <http://www.gnu.org/licenses/>.
;;;;
;;; Portable implementation of syntax-case
;;; Originally extracted from Chez Scheme Version 5.9f ;;; Originally extracted from Chez Scheme Version 5.9f
;;; Authors: R. Kent Dybvig, Oscar Waddell, Bob Hieb, Carl Bruggeman ;;; Authors: R. Kent Dybvig, Oscar Waddell, Bob Hieb, Carl Bruggeman
@ -34,64 +32,16 @@
;;; AUTHORS BE LIABLE FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES OF ANY ;;; AUTHORS BE LIABLE FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES OF ANY
;;; NATURE WHATSOEVER. ;;; NATURE WHATSOEVER.
;;; Modified by Mikael Djurfeldt <djurfeldt@nada.kth.se> according
;;; to the ChangeLog distributed in the same directory as this file:
;;; 1997-08-19, 1997-09-03, 1997-09-10, 2000-08-13, 2000-08-24,
;;; 2000-09-12, 2001-03-08
;;; Modified by Andy Wingo <wingo@pobox.com> according to the Git
;;; revision control logs corresponding to this file: 2009, 2010.
;;; Modified by Mark H Weaver <mhw@netris.org> according to the Git
;;; revision control logs corresponding to this file: 2012, 2013.
;;; This code is based on "Syntax Abstraction in Scheme" ;;; This code is based on "Syntax Abstraction in Scheme"
;;; by R. Kent Dybvig, Robert Hieb, and Carl Bruggeman. ;;; by R. Kent Dybvig, Robert Hieb, and Carl Bruggeman.
;;; Lisp and Symbolic Computation 5:4, 295-326, 1992. ;;; Lisp and Symbolic Computation 5:4, 295-326, 1992.
;;; <http://www.cs.indiana.edu/~dyb/pubs/LaSC-5-4-pp295-326.pdf> ;;; <http://www.cs.indiana.edu/~dyb/pubs/LaSC-5-4-pp295-326.pdf>
;;; This file defines the syntax-case expander, macroexpand, and a set ;;; This file defines Guile's syntax expander and a set of associated
;;; of associated syntactic forms and procedures. Of these, the ;;; syntactic forms and procedures. For more documentation, see The
;;; following are documented in The Scheme Programming Language, ;;; Scheme Programming Language, Fourth Edition (R. Kent Dybvig, MIT
;;; Fourth Edition (R. Kent Dybvig, MIT Press, 2009), and in the ;;; Press, 2009), or the R6RS.
;;; R6RS:
;;;
;;; bound-identifier=?
;;; datum->syntax
;;; define-syntax
;;; syntax-parameterize
;;; free-identifier=?
;;; generate-temporaries
;;; identifier?
;;; identifier-syntax
;;; let-syntax
;;; letrec-syntax
;;; syntax
;;; syntax-case
;;; syntax->datum
;;; syntax-rules
;;; with-syntax
;;;
;;; Additionally, the expander provides definitions for a number of core
;;; Scheme syntactic bindings, such as `let', `lambda', and the like.
;;; The remaining exports are listed below:
;;;
;;; (macroexpand datum)
;;; if datum represents a valid expression, macroexpand returns an
;;; expanded version of datum in a core language that includes no
;;; syntactic abstractions. The core language includes begin,
;;; define, if, lambda, letrec, quote, and set!.
;;; (eval-when situations expr ...)
;;; conditionally evaluates expr ... at compile-time or run-time
;;; depending upon situations (see the Chez Scheme System Manual,
;;; Revision 3, for a complete description)
;;; (syntax-violation who message form [subform])
;;; used to report errors found during expansion
;;; ($sc-dispatch e p)
;;; used by expanded code to handle syntax-case matching
;;; This file is shipped along with an expanded version of itself, ;;; This file is shipped along with an expanded version of itself,
;;; psyntax-pp.scm, which is loaded when psyntax.scm has not yet been ;;; psyntax-pp.scm, which is loaded when psyntax.scm has not yet been
@ -110,23 +60,6 @@
;;; lexically are assumed to be global variables. ;;; lexically are assumed to be global variables.
;;; Top-level definitions of macro-introduced identifiers are allowed. ;;; Top-level definitions of macro-introduced identifiers are allowed.
;;; This may not be appropriate for implementations in which the
;;; model is that bindings are created by definitions, as opposed to
;;; one in which initial values are assigned by definitions.
;;; Identifiers and syntax objects are implemented as vectors for
;;; portability. As a result, it is possible to "forge" syntax objects.
;;; The implementation of generate-temporaries assumes that it is
;;; possible to generate globally unique symbols (gensyms).
;;; The source location associated with incoming expressions is tracked
;;; via the source-properties mechanism, a weak map from expression to
;;; source information. At times the source is separated from the
;;; expression; see the note below about "efficiency and confusion".
;;; Bootstrapping:
;;; When changing syntax representations, it is necessary to support ;;; When changing syntax representations, it is necessary to support
;;; both old and new syntax representations in id-var-name. It ;;; both old and new syntax representations in id-var-name. It
@ -134,7 +67,6 @@
;;; them as not lexically bound. ;;; them as not lexically bound.
(eval-when (compile) (eval-when (compile)
(set-current-module (resolve-module '(guile)))) (set-current-module (resolve-module '(guile))))