guile-commits
[Top][All Lists]
Advanced

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

[Guile-commits] GNU Guile branch, master, updated. ce471ab8b083a345af0f4


From: Andy Wingo
Subject: [Guile-commits] GNU Guile branch, master, updated. ce471ab8b083a345af0f49e08f51f22dbfe58efe
Date: Fri, 19 Jun 2009 09:20:25 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Guile".

http://git.savannah.gnu.org/cgit/guile.git/commit/?id=ce471ab8b083a345af0f49e08f51f22dbfe58efe

The branch, master has been updated
       via  ce471ab8b083a345af0f49e08f51f22dbfe58efe (commit)
       via  96b73e84bbb6d88c73a99bf46450642d79612be0 (commit)
      from  159399850de811f23e45d439aecf452b0137d847 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit ce471ab8b083a345af0f49e08f51f22dbfe58efe
Author: Andy Wingo <address@hidden>
Date:   Fri Jun 19 11:20:34 2009 +0200

    rename SCM_SNAME to SCM_SUBR_NAME
    
    * libguile/procs.h: Rename SCM_SNAME to SCM_SUBR_NAME.
    
    * libguile/debug.c:
    * libguile/eval.c:
    * libguile/eval.i.c:
    * libguile/goops.c:
    * libguile/gsubr.c:
    * libguile/print.c:
    * libguile/procs.c: Update callers.

commit 96b73e84bbb6d88c73a99bf46450642d79612be0
Author: Andy Wingo <address@hidden>
Date:   Fri Jun 19 11:19:34 2009 +0200

    another draft of NEWS
    
    * NEWS: Another draft.

-----------------------------------------------------------------------

Summary of changes:
 NEWS              |  479 +++++++++++++++++++++++++++++------------------------
 libguile/debug.c  |    2 +-
 libguile/eval.c   |    2 +-
 libguile/eval.i.c |    4 +-
 libguile/goops.c  |    4 +-
 libguile/gsubr.c  |   14 +-
 libguile/print.c  |    2 +-
 libguile/procs.c  |    6 +-
 libguile/procs.h  |    2 +-
 9 files changed, 277 insertions(+), 238 deletions(-)

diff --git a/NEWS b/NEWS
index 303caea..1418555 100644
--- a/NEWS
+++ b/NEWS
@@ -5,7 +5,21 @@ See the end for copying conditions.
 Please send Guile bug reports to address@hidden
 
 
-Changes in 1.9.1 (changes since the 1.8.x series):
+Changes in 1.9.0 (changes since the 1.8.x series):
+
+* New modules (see the manual for details)
+
+** `(srfi srfi-18)', more sophisticated multithreading support
+** `(ice-9 i18n)', internationalization support
+** `(rnrs bytevector)', the R6RS bytevector API
+** `(system xref)', a cross-referencing facility (FIXME undocumented)
+
+* Changes to the stand-alone interpreter
+
+** Guile now can compile Scheme to bytecode for a custom virtual machine.
+
+Compiled code loads much faster than Scheme source code, and runs around
+3 or 4 times as fast, generating much less garbage in the process.
 
 ** The stack limit is now initialized from the environment.
 
@@ -13,11 +27,31 @@ If getrlimit(2) is available and a stack limit is set, 
Guile will set
 its stack limit to 80% of the rlimit. Otherwise the limit is 160000
 words, a four-fold increase from the earlier default limit.
 
