diff options
author | Andy Wingo <wingo@pobox.com> | 2025-05-05 11:28:05 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2025-05-05 12:33:37 +0200 |
commit | 96589bd303ab0fd778ebf2824f642e5b4528882d (patch) | |
tree | 25401f4820b09d0c144682343bc228efe8213bcd | |
parent | 4c2a8c1dd300d8bb69190caf19729ec7b8104deb (diff) | |
download | guile-96589bd303ab0fd778ebf2824f642e5b4528882d.tar.gz |
Remove all deprecated code from Scheme files
* module/ice-9/boot-9.scm(symbol-property, set-symbol-property!)
(symbol-property-remove!): Remove.
* module/ice-9/boot-9.scm (make-record-type): Name must be symbol.
(record-constructor): Alias record-type-constructor.
(make-module): Require size to be zero. Should fix this with keyword
args :/
(try-load-module): Inline definition of try-module-autoload. Remove
try-module-autoload binding.
(make-soft-port): Add deprecation warning, so we can remove it
eventually.
* module/ice-9/save-stack.scm: Remove deprecation comment.
* module/ice-9/top-repl.scm:
* module/ice-9/threads.scm: Export instead of replace bindings.
* module/language/bytecode.scm: Remove instruction-arity et al.
* module/language/tree-il/analyze.scm: Remove deprecated
unbound-variable-analysis and macro-use-before-definition-analysis.
* module/rnrs.scm: Fix syntax-case export now that module and value
namespaces are separate.
* module/system/base/language.scm (invalidate-compilation-cache!):
Remove.
* module/system/base/language.scm (*current-language*): Remove.
-rw-r--r-- | am/bootstrap.am | 1 | ||||
-rw-r--r-- | module/ice-9/boot-9.scm | 82 | ||||
-rw-r--r-- | module/ice-9/lineio.scm | 119 | ||||
-rw-r--r-- | module/ice-9/save-stack.scm | 3 | ||||
-rw-r--r-- | module/ice-9/threads.scm | 59 | ||||
-rw-r--r-- | module/ice-9/top-repl.scm | 6 | ||||
-rw-r--r-- | module/language/bytecode.scm | 85 | ||||
-rw-r--r-- | module/language/tree-il/analyze.scm | 22 | ||||
-rw-r--r-- | module/rnrs.scm | 15 | ||||
-rw-r--r-- | module/system/base/language.scm | 18 |
10 files changed, 49 insertions, 361 deletions
diff --git a/am/bootstrap.am b/am/bootstrap.am index d367a17e9..df6d19bfe 100644 --- a/am/bootstrap.am +++ b/am/bootstrap.am @@ -154,7 +154,6 @@ SOURCES = \ ice-9/history.scm \ ice-9/i18n.scm \ ice-9/iconv.scm \ - ice-9/lineio.scm \ ice-9/list.scm \ ice-9/local-eval.scm \ ice-9/ls.scm \ diff --git a/module/ice-9/boot-9.scm b/module/ice-9/boot-9.scm index 469f279c0..5443b2fb6 100644 --- a/module/ice-9/boot-9.scm +++ b/module/ice-9/boot-9.scm @@ -849,30 +849,6 @@ VALUE." -;;; {Symbol Properties} -;;; - -;;; Symbol properties are something you see in old Lisp code. In most current -;;; Guile code, symbols are not used as a data structure -- they are used as -;;; keys into other data structures. - -(define (symbol-property sym prop) - (let ((pair (assoc prop (symbol-pref sym)))) - (and pair (cdr pair)))) - -(define (set-symbol-property! sym prop val) - (let ((pair (assoc prop (symbol-pref sym)))) - (if pair - (set-cdr! pair val) - (symbol-pset! sym (acons prop val (symbol-pref sym)))))) - -(define (symbol-property-remove! sym prop) - (let ((pair (assoc prop (symbol-pref sym)))) - (if pair - (symbol-pset! sym (delq! pair (symbol-pref sym)))))) - - - ;;; {Arrays} ;;; @@ -1009,6 +985,9 @@ See also: @code{array-dimensions}, @code{array-rank}." (define* (make-record-type type-name fields #:optional printer #:key parent uid extensible? allow-duplicate-field-names? (opaque? (and=> parent record-type-opaque?))) + (unless (symbol? type-name) + (error "expected a symbol for record type name" type-name)) + ;; Pre-generate constructors for nfields < 20. (define-syntax make-constructor (lambda (x) @@ -1127,17 +1106,6 @@ See also: @code{array-dimensions}, @code{array-rank}." (logior mutable (ash 1 i)) mutable)))))) - (define name-sym - (cond - ((symbol? type-name) type-name) - ((string? type-name) - (issue-deprecation-warning - "Passing a string as a type-name to make-record-type is deprecated." - " Pass a symbol instead.") - (string->symbol type-name)) - (else - (error "expected a symbol for record type name" type-name)))) - (define properties (let ((maybe-acons (lambda (k v tail) (if v (acons k v tail) tail)))) @@ -1149,7 +1117,7 @@ See also: @code{array-dimensions}, @code{array-rank}." (cond ((and uid (hashq-ref prefab-record-types uid)) => (lambda (rtd) - (unless (and (equal? (record-type-name rtd) name-sym) + (unless (and (equal? (record-type-name rtd) type-name) (equal? (record-type-fields rtd) computed-fields) (not printer) (equal? (record-type-properties rtd) properties) @@ -1165,7 +1133,7 @@ See also: @code{array-dimensions}, @code{array-rank}." (apply string-append (map (lambda (f) "pw") computed-fields))) (or printer default-record-printer) - name-sym + type-name computed-fields #f ; Constructor initialized below. properties @@ -1178,7 +1146,7 @@ See also: @code{array-dimensions}, @code{array-rank}." ;; Temporary solution: Associate a name to the record type ;; descriptor so that the object system can create a wrapper ;; class for it. - (set-struct-vtable-name! rtd name-sym) + (set-struct-vtable-name! rtd type-name) (when uid (unless (symbol? uid) @@ -1187,24 +1155,7 @@ See also: @code{array-dimensions}, @code{array-rank}." rtd)))) -(define record-constructor - (case-lambda - ((rtd) - (record-type-constructor rtd)) - ((rtd field-names) - (issue-deprecation-warning - "Calling `record-constructor' with two arguments (the record type" - " and a list of field names) is deprecated. Instead, call with just" - " one argument, and provide a wrapper around that constructor if" - " needed.") - (primitive-eval - `(lambda ,field-names - (make-struct/no-tail ',rtd - ,@(map (lambda (f) - (if (memq f field-names) - f - #f)) - (record-type-fields rtd)))))))) +(define record-constructor record-type-constructor) (define (record-predicate rtd) (unless (record-type? rtd) @@ -2551,12 +2502,8 @@ name extensions listed in %load-extensions." (define* (make-module #:optional (size 0) (uses '()) (binder #f)) "Create a new module, perhaps with a particular size of obarray, initial uses list, or binding procedure." - (unless (integer? size) - (error "Illegal size to make-module." size)) - (unless (zero? size) - (issue-deprecation-warning - "Passing a non-zero size argument to `make-module' is deprecated. " - "Omit the argument or pass zero instead.")) + (unless (eq? size 0) + (error "Invalid size to make-module." size)) (unless (and (list? uses) (and-map module? uses)) (error "Incorrect use list." uses)) (when (and binder (not (procedure? binder))) @@ -3289,9 +3236,6 @@ deterministic." (make-modules-in root name))))))))))) -(define (try-load-module name version) - (try-module-autoload name version)) - (define (reload-module m) "Revisit the source file corresponding to the module @var{m}." (let ((f (module-filename m))) @@ -3543,10 +3487,7 @@ module '(ice-9 q) '(make-q q-length))}." (define autoloads-in-progress '()) -;; This function is called from scm_load_scheme_module in -;; "deprecated.c". Please do not change its interface. -;; -(define* (try-module-autoload module-name #:optional version) +(define* (try-load-module module-name #:optional version) "Try to load a module of the given name. If it is not found, return #f. Otherwise return #t. May raise an exception if a file is found, but it fails to load." @@ -4735,6 +4676,9 @@ R7RS." ;;; (define (make-soft-port pv modes) + (issue-deprecation-warning + "make-soft-port in the default environment is deprecated. Import " + "(ice-9 soft-ports) instead, which has a better interface.") ((module-ref (resolve-interface '(ice-9 soft-ports)) 'deprecated-make-soft-port) pv modes)) diff --git a/module/ice-9/lineio.scm b/module/ice-9/lineio.scm deleted file mode 100644 index f9904e084..000000000 --- a/module/ice-9/lineio.scm +++ /dev/null @@ -1,119 +0,0 @@ -;;; installed-scm-file - -;;;; Copyright (C) 1996, 1998, 2001, 2003, 2006, 2023 Free Software Foundation, Inc. -;;;; -;;;; This library is free software; you can redistribute it and/or -;;;; modify it under the terms of the GNU Lesser General Public -;;;; License as published by the Free Software Foundation; either -;;;; version 3 of the License, or (at your option) any later version. -;;;; -;;;; This library is distributed in the hope that it will be useful, -;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;;;; Lesser General Public License for more details. -;;;; -;;;; You should have received a copy of the GNU Lesser General Public -;;;; License along with this library; if not, write to the Free Software -;;;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -;;;; - - - -(define-module (ice-9 lineio) - :use-module (ice-9 rdelim) - :export (unread-string read-string lineio-port? - make-line-buffering-input-port)) - -(issue-deprecation-warning - "(ice-9 lineio) is deprecated. Use read-line together with -unread-string instead.") - - -;;; {Line Buffering Input Ports} -;;; -;;; [This is a work-around to get past certain deficiencies in the capabilities -;;; of ports. Eventually, ports should be fixed and this module nuked.] -;;; -;;; A line buffering input port supports: -;;; -;;; read-string which returns the next line of input -;;; unread-string which pushes a line back onto the stream -;;; -;;; The implementation of unread-string is kind of limited; it doesn't -;;; interact properly with unread-char, or any of the other port -;;; reading functions. Only read-string will get you back the things that -;;; unread-string accepts. -;;; -;;; Normally a "line" is all characters up to and including a newline. -;;; If lines are put back using unread-string, they can be broken arbitrarily -;;; -- that is, read-string returns strings passed to unread-string (or -;;; shared substrings of them). -;;; - -;; read-string port -;; unread-string port str -;; Read (or buffer) a line from PORT. -;; -;; Not all ports support these functions -- only those with -;; 'unread-string and 'read-string properties, bound to hooks -;; implementing these functions. -;; -(define (unread-string str line-buffering-input-port) - ((object-property line-buffering-input-port 'unread-string) str)) - -;; -(define (read-string line-buffering-input-port) - ((object-property line-buffering-input-port 'read-string))) - - -(define (lineio-port? port) - (not (not (object-property port 'read-string)))) - -;; make-line-buffering-input-port port -;; Return a wrapper for PORT. The wrapper handles read-string/unread-string. -;; -;; The port returned by this function reads newline terminated lines from PORT. -;; It buffers these characters internally, and parsels them out via calls -;; to read-char, read-string, and unread-string. -;; - -(define (make-line-buffering-input-port underlying-port) - (let* (;; buffers - a list of strings put back by unread-string or cached - ;; using read-line. - ;; - (buffers '()) - - ;; getc - return the next character from a buffer or from the underlying - ;; port. - ;; - (getc (lambda () - (if (not buffers) - (read-char underlying-port) - (let ((c (string-ref (car buffers) 0))) - (if (= 1 (string-length (car buffers))) - (set! buffers (cdr buffers)) - (set-car! buffers (substring (car buffers) 1))) - c)))) - - (propogate-close (lambda () (close-port underlying-port))) - - (self (make-soft-port (vector #f #f #f getc propogate-close) "r")) - - (unread-string (lambda (str) - (and (< 0 (string-length str)) - (set! buffers (cons str buffers))))) - - (read-string (lambda () - (cond - ((not (null? buffers)) - (let ((answer (car buffers))) - (set! buffers (cdr buffers)) - answer)) - (else - (read-line underlying-port 'concat)))))) ;handle-newline->concat - - (set-object-property! self 'unread-string unread-string) - (set-object-property! self 'read-string read-string) - self)) - - diff --git a/module/ice-9/save-stack.scm b/module/ice-9/save-stack.scm index 5abd1d82a..3754d3f7e 100644 --- a/module/ice-9/save-stack.scm +++ b/module/ice-9/save-stack.scm @@ -1,6 +1,6 @@ ;;; -*- mode: scheme; coding: utf-8; -*- -;;;; Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2014 +;;;; Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2014,2025 ;;;; Free Software Foundation, Inc. ;;;; ;;;; This library is free software; you can redistribute it and/or @@ -30,7 +30,6 @@ ;;; Code: (define-module (ice-9 save-stack) - ;; Replace deprecated root-module bindings, if present. #:export (stack-saved? the-last-stack save-stack)) diff --git a/module/ice-9/threads.scm b/module/ice-9/threads.scm index a1e43b9fa..0d3880d69 100644 --- a/module/ice-9/threads.scm +++ b/module/ice-9/threads.scm @@ -1,5 +1,5 @@ ;;;; Copyright (C) 1996, 1998, 2001, 2002, 2003, 2006, 2010, 2011, -;;;; 2012, 2018 Free Software Foundation, Inc. +;;;; 2012, 2018, 2025 Free Software Foundation, Inc. ;;;; ;;;; This library is free software; you can redistribute it and/or ;;;; modify it under the terms of the GNU Lesser General Public @@ -31,37 +31,32 @@ (define-module (ice-9 threads) #:use-module (ice-9 match) - ;; These bindings are marked as #:replace because when deprecated code - ;; is enabled, (ice-9 deprecated) also exports these names. - ;; (Referencing one of the deprecated names prints a warning directing - ;; the user to these bindings.) Anyway once we can remove the - ;; deprecated bindings, we should use #:export instead of #:replace - ;; for these. - #:replace (call-with-new-thread - yield - cancel-thread - join-thread - thread? - make-mutex - make-recursive-mutex - lock-mutex - try-mutex - unlock-mutex - mutex? - mutex-owner - mutex-level - mutex-locked? - make-condition-variable - wait-condition-variable - signal-condition-variable - broadcast-condition-variable - condition-variable? - current-thread - all-threads - thread-exited? - total-processor-count - current-processor-count) - #:export (begin-thread + #:export (call-with-new-thread + yield + cancel-thread + join-thread + thread? + make-mutex + make-recursive-mutex + lock-mutex + try-mutex + unlock-mutex + mutex? + mutex-owner + mutex-level + mutex-locked? + make-condition-variable + wait-condition-variable + signal-condition-variable + broadcast-condition-variable + condition-variable? + current-thread + all-threads + thread-exited? + total-processor-count + current-processor-count + + begin-thread make-thread with-mutex monitor diff --git a/module/ice-9/top-repl.scm b/module/ice-9/top-repl.scm index fa26e61e7..27881e791 100644 --- a/module/ice-9/top-repl.scm +++ b/module/ice-9/top-repl.scm @@ -1,6 +1,6 @@ ;;; -*- mode: scheme; coding: utf-8; -*- -;;;; Copyright (C) 1995-2011,2013,2019 Free Software Foundation, Inc. +;;;; Copyright (C) 1995-2011,2013,2019,2025 Free Software Foundation, Inc. ;;;; ;;;; This library is free software; you can redistribute it and/or ;;;; modify it under the terms of the GNU Lesser General Public @@ -20,9 +20,7 @@ (define-module (ice-9 top-repl) #:use-module (ice-9 top-repl) #:use-module ((system repl repl) #:select (start-repl)) - - ;; #:replace, as with deprecated code enabled these will be in the root env - #:replace (top-repl)) + #:export (top-repl)) (define call-with-sigint (if (not (provided? 'posix)) diff --git a/module/language/bytecode.scm b/module/language/bytecode.scm index b304e3598..e9cbb7ea0 100644 --- a/module/language/bytecode.scm +++ b/module/language/bytecode.scm @@ -1,6 +1,6 @@ ;;; Bytecode -;; Copyright (C) 2013, 2017, 2018, 2020 Free Software Foundation, Inc. +;; Copyright (C) 2013, 2017, 2018, 2020, 2025 Free Software Foundation, Inc. ;;;; This library is free software; you can redistribute it and/or ;;;; modify it under the terms of the GNU Lesser General Public @@ -34,89 +34,6 @@ (load-extension (string-append "libguile-" (effective-version)) "scm_init_intrinsics") -(begin-deprecated - (define (compute-instruction-arity name args) - (define (first-word-arity word) - (case word - ((X32) 0) - ((X8_S24) 1) - ((X8_F24) 1) - ((X8_C24) 1) - ((X8_L24) 1) - ((X8_S8_I16) 2) - ((X8_S8_ZI16) 2) - ((X8_S12_S12) 2) - ((X8_S12_C12) 2) - ((X8_S12_Z12) 2) - ((X8_C12_C12) 2) - ((X8_F12_F12) 2) - ((X8_S8_S8_S8) 3) - ((X8_S8_S8_C8) 3) - ((X8_S8_C8_S8) 3))) - (define (tail-word-arity word) - (case word - ((C32) 1) - ((I32) 1) - ((A32 AU32 AS32 AF32) 1) - ((B32 BF32 BS32 BU32) 0) - ((N32) 1) - ((R32) 1) - ((L32) 1) - ((LO32) 1) - ((C8_C24) 2) - ((C8_S24) 2) - ((C16_C16) 2) - ((B1_C7_L24) 3) - ((B1_X7_S24) 2) - ((B1_X7_F24) 2) - ((B1_X7_C24) 2) - ((B1_X7_L24) 2) - ((B1_X31) 1) - ((X8_S24) 1) - ((X8_F24) 1) - ((X8_C24) 1) - ((X8_L24) 1))) - (match args - ((arg0 . args) - (fold (lambda (arg arity) - (+ (tail-word-arity arg) arity)) - (first-word-arity arg0) - args)))) - - (define *macro-instruction-arities* - '((cache-current-module! . (0 . 1)) - (cached-toplevel-box . (1 . 0)) - (cached-module-box . (1 . 0)))) - - (define (compute-instruction-arities) - (issue-deprecation-warning - "`instruction-arity' is deprecated. Instead, use instruction-list directly -if needed.") - (let ((table (make-hash-table))) - (for-each - (match-lambda - ;; Put special cases here. - (('jtable . _) - ;; No macro-instruction. - #f) - ((name op '! . args) - (hashq-set! table name - (cons 0 (compute-instruction-arity name args)))) - ((name op '<- . args) - (hashq-set! table name - (cons 1 (1- (compute-instruction-arity name args)))))) - (instruction-list)) - (for-each (match-lambda - ((name . arity) - (hashq-set! table name arity))) - *macro-instruction-arities*) - table)) - - (define *instruction-arities* (delay (compute-instruction-arities))) - - (define-public (instruction-arity name) - (hashq-ref (force *instruction-arities*) name))) - (define *intrinsic-codes* (delay (let ((tab (make-hash-table))) (for-each (lambda (pair) diff --git a/module/language/tree-il/analyze.scm b/module/language/tree-il/analyze.scm index e9a803919..418a7ccb0 100644 --- a/module/language/tree-il/analyze.scm +++ b/module/language/tree-il/analyze.scm @@ -1,6 +1,6 @@ ;;; Diagnostic warnings for Tree-IL -;; Copyright (C) 2001,2008-2014,2016,2018-2023 Free Software Foundation, Inc. +;; Copyright (C) 2001,2008-2014,2016,2018-2023,2025 Free Software Foundation, Inc. ;;;; This library is free software; you can redistribute it and/or ;;;; modify it under the terms of the GNU Lesser General Public @@ -1410,26 +1410,6 @@ resort, return #t when EXP refers to the global variable SPECIAL-NAME." #t)) -(begin-deprecated - (define-syntax unbound-variable-analysis - (identifier-syntax - (begin - (issue-deprecation-warning - "`unbound-variable-analysis' is deprecated. " - "Use `make-use-before-definition-analysis' instead.") - (make-use-before-definition-analysis - #:enabled-warnings '(unbound-variable))))) - (define-syntax macro-use-before-definition-analysis - (identifier-syntax - (begin - (issue-deprecation-warning - "`macro-use-before-definition-analysis' is deprecated. " - "Use `make-use-before-definition-analysis' instead.") - (make-use-before-definition-analysis - #:enabled-warnings '(macro-use-before-definition))))) - (export unbound-variable-analysis - macro-use-before-definition-analysis)) - (define-syntax-rule (define-analysis make-analysis #:level level #:kind kind #:analysis analysis) (define* (make-analysis #:key (warning-level 0) (enabled-warnings '())) diff --git a/module/rnrs.scm b/module/rnrs.scm index f4ab970e3..4dcf70e16 100644 --- a/module/rnrs.scm +++ b/module/rnrs.scm @@ -1,6 +1,6 @@ ;;; rnrs.scm --- The R6RS composite library -;; Copyright (C) 2010, 2011, 2019 Free Software Foundation, Inc. +;; Copyright (C) 2010, 2011, 2019, 2025 Free Software Foundation, Inc. ;; ;; This library is free software; you can redistribute it and/or ;; modify it under the terms of the GNU Lesser General Public @@ -235,14 +235,7 @@ ;; (rnrs syntax-case) - make-variable-transformer syntax - ;; Until the deprecated support for a unified modules and - ;; bindings namespace is removed, we need to manually resolve - ;; a conflict between two bindings: that of the (rnrs - ;; syntax-case) module, and the imported `syntax-case' - ;; binding. We do so here and below by renaming the macro - ;; import. - (rename (syntax-case-hack syntax-case)) + make-variable-transformer syntax syntax-case identifier? bound-identifier=? free-identifier=? syntax->datum datum->syntax generate-temporaries with-syntax quasisyntax unsyntax unsyntax-splicing syntax-violation @@ -283,7 +276,5 @@ (rnrs records procedural (6)) (rnrs records syntactic (6)) (rnrs sorting (6)) - ;; See note above on exporting syntax-case. - (rename (rnrs syntax-case (6)) - (syntax-case syntax-case-hack)) + (rnrs syntax-case (6)) (rnrs unicode (6)))) diff --git a/module/system/base/language.scm b/module/system/base/language.scm index cade9318a..0441792d0 100644 --- a/module/system/base/language.scm +++ b/module/system/base/language.scm @@ -1,6 +1,6 @@ ;;; Multi-language support -;; Copyright (C) 2001,2005,2008-2011,2013,2020 Free Software Foundation, Inc. +;; Copyright (C) 2001,2005,2008-2011,2013,2020,2025 Free Software Foundation, Inc. ;; This library is free software; you can redistribute it and/or ;; modify it under the terms of the GNU Lesser General Public @@ -65,12 +65,6 @@ (module-ref m name) (error "no such language" name)))) -(begin-deprecated - (define-public (invalidate-compilation-cache!) - (issue-deprecation-warning - "invalidate-compilation-cache is deprecated; recompile your modules") - (values))) - (define (compute-translation-order from to language-translators) (cond ((not (language? to)) @@ -97,13 +91,3 @@ "Return the default compilation environment for source language LANG." ((language-make-default-environment (if (language? lang) lang (lookup-language lang))))) - - - -;;; -;;; Current language -;;; - -;; Deprecated; use current-language instead. -(begin-deprecated - (define-public *current-language* (parameter-fluid current-language))) |