1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-22 12:30:32 +02:00

Importing modules with #:select no longer grovels private bindings

* module/ice-9/boot-9.scm (resolve-interface): Don't look in private
  interface for #:select bindings.  Fixes #17418.
* module/system/repl/coop-server.scm: Don't rely on bad #:select
  behavior.
* NEWS: Add entry.
This commit is contained in:
Andy Wingo 2016-06-21 16:01:50 +02:00
parent bcc3c6b61b
commit d0d14f410d
3 changed files with 14 additions and 6 deletions

5
NEWS
View file

@ -10,6 +10,11 @@ Changes in 2.1.4 (changes since the 2.1.3 alpha release):
* Bug fixes * Bug fixes
** Don't replace + with space when splitting and decoding URI paths ** Don't replace + with space when splitting and decoding URI paths
** Fix bug importing specific bindings with #:select
It used to be that if #:select didn't find a binding in the public
interface of a module, it would actually grovel in the module's
unexported private bindings. This was not intended and is now fixed.
[TODO: Fold into generic 2.2 release notes.] [TODO: Fold into generic 2.2 release notes.]

View file

@ -2798,7 +2798,6 @@ written into the port is returned."
(orig (if direct? bspec (car bspec))) (orig (if direct? bspec (car bspec)))
(seen (if direct? bspec (cdr bspec))) (seen (if direct? bspec (cdr bspec)))
(var (or (module-local-variable public-i orig) (var (or (module-local-variable public-i orig)
(module-local-variable module orig)
(error (error
;; fixme: format manually for now ;; fixme: format manually for now
(simple-format (simple-format

View file

@ -25,14 +25,18 @@
#:use-module (ice-9 threads) #:use-module (ice-9 threads)
#:use-module (ice-9 q) #:use-module (ice-9 q)
#:use-module (srfi srfi-9) #:use-module (srfi srfi-9)
#:use-module ((system repl repl) #:use-module ((system repl server) #:select (make-tcp-server-socket))
#:select (start-repl* prompting-meta-read))
#:use-module ((system repl server)
#:select (run-server* make-tcp-server-socket
add-open-socket! close-socket!))
#:export (spawn-coop-repl-server #:export (spawn-coop-repl-server
poll-coop-repl-server)) poll-coop-repl-server))
;; Hack to import private bindings from (system repl repl).
(define-syntax-rule (import-private module sym ...)
(begin
(define sym (@@ module sym))
...))
(import-private (system repl repl) start-repl* prompting-meta-read)
(import-private (system repl server) run-server* add-open-socket! close-socket!)
(define-record-type <coop-repl-server> (define-record-type <coop-repl-server>
(%make-coop-repl-server mutex queue) (%make-coop-repl-server mutex queue)
coop-repl-server? coop-repl-server?