-** Fix bad interaction between `false-if-exception' and stack-call.
+** New environment variables: GUILE_LOAD_COMPILED_PATH,
+   GUILE_SYSTEM_LOAD_COMPILED_PATH
 
-Exceptions thrown by `false-if-exception' were erronously causing the
-stack to be saved, causing later errors to show the incorrectly-saved
-backtrace. This has been fixed.
+GUILE_LOAD_COMPILED_PATH is for compiled files what GUILE_LOAD_PATH is
+for source files. It is a different path, however, because compiled
+files are architecture-specific. GUILE_SYSTEM_LOAD_COMPILED_PATH is like
+GUILE_SYSTEM_PATH.
+
+** New read-eval-print loop (REPL) implementation
+
+Running Guile with no arguments drops the user into the new REPL. While
+it is self-documenting to an extent, the new REPL has not yet been
+documented in the manual. This will be fixed before 2.0.
+
+** New `guile-tools' commands: `compile', `disassemble'
+
+Pass the --help command-line option to these commands for more
+information.
+
+* Changes to Scheme functions and syntax
+
+** Procedure removed: `the-environment'
+
+This procedure was part of the interpreter's execution model, and does
+not apply to the compiler.
 
 ** Files loaded with primitive-load-path will now be compiled
    automatically.
@@ -38,30 +72,191 @@ ccache's behavior for C files.
 To inhibit autocompilation, set the GUILE_AUTO_COMPILE environment
 variable to 0, or pass --no-autocompile on the Guile command line.
 
-** New environment variables: GUILE_LOAD_COMPILED_PATH,
-   GUILE_SYSTEM_LOAD_COMPILED_PATH
+Note that there is currently a bug here: automatic compilation will
+sometimes be attempted when it shouldn't.
 
-GUILE_LOAD_COMPILED_PATH is for compiled files what GUILE_LOAD_PATH is
-for source files. It is a different path, however, because compiled
-files are architecture-specific. GUILE_SYSTEM_LOAD_COMPILED_PATH is like
-GUILE_SYSTEM_PATH.
+For example, the old (lang elisp) modules are meant to be interpreted,
+not compiled. This bug will be fixed before 2.0. FIXME 2.0: Should say
+something here about module-transformer called for compile.
 
-** New global variables: %load-compiled-path, %load-compiled-extensions
+** New POSIX procedures: `getrlimit' and `setrlimit'
 
-These are analogous to %load-path and %load-extensions.
+Note however that the interface of these functions is likely to change
+in the next prerelease.
 
-** New installation directory: $(pkglibdir)/1.9/ccache
+** New procedure in `(oops goops)': `method-formals'
 
