GNU bug report logs - #17418
#:select gives access to private variables

Previous Next

Package: guile;

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

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: ludo <at> gnu.org (Ludovic Courtès)
Subject: bug#17418: closed (Re: bug#17418: #:select gives access to
 private variables)
Date: Tue, 21 Jun 2016 14:04:02 +0000
[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)]
From: Andy Wingo <wingo <at> pobox.com>
To: Mark H Weaver <mhw <at> netris.org>
Cc: Ludovic Courtès <ludo <at> gnu.org>, 17418-done <at> debbugs.gnu.org
Subject: Re: bug#17418: #:select gives access to private variables
Date: Tue, 21 Jun 2016 16:03:24 +0200
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)]
From: ludo <at> gnu.org (Ludovic Courtès)
To: bug-guile <at> gnu.org
Subject: #:select gives access to private variables
Date: Tue, 06 May 2014 10:48:17 +0200
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.