Jeroen Demeyer on Wed, 20 Jan 2016 10:34:41 +0100 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: [PATCH] Guard stack size warnings with DEBUGMEM |
On 2016-01-14 10:31, Jeroen Demeyer wrote:
I don't like random warnings about the stack size to appear, what do you think of this patch? You could even make debugmem=1 the default if you want.
This is a better version of my initial patch. It makes the stack size warnings appear only if debugmem>0. However, it also sets debugmem=1 the default such that nothing will change in practice.
Jeroen.
>From fabe701c04b418a9d38f7e38f87663df018a402e Mon Sep 17 00:00:00 2001 From: Jeroen Demeyer <jdemeyer@cage.ugent.be> Date: Thu, 14 Jan 2016 10:13:39 +0100 Subject: [PATCH 2/2] Use DEBUGMEM for stack size warnings --- src/functions/default/debugmem | 7 ++++--- src/language/init.c | 12 ++++++++---- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/functions/default/debugmem b/src/functions/default/debugmem index a7dfcfe..fba7262 100644 --- a/src/functions/default/debugmem +++ b/src/functions/default/debugmem @@ -5,12 +5,13 @@ C-Name: sd_debugmem Prototype: Help: Doc: memory debugging level. If it is non-zero, \kbd{gp} will regularly print - information on memory usage. If it's greater than 2, it will indicate any - important garbage collecting and the function it is taking place in + information on memory usage. It will also display a warning whenever the + stack size has changed. If \kbd{debugmem} is at least 2, it will indicate + any important garbage collecting and the function it is taking place in (see~\b{gm}). \noindent {\bf Important Note:} As it noticeably slows down the performance, the first functionality (memory usage) is disabled if you're not running a version compiled for debugging (see Appendix~A). - The default value is \kbd{0} (no debugging messages). + The default value is \kbd{1} (few debugging messages). diff --git a/src/language/init.c b/src/language/init.c index fa5c167..374375f 100644 --- a/src/language/init.c +++ b/src/language/init.c @@ -502,7 +502,8 @@ pari_init_defaults(void) #endif precdl = 16; - DEBUGFILES = DEBUGLEVEL = DEBUGMEM = 0; + DEBUGFILES = DEBUGLEVEL = 0; + DEBUGMEM = 1; disable_color = 1; logstyle = logstyle_none; @@ -722,7 +723,8 @@ parivstack_resize(ulong newsize) evalstate_reset(); paristack_setsize(pari_mainstack->rsize, newsize); s = pari_mainstack->vsize ? pari_mainstack->vsize : pari_mainstack->rsize; - pari_warn(warner,"new maximum stack size = %lu (%.3f Mbytes)", s, s/1048576.); + if (DEBUGMEM) + pari_warn(warner,"new maximum stack size = %lu (%.3f Mbytes)", s, s/1048576.); pari_init_errcatch(); cb_pari_err_recover(-1); } @@ -736,7 +738,8 @@ paristack_newrsize(ulong newsize) pari_mainstack_resize(pari_mainstack, newsize, vsize); evalstate_reset(); s = pari_mainstack->rsize; - pari_warn(warner,"new stack size = %lu (%.3f Mbytes)", s, s/1048576.); + if (DEBUGMEM) + pari_warn(warner,"new stack size = %lu (%.3f Mbytes)", s, s/1048576.); pari_init_errcatch(); cb_pari_err_recover(-1); } @@ -750,7 +753,8 @@ paristack_resize(ulong newsize) newsize = maxuu(minuu(newsize, vsize), pari_mainstack->size); pari_mainstack->size = newsize; pari_mainstack->bot = pari_mainstack->top - pari_mainstack->size; - pari_warn(warner,"increasing stack size to %lu",newsize); + if (DEBUGMEM) + pari_warn(warner,"increasing stack size to %lu",newsize); } void -- 2.0.5