-If $(libdir) is /usr/lib, for example, Guile will install its .go files
-to /usr/lib/guile/1.9/ccache. These files are architecture-specific.
+** BUG: (procedure-property func 'arity) does not work on compiled
+   procedures
 
-** scm_primitive_load_path has additional argument, exception_on_error
+This will be fixed one way or another before 2.0.
 
-** scm_stat has additional argument, exception_on_error
+** New procedures in (ice-9 session): `add-value-help-handler!',
+   `remove-value-help-handler!', `add-name-help-handler!'
+   `remove-name-help-handler!', `procedure-arguments',
 
-** New entry into %guile-build-info: `ccachedir'
+The value and name help handlers provide some minimal extensibility to
+the help interface. Guile-lib's `(texinfo reflection)' uses them, for
+example, to make stexinfo help documentation available. See those
+procedures' docstrings for more information.
+
+`procedure-arguments' describes the arguments that a procedure can take,
+combining arity and formals. For example:
+
+  (procedure-arguments resolve-interface)
+  => ((required . (name)) (rest . args))
 
-Probably should be removed?
+Additionally, `module-commentary' is now publically exported from
+`(ice-9 session).
+
+** Deprecated: `procedure->memoizing-macro', `procedure->syntax'
+
+These procedures will not work with syncase expansion, and indeed are
+not used in the normal course of Guile. They are still used by the old
+Emacs Lisp support, however.
+
+** New language: ECMAScript
+
+Guile now ships with one other high-level language supported,
+ECMAScript. The goal is to support all of version 3.1 of the standard,
+but not all of the libraries are there yet. This support is not yet
+documented; ask on the mailing list if you are interested.
+
+** Defmacros may now have docstrings.
+
+Indeed, any macro may have a docstring. `object-documentation' from
+`(ice-9 documentation)' may be used to retrieve the docstring, once you
+have a macro value -- but see the above note about first-class macros.
+Docstrings are associated with the syntax transformer procedures.
+
+** The psyntax expander now knows how to interpret the @ and @@ special
+   forms.
+
+** The psyntax expander is now hygienic with respect to modules.
+
+Free variables in a macro are scoped in the module that the macro was
+defined in, not in the module the macro is used in. For example, code
+like this works now:
+
+   (define-module (foo) #:export (bar))
+   (define (helper x) ...)
+   (define-syntax bar
+     (syntax-rules () ((_ x) (helper x))))
+
+   (define-module (baz) #:use-module (foo))
+   (bar qux)
+
+It used to be you had to export `helper' from `(foo)' as well.
+Thankfully, this has been fixed.
+
+** New function, `procedure-module'
+
+While useful on its own, `procedure-module' is used by psyntax on syntax
+transformers to determine the module in which to scope introduced
+identifiers.
+
+** `eval-case' has been deprecated, and replaced by `eval-when'.
+
+The semantics of `eval-when' are easier to understand. It is still
+missing documentation, however.
+
+** Guile is now more strict about prohibiting definitions in expression
+   contexts.
+
+Although previous versions of Guile accepted it, the following
+expression is not valid, in R5RS or R6RS:
+
+  (if test (define foo 'bar) (define foo 'baz))
+
+In this specific case, it would be better to do:
+
+  (define foo (if test 'bar 'baz))
+
+It is certainly possible to circumvent this resriction with e.g.
+`(module-define! (current-module) 'foo 'baz)'. We would appreciate
+feedback about this change (a consequence of using psyntax as the
+default expander), and may choose to revisit this situation before 2.0
+in response to user feedback.
+
+** Defmacros must now produce valid Scheme expressions.
+
+It used to be that defmacros could unquote in Scheme values, as a way of
+supporting partial evaluation, and avoiding some hygiene issues. For
+example:
+
+  (define (helper x) ...)
+  (define-macro (foo bar)
+    `(,helper ,bar))
+
+Assuming this macro is in the `(baz)' module, the direct translation of
+this code would be:
+
+  (define (helper x) ...)
+  (define-macro (foo bar)
+    `((@@ (baz) helper) ,bar))
+
+Of course, one could just use a hygienic macro instead:
+
+  (define-syntax foo
+    (syntax-rules ()
+      ((_ bar) (helper bar))))
+
+** Guile's psyntax now supports docstrings and internal definitions.
+
+The following Scheme is not strictly legal:
+
+  (define (foo)
+    "bar"
+    (define (baz) ...)
+    (baz))
+
+However its intent is fairly clear. Guile interprets "bar" to be the
+docstring of `foo', and the definition of `baz' is still in definition
+context.
+
+** Macros need to be defined before their first use.
+
+It used to be that with lazy memoization, this might work:
+
+  (define (foo x)
+    (ref x))
+  (define-macro (ref x) x)
+  (foo 1) => 1
+
+But now, the body of `foo' is interpreted to mean a call to the toplevel
+`ref' function, instead of a macro expansion. The solution is to define
+macros before code that uses them.
+
+** Functions needed by macros at expand-time need to be present at
+   expand-time.
+
+For example, this code will work at the REPL:
+
+  (define (double-helper x) (* x x))
+  (define-macro (double-literal x) (double-helper x))
+  (double-literal 2) => 4
+
+But it will not work when a file is compiled, because the definition of
+`double-helper' is not present at expand-time. The solution is to wrap
+the definition of `double-helper' in `eval-when':
+
+  (eval-when (load compile eval)
+    (define (double-helper x) (* x x)))
+  (define-macro (double-literal x) (double-helper x))
+  (double-literal 2) => 4
+
+See the (currently missing) documentation for eval-when for more
+information.
+
+** New variable, %pre-modules-transformer
+
+Need to document this one some more.
+
+** Temporarily removed functions: `macroexpand', `macroexpand-1'
+
+`macroexpand' will be added back before 2.0. It is unclear how to
+implement `macroexpand-1' with syntax-case, though PLT Scheme does prove
+that it is possible.
 
 ** New reader macros: #' #` #, #,@
 
@@ -253,211 +448,61 @@ XXX Need to decide whether to document this for 2.0, 
probably should:
 make-syncase-macro, make-extended-syncase-macro, macro-type,
 syncase-macro-type, syncase-macro-binding
 
-** `(ice-9 syncase)' has been deprecated.
-
-As syntax-case is available by default, importing `(ice-9 syncase)' has
-no effect, and will trigger a deprecation warning.
-
-** Fix bug in `module-bound?'.
-
-`module-bound?' was returning true if a module did have a local
-variable, but one that was unbound, but another imported module bound
-the variable. This was an error, and was fixed.
-
-** BUG: Automatic compilation will be attempted when it shouldn't.
-
-For example, the old (lang elisp) modules are meant to be interpreted,
-not compiled. This bug will be fixed before 2.0. FIXME 2.0: Should say
-something here about module-transformer called for compile.
-
-** Defmacros may now have docstrings.
-
-Indeed, any macro may have a docstring. `object-documentation' from
-`(ice-9 documentation)' may be used to retrieve the docstring, once you
-have a macro value -- but see the above note about first-class macros.
-Docstrings are associated with the syntax transformer procedures.
-
-** `eval-case' has been deprecated, and replaced by `eval-when'.
-
-The semantics of `eval-when' are easier to understand. It is still
-missing documentation, however.
-
-** Guile is now more strict about prohibiting definitions in expression
-   contexts.
-
-Although previous versions of Guile accepted it, the following
-expression is not valid, in R5RS or R6RS:
-
-  (if test (define foo 'bar) (define foo 'baz))
-
-In this specific case, it would be better to do:
-
-  (define foo (if test 'bar 'baz))
-
-It is certainly possible to circumvent this resriction with e.g.
-`(module-define! (current-module) 'foo 'baz)'. We would appreciate
-feedback about this change (a consequence of using psyntax as the
-default expander), and may choose to revisit this situation before 2.0
-in response to user feedback.
-
-** Defmacros must now produce valid Scheme expressions.
-
-It used to be that defmacros could unquote in Scheme values, as a way of
-supporting partial evaluation, and avoiding some hygiene issues. For
-example:
-
-  (define (helper x) ...)
-  (define-macro (foo bar)
-    `(,helper ,bar))
-
-Assuming this macro is in the `(baz)' module, the direct translation of
-this code would be:
-
-  (define (helper x) ...)
-  (define-macro (foo bar)
-    `((@@ (baz) helper) ,bar))
-
-Of course, one could just use a hygienic macro instead:
-
-  (define-syntax foo
-    (syntax-rules ()
-      ((_ bar) (helper bar))))
-
-** Guile's psyntax now supports docstrings and internal definitions.
-
-The following Scheme is not strictly legal:
-
-  (define (foo)
-    "bar"
-    (define (baz) ...)
-    (baz))
-
-However its intent is fairly clear. Guile interprets "bar" to be the
-docstring of `foo', and the definition of `baz' is still in definition
-context.
-
-** Macros need to be defined before their first use.
-
-It used to be that with lazy memoization, this might work:
-
-  (define (foo x)
-    (ref x))
-  (define-macro (ref x) x)
-  (foo 1) => 1
-
-But now, the body of `foo' is interpreted to mean a call to the toplevel
-`ref' function, instead of a macro expansion. The solution is to define
-macros before code that uses them.
-
-** Functions needed by macros at expand-time need to be present at
-   expand-time.
-
-For example, this code will work at the REPL:
-
-  (define (double-helper x) (* x x))
-  (define-macro (double-literal x) (double-helper x))
-  (double-literal 2) => 4
-
-But it will not work when a file is compiled, because the definition of
-`double-helper' is not present at expand-time. The solution is to wrap
-the definition of `double-helper' in `eval-when':
-
-  (eval-when (load compile eval)
-    (define (double-helper x) (* x x)))
-  (define-macro (double-literal x) (double-helper x))
-  (double-literal 2) => 4
-
-See the (currently missing) documentation for eval-when for more
-information.
-
-** New variable, %pre-modules-transformer
-
-Need to document this one some more.
-
-** Temporarily removed functions: `macroexpand', `macroexpand-1'
-
-`macroexpand' will be added back before 2.0. It is unclear how to
-implement `macroexpand-1' with syntax-case, though PLT Scheme does prove
-that it is possible.
-
-** New module: (rnrs bytevector)
-
-See the R6RS for more information.
-
-** New dependency: GNU libunistring.
-
-
-FIXME bytevectors.
-
-FIXME unistring.
-
-more robust threading support.
-
-syncase knows about @/@@
-
-macros and hygiene and modules
-
-eval-closure-module? what?
-
-procedure-module / scm_procedure_module
-
-guile-config info sitedir change -- 922d369
-
-guile-config and pkg-config
-
-(system xref), procedure-callers, procedure-callees, can work as
-variables get redefined
+** A new 'memoize-symbol evaluator trap has been added.  This trap can
+be used for efficiently implementing a Scheme code coverage.
 
-getrlimit and setrlimit wrappers
+** Duplicate bindings among used modules are resolved lazily.
+This slightly improves program startup times.
 
-FIXME: getrlimit crazy namespaces...
+** New thread cancellation and thread cleanup API
+See `cancel-thread', `set-thread-cleanup!', and `thread-cleanup'.
 
-add method-formals
+** Fix bad interaction between `false-if-exception' and stack-call.
 
-BUG? procedure-property 'arity on compiled procedures will be wrong
+Exceptions thrown by `false-if-exception' were erronously causing the
+stack to be saved, causing later errors to show the incorrectly-saved
+backtrace. This has been fixed.
 
-BUG: SCM_SNAME -> SCM_SUBR_NAME
+** New global variables: %load-compiled-path, %load-compiled-extensions
 
-(ice-9 session):
-add-value-help-handler! remove-value-help-handler!
-add-name-help-handler! remove-name-help-handler!
-export module-commentary
-procedure-arguments
+These are analogous to %load-path and %load-extensions.
 
-procedure->memoizing-macro, procedure->syntax totally superdeprecated?
+** New procedure, `make-promise'
 
-FIXME: update copyrights
+`(make-promise (lambda () foo))' is equivalent to `(delay foo)'.
 
-ecmascript support?
+** New entry into %guile-build-info: `ccachedir'
 
-new repl...
+** Fix bug in `module-bound?'.
 
-guile-tools compile, guile-tools disassemble (does that work?)
+`module-bound?' was returning true if a module did have a local
+variable, but one that was unbound, but another imported module bound
+the variable. This was an error, and was fixed.
 
-BUG: stack walks to see number of frames, then fills those frames.
-sometimes those numbers differ, warning to console, a test case would be
-nice.
+** `(ice-9 syncase)' has been deprecated.
 
-FIXME: dance disassembly bug
+As syntax-case is available by default, importing `(ice-9 syncase)' has
+no effect, and will trigger a deprecation warning.
 
-srfi-18
+* Changes to the C interface
 
-<method> has formals, body slots; (make-procedure & procedure ?)
+** The GH interface (deprecated in version 1.6, 2001) was removed.
 
-FIXME: rewrite while
+** Internal `scm_i_' functions now have "hidden" linkage with GCC/ELF
 
-removed (the-environment)
+This makes these internal functions technically not callable from
+application code.
 
-new function: scm_module_public_interface
+** Functions for handling `scm_option' now no longer require an argument
+indicating length of the `scm_t_option' array.
 
-BUG: help at guile prompt
+** scm_primitive_load_path has additional argument, exception_on_error
 
-new procedure, make-promise
+** New C function: scm_module_public_interface
 
-* New modules (see the manual for details)
+This procedure corresponds to Scheme's `module-public-interface'.
 
-** `(srfi srfi-18)', multithreading support
-** The `(ice-9 i18n)' module provides internationalization support
+** scm_stat has additional argument, exception_on_error
 
 * Changes to the distribution
 
@@ -467,29 +512,23 @@ In other words the GNU Lesser General Public License, 
version 3 or
 later (at the discretion of each person that chooses to redistribute
 part of Guile).
 
-* Changes to the stand-alone interpreter
-* Changes to Scheme functions and syntax
-
-** A new 'memoize-symbol evaluator trap has been added.  This trap can
-be used for efficiently implementing a Scheme code coverage.
+** `guile-config' will be deprecated in favor of `pkg-config'
 
-** Duplicate bindings among used modules are resolved lazily.
-This slightly improves program startup times.
-
-** New thread cancellation and thread cleanup API
-See `cancel-thread', `set-thread-cleanup!', and `thread-cleanup'.
+`guile-config' has been rewritten to get its information from
+pkg-config, so this should be a transparent change. Note however that
+guile.m4 has yet to be modified to call pkg-config instead of
+guile-config.
 
-* Changes to the C interface
+** New installation directory: $(pkglibdir)/1.9/ccache
 
-** The GH interface (deprecated in version 1.6, 2001) was removed.
+If $(libdir) is /usr/lib, for example, Guile will install its .go files
+to /usr/lib/guile/1.9/ccache. These files are architecture-specific.
 
-** Internal `scm_i_' functions now have "hidden" linkage with GCC/ELF
+** New dependency: GNU libunistring.
 
-This makes these internal functions technically not callable from
-application code.
+See http://www.gnu.org/software/libunistring/. We hope to merge in
+Unicode support in the next prerelease.
 
-** Functions for handling `scm_option' now no longer require an argument
-indicating length of the `scm_t_option' array.
 
 
 Changes in 1.8.7 (since 1.8.6)
diff --git a/libguile/debug.c b/libguile/debug.c
index 6e148ab..71278c5 100644
--- a/libguile/debug.c
+++ b/libguile/debug.c
@@ -309,7 +309,7 @@ SCM_DEFINE (scm_procedure_name, "procedure-name", 1, 0, 0,
   SCM_VALIDATE_PROC (1, proc);
   switch (SCM_TYP7 (proc)) {
   case scm_tcs_subrs:
-    return SCM_SNAME (proc);
+    return SCM_SUBR_NAME (proc);
   default:
     {
       SCM name = scm_procedure_property (proc, scm_sym_name);
diff --git a/libguile/eval.c b/libguile/eval.c
index a2e11ee..f7f3f27 100644
--- a/libguile/eval.c
+++ b/libguile/eval.c
@@ -3397,7 +3397,7 @@ call_dsubr_1 (SCM proc, SCM arg1)
       return (scm_from_double (SCM_DSUBRF (proc) (scm_i_fraction2double 
(arg1))));
     }
   SCM_WTA_DISPATCH_1 (*SCM_SUBR_GENERIC (proc), arg1,
-                     SCM_ARG1, scm_i_symbol_chars (SCM_SNAME (proc)));
+                     SCM_ARG1, scm_i_symbol_chars (SCM_SUBR_NAME (proc)));
 }
 
 static SCM
diff --git a/libguile/eval.i.c b/libguile/eval.i.c
index 37fb7c7..99aa265 100644
--- a/libguile/eval.i.c
+++ b/libguile/eval.i.c
@@ -1238,7 +1238,7 @@ dispatch:
              }
            SCM_WTA_DISPATCH_1 (*SCM_SUBR_GENERIC (proc), arg1,
                                 SCM_ARG1,
-                               scm_i_symbol_chars (SCM_SNAME (proc)));
+                               scm_i_symbol_chars (SCM_SUBR_NAME (proc)));
          case scm_tc7_cxr:
            RETURN (scm_i_chase_pairs (arg1, (scm_t_bits) SCM_SUBRF (proc)));
          case scm_tc7_rpsubr:
@@ -1765,7 +1765,7 @@ tail:
          RETURN (scm_from_double (SCM_DSUBRF (proc) (scm_i_fraction2double 
(arg1))));
        }
       SCM_WTA_DISPATCH_1 (*SCM_SUBR_GENERIC (proc), arg1,
-                          SCM_ARG1, scm_i_symbol_chars (SCM_SNAME (proc)));
+                          SCM_ARG1, scm_i_symbol_chars (SCM_SUBR_NAME (proc)));
     case scm_tc7_cxr:
       if (SCM_UNLIKELY (SCM_UNBNDP (arg1) || !scm_is_null (args)))
        scm_wrong_num_args (proc);
diff --git a/libguile/goops.c b/libguile/goops.c
index f552b9e..1548472 100644
--- a/libguile/goops.c
+++ b/libguile/goops.c
@@ -1862,7 +1862,7 @@ SCM_DEFINE (scm_enable_primitive_generic_x, 
"enable-primitive-generic!", 0, 0, 1
       *SCM_SUBR_GENERIC (subr)
        = scm_make (scm_list_3 (scm_class_generic,
                                k_name,
-                               SCM_SNAME (subr)));
+                               SCM_SUBR_NAME (subr)));
       subrs = SCM_CDR (subrs);
     }
   return SCM_UNSPECIFIED;
@@ -1905,7 +1905,7 @@ scm_c_extend_primitive_generic (SCM extended, SCM 
extension)
       gf = *SCM_SUBR_GENERIC (extended);
       gext = scm_call_2 (SCM_VARIABLE_REF (scm_var_make_extended_generic),
                         gf,
-                        SCM_SNAME (extension));
+                        SCM_SUBR_NAME (extension));
       SCM_SET_SUBR_GENERIC (extension, gext);
     }
   else
