From d39b967642e09cd82e52da23833df349dcfd7803 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 20 Feb 2009 17:12:47 +0100 Subject: [PATCH] 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'. --- module/ice-9/getopt-long.scm | 37 +++++++++++++++++++++++------------- 1 file 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) -(define (define-one-option-spec-field-modifier field) - `(define ,(symbol-append 'set-option-spec- field '!) ;;; name slib-compat - (record-modifier option-spec ',field))) + ;; 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))))) (defmacro define-all-option-spec-accessors/modifiers () `(begin