1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-20 11:40:18 +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
** 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.]

View file

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

View file

@ -25,14 +25,18 @@
#:use-module (ice-9 threads)
#:use-module (ice-9 q)
#:use-module (srfi srfi-9)
#:use-module ((system repl repl)
#:select (start-repl* prompting-meta-read))
#:use-module ((system repl server)
#:select (run-server* make-tcp-server-socket
add-open-socket! close-socket!))
#:use-module ((system repl server) #:select (make-tcp-server-socket))
#:export (spawn-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>
(%make-coop-repl-server mutex queue)
coop-repl-server?