From: Camm Maguire Date: Sun, 13 Nov 2022 12:55:14 +0000 (+0000) Subject: X-Git-Tag: archive/raspbian/2.7.1-4+rpi1~2^2^2~127 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=45f16a6c213d4eca8bbfdb46bd3cf9e42ef168fb;p=gcl27.git TODO: Put a short summary on the line above and replace this paragraph with a longer explanation of this change. Complete the meta-information with other relevant fields (see below for details). To make it easier, the information below has been extracted from the changelog. Adjust it or drop it. gcl (2.6.12-13) unstable; urgency=medium * Version_2_6_13pre16 Gbp-Pq: Name Version_2_6_13pre17 --- diff --git a/o/alloc.c b/o/alloc.c index 5982cd0..154043f 100644 --- a/o/alloc.c +++ b/o/alloc.c @@ -749,11 +749,15 @@ alloc_from_freelist(struct typemanager *tm,fixnum n) { static inline void grow_linear1(struct typemanager *tm) { - fixnum maxgro=resv_pages ? available_pages : 0; + if (!sSAoptimize_maximum_pagesA || sSAoptimize_maximum_pagesA->s.s_dbind==Cnil) { - if (tm->tm_type==t_relocatable) maxgro>>=1; + fixnum maxgro=resv_pages ? available_pages : 0; - set_tm_maxpage(tm,grow_linear(tm->tm_npage,tm->tm_growth_percent,tm->tm_min_grow, tm->tm_max_grow,maxgro)); + if (tm->tm_type==t_relocatable) maxgro>>=1; + + set_tm_maxpage(tm,grow_linear(tm->tm_npage,tm->tm_growth_percent,tm->tm_min_grow, tm->tm_max_grow,maxgro)); + + } } @@ -802,7 +806,8 @@ do_gc_p(struct typemanager *tm,fixnum n) { pp=gc_page_max*phys_pages; - return page(recent_allocation)>(1.0+gc_alloc_min-(double)ufmin(cpool,pp)/pp)*data_pages(); + return page(recent_allocation)>(1.0+gc_alloc_min-(double)ufmin(cpool,pp)/pp)*data_pages() || + 2*tpage(tm,n)>available_pages; } diff --git a/o/main.c b/o/main.c index 4fa47f3..b93f486 100755 --- a/o/main.c +++ b/o/main.c @@ -236,7 +236,7 @@ get_gc_environ(void) { massert(mem_multiple>=0.0); } - gc_alloc_min=0.1; + gc_alloc_min=0.05; if ((e=getenv("GCL_GC_ALLOC_MIN"))) { massert(sscanf(e,"%lf",&gc_alloc_min)==1); massert(gc_alloc_min>=0.0); @@ -280,7 +280,7 @@ setup_maxpages(double scale) { resv_pages=available_pages=0; available_pages=check_avail_pages(); - resv_pages=40