diff options
author | Ludovic Courtès <ludo@gnu.org> | 2009-02-20 17:12:47 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2009-02-20 17:12:47 +0100 |
commit | d39b967642e09cd82e52da23833df349dcfd7803 (patch) | |
tree | 9c61685f2595fab2c46b3f0b6016ff51fc850606 | |
parent | 6d77c6efa00e61355bdbab12f3d2ded53341b786 (diff) | |
download | guile-d39b967642e09cd82e52da23833df349dcfd7803.tar.gz |
Fix compilation of `(ice-9 getopt-long)'.
* module/ice-9/getopt-long.scm (option-spec-fields): Enclose in a
`(load-toplevel compile-toplevel)' `eval-case'.
(define-one-option-spec-field-accessor,
define-one-option-spec-field-modifier): Enclose in a
`compile-toplevel'-only `eval-case'.
-rw-r--r-- | module/ice-9/getopt-long.scm | 37 |
1 files changed, 24 insertions, 13 deletions
diff --git a/module/ice-9/getopt-long.scm b/module/ice-9/getopt-long.scm index 9e39e60c0..b1a9c7622 100644 --- a/module/ice-9/getopt-long.scm +++ b/module/ice-9/getopt-long.scm @@ -1,4 +1,4 @@ -;;; Copyright (C) 1998, 2001, 2006 Free Software Foundation, Inc. +;;; Copyright (C) 1998, 2001, 2006, 2009 Free Software Foundation, Inc. ;;; ;; This library is free software; you can redistribute it and/or ;; modify it under the terms of the GNU Lesser General Public @@ -160,23 +160,34 @@ :use-module ((ice-9 common-list) :select (some remove-if-not)) :export (getopt-long option-ref)) -(define option-spec-fields '(name - value - required? - single-char - predicate - value-policy)) +(eval-case + ((load-toplevel compile-toplevel) + + ;; This binding is used both at compile-time and run-time. + + (define option-spec-fields '(name + value + required? + single-char + predicate + value-policy)))) (define option-spec (make-record-type 'option-spec option-spec-fields)) (define make-option-spec (record-constructor option-spec option-spec-fields)) -(define (define-one-option-spec-field-accessor field) - `(define ,(symbol-append 'option-spec-> field) ;;; name slib-compat - (record-accessor option-spec ',field))) +(eval-case + ((compile-toplevel) + + ;; The following procedures are used only at compile-time when expanding + ;; `define-all-option-spec-accessors/modifiers' (see below). + + (define (define-one-option-spec-field-accessor field) + `(define ,(symbol-append 'option-spec-> field) ;;; name slib-compat + (record-accessor option-spec ',field))) -(define (define-one-option-spec-field-modifier field) - `(define ,(symbol-append 'set-option-spec- field '!) ;;; name slib-compat - (record-modifier option-spec ',field))) + (define (define-one-option-spec-field-modifier field) + `(define ,(symbol-append 'set-option-spec- field '!) ;;; name slib-compat + (record-modifier option-spec ',field))))) (defmacro define-all-option-spec-accessors/modifiers () `(begin |