1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-14 15:40:19 +02:00

Associate #:replace info with modules, not variables

* doc/ref/api-modules.texi (Creating Guile Modules): Document
  #:re-export-and-replace.
* module/ice-9/boot-9.scm (module-replacements): New module field.
  (make-module, make-autoload-interface): Initialize replacements to an
  empty hash table.
  (resolve-interface): Propagate replacement info when making custom
  interfaces.
  (define-module): Parse a #:re-export-and-replace keyword arg.
  (define-module*): Handle #:re-export-and-replace.
  (module-export!, module-re-export!): Add a keyword arg to indicate
  whether to replace or not.
  (module-replace!): Call module-export! with #:replace? #t.
  (duplicate-handlers): Update replace duplicate handler to look for
  replacement info on the interfaces.
* module/srfi/srfi-18.scm (srfi):
* module/srfi/srfi-34.scm (srfi): Update to #:re-export-and-replace
  raise-continuable as raise.
This commit is contained in:
Andy Wingo 2019-11-29 11:51:29 +01:00
parent 8304b15807
commit cf08dbdc18
4 changed files with 72 additions and 60 deletions

View file

@ -1,6 +1,6 @@
;;; srfi-34.scm --- Exception handling for programs
;; Copyright (C) 2003, 2006, 2008, 2010 Free Software Foundation, Inc.
;; Copyright (C) 2003, 2006, 2008, 2010, 2019 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
@ -29,6 +29,7 @@
(define-module (srfi srfi-34)
#:re-export (with-exception-handler
(raise-exception . raise))
#:re-export-and-replace ((raise-exception . raise))
#:export-syntax (guard))
(cond-expand-provide (current-module) '(srfi-34))