diff --git a/libguile/gsubr.c b/libguile/gsubr.c
index 0fee71a..3b73155 100644
--- a/libguile/gsubr.c
+++ b/libguile/gsubr.c
@@ -94,7 +94,7 @@ create_gsubr (int define, const char *name,
     }
 
   if (define)
-    scm_define (SCM_SNAME (subr), subr);
+    scm_define (SCM_SUBR_NAME (subr), subr);
 
   return subr;
 }
@@ -149,7 +149,7 @@ create_gsubr_with_generic (int define,
       subr = scm_c_make_subr_with_generic (name, scm_tc7_lsubr_2, fcn, gf);
     create_subr:
       if (define)
-       scm_define (SCM_SNAME (subr), subr);
+       scm_define (SCM_SUBR_NAME (subr), subr);
       return subr;
     default:
       ;
@@ -196,7 +196,7 @@ gsubr_apply_raw (SCM proc, unsigned int argc, const SCM 
*argv)
 
   if (SCM_UNLIKELY (argc != argc_max))
     /* We expect the exact argument count.  */
-    scm_wrong_num_args (SCM_SNAME (proc));
+    scm_wrong_num_args (SCM_SUBR_NAME (proc));
 
   fcn = SCM_SUBRF (proc);
 
@@ -229,7 +229,7 @@ gsubr_apply_raw (SCM proc, unsigned int argc, const SCM 
*argv)
       return (*fcn) (argv[0], argv[1], argv[2], argv[3], argv[4], argv[5],
                     argv[6], argv[7], argv[8], argv[9]);
     default:
-      scm_misc_error ((char *) SCM_SNAME (proc),
+      scm_misc_error ((char *) SCM_SUBR_NAME (proc),
                      "gsubr invocation with more than 10 arguments not 
implemented",
                      SCM_EOL);
     }
@@ -258,7 +258,7 @@ scm_i_gsubr_apply (SCM proc, SCM arg, ...)
     argv[argc] = arg;
 
   if (SCM_UNLIKELY (argc < SCM_GSUBR_REQ (type)))
-    scm_wrong_num_args (SCM_SNAME (proc));
+    scm_wrong_num_args (SCM_SUBR_NAME (proc));
 
   /* Fill in optional arguments that were not passed.  */
   while (argc < argc_max)
@@ -296,7 +296,7 @@ scm_i_gsubr_apply_list (SCM self, SCM args)
 
   for (i = 0; i < SCM_GSUBR_REQ (typ); i++) {
     if (scm_is_null (args))
-      scm_wrong_num_args (SCM_SNAME (self));
+      scm_wrong_num_args (SCM_SUBR_NAME (self));
     v[i] = SCM_CAR(args);
     args = SCM_CDR(args);
   }
@@ -311,7 +311,7 @@ scm_i_gsubr_apply_list (SCM self, SCM args)
   if (SCM_GSUBR_REST(typ))
     v[i] = args;
   else if (!scm_is_null (args))
-    scm_wrong_num_args (SCM_SNAME (self));
+    scm_wrong_num_args (SCM_SUBR_NAME (self));
 
   return gsubr_apply_raw (self, n, v);
 }
