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. 76e834686ede4d5573955


From: Andy Wingo
Subject: [Guile-commits] GNU Guile branch, master, updated. 76e834686ede4d55739556af60c80ff66145d74c
Date: Wed, 10 Jun 2009 08:57:13 +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=76e834686ede4d55739556af60c80ff66145d74c

The branch, master has been updated
       via  76e834686ede4d55739556af60c80ff66145d74c (commit)
       via  de3d1fc9884ae587862ed119700fcc59c1452407 (commit)
      from  9ea12179fffffa8e1ba12cde4a10c35504a80012 (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 76e834686ede4d55739556af60c80ff66145d74c
Author: Andy Wingo <address@hidden>
Date:   Wed Jun 10 10:53:00 2009 +0200

    fix defmacro*, defmacro*-public
    
    * module/ice-9/boot-9.scm (define-private): Remove apocyphal comment. The
      FIXME would really be to remove `define-private', though...
    
    * module/ice-9/optargs.scm (defmacro*, defmacro*-public): Fix these
      macros. Thanks to Dale Smith for the report.

commit de3d1fc9884ae587862ed119700fcc59c1452407
Author: Andy Wingo <address@hidden>
Date:   Wed Jun 10 10:51:02 2009 +0200

    bump default stack limit to 160000 words
    
    * libguile/eval.c (scm_debug_opts): Up the default stack limit by a
      factor of 4. Psyntax expansions currently bounce back and forth between
      the VM and the interpreter, due to `map'. (Hopefully that won't be the
      case in the future, when have map in scheme, and we get an inliner.)
      Anyway when expanding a big nested expression, as for example in
      (language ecmascript compile-ghil) -- the pmatch code ends up being
      super-nested -- we can consume loads o stack.
    
      So given that on desktop machines, where rlimit is likely to be unset,
      default rlimits are around 8 or 10 MB or so, let's bump up our default
      limit to 640KB (on 32-bit). Should be enough for anyone.
    
      See http://thread.gmane.org/gmane.lisp.guile.devel/8599/focus=8662 for
      more info. Thanks to Mark H. Weaver for the diagnosis!

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

Summary of changes:
 libguile/eval.c          |   13 ++++++++++++-
 module/ice-9/boot-9.scm  |    2 --
 module/ice-9/optargs.scm |   12 ++++--------
 3 files changed, 16 insertions(+), 11 deletions(-)

diff --git a/libguile/eval.c b/libguile/eval.c
index 05af5a1..574ab47 100644
--- a/libguile/eval.c
+++ b/libguile/eval.c
@@ -3028,8 +3028,19 @@ scm_t_option scm_debug_opts[] = {
   { SCM_OPTION_INTEGER, "depth", 20, "Maximal length of printed backtrace." },
   { SCM_OPTION_BOOLEAN, "backtrace", 0, "Show backtrace on error." },
   { SCM_OPTION_BOOLEAN, "debug", 0, "Use the debugging evaluator." },
+  /* This default stack limit will be overridden by debug.c:init_stack_limit(),
+     if we have getrlimit() and the stack limit is not INFINITY. But it is 
still
+     important, as some systems have both the soft and the hard limits set to
+     INFINITY; in that case we fall back to this value.
 
-  { SCM_OPTION_INTEGER, "stack", 40000, "Stack size limit (measured in words; 
0 = no check)." },
+     The situation is aggravated by certain compilers, which can consume
+     "beaucoup de stack", as they say in France.
+
+     See http://thread.gmane.org/gmane.lisp.guile.devel/8599/focus=8662 for
+     more discussion. This setting is 640 KB on 32-bit arches (should be enough
+     for anyone!) or a whoppin' 1280 KB on 64-bit arches.
+  */
+  { SCM_OPTION_INTEGER, "stack", 160000, "Stack size limit (measured in words; 
0 = no check)." },
   { SCM_OPTION_SCM, "show-file-name", (unsigned long)SCM_BOOL_T,
     "Show file names and line numbers "
     "in backtraces when not `#f'.  A value of `base' "
diff --git a/module/ice-9/boot-9.scm b/module/ice-9/boot-9.scm
index 78b194a..3d77093 100644
--- a/module/ice-9/boot-9.scm
+++ b/module/ice-9/boot-9.scm
@@ -2931,8 +2931,6 @@ module '(ice-9 q) '(make-q q-length))}."
     (process-use-modules (list (list ,@(compile-interface-spec spec))))
     *unspecified*))
 
-;; Dirk:FIXME:: This incorrect (according to R5RS) syntax needs to be changed
-;; as soon as guile supports hygienic macros.
 (define-syntax define-private
   (syntax-rules ()
     ((_ foo bar)
diff --git a/module/ice-9/optargs.scm b/module/ice-9/optargs.scm
index 4dea92f..975703c 100644
--- a/module/ice-9/optargs.scm
+++ b/module/ice-9/optargs.scm
@@ -410,15 +410,11 @@
 ;;   (defmacro* transmorgify (a #:optional b)
 
 (defmacro defmacro* (NAME ARGLIST . BODY)
-  (defmacro*-guts 'define NAME ARGLIST BODY))
+  `(define-macro ,NAME #f (lambda* ,ARGLIST ,@BODY)))
 
 (defmacro defmacro*-public (NAME ARGLIST . BODY)
-  (defmacro*-guts 'define-public NAME ARGLIST BODY))
-
-;; The guts of defmacro* and defmacro*-public
-(define (defmacro*-guts DT NAME ARGLIST BODY)
-  `(,DT ,NAME
-       (,(lambda (transformer) (defmacro:transformer transformer))
-        (lambda* ,ARGLIST ,@BODY))))
+  `(begin
+     (defmacro* ,NAME ,ARGLIST ,@BODY)
+     (export-syntax ,NAME)))
 
 ;;; optargs.scm ends here


hooks/post-receive
-- 
GNU Guile




reply via email to

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