1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-09 21:40:33 +02:00

Evaluate the export' and re-export' forms at compile-time.

* module/ice-9/boot-9.scm (export, re-export): Evaluate at compile-time
  in addition to load/eval.

* test-suite/tests/tree-il.test ("warnings")["unused-toplevel"]("unused
  but define-public"): Remove throw to `unresolved'.
This commit is contained in:
Ludovic Courtès 2010-01-11 18:30:13 +01:00
parent 628ddb80aa
commit 411313403c
2 changed files with 9 additions and 11 deletions

View file

@ -1,6 +1,6 @@
;;; -*- mode: scheme; coding: utf-8; -*-
;;;; Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009
;;;; Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010
;;;; Free Software Foundation, Inc.
;;;;
;;;; This library is free software; you can redistribute it and/or
@ -3119,14 +3119,16 @@ module '(ice-9 q) '(make-q q-length))}."
names)))
(defmacro export names
`(call-with-deferred-observers
(lambda ()
(module-export! (current-module) ',names))))
`(eval-when (eval load compile)
(call-with-deferred-observers
(lambda ()
(module-export! (current-module) ',names)))))
(defmacro re-export names
`(call-with-deferred-observers
(lambda ()
(module-re-export! (current-module) ',names))))
`(eval-when (eval load compile)
(call-with-deferred-observers
(lambda ()
(module-re-export! (current-module) ',names)))))
(defmacro export-syntax names
`(export ,@names))

View file

@ -661,10 +661,6 @@
#:opts %opts-w-unused-toplevel))))))
(pass-if "unused but define-public"
;; FIXME: We don't handle this case for now because `define-public'
;; expands to a relatively complex statement that's hard to match.
(throw 'unresolved)
(null? (call-with-warnings
(lambda ()
(compile '(define-public foo 2)