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
prev parent 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).