diff --git a/libguile/print.c b/libguile/print.c
index 3992bc4..6c44d59 100644
--- a/libguile/print.c
+++ b/libguile/print.c
@@ -655,7 +655,7 @@ iprin1 (SCM exp, SCM port, scm_print_state *pstate)
                    ? "#<primitive-generic "
                    : "#<primitive-procedure ",
                    port);
-         scm_puts (scm_i_symbol_chars (SCM_SNAME (exp)), port);
+         scm_puts (scm_i_symbol_chars (SCM_SUBR_NAME (exp)), port);
          scm_putc ('>', port);
          break;
 
diff --git a/libguile/procs.c b/libguile/procs.c
index 3eb9c24..93e35ab 100644
--- a/libguile/procs.c
+++ b/libguile/procs.c
@@ -66,7 +66,7 @@ SCM
 scm_c_define_subr (const char *name, long type, SCM (*fcn) ())
 {
   SCM subr = scm_c_make_subr (name, type, fcn);
-  scm_define (SCM_SNAME (subr), subr);
+  scm_define (SCM_SUBR_NAME (subr), subr);
   return subr;
 }
 
@@ -93,7 +93,7 @@ scm_c_define_subr_with_generic (const char *name,
                                long type, SCM (*fcn) (), SCM *gf)
 {
   SCM subr = scm_c_make_subr_with_generic (name, type, fcn, gf);
-  scm_define (SCM_SNAME (subr), subr);
+  scm_define (SCM_SUBR_NAME (subr), subr);
   return subr;
 }
 
@@ -237,7 +237,7 @@ SCM_DEFINE (scm_make_procedure_with_setter, 
"make-procedure-with-setter", 2, 0,
      lookup */
   switch (SCM_TYP7 (procedure)) {
   case scm_tcs_subrs:
-    name = SCM_SNAME (procedure);
+    name = SCM_SUBR_NAME (procedure);
     break;
   default:
     name = scm_procedure_property (procedure, scm_sym_name);
diff --git a/libguile/procs.h b/libguile/procs.h
index 84e0c69..ed4ac20 100644
--- a/libguile/procs.h
+++ b/libguile/procs.h
@@ -32,7 +32,7 @@
  */
 
 #define SCM_SUBR_META_INFO(x)  ((SCM *) SCM_CELL_WORD_3 (x))
-#define SCM_SNAME(x) (SCM_SUBR_META_INFO (x) [0])
+#define SCM_SUBR_NAME(x) (SCM_SUBR_META_INFO (x) [0])
 #define SCM_SUBRF(x) ((SCM (*)()) SCM_CELL_WORD_1 (x))
 #define SCM_SET_SUBRF(x, v) (SCM_SET_CELL_WORD_1 ((x), (v)))
 #define SCM_DSUBRF(x) ((double (*)()) SCM_CELL_WORD_1 (x))


hooks/post-receive
-- 
GNU Guile




reply via email to

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