unofficial mirror of bug-guile@gnu.org 
 help / color / mirror / Atom feed
From: Neil Jerram <neil@ossau.uklinux.net>
Cc: bug-guile@gnu.org
Subject: Re: guile-tutorial does not know bounded stack size
Date: 13 Jul 2002 01:09:26 +0100	[thread overview]
Message-ID: <m3u1n47akp.fsf@laruns.ossau.uklinux.net> (raw)
In-Reply-To: E17Szkg-0001x2-00@fencepost.gnu.org

>>>>> "M" == M Luedde <Mirko.Luedde@Computer.Org> writes:

    M> Hello!
    M> The guile-tutorial provides an example calculating the factorial of
    M> 500.

    M> The non-tail-recursive version from the tutorial yields a stack
    M> overflow on my system. A tail-recursive implementation works.

Many thanks for the report.  However, this is broadly a feature, not a
bug.  Unless you think that Guile should have an unlimited stack size,
a non-tail-recursive factorial will always overflow the stack for a
big enough number.

You can examine and increase Guile's stack limit like this:

guile> (debug-options 'full)
show-file-name	#t	Show file names and line numbers in backtraces when not `#f'.  A value of `base' displays only base names, while `#t' displays full names.
stack		20000	Stack size limit (measured in words; 0 = no check).
debug		yes	Use the debugging evaluator.
backtrace	yes	Show backtrace on error.
depth		20	Maximal length of printed backtrace.
maxdepth	1000	Maximal number of stored backtrace frames.
frames		3	Maximum number of tail-recursive frames in backtrace.
indent		10	Maximal indentation in backtrace.
width		79	Maximal width of backtrace.
backwards	no	Display backtrace in anti-chronological order.
procnames	yes	Record procedure names at definition.
trace		no	*Trace mode.
breakpoints	no	*Check for breakpoints.
cheap		yes	*Flyweight representation of the stack at traps.
guile> (debug-set! stack 200000)
(show-file-name #t stack 200000 debug backtrace depth 20 maxdepth 1000 frames 3 indent 10 width 79 procnames cheap)
guile> (fac 500)
12201368259911100687012387854230469262535743428031928421924135883858453731538819976054964475022032818630136164771482035841633787220781772004807852051593292854779075719393306037729608590862704291745478824249127263443056701732707694610628023104526442188787894657547771498634943677810376442740338273653974713864778784954384895955375379904232410612713269843277457155463099772027810145610811883737095310163563244329870295638966289116589747695720879269288712817800702651745077684107196243903943225364226052349458501299185715012487069615681416253590566934238130088562492468915641267756544818865065938479517753608940057452389403357984763639449053130623237490664450488246650759467358620746379251842004593696929810222639719525971909452178233317569345815085523328207628200234026269078983424517120062077146409794561161276291459512372299133401695523638509428855920187274337951730145863575708283557801587354327688886801203998823847021514676054454076635359841744304801289383138968816394874696588175045069!

26365338175055478128640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
guile> 

Is this OK, or do you think the documentation needs improving
somewhere?  (If you do, it would be most helpful if you could suggest
a patch ...)

        Neil


_______________________________________________
Bug-guile mailing list
Bug-guile@gnu.org
http://mail.gnu.org/mailman/listinfo/bug-guile


      reply	other threads:[~2002-07-13  0:09 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-07-12 12:42 guile-tutorial does not know bounded stack size Dr. M. Luedde
2002-07-13  0:09 ` Neil Jerram [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m3u1n47akp.fsf@laruns.ossau.uklinux.net \
    --to=neil@ossau.uklinux.net \
    --cc=bug-guile@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).