From a4aa213486d907d4ff501cba97700ed17c5d46b8 Mon Sep 17 00:00:00 2001 From: Dirk Herrmann Date: Mon, 28 Apr 2003 06:05:10 +0000 Subject: [PATCH] * eval.c, goops.c (@dispatch, @slot-ref, @slot-set!): Move the instructions that bind the macros on the scheme level back to goops.c in order to make sure again that the bindings go into the (oop goops) module and are not visible from the outside. --- libguile/ChangeLog | 7 +++++++ libguile/eval.c | 19 +++++++++++++++---- libguile/goops.c | 10 +++++++++- 3 files changed, 31 insertions(+), 5 deletions(-) diff --git a/libguile/ChangeLog b/libguile/ChangeLog index bda9f2edd..d1e4f3ebd 100644 --- a/libguile/ChangeLog +++ b/libguile/ChangeLog @@ -1,3 +1,10 @@ +2003-04-28 Dirk Herrmann + + * eval.c, goops.c (@dispatch, @slot-ref, @slot-set!): Move the + instructions that bind the macros on the scheme level back to + goops.c in order to make sure again that the bindings go into the + (oop goops) module and are not visible from the outside. + 2003-04-27 Dirk Herrmann * eval.c: Non functional change: Separated R5RS and non-R5RS diff --git a/libguile/eval.c b/libguile/eval.c index 92eb2878a..8db89815e 100644 --- a/libguile/eval.c +++ b/libguile/eval.c @@ -1090,10 +1090,13 @@ scm_m_at_call_with_values (SCM xorig, SCM env SCM_UNUSED) } -SCM_SYNTAX (s_atdispatch, "@dispatch", scm_makmmacro, scm_m_atdispatch); - +static const char* s_atdispatch = "@dispatch"; SCM_SYMBOL (sym_atdispatch, s_atdispatch); +/* @slot-dispatch is bound privately in the (oop goops) module from goops.c. + * As soon as the module system allows us to more freely create bindings in + * arbitrary modules during the startup phase, the code from goops.c should be + * moved here. */ SCM scm_m_atdispatch (SCM xorig, SCM env) #define FUNC_NAME s_atdispatch @@ -1152,8 +1155,12 @@ scm_m_generalized_set_x (SCM xorig, SCM env SCM_UNUSED) } -SCM_SYNTAX (s_atslot_ref, "@slot-ref", scm_makmmacro, scm_m_atslot_ref); +static const char* s_atslot_ref = "@slot-ref"; +/* @slot-ref is bound privately in the (oop goops) module from goops.c. As + * soon as the module system allows us to more freely create bindings in + * arbitrary modules during the startup phase, the code from goops.c should be + * moved here. */ SCM scm_m_atslot_ref (SCM xorig, SCM env SCM_UNUSED) #define FUNC_NAME s_atslot_ref @@ -1166,8 +1173,12 @@ scm_m_atslot_ref (SCM xorig, SCM env SCM_UNUSED) #undef FUNC_NAME -SCM_SYNTAX (s_atslot_set_x, "@slot-set!", scm_makmmacro, scm_m_atslot_set_x); +static const char* s_atslot_set_x = "@slot-set!"; +/* @slot-set! is bound privately in the (oop goops) module from goops.c. As + * soon as the module system allows us to more freely create bindings in + * arbitrary modules during the startup phase, the code from goops.c should be + * moved here. */ SCM scm_m_atslot_set_x (SCM xorig, SCM env SCM_UNUSED) #define FUNC_NAME s_atslot_set_x diff --git a/libguile/goops.c b/libguile/goops.c index f271ef7ef..6c609615f 100644 --- a/libguile/goops.c +++ b/libguile/goops.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998,1999,2000,2001, 2002, 2003 Free Software Foundation, Inc. +/* Copyright (C) 1998,1999,2000,2001,2002,2003 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 @@ -1102,6 +1102,10 @@ SCM_DEFINE (scm_sys_fast_slot_set_x, "%fast-slot-set!", 3, 0, 0, #undef FUNC_NAME +SCM_SYNTAX (s_atslot_ref, "@slot-ref", scm_makmmacro, scm_m_atslot_ref); +SCM_SYNTAX (s_atslot_set_x, "@slot-set!", scm_makmmacro, scm_m_atslot_set_x); + + /** Utilities **/ /* In the future, this function will return the effective slot @@ -1614,6 +1618,10 @@ static SCM list_of_no_method; SCM_GLOBAL_SYMBOL (scm_sym_args, "args"); + +SCM_SYNTAX (s_atdispatch, "@dispatch", scm_makmmacro, scm_m_atdispatch); + + SCM scm_make_method_cache (SCM gf) {