chicken-janitors
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Chicken-janitors] #1376: hide/block-global declaration doesn't hide exp


From: Chicken Trac
Subject: [Chicken-janitors] #1376: hide/block-global declaration doesn't hide exports
Date: Sun, 28 May 2017 07:32:52 -0000

#1376: hide/block-global declaration doesn't hide exports
----------------------+--------------------------------
 Reporter:  megane    |                 Owner:
     Type:  defect    |                Status:  new
 Priority:  major     |             Milestone:  someday
Component:  compiler  |               Version:
 Keywords:  modules   |  Estimated difficulty:
----------------------+--------------------------------
 My understanding is that hide should be the opposite of the export
 declaration.

 Here you can see both the macro `foo` and function `bar` get exported even
 when they are declared hidden:

 {{{#!scheme
 (module
  m1
  *
  (import chicken scheme)
  (define-syntax (foo a b c) 1)
  (define (bar) 2)

  (declare (hide foo bar)))

 (import m1)
 (print (bar))
 }}}

 {{{
 $ csc -J foo.scm && ./foo ; cat m1.import.scm
 2
 ;;;; m1.import.scm - GENERATED BY CHICKEN 4.12.0 -*- Scheme -*-

 (eval '(import chicken scheme))
 (##sys#register-compiled-module
   'm1
   (list)
   '((bar . m1#bar))
   (list (cons 'foo (##sys#er-transformer (##core#lambda (a b c) 1))))
   (list))

 ;; END OF FILE
 }}}

--
Ticket URL: <https://bugs.call-cc.org/ticket/1376>
CHICKEN Scheme <https://www.call-cc.org/>
CHICKEN Scheme is a compiler for the Scheme programming language.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]