GNU bug report logs -
#17418
#:select gives access to private variables
Previous Next
Reported by: ludo <at> gnu.org (Ludovic Courtès)
Date: Tue, 6 May 2014 08:49:02 UTC
Severity: normal
Done: Andy Wingo <wingo <at> pobox.com>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your bug report
#17418: #:select gives access to private variables
which was filed against the guile package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 17418 <at> debbugs.gnu.org.
--
17418: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=17418
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
On Wed 04 Jun 2014 01:11, Mark H Weaver <mhw <at> netris.org> writes:
> Mark H Weaver <mhw <at> netris.org> writes:
>> Sounds good. Specifically, I guess we should deprecate this way of
>> using #:select.
>>
>> If you do this, can you adjust system/repl/coop-server.scm to avoid it?
>> It imports the following private bindings:
>>
>> start-repl* run-server* add-open-socket! close-socket!
>
> Also: prompting-meta-read
Fixed in master.
Andy
[Message part 3 (message/rfc822, inline)]
Consider this module:
--8<---------------cut here---------------start------------->8---
(define-module (t))
(define private #t)
--8<---------------cut here---------------end--------------->8---
And now:
--8<---------------cut here---------------start------------->8---
[ludo <at> pluto:~/src/guix]$ guile -L .
GNU Guile 2.0.11.20-4338f
Copyright (C) 1995-2014 Free Software Foundation, Inc.
Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.
Enter `,help' for help.
scheme@(guile-user)> (use-modules (t))
;;; note: source file ./t.scm
;;; newer than compiled /home/ludo/.cache/guile/ccache/2.0-LE-8-2.0/home/ludo/src/guix/t.scm.go
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;; or pass the --no-auto-compile argument to disable.
;;; compiling ./t.scm
;;; compiled /home/ludo/.cache/guile/ccache/2.0-LE-8-2.0/home/ludo/src/guix/t.scm.go
scheme@(guile-user)> private
;;; <unknown-location>: warning: possibly unbound variable `private'
ERROR: In procedure #<procedure 1e532a0 ()>:
ERROR: In procedure module-lookup: Unbound variable: private
Entering a new prompt. Type `,bt' for a backtrace or `,q' to continue.
scheme@(guile-user) [1]>
--8<---------------cut here---------------end--------------->8---
This is as expected.
But adding #:select (private) gives access to ‘private’:
--8<---------------cut here---------------end--------------->8---
[ludo <at> pluto:~/src/guix]$ guile -L .
GNU Guile 2.0.11.20-4338f
Copyright (C) 1995-2014 Free Software Foundation, Inc.
Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.
Enter `,help' for help.
scheme@(guile-user)> (use-modules ((t) #:select (private)))
scheme@(guile-user)> private
$1 = #t
--8<---------------cut here---------------end--------------->8---
Ludo’.
This bug report was last modified 9 years and 64 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.