* PURESIZE increased (again) @ 2006-04-16 7:07 Eli Zaretskii 2006-04-16 7:18 ` Eli Zaretskii 2006-04-16 10:56 ` Romain Francoise 0 siblings, 2 replies; 90+ messages in thread From: Eli Zaretskii @ 2006-04-16 7:07 UTC (permalink / raw) Cc: emacs-devel Romain, could you please tell why you increased BASE_PURESIZE by another 10,000? I don't see any relevant discussions in emacs-devel archives lately. Judging by "cvs log", BASE_PURESIZE went up by 100,000 since last October, whereas before that it kept its value for 2 years without any changes. Perhaps we should consider each such change more carefully. FWIW, I've just built a w32 port, and it told me that it used up 1216152 pure bytes, so BASE_PURESIZE of 1210000 sounds _way_ too much (since src/s/ms-w32.h defines 137500 bytes of SYSTEM_PURESIZE_EXTRA). ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-16 7:07 PURESIZE increased (again) Eli Zaretskii @ 2006-04-16 7:18 ` Eli Zaretskii 2006-04-16 10:56 ` Romain Francoise 1 sibling, 0 replies; 90+ messages in thread From: Eli Zaretskii @ 2006-04-16 7:18 UTC (permalink / raw) > Date: Sun, 16 Apr 2006 10:07:59 +0300 > From: Eli Zaretskii <eliz@gnu.org> > Cc: emacs-devel@gnu.org > > Judging by "cvs log", BASE_PURESIZE went up by 100,000 since last > October, whereas before that it kept its value for 2 years without any > changes. Perhaps we should consider each such change more carefully. For that matter, could someone (Richard?) tell what are the thumb rules for estimating the required value of SYSTEM_PURESIZE_EXTRA (other than by trial and error)? Will the combined size of system-specific *.el/*.elc files loaded by loadup.el be a good start, or are there any additional bits to take into consideration? (I'm asking because I suspect that the value of SYSTEM_PURESIZE_EXTRA could be exaggerated as well, at least on Windows.) ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-16 7:07 PURESIZE increased (again) Eli Zaretskii 2006-04-16 7:18 ` Eli Zaretskii @ 2006-04-16 10:56 ` Romain Francoise 2006-04-16 12:13 ` Andreas Schwab ` (2 more replies) 1 sibling, 3 replies; 90+ messages in thread From: Romain Francoise @ 2006-04-16 10:56 UTC (permalink / raw) Cc: emacs-devel Eli Zaretskii <eliz@gnu.org> writes: > Romain, could you please tell why you increased BASE_PURESIZE by > another 10,000? Because I built Emacs and there wasn't enough pure space available... The log indicated 1200696 bytes used, so I increased the base size another notch to 1210000 (on GNU/Linux, SYSTEM_PURESIZE_EXTRA is zero). I grant you that a 10,000 bytes increase for an overflow of 696 bytes might be too much, but since the size keeps going up it's just preparing for future changes... As you may or may not know, since August 2005 I've been packaging weekly snapshots of Emacs CVS for the Debian GNU/Linux operating system; this gives me the opportunity to build Emacs automatically with a variety of different configuration options and compiler flags every week, so I catch these kinds of problems pretty quickly. I think the overflow is caused this week by Bill's latest batch of changes to Customize. > Judging by "cvs log", BASE_PURESIZE went up by 100,000 since last > October, whereas before that it kept its value for 2 years without any > changes. Since last October, image, international/fontset, dnd, x-dnd, mwheel, tool-bar, emacs-lisp/syntax, font-lock, jit-lock, rfn-eshadow and fringe have been added to the list of preloaded libraries. And other loaded libraries have grown as well. -- Romain Francoise <romain@orebokech.com> | The sea! the sea! the open it's a miracle -- http://orebokech.com/ | sea! The blue, the fresh, the | ever free! --Bryan W. Procter ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-16 10:56 ` Romain Francoise @ 2006-04-16 12:13 ` Andreas Schwab 2006-04-16 16:59 ` Eli Zaretskii 2006-04-16 17:27 ` Romain Francoise 2006-04-16 17:07 ` Eli Zaretskii 2006-04-18 17:17 ` Bill Wohler 2 siblings, 2 replies; 90+ messages in thread From: Andreas Schwab @ 2006-04-16 12:13 UTC (permalink / raw) Cc: Eli Zaretskii, emacs-devel Romain Francoise <romain@orebokech.com> writes: > Eli Zaretskii <eliz@gnu.org> writes: > >> Romain, could you please tell why you increased BASE_PURESIZE by >> another 10,000? > > Because I built Emacs and there wasn't enough pure space available... > The log indicated 1200696 bytes used, Where do you see that? I see only 1198536 bytes (1877040 on 64bit). Andreas. -- Andreas Schwab, SuSE Labs, schwab@suse.de SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-16 12:13 ` Andreas Schwab @ 2006-04-16 16:59 ` Eli Zaretskii 2006-04-20 16:51 ` Reiner Steib 2006-04-16 17:27 ` Romain Francoise 1 sibling, 1 reply; 90+ messages in thread From: Eli Zaretskii @ 2006-04-16 16:59 UTC (permalink / raw) > From: Andreas Schwab <schwab@suse.de> > Cc: Eli Zaretskii <eliz@gnu.org>, emacs-devel@gnu.org > Date: Sun, 16 Apr 2006 14:13:56 +0200 > > Romain Francoise <romain@orebokech.com> writes: > > > Eli Zaretskii <eliz@gnu.org> writes: > > > >> Romain, could you please tell why you increased BASE_PURESIZE by > >> another 10,000? > > > > Because I built Emacs and there wasn't enough pure space available... > > The log indicated 1200696 bytes used, > > Where do you see that? I second the question. How was that build configured, for what variant of GNU/Linux, and which CPU? > I see only 1198536 bytes (1877040 on 64bit). And I see 1102088 in a GNU/Linux build without X. I doubt that adding X could bump it by 100K bytes. I also doubt very much that the Windows build is so different from a 32-build on GNU/Linux. So your results, Romain, look quite strange. I think we need to understand them before we decide to increase PURESIZE. ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-16 16:59 ` Eli Zaretskii @ 2006-04-20 16:51 ` Reiner Steib 2006-04-20 18:50 ` Eli Zaretskii 0 siblings, 1 reply; 90+ messages in thread From: Reiner Steib @ 2006-04-20 16:51 UTC (permalink / raw) Cc: romain, emacs-devel On Sun, Apr 16 2006, Eli Zaretskii wrote: >> From: Andreas Schwab <schwab@suse.de> >> Romain Francoise <romain@orebokech.com> writes: >> > Because I built Emacs and there wasn't enough pure space available... >> > The log indicated 1200696 bytes used, >> >> Where do you see that? > > I second the question. How was that build configured, for what > variant of GNU/Linux, and which CPU? > >> I see only 1198536 bytes (1877040 on 64bit). > > And I see 1102088 in a GNU/Linux build without X. I doubt that adding > X could bump it by 100K bytes. FWIW, I saw the following message when building with the current sources (some minor local changes) today on 64bit ... ,---- | Dumping under names emacs and emacs-22.0.50.1 | emacs:0:Pure Lisp storage overflow (approx. 2155304 bytes needed) | 5504 pure bytes used | | "GNU Emacs 22.0.50.1 (x86_64-unknown-linux-gnu, GTK+ Version 2.4.9) | of 2006-04-20 on bridgekeeper" | | system-configuration-options | "'--prefix=/import/xtra/emacs/HEAD' '--with-gtk' '--exec-prefix=/import/xtra/emacs/HEAD-x86_64'" `---- ... and last Tuesday on 32bit: ,---- | Dumping under names emacs and emacs-22.0.50.4 | emacs:0:Pure Lisp storage overflow (approx. 1342376 bytes needed) | 2832 pure bytes used | [...] | | GNU Emacs 22.0.50.4 (i686-pc-linux-gnu, GTK+ Version 2.4.9) of | 2006-04-18 on rabbit | | system-configuration-options: | "'--prefix=/import/xtra/emacs/HEAD' '--with-gtk' '--exec-prefix=/import/xtra/emacs/HEAD-i686'" `---- With today's sources, I get "75244 pure bytes used" on 32bit (same options). Bye, Reiner. -- ,,, (o o) ---ooO-(_)-Ooo--- | PGP key available | http://rsteib.home.pages.de/ ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-20 16:51 ` Reiner Steib @ 2006-04-20 18:50 ` Eli Zaretskii 2006-04-20 21:03 ` Reiner Steib 0 siblings, 1 reply; 90+ messages in thread From: Eli Zaretskii @ 2006-04-20 18:50 UTC (permalink / raw) > Cc: romain@orebokech.com, emacs-devel@gnu.org > From: Reiner Steib <reinersteib+gmane@imap.cc> > Date: Thu, 20 Apr 2006 18:51:38 +0200 > > >> I see only 1198536 bytes (1877040 on 64bit). > > > > And I see 1102088 in a GNU/Linux build without X. I doubt that adding > > X could bump it by 100K bytes. > > FWIW, I saw the following message when building with the current > sources (some minor local changes) today on 64bit ... > > ,---- > | Dumping under names emacs and emacs-22.0.50.1 > | emacs:0:Pure Lisp storage overflow (approx. 2155304 bytes needed) > | 5504 pure bytes used This has nothing to do with PURESIZE, it's the ridiculously low number 5504 that is the problem. (Note that, on a 64-bit host, 2155304 is well within the limits of BASE_PURESIZE enlarged by PURESIZE_RATIO.) How come you only have 5504 bytes of space in the pure[] array? Is this during the first stage of bootstrap perhaps? If so, please look at the last "Dumping under names ..." message near the end of the build, it's that one that's important. (I imagine you already know that.) ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-20 18:50 ` Eli Zaretskii @ 2006-04-20 21:03 ` Reiner Steib 2006-04-20 21:37 ` Stefan Monnier ` (2 more replies) 0 siblings, 3 replies; 90+ messages in thread From: Reiner Steib @ 2006-04-20 21:03 UTC (permalink / raw) Cc: romain, emacs-devel On Thu, Apr 20 2006, Eli Zaretskii wrote: >> From: Reiner Steib <reinersteib+gmane@imap.cc> [...] >> ,---- >> | Dumping under names emacs and emacs-22.0.50.1 >> | emacs:0:Pure Lisp storage overflow (approx. 2155304 bytes needed) >> | 5504 pure bytes used > > This has nothing to do with PURESIZE, it's the ridiculously low number > 5504 that is the problem. (Note that, on a 64-bit host, 2155304 is > well within the limits of BASE_PURESIZE enlarged by PURESIZE_RATIO.) > > How come you only have 5504 bytes of space in the pure[] array? Is > this during the first stage of bootstrap perhaps? It was in "make bootstrap". > If so, please look at the last "Dumping under names ..." message > near the end of the build, it's that one that's important. Now I've built again (without a bootstrap) and I got (there is only one "Dumping under names" in the logs): ,----[ 64 bit ] | Loading tooltip... | nil | Finding pointers to doc strings... | Finding pointers to doc strings...done | Dumping under names emacs and emacs-22.0.50.3 | emacs:0:Pure Lisp storage overflow (approx. 2155304 bytes needed) | 5504 pure bytes used | ./emacs -q -batch -f list-load-path-shadows `---- I also get the "Pure space overflow" warning from `fancy-splash-screens-1': ,----[ <f1> v pure-space-overflow RET ] | pure-space-overflow is a variable defined in `startup.el'. | Its value is t `---- ,----[ <f1> v pure-bytes-used RET ] | pure-bytes-used is a variable defined in `src/alloc.c'. | Its value is 5504 | | Documentation: | Number of bytes of sharable Lisp data allocated so far. `---- On a 32 bit host (same source tree) I get: ,----[ 32 bit ] | Dumping under names emacs and emacs-22.0.50.2 | emacs:0:Pure Lisp storage overflow (approx. 1343128 bytes needed) | 3616 pure bytes used `---- > (I imagine you already know that.) No, I didn't know. And I don't know why these numbers are so low on my machines. How can I investigate? Will it cause problems? Bye, Reiner. -- ,,, (o o) ---ooO-(_)-Ooo--- | PGP key available | http://rsteib.home.pages.de/ ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-20 21:03 ` Reiner Steib @ 2006-04-20 21:37 ` Stefan Monnier 2006-04-21 7:49 ` Eli Zaretskii 2006-04-21 7:48 ` Eli Zaretskii 2006-04-21 23:10 ` Luc Teirlinck 2 siblings, 1 reply; 90+ messages in thread From: Stefan Monnier @ 2006-04-20 21:37 UTC (permalink / raw) Cc: romain, emacs-devel >> (I imagine you already know that.) > No, I didn't know. And I don't know why these numbers are so low on > my machines. How can I investigate? Will it cause problems? AFAIK these low numbers have no meaning: if the pure size overflows, the number printed is always some ridiculously low number, unrelated to the actual size of the pure space (or more specifically: probably somehow related, but not equal to). Stefan ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-20 21:37 ` Stefan Monnier @ 2006-04-21 7:49 ` Eli Zaretskii 0 siblings, 0 replies; 90+ messages in thread From: Eli Zaretskii @ 2006-04-21 7:49 UTC (permalink / raw) Cc: romain, emacs-devel > Cc: romain@orebokech.com, emacs-devel@gnu.org > From: Stefan Monnier <monnier@iro.umontreal.ca> > Date: Thu, 20 Apr 2006 17:37:59 -0400 > > AFAIK these low numbers have no meaning: if the pure size overflows, the > number printed is always some ridiculously low number, unrelated to the > actual size of the pure space Yes, you are right: the backup strategy zeroes out pure_bytes_used, so what gets printed is just the portion that didn't fit into pure[]. ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-20 21:03 ` Reiner Steib 2006-04-20 21:37 ` Stefan Monnier @ 2006-04-21 7:48 ` Eli Zaretskii 2006-04-21 9:15 ` Eli Zaretskii 2006-04-26 13:50 ` Reiner Steib 2006-04-21 23:10 ` Luc Teirlinck 2 siblings, 2 replies; 90+ messages in thread From: Eli Zaretskii @ 2006-04-21 7:48 UTC (permalink / raw) > From: Reiner Steib <reinersteib+gmane@imap.cc> > Cc: romain@orebokech.com, emacs-devel@gnu.org > Date: Thu, 20 Apr 2006 23:03:03 +0200 > > How can I investigate? Run temacs under GDB, put a breakpoint on Fload, and each time it breaks print the value of pure_bytes_used. Then post here the results; perhaps PURESIZE needs to be bumped up after all. > Will it cause problems? Not grave problems (we have plan B for such situations), but it shouldn't happen. ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-21 7:48 ` Eli Zaretskii @ 2006-04-21 9:15 ` Eli Zaretskii 2006-04-26 13:50 ` Reiner Steib 1 sibling, 0 replies; 90+ messages in thread From: Eli Zaretskii @ 2006-04-21 9:15 UTC (permalink / raw) > Date: Fri, 21 Apr 2006 10:48:04 +0300 > From: Eli Zaretskii <eliz@gnu.org> > Cc: > > > From: Reiner Steib <reinersteib+gmane@imap.cc> > > Cc: romain@orebokech.com, emacs-devel@gnu.org > > Date: Thu, 20 Apr 2006 23:03:03 +0200 > > > > How can I investigate? > > Run temacs under GDB, put a breakpoint on Fload, and each time it > breaks print the value of pure_bytes_used. Then post here the > results; perhaps PURESIZE needs to be bumped up after all. Here are my results (on a 32-bit MS-Windows box). Each line shows the loaded file (or, in some cases where something other than loading a file caused a significant increase in pure storage use, the description of what caused it), the used pure size _after_ that file was loaded, and how many pure bytes were used up by loading the file. When I compare this with the results from a week ago, when PURESIZE was set to its current value, I see an increase of 408 bytes. <before loadup.el> 76659 76659 "loadup.el" 76684 25 "emacs-lisp/byte-run" 79800 3116 "emacs-lisp/backquote" 81780 1980 "subr" 127984 46204 "version.el" 129952 1968 "widget" 130407 455 "custom" 147120 16713 "emacs-lisp/map-ynp" 150897 3777 "env" 153364 2467 "cus-start" 155309 1945 "international/mule" 189020 33711 "international/mule-conf.el" 196213 7193 "format" 209256 13043 "bindings" 229803 20547 "files" 311179 81376 "cus-face" 321585 10406 "faces" 363714 42129 "loaddefs.el" 495541 131827 "simple" 570743 75202 "help" 592364 21621 "international/mule-cmds" 635436 43072 "case-table" 638260 2824 "international/utf-8" 649290 11030 "international/utf-16" 670822 21532 "international/characters" 672790 1968 "international/latin-1" 672790 0 "international/latin-2" 672816 26 "international/latin-3" 672840 24 "international/latin-4" 672864 24 "international/latin-5" 672888 24 "international/latin-8" 672912 24 "international/latin-9" 672936 24 "language/chinese" 679235 6299 "language/cyrillic" 686488 7253 "language/indian" 689400 2912 "language/devanagari" 689672 272 "language/malayalam" 689816 144 "language/tamil" 689944 128 "language/kannada" 690196 252 "language/english" 690310 114 "language/ethiopic" 691479 1169 "language/european" 705081 13602 "language/czech" 705294 213 "language/slovak" 705503 209 "language/romanian" 705729 226 "language/greek" 706406 677 "language/hebrew" 707543 1137 "language/japanese" 710441 2898 "language/korean" 712023 1582 "language/lao" 712528 505 "language/thai" 713741 1213 "language/tibetan" 741920 28179 "language/vietnamese" 745414 3494 "language/misc-lang" 745514 100 "language/utf-8-lang" 745931 417 "language/georgian" 746145 214 "international/ucs-tables" 751691 5546 "indent" 758344 6653 "window" 770722 12378 "frame" 788783 18061 "term/tty-colors" 792672 3889 "font-core" 796850 4178 "facemenu" 806421 9571 "emacs-lisp/syntax" 809140 2719 "font-lock" 838384 29244 "jit-lock" 845168 6784 "mouse" 872031 26863 "scroll-bar" 878109 6078 "select" 884743 6634 "emacs-lisp/timer" 893244 8501 "isearch" 924600 31356 "rfn-eshadow" 929220 4620 "menu-bar" 952370 23150 "paths.el" 955068 2698 "startup" 988802 33734 "emacs-lisp/lisp" 996917 8115 "textmodes/page" 998229 1312 "register" 1003850 5621 "textmodes/paragraphs" 1009099 5249 "emacs-lisp/lisp-mode" 1023012 13913 "textmodes/text-mode" 1025226 2214 "textmodes/fill" 1041697 16471 "replace" 1065984 24287 "abbrev" 1071468 5484 "buff-menu" 1082602 11134 "fringe" 1086492 3890 "image" 1092752 6260 "international/fontset" 1105035 12283 "dnd" 1107598 2563 "mwheel" 1112327 4729 "tool-bar" 1116677 4350 "ls-lisp" 1125033 8356 "disp-table" 1128403 3370 "dos-w32" 1133480 5077 "w32-vars" 1134365 885 "w32-fns" 1140600 6235 "emacs-lisp/float-sup" 1140952 352 "vc-hooks" 1154753 13801 "jka-cmpr-hook" 1160230 5477 "ediff-hook" 1160359 129 "tooltip" 1165552 5193 <purecopy load-history> 1216528 50976 "lisp/subdirs.el" 1216528 0 "code-pages" 1216528 0 "encoded-kb" 1216528 0 ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-21 7:48 ` Eli Zaretskii 2006-04-21 9:15 ` Eli Zaretskii @ 2006-04-26 13:50 ` Reiner Steib 2006-04-27 20:38 ` Eli Zaretskii 1 sibling, 1 reply; 90+ messages in thread From: Reiner Steib @ 2006-04-26 13:50 UTC (permalink / raw) Cc: emacs-devel On Fri, Apr 21 2006, Eli Zaretskii wrote: >> From: Reiner Steib <reinersteib+gmane@imap.cc> >> Cc: romain@orebokech.com, emacs-devel@gnu.org >> Date: Thu, 20 Apr 2006 23:03:03 +0200 >> >> How can I investigate? > > Run temacs under GDB, put a breakpoint on Fload, and each time it > breaks print the value of pure_bytes_used. Then post here the > results; perhaps PURESIZE needs to be bumped up after all. Sorry for the late answer. I still get an overflow on 64 bit with today's sources (I can do the same on 32 bit if it's useful): --8<---------------cut here---------------start------------->8--- $ cd [...]/emacs/cvs-HEAD/emacs/src$ grep define.BASE_PURESIZE puresize.h #define BASE_PURESIZE (1205000 + SYSTEM_PURESIZE_EXTRA + SITELOAD_PURESIZE_EXTRA) $ cd [...]/emacs/cvs-HEAD/x86_64/src/; gdb ./temacs GNU gdb 6.2.1 Copyright 2004 Free Software Foundation, Inc. [...] Breakpoint 1 at 0x556da0: file [...]/emacs/src/sysdep.c, line 1373. (gdb) break lread.c:717 Breakpoint 2 at 0x5e79dc: file [...]/emacs/src/lread.c, line 717. (gdb) run -batch -l loadup dump Starting program: [...]/emacs/cvs-HEAD/x86_64/src/temacs -batch -l loadup dump [Thread debugging using libthread_db enabled] [New Thread 182940272320 (LWP 30412)] [Switching to Thread 182940272320 (LWP 30412)] Breakpoint 2, Fload (file=11077635, noerror=10658513, nomessage=10658513, nosuffix=10658513, must_suffix=10658513) at [...]/emacs/src/lread.c:718 718 register int fd = -1; (gdb) print pure_bytes_used [ `print pure_bytes_used' and `continue'; only lines matching `Loading\|^\$' shown ] $1 = 108747 Loading loadup.el (source)... $1 = 108747 Loading loadup.el (source)... $2 = 108788 Loading emacs-lisp/byte-run... $3 = 114536 Loading emacs-lisp/backquote... $4 = 118000 Loading subr... $5 = 205328 Loading version.el (source)... $6 = 208625 Loading widget... $7 = 209471 Loading custom... $8 = 241496 Loading emacs-lisp/map-ynp... $9 = 248473 Loading env... $10 = 253068 Loading cus-start... $11 = 255909 Loading international/mule... $12 = 317596 Loading international/mule-conf.el (source)... $13 = 327085 Loading format... $14 = 350864 Loading bindings... $15 = 388019 Loading files... $16 = 537811 Loading cus-face... $17 = 556913 Loading faces... $18 = 638354 Loading loaddefs.el (source)... $19 = 831317 Loading simple... $20 = 973359 Loading help... $21 = 1011360 Loading international/mule-cmds... $22 = 1089544 Loading case-table... $23 = 1095208 Loading international/utf-8... $24 = 1120978 Loading international/utf-16... $25 = 1173558 Loading international/characters... $26 = 1176406 Loading international/latin-1 (source)... $27 = 1176406 Loading international/latin-2 (source)... $28 = 1176448 Loading international/latin-3 (source)... $29 = 1176488 Loading international/latin-4 (source)... $30 = 1176528 Loading international/latin-5 (source)... $31 = 1176568 Loading international/latin-8 (source)... $32 = 1176608 Loading international/latin-9 (source)... $33 = 1176648 Loading language/chinese... $34 = 1188035 Loading language/cyrillic... $35 = 1200328 Loading language/indian... $36 = 1205072 Loading language/devanagari (source)... $37 = 1205496 Loading language/malayalam (source)... $38 = 1205728 Loading language/tamil (source)... $39 = 1205944 Loading language/kannada (source)... $40 = 1206348 Loading language/english (source)... $41 = 1206518 Loading language/ethiopic... $42 = 1208167 Loading language/european... $43 = 1227713 Loading language/czech (source)... $44 = 1228054 Loading language/slovak (source)... $45 = 1228391 Loading language/romanian (source)... $46 = 1228745 Loading language/greek (source)... $47 = 1229686 Loading language/hebrew (source)... $48 = 1231287 Loading language/japanese (source)... $49 = 1235385 Loading language/korean (source)... $50 = 1237607 Loading language/lao (source)... $51 = 1238336 Loading language/thai (source)... $52 = 1240061 Loading language/tibetan... $53 = 1287208 Loading language/vietnamese... $54 = 1292846 Loading language/misc-lang (source)... $55 = 1293018 Loading language/utf-8-lang (source)... $56 = 1293803 Loading language/georgian (source)... $57 = 1294121 Loading international/ucs-tables... $58 = 1303955 Loading indent... $59 = 1317264 Loading window... $60 = 1342250 Loading frame... $61 = 1377063 Loading term/tty-colors... $62 = 1384552 Loading font-core... $63 = 1392250 Loading facemenu... $64 = 1410597 Loading emacs-lisp/syntax... $65 = 1415424 Loading font-lock... $66 = 1466936 Loading jit-lock... $67 = 1480512 Loading mouse... $68 = 1532487 Loading scroll-bar... $69 = 1544909 Loading select... $70 = 1555983 Loading emacs-lisp/timer... $71 = 1572540 Loading isearch... $72 = 1633608 Loading rfn-eshadow... $73 = 1641876 Loading menu-bar... $74 = 1682850 Loading paths.el (source)... $75 = 1686340 Loading startup... $76 = 1746594 Loading emacs-lisp/lisp... $77 = 1762973 Loading textmodes/page... $78 = 1765605 Loading register... $79 = 1776122 Loading textmodes/paragraphs... $80 = 1785931 Loading emacs-lisp/lisp-mode... $81 = 1812188 Loading textmodes/text-mode... $82 = 1816570 Loading textmodes/fill... $83 = 1848273 Loading replace... $84 = 1894000 Loading abbrev... $85 = 1904972 Loading buff-menu... $86 = 1926450 Loading fringe... $87 = 1933480 Loading image... $88 = 1945720 Loading international/fontset... $89 = 1968027 Loading dnd... $90 = 1973102 Loading mwheel... $91 = 1982031 Loading tool-bar... $92 = 1991013 Loading x-dnd... $93 = 3206 Loading emacs-lisp/float-sup... $94 = 3864 Loading vc-hooks... $95 = 785 Loading jka-cmpr-hook... $96 = 774 Loading ediff-hook... $97 = 1055 Loading tooltip... $98 = 944 $99 = 986 (gdb) continue Continuing. Dumping under names emacs and emacs-22.0.50.7 emacs:0:Pure Lisp storage overflow (approx. 2157456 bytes needed) 9296 pure bytes used Program exited normally. (gdb) --8<---------------cut here---------------end--------------->8--- Maybe you could run this output through your awk script. >> Will it cause problems? > > Not grave problems (we have plan B for such situations), but it > shouldn't happen. I also noticed an enormous memory consumption as pointed out in the thread "mem leak" (started by Miles): http://thread.gmane.org/gmane.emacs.devel/53300/focus=53311 Bye, Reiner. -- ,,, (o o) ---ooO-(_)-Ooo--- | PGP key available | http://rsteib.home.pages.de/ ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-26 13:50 ` Reiner Steib @ 2006-04-27 20:38 ` Eli Zaretskii 2006-04-27 20:52 ` David Kastrup ` (4 more replies) 0 siblings, 5 replies; 90+ messages in thread From: Eli Zaretskii @ 2006-04-27 20:38 UTC (permalink / raw) > From: Reiner Steib <reinersteib+gmane@imap.cc> > Cc: emacs-devel@gnu.org > Date: Wed, 26 Apr 2006 15:50:12 +0200 > > Sorry for the late answer. I still get an overflow on 64 bit with > today's sources (I can do the same on 32 bit if it's useful): > > --8<---------------cut here---------------start------------->8--- > $ cd [...]/emacs/cvs-HEAD/emacs/src$ grep define.BASE_PURESIZE puresize.h > #define BASE_PURESIZE (1205000 + SYSTEM_PURESIZE_EXTRA + SITELOAD_PURESIZE_EXTRA) > $ cd [...]/emacs/cvs-HEAD/x86_64/src/; gdb ./temacs > GNU gdb 6.2.1 > Copyright 2004 Free Software Foundation, Inc. > [...] > Breakpoint 1 at 0x556da0: file [...]/emacs/src/sysdep.c, line 1373. > (gdb) break lread.c:717 > Breakpoint 2 at 0x5e79dc: file [...]/emacs/src/lread.c, line 717. > (gdb) run -batch -l loadup dump > Starting program: [...]/emacs/cvs-HEAD/x86_64/src/temacs -batch -l loadup dump > [Thread debugging using libthread_db enabled] > [New Thread 182940272320 (LWP 30412)] > [Switching to Thread 182940272320 (LWP 30412)] > [...] > Loading tool-bar... > $92 = 1991013 > Loading x-dnd... > $93 = 3206 > Loading emacs-lisp/float-sup... > $94 = 3864 > Loading vc-hooks... > $95 = 785 > Loading jka-cmpr-hook... > $96 = 774 > Loading ediff-hook... > $97 = 1055 > Loading tooltip... > $98 = 944 > $99 = 986 > > (gdb) continue > Continuing. > Dumping under names emacs and emacs-22.0.50.7 > emacs:0:Pure Lisp storage overflow (approx. 2157456 bytes needed) These results are very strange indeed. I've built today's CVS on an x86_64 box (Red Hat GNU/Linux) in 3 different ways: with GTK, with Motif and with Lucid, and they all needed only 1881740 bytes, give or take a few dozen bytes. How come your build requires a whopping 275KB more? Comparison of your GDB session with mine shows that each time a .el file is loaded, it uses up the exact same amount of pure storage in your build as in mine. But every .elc file takes more pure storage on your machine, sometimes only by 1KB, sometimes by as much as 20KB. Do you have some local changes on your system, or is this a plain "make bootstrap" of the CVS checkout, with all the defaults wrt compiler switches, libraries, etc.? (Not that I see how local changes to anything but the Lisp files themselves could produce such bloat.) Does anyone have ideas as to what could cause such a significant difference in pure storage use on two identical architectures? I'm stumped. ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-27 20:38 ` Eli Zaretskii @ 2006-04-27 20:52 ` David Kastrup 2006-04-28 5:26 ` Eli Zaretskii 2006-04-27 21:19 ` Luc Teirlinck ` (3 subsequent siblings) 4 siblings, 1 reply; 90+ messages in thread From: David Kastrup @ 2006-04-27 20:52 UTC (permalink / raw) Cc: emacs-devel Eli Zaretskii <eliz@gnu.org> writes: > Do you have some local changes on your system, or is this a plain > "make bootstrap" of the CVS checkout, with all the defaults wrt > compiler switches, libraries, etc.? (Not that I see how local changes > to anything but the Lisp files themselves could produce such bloat.) > > Does anyone have ideas as to what could cause such a significant > difference in pure storage use on two identical architectures? > > I'm stumped. Different data types (UNION_something or what it was?)? Different alignment? -- David Kastrup, Kriemhildstr. 15, 44793 Bochum ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-27 20:52 ` David Kastrup @ 2006-04-28 5:26 ` Eli Zaretskii 0 siblings, 0 replies; 90+ messages in thread From: Eli Zaretskii @ 2006-04-28 5:26 UTC (permalink / raw) Cc: emacs-devel > Cc: emacs-devel@gnu.org > From: David Kastrup <dak@gnu.org> > Date: Thu, 27 Apr 2006 22:52:10 +0200 > > Different data types (UNION_something or what it was?)? Should it matter? Looking at the code, it sound like in both cases, Lisp_Object should take the same amount of storage. (I don't have access to a 64-bit machine where I'm typing this, so I cannot verify this by compiling.) > Different alignment? The alignment should be the same since it's the same architecture and the same compiler. ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-27 20:38 ` Eli Zaretskii 2006-04-27 20:52 ` David Kastrup @ 2006-04-27 21:19 ` Luc Teirlinck 2006-04-28 5:22 ` Eli Zaretskii 2006-04-27 21:56 ` Reiner Steib ` (2 subsequent siblings) 4 siblings, 1 reply; 90+ messages in thread From: Luc Teirlinck @ 2006-04-27 21:19 UTC (permalink / raw) Cc: emacs-devel Eli Zaretskii wrote: Comparison of your GDB session with mine shows that each time a .el file is loaded, it uses up the exact same amount of pure storage in your build as in mine. But every .elc file takes more pure storage on your machine, sometimes only by 1KB, sometimes by as much as 20KB. Of course, using different compilers or different C Libraries, _including_ different version numbers for the same compiler or library will not have any effect on the .el file, but it can definitely have an effect on the .elc files. Different OS or different versions of the same OS of course also can make a difference. As I already mentioned, talking about KB is meaningless in this context, this is about average percentages. Nearly 13 percent seems indeed to be somewhat to the large side. On the other hand a difference of less than one percent, like the difference between our two numbers for 32 bit (which we discussed before) seems to be well within the bounds of what is to be expected and hence completely meaningless. But maybe variations tend to be larger for 64 bit than for 32? Sincerely, Luc. ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-27 21:19 ` Luc Teirlinck @ 2006-04-28 5:22 ` Eli Zaretskii 2006-04-28 16:09 ` Stefan Monnier 0 siblings, 1 reply; 90+ messages in thread From: Eli Zaretskii @ 2006-04-28 5:22 UTC (permalink / raw) Cc: emacs-devel > Date: Thu, 27 Apr 2006 16:19:01 -0500 (CDT) > From: Luc Teirlinck <teirllm@dms.auburn.edu> > CC: emacs-devel@gnu.org > > Of course, using different compilers or different C Libraries, > _including_ different version numbers for the same compiler or library > will not have any effect on the .el file, but it can definitely have > an effect on the .elc files. Different OS or different versions of > the same OS of course also can make a difference. As you wrote later, since pure storage comes out of a static array, it is hard to believe the OS or the compiler can make the difference. But for the record, the compiler I used was gcc 3.4.5. > As I already mentioned, talking about KB is meaningless in this > context, this is about average percentages. I don't know whether average is the right measure here (we won't know for sure until we discover the reason(s) for the discrepancy), but how's this: loading subr.elc took 14KB more in Rainer's build than in mine, bindings.elc took 23KB more, utf-16.elc took 15KB more, etc. I think these are very large differences. > But maybe variations tend to be larger for 64 bit than for 32? AFAIU the byte compiling, there should be no variation at all on the same architecture and OS, as long as the same files are loaded. ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-28 5:22 ` Eli Zaretskii @ 2006-04-28 16:09 ` Stefan Monnier 2006-04-28 16:27 ` Eli Zaretskii 0 siblings, 1 reply; 90+ messages in thread From: Stefan Monnier @ 2006-04-28 16:09 UTC (permalink / raw) Cc: Luc Teirlinck, emacs-devel >> But maybe variations tend to be larger for 64 bit than for 32? > AFAIU the byte compiling, there should be no variation at all on the > same architecture and OS, as long as the same files are loaded. I believe that some filenames end up in purespace, so the size of purespace might change depending on the compilation location or the installation location. This may explain small differences, but not the major one we're seeing here, Stefan ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-28 16:09 ` Stefan Monnier @ 2006-04-28 16:27 ` Eli Zaretskii 0 siblings, 0 replies; 90+ messages in thread From: Eli Zaretskii @ 2006-04-28 16:27 UTC (permalink / raw) Cc: emacs-devel > Cc: Luc Teirlinck <teirllm@dms.auburn.edu>, emacs-devel@gnu.org > From: Stefan Monnier <monnier@iro.umontreal.ca> > Date: Fri, 28 Apr 2006 12:09:44 -0400 > > I believe that some filenames end up in purespace, so the size of purespace > might change depending on the compilation location or the > installation location. Are you talking about load-history? That one is copied to pure space at a specific location during loadup (after loading "site-init"), so any differences due to that ought to appear only at that spot. By contrast, what I see is a steady deviation each time some .elc file is loaded. ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-27 20:38 ` Eli Zaretskii 2006-04-27 20:52 ` David Kastrup 2006-04-27 21:19 ` Luc Teirlinck @ 2006-04-27 21:56 ` Reiner Steib 2006-04-28 5:35 ` Eli Zaretskii 2006-04-27 22:12 ` Luc Teirlinck 2006-04-27 22:24 ` Ken Raeburn 4 siblings, 1 reply; 90+ messages in thread From: Reiner Steib @ 2006-04-27 21:56 UTC (permalink / raw) Cc: emacs-devel On Thu, Apr 27 2006, Eli Zaretskii wrote: > These results are very strange indeed. I've built today's CVS on an > x86_64 box (Red Hat GNU/Linux) in 3 different ways: with GTK, with > Motif and with Lucid, and they all needed only 1881740 bytes, give or > take a few dozen bytes. My build was with GTK (on SUSE 9.2 GNU/Linux). > How come your build requires a whopping 275KB more? > > Comparison of your GDB session with mine shows that each time a .el > file is loaded, it uses up the exact same amount of pure storage in > your build as in mine. But every .elc file takes more pure storage on > your machine, sometimes only by 1KB, sometimes by as much as 20KB. Thanks for your investigations. > Do you have some local changes on your system, or is this a plain > "make bootstrap" of the CVS checkout, with all the defaults wrt > compiler switches, libraries, etc.? It was without "bootstrap". I've set MYCPPFLAGS='-DENABLE_CHECKING=1'. I use the same source tree for x86_64 and i686 with different exec-prefix: configure --prefix=[...]/HEAD --with-gtk \ --exec-prefix=[...]/HEAD-`uname -m` > (Not that I see how local changes to anything but the Lisp files > themselves could produce such bloat.) > > Does anyone have ideas as to what could cause such a significant > difference in pure storage use on two identical architectures? I have some (minor, IMHO) local changes. I will try tomorrow without any local changes and report back again. Bye, Reiner. -- ,,, (o o) ---ooO-(_)-Ooo--- | PGP key available | http://rsteib.home.pages.de/ ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-27 21:56 ` Reiner Steib @ 2006-04-28 5:35 ` Eli Zaretskii 2006-04-28 13:11 ` Reiner Steib 0 siblings, 1 reply; 90+ messages in thread From: Eli Zaretskii @ 2006-04-28 5:35 UTC (permalink / raw) > From: Reiner Steib <reinersteib+gmane@imap.cc> > Cc: emacs-devel@gnu.org > Date: Thu, 27 Apr 2006 23:56:12 +0200 > > I've set MYCPPFLAGS='-DENABLE_CHECKING=1'. I don't think this should matter, as it only activates some assertions in the C code. > I use the same source tree for x86_64 and i686 with different > exec-prefix: > > configure --prefix=[...]/HEAD --with-gtk \ > --exec-prefix=[...]/HEAD-`uname -m` But you do compile in two different directories for each architecture, right? That is, the source tree is common, but the build directories are different, yes? Or do you use the same directory, but clean it up between any two builds? If the latter, how do you clean it? > I have some (minor, IMHO) local changes. I will try tomorrow without > any local changes and report back again. Thanks. ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-28 5:35 ` Eli Zaretskii @ 2006-04-28 13:11 ` Reiner Steib 2006-04-28 15:24 ` Andreas Schwab 2006-04-28 16:19 ` Eli Zaretskii 0 siblings, 2 replies; 90+ messages in thread From: Reiner Steib @ 2006-04-28 13:11 UTC (permalink / raw) Cc: emacs-devel On Fri, Apr 28 2006, Eli Zaretskii wrote: >> From: Reiner Steib <reinersteib+gmane@imap.cc> >> Cc: emacs-devel@gnu.org >> Date: Thu, 27 Apr 2006 23:56:12 +0200 >> >> I've set MYCPPFLAGS='-DENABLE_CHECKING=1'. > > I don't think this should matter, as it only activates some assertions > in the C code. > >> I use the same source tree for x86_64 and i686 with different >> exec-prefix: >> >> configure --prefix=[...]/HEAD --with-gtk \ >> --exec-prefix=[...]/HEAD-`uname -m` > > But you do compile in two different directories for each architecture, > right? That is, the source tree is common, but the build directories > are different, yes? Yes, I use a common source tree and two separate build directories. The source tree is in .../cvs-HEAD/emacs and the build directories are .../cvs-HEAD/`uname -m` (-> i686 and x86_64). > Or do you use the same directory, but clean it up between any two > builds? If the latter, how do you clean it? > >> I have some (minor, IMHO) local changes. I will try tomorrow without >> any local changes and report back again. Okay, the following results are with an unmodified, clean source tree[1] with configure ... && make bootstrap. I've put the complete logs for each arch (i686 and x86_64) on the web [2] in the files emacs-build-`date -I`-`uname -m`.log.gz (*.gz; 39K / 54K). During "make bootstrap", I get: ,----[ x86_64 ] | Finding pointers to doc strings...done | Dumping under names emacs and emacs-22.0.50 | 108788 pure bytes used | mv -f emacs bootstrap-emacs | [...] | Finding pointers to doc strings...done | Dumping under names emacs and emacs-22.0.50.1 | emacs:0:Pure Lisp storage overflow (approx. 2159640 bytes needed) | 1536 pure bytes used | ./emacs -q -batch -f list-load-path-shadows `---- ,----[ i686 ] | Finding pointers to doc strings...done | Dumping under names emacs and emacs-22.0.50 | 75284 pure bytes used | mv -f emacs bootstrap-emacs | [...] | Finding pointers to doc strings...done | Dumping under names emacs and emacs-22.0.50.1 | emacs:0:Pure Lisp storage overflow (approx. 1345256 bytes needed) | 608 pure bytes used | ./emacs -q -batch -f list-load-path-shadows `---- Here are the results for pure_bytes_used from running temacs under gdb ("run -batch -l loadup dump" with breakpoint in Fload) for both x86_64 and i686. The full gdb logs are in temacs-gdb-`date -I`-`uname -m`.log.gz on [2]. temacs-gdb-`date -I`-`uname -m`.pure.log.gz contain the relevant parts [3] which I include here in this message: --8<---------------cut here---------------start------------->8--- ~/src/links/emacs/cvs-HEAD/x86_64/src$ gdb ./temacs GNU gdb 6.2.1 Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "x86_64-suse-linux"...Using host libthread_db library "/lib64/tls/libthread_db.so.1". DISPLAY = localhost:11.0 TERM = xterm Breakpoint 1 at 0x556da0: file /home/dept/ste/src/links/emacs/cvs-HEAD/emacs/src/sysdep.c, line 1373. (gdb) break lread.c:717 Breakpoint 2 at 0x5e79dc: file /home/dept/ste/src/links/emacs/cvs-HEAD/emacs/src/lread.c, line 717. (gdb) run -batch -l loadup dump Starting program: /import/Archive/Groups/Productivity/Editors/Emacs/emacs/cvs-HEAD/x86_64/src/temacs -batch -l loadup dump [Thread debugging using libthread_db enabled] [New Thread 182940272320 (LWP 28159)] [Switching to Thread 182940272320 (LWP 28159)] Breakpoint 2, Fload (file=11077635, noerror=10658513, nomessage=10658513, nosuffix=10658513, must_suffix=10658513) at /home/dept/ste/src/links/emacs/cvs-HEAD/emacs/src/lread.c:718 718 register int fd = -1; (gdb) print pure_bytes_used $1 = 108747 $1 = 108747 (gdb) continue Continuing. Loading loadup.el (source)... Loading loadup.el (source)... Using load-path (/home/dept/ste/src/links/emacs/cvs-HEAD/emacs/lisp) Breakpoint 2, Fload (file=11080355, noerror=10658513, nomessage=10658513, nosuffix=10658513, must_suffix=10658513) at /home/dept/ste/src/links/emacs/cvs-HEAD/emacs/src/lread.c:718 718 register int fd = -1; (gdb) print pure_bytes_used $2 = 108788 $2 = 108788 Loading emacs-lisp/byte-run... $3 = 114536 Loading emacs-lisp/backquote... $4 = 118000 Loading subr... $5 = 205328 Loading version.el (source)... $6 = 208625 Loading widget... $7 = 209471 Loading custom... $8 = 241496 Loading emacs-lisp/map-ynp... $9 = 248473 Loading env... $10 = 253068 Loading cus-start... $11 = 255909 Loading international/mule... $12 = 317596 Loading international/mule-conf.el (source)... $13 = 327085 Loading format... $14 = 350864 Loading bindings... $15 = 388019 Loading files... $16 = 537811 Loading cus-face... $17 = 556913 Loading faces... $18 = 638354 Loading loaddefs.el (source)... $19 = 833869 Loading simple... $20 = 975911 Loading help... $21 = 1013912 Loading international/mule-cmds... $22 = 1092096 Loading case-table... $23 = 1097760 Loading international/utf-8... $24 = 1123530 Loading international/utf-16... $25 = 1176110 Loading international/characters... $26 = 1178958 Loading international/latin-1 (source)... $27 = 1178958 Loading international/latin-2 (source)... $28 = 1179000 Loading international/latin-3 (source)... $29 = 1179040 Loading international/latin-4 (source)... $30 = 1179080 Loading international/latin-5 (source)... $31 = 1179120 Loading international/latin-8 (source)... $32 = 1179160 Loading international/latin-9 (source)... $33 = 1179200 Loading language/chinese... $34 = 1190587 Loading language/cyrillic... $35 = 1202880 Loading language/indian... $36 = 1207624 Loading language/devanagari (source)... $37 = 1208048 Loading language/malayalam (source)... $38 = 1208280 Loading language/tamil (source)... $39 = 1208496 Loading language/kannada (source)... $40 = 1208900 Loading language/english (source)... $41 = 1209070 Loading language/ethiopic... $42 = 1210719 Loading language/european... $43 = 1230265 Loading language/czech (source)... $44 = 1230606 Loading language/slovak (source)... $45 = 1230943 Loading language/romanian (source)... $46 = 1231297 Loading language/greek (source)... $47 = 1232238 Loading language/hebrew (source)... $48 = 1233839 Loading language/japanese (source)... $49 = 1237937 Loading language/korean (source)... $50 = 1240159 Loading language/lao (source)... $51 = 1240888 Loading language/thai (source)... $52 = 1242613 Loading language/tibetan... $53 = 1289760 Loading language/vietnamese... $54 = 1295398 Loading language/misc-lang (source)... $55 = 1295570 Loading language/utf-8-lang (source)... $56 = 1296355 Loading language/georgian (source)... $57 = 1296673 Loading international/ucs-tables... $58 = 1306507 Loading indent... $59 = 1319816 Loading window... $60 = 1344802 Loading frame... $61 = 1379615 Loading term/tty-colors... $62 = 1387104 Loading font-core... $63 = 1394802 Loading facemenu... $64 = 1413149 Loading emacs-lisp/syntax... $65 = 1417976 Loading font-lock... $66 = 1469488 Loading jit-lock... $67 = 1483064 Loading mouse... $68 = 1534775 Loading scroll-bar... $69 = 1547197 Loading select... $70 = 1558271 Loading emacs-lisp/timer... $71 = 1574828 Loading isearch... $72 = 1635896 Loading rfn-eshadow... $73 = 1644164 Loading menu-bar... $74 = 1685082 Loading paths.el (source)... $75 = 1688572 Loading startup... $76 = 1748922 Loading emacs-lisp/lisp... $77 = 1765301 Loading textmodes/page... $78 = 1767933 Loading register... $79 = 1778450 Loading textmodes/paragraphs... $80 = 1788259 Loading emacs-lisp/lisp-mode... $81 = 1814516 Loading textmodes/text-mode... $82 = 1818898 Loading textmodes/fill... $83 = 1850601 Loading replace... $84 = 1896328 Loading abbrev... $85 = 1907316 Loading buff-menu... $86 = 1928794 Loading fringe... $87 = 1935824 Loading image... $88 = 1948064 Loading international/fontset... $89 = 1970371 Loading dnd... $90 = 1975446 Loading mwheel... $91 = 1984375 Loading tool-bar... $92 = 1993357 Loading x-dnd... $93 = 5574 Loading emacs-lisp/float-sup... $94 = 6232 Loading vc-hooks... $95 = 3081 Loading jka-cmpr-hook... $96 = 3062 Loading ediff-hook... $97 = 3343 Loading tooltip... $98 = 3192 $99 = 3234 (gdb) continue Continuing. Dumping under names emacs and emacs-22.0.50.2 emacs:0:Pure Lisp storage overflow (approx. 2159640 bytes needed) 1536 pure bytes used Program exited normally. (gdb) --8<---------------cut here---------------end--------------->8--- --8<---------------cut here---------------start------------->8--- ~/src/links/emacs/cvs-HEAD/i686/src$ gdb ./temacs GNU gdb 6.2.1 Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i586-suse-linux"...Using host libthread_db library "/lib/tls/libthread_db.so.1". DISPLAY = localhost:12.0 TERM = xterm Breakpoint 1 at 0x8185989: file /home/dept/ste/src/links/emacs/cvs-HEAD/emacs/src/sysdep.c, line 1393. (gdb) break lread.c:717 Breakpoint 2 at 0x821014c: file /home/dept/ste/src/links/emacs/cvs-HEAD/emacs/src/lread.c, line 717. (gdb) run -batch -l loadup dump Starting program: /import/Archive/Groups/Productivity/Editors/Emacs/emacs/cvs-HEAD/i686/src/temacs -batch -l loadup dump [Thread debugging using libthread_db enabled] [New Thread 1083362592 (LWP 12468)] [Switching to Thread 1083362592 (LWP 12468)] Breakpoint 2, Fload (file=138854739, noerror=138630009, nomessage=138630009, nosuffix=138630009, must_suffix=138630009) at /home/dept/ste/src/links/emacs/cvs-HEAD/emacs/src/lread.c:718 718 register int fd = -1; (gdb) print pure_bytes_used $1 = 75259 $1 = 75259 (gdb) continue Continuing. Loading loadup.el (source)... Loading loadup.el (source)... Using load-path (/home/dept/ste/src/links/emacs/cvs-HEAD/emacs/lisp) Breakpoint 2, Fload (file=138858059, noerror=138630009, nomessage=138630009, nosuffix=138630009, must_suffix=138630009) at /home/dept/ste/src/links/emacs/cvs-HEAD/emacs/src/lread.c:718 718 register int fd = -1; (gdb) print pure_bytes_used $2 = 75284 $2 = 75284 Loading emacs-lisp/byte-run... $3 = 78752 Loading emacs-lisp/backquote... $4 = 80996 Loading subr... $5 = 134560 Loading version.el (source)... $6 = 136543 Loading widget... $7 = 137055 Loading custom... $8 = 156712 Loading emacs-lisp/map-ynp... $9 = 161145 Loading env... $10 = 164028 Loading cus-start... $11 = 165893 Loading international/mule... $12 = 205060 Loading international/mule-conf.el (source)... $13 = 212149 Loading format... $14 = 226984 Loading bindings... $15 = 250075 Loading files... $16 = 343443 Loading cus-face... $17 = 354265 Loading faces... $18 = 402666 Loading loaddefs.el (source)... $19 = 536045 Loading simple... $20 = 623551 Loading help... $21 = 648524 Loading international/mule-cmds... $22 = 696932 Loading case-table... $23 = 700388 Loading international/utf-8... $24 = 715498 Loading international/utf-16... $25 = 744694 Loading international/characters... $26 = 746662 Loading international/latin-1 (source)... $27 = 746662 Loading international/latin-2 (source)... $28 = 746688 Loading international/latin-3 (source)... $29 = 746712 Loading international/latin-4 (source)... $30 = 746736 Loading international/latin-5 (source)... $31 = 746760 Loading international/latin-8 (source)... $32 = 746784 Loading international/latin-9 (source)... $33 = 746808 Loading language/chinese... $34 = 754027 Loading language/cyrillic... $35 = 762104 Loading language/indian... $36 = 765160 Loading language/devanagari (source)... $37 = 765432 Loading language/malayalam (source)... $38 = 765576 Loading language/tamil (source)... $39 = 765704 Loading language/kannada (source)... $40 = 765956 Loading language/english (source)... $41 = 766070 Loading language/ethiopic... $42 = 767351 Loading language/european... $43 = 781289 Loading language/czech (source)... $44 = 781502 Loading language/slovak (source)... $45 = 781711 Loading language/romanian (source)... $46 = 781937 Loading language/greek (source)... $47 = 782614 Loading language/hebrew (source)... $48 = 783751 Loading language/japanese (source)... $49 = 786649 Loading language/korean (source)... $50 = 788231 Loading language/lao (source)... $51 = 788736 Loading language/thai (source)... $52 = 789949 Loading language/tibetan... $53 = 818144 Loading language/vietnamese... $54 = 821998 Loading language/misc-lang (source)... $55 = 822098 Loading language/utf-8-lang (source)... $56 = 822555 Loading language/georgian (source)... $57 = 822769 Loading international/ucs-tables... $58 = 829083 Loading indent... $59 = 837056 Loading window... $60 = 852034 Loading frame... $61 = 873295 Loading term/tty-colors... $62 = 877872 Loading font-core... $63 = 882682 Loading facemenu... $64 = 893621 Loading emacs-lisp/syntax... $65 = 896756 Loading font-lock... $66 = 928936 Loading jit-lock... $67 = 937152 Loading mouse... $68 = 969623 Loading scroll-bar... $69 = 977069 Loading select... $70 = 983919 Loading emacs-lisp/timer... $71 = 994052 Loading isearch... $72 = 1031464 Loading rfn-eshadow... $73 = 1036460 Loading menu-bar... $74 = 1062514 Loading paths.el (source)... $75 = 1065212 Loading startup... $76 = 1103578 Loading emacs-lisp/lisp... $77 = 1113445 Loading textmodes/page... $78 = 1115053 Loading register... $79 = 1121610 Loading textmodes/paragraphs... $80 = 1127723 Loading emacs-lisp/lisp-mode... $81 = 1144212 Loading textmodes/text-mode... $82 = 1146906 Loading textmodes/fill... $83 = 1166169 Loading replace... $84 = 1194136 Loading abbrev... $85 = 1200676 Loading buff-menu... $86 = 8962 Loading fringe... $87 = 3236 Loading image... $88 = 728 Loading international/fontset... $89 = 4771 Loading dnd... $90 = 7838 Loading mwheel... $91 = 3199 Loading tool-bar... $92 = 8501 Loading x-dnd... $93 = 1606 Loading emacs-lisp/float-sup... $94 = 2008 Loading vc-hooks... $95 = 8281 Loading jka-cmpr-hook... $96 = 4374 Loading ediff-hook... $97 = 4535 Loading tooltip... $98 = 600 $99 = 626 (gdb) continue Continuing. Dumping under names emacs and emacs-22.0.50.2 emacs:0:Pure Lisp storage overflow (approx. 1345256 bytes needed) 608 pure bytes used Program exited normally. (gdb) --8<---------------cut here---------------end--------------->8--- Finally, in footnotes [4] and [5] there is some information about the machines (CPU, gcc, gdb). Both machine are running GNU/Linux (SuSE 9.2), 32 and 64 version respectively with all current security patches available from SUSE. glibc is glibc-2.3.3-118 on both machines. Someone pointed out that the filenames (or the directory) might be stored. The real directory name is quite long, see [1]. Let me know if other information might be useful. Bye, Reiner. [1] $ cd ~/src/links/emacs/cvs-HEAD $ /bin/pwd /import/Archive/Groups/Productivity/Editors/Emacs/emacs/cvs-HEAD $ cd emacs $ cvs update (on 2006-04-28 approx. at 12:43 CEST) $ cvs diff -u > ../rs-`date -I`.patch $ patch -R -p0 < ../rs-`date -I`.patch $ cd .. $ find i686/ x86_64/ -name '*.o'|xargs -r rm $ find emacs/ -name '*.elc'|xargs -r rm On each host I run a shell script which basically does... (all details in emacs-build-`date -I`-`uname -m`.log.gz on [2] $ export MYCPPFLAGS='-DENABLE_CHECKING=1' $ cd `uname -m` $ ../emacs/configure --prefix=/import/xtra/emacs/HEAD --with-gtk \ --exec-prefix=/import/xtra/emacs/HEAD-`uname -m` && make bootstrap [2] <URL:http://theotp1.physik.uni-ulm.de/~ste/tmp/emacs/> [3] $ sed -ne '1,35p;/^\$[0-9]* = /p;/^Loading/p;919,1000p' \ < temacs-gdb-`date -I`-`uname -m`.log \ > temacs-gdb-`date -I`-`uname -m`.pure.log [4] The x86_64 machine has an AMD Athlon CPU: $ cat /proc/cpuinfo processor : 0 vendor_id : AuthenticAMD cpu family : 15 model : 31 model name : AMD Athlon(tm) 64 Processor 3500+ stepping : 0 cpu MHz : 2202.859 cache size : 512 KB fpu : yes fpu_exception : yes cpuid level : 1 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 pni syscall nx mmxext lm 3dnowext 3dnow ts bogomips : 4308.99 TLB size : 1088 4K pages clflush size : 64 cache_alignment : 64 address sizes : 40 bits physical, 48 bits virtual power management: ts fid vid ttp $ gcc -v Reading specs from /usr/lib64/gcc-lib/x86_64-suse-linux/3.3.4/specs Configured with: ../configure --enable-threads=posix --prefix=/usr --with-local-prefix=/usr/local --infodir=/usr/share/info --mandir=/usr/share/man --enable-languages=c,c++,f77,objc,java,ada --disable-checking --libdir=/usr/lib64 --enable-libgcj --with-gxx-include-dir=/usr/include/g++ --with-slibdir=/lib64 --with-system-zlib --enable-shared --enable-__cxa_atexit x86_64-suse-linux Thread model: posix gcc version 3.3.4 (pre 3.3.5 20040809) $ gdb -v GNU gdb 6.2.1 Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "x86_64-suse-linux". [5] The "i686" machine has two Intel Xeon CPUs: $ cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 15 model : 2 model name : Intel(R) Xeon(TM) CPU 2.40GHz stepping : 9 cpu MHz : 2400.431 cache size : 512 KB physical id : 0 siblings : 2 fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 2 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe cid xtpr bogomips : 4751.36 processor : 1 [...] processor : 2 [...] processor : 3 [...] $ gcc -v Reading specs from /usr/lib/gcc-lib/i586-suse-linux/3.3.4/specs Configured with: ../configure --enable-threads=posix --prefix=/usr --with-local-prefix=/usr/local --infodir=/usr/share/info --mandir=/usr/share/man --enable-languages=c,c++,f77,objc,java,ada --disable-checking --libdir=/usr/lib --enable-libgcj --with-gxx-include-dir=/usr/include/g++ --with-slibdir=/lib --with-system-zlib --enable-shared --enable-__cxa_atexit i586-suse-linux Thread model: posix gcc version 3.3.4 (pre 3.3.5 20040809) $ gdb -v GNU gdb 6.2.1 Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i586-suse-linux". ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-28 13:11 ` Reiner Steib @ 2006-04-28 15:24 ` Andreas Schwab 2006-04-28 16:19 ` Eli Zaretskii 1 sibling, 0 replies; 90+ messages in thread From: Andreas Schwab @ 2006-04-28 15:24 UTC (permalink / raw) Cc: emacs-devel Reiner Steib <reinersteib+gmane@imap.cc> writes: > Someone pointed out that the filenames (or the directory) might be > stored. There are no absolute file names in the pure space, except for a few system directories. Andreas. -- Andreas Schwab, SuSE Labs, schwab@suse.de SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-28 13:11 ` Reiner Steib 2006-04-28 15:24 ` Andreas Schwab @ 2006-04-28 16:19 ` Eli Zaretskii 2006-04-28 17:15 ` Reiner Steib 1 sibling, 1 reply; 90+ messages in thread From: Eli Zaretskii @ 2006-04-28 16:19 UTC (permalink / raw) > From: Reiner Steib <reinersteib+gmane@imap.cc> > Cc: emacs-devel@gnu.org > Date: Fri, 28 Apr 2006 15:11:52 +0200 > > Okay, the following results are with an unmodified, clean source > tree[1] with configure ... && make bootstrap. I've put the complete > logs for each arch (i686 and x86_64) on the web [2] in the files > emacs-build-`date -I`-`uname -m`.log.gz (*.gz; 39K / 54K). > > During "make bootstrap", I get: > > ,----[ x86_64 ] > | Finding pointers to doc strings...done > | Dumping under names emacs and emacs-22.0.50 > | 108788 pure bytes used > | mv -f emacs bootstrap-emacs > | [...] > | Finding pointers to doc strings...done > | Dumping under names emacs and emacs-22.0.50.1 > | emacs:0:Pure Lisp storage overflow (approx. 2159640 bytes needed) > | 1536 pure bytes used > | ./emacs -q -batch -f list-load-path-shadows > `---- Thanks. So the mystery is still here, since this is the same value you reported before. I think it's time to see whether the *.elc files we use are identical. Can you upload a couple of worst offenders, say, files.elc and simple.elc? I'd like to compare them to mine. TIA ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-28 16:19 ` Eli Zaretskii @ 2006-04-28 17:15 ` Reiner Steib 2006-04-29 15:13 ` Eli Zaretskii 0 siblings, 1 reply; 90+ messages in thread From: Reiner Steib @ 2006-04-28 17:15 UTC (permalink / raw) Cc: emacs-devel On Fri, Apr 28 2006, Eli Zaretskii wrote: > I think it's time to see whether the *.elc files we use are identical. > Can you upload a couple of worst offenders, say, files.elc and > simple.elc? I'd like to compare them to mine. http://theotp1.physik.uni-ulm.de/~ste/tmp/emacs/lisp/ (The *.elc files were compile on i686.) Bye, Reiner. -- ,,, (o o) ---ooO-(_)-Ooo--- | PGP key available | http://rsteib.home.pages.de/ ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-28 17:15 ` Reiner Steib @ 2006-04-29 15:13 ` Eli Zaretskii 2006-04-29 15:27 ` Stefan Monnier ` (2 more replies) 0 siblings, 3 replies; 90+ messages in thread From: Eli Zaretskii @ 2006-04-29 15:13 UTC (permalink / raw) > From: Reiner Steib <reinersteib+gmane@imap.cc> > Cc: emacs-devel@gnu.org > Date: Fri, 28 Apr 2006 19:15:53 +0200 > > On Fri, Apr 28 2006, Eli Zaretskii wrote: > > > I think it's time to see whether the *.elc files we use are identical. > > Can you upload a couple of worst offenders, say, files.elc and > > simple.elc? I'd like to compare them to mine. > > http://theotp1.physik.uni-ulm.de/~ste/tmp/emacs/lisp/ > > (The *.elc files were compile on i686.) Thanks. I compared these with the versions compiled on a 32-bit Windows host, and they seem to be identical, except for 2 aspects: . Source files, whose absolute file names appear in a comment at the beginning of the .elc files. These are in comments, so they are obviously not the reason for the differences in pure space usage. . Minor differences in the defvar's and custom forms, like these: -(defvar backup-inhibited nil (#$ . 2763)) +(defvar backup-inhibited nil (#$ . 2801)) -(custom-declare-variable 'backup-by-copying 'nil '(#$ . -3035) :type 'boolean :group 'backup) +(custom-declare-variable 'backup-by-copying 'nil '(#$ . -3073) :type 'boolean :group 'backup) I think these differences are immaterial, but just so we don't miss something of importance: could someone who knows more than myself about the byte-compiled code please tell what are those numbers that differ between the two systems? Meanwhile, I will try to prepare a GDB session that we could use to compare the pure space allocation during loadup. Thanks again for working on this. ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-29 15:13 ` Eli Zaretskii @ 2006-04-29 15:27 ` Stefan Monnier 2006-04-29 16:49 ` Eli Zaretskii 2006-04-29 15:33 ` Andreas Schwab 2006-05-30 19:40 ` Reiner Steib 2 siblings, 1 reply; 90+ messages in thread From: Stefan Monnier @ 2006-04-29 15:27 UTC (permalink / raw) Cc: emacs-devel > -(defvar backup-inhibited nil (#$ . 2763)) > +(defvar backup-inhibited nil (#$ . 2801)) The number is the position in the file (in bytes) of the corresponding docstring. It's presumably different because the source file name in comment earlier in the file. Stefan ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-29 15:27 ` Stefan Monnier @ 2006-04-29 16:49 ` Eli Zaretskii 0 siblings, 0 replies; 90+ messages in thread From: Eli Zaretskii @ 2006-04-29 16:49 UTC (permalink / raw) Cc: emacs-devel > Cc: emacs-devel@gnu.org > From: Stefan Monnier <monnier@iro.umontreal.ca> > Date: Sat, 29 Apr 2006 11:27:42 -0400 > > > -(defvar backup-inhibited nil (#$ . 2763)) > > +(defvar backup-inhibited nil (#$ . 2801)) > > The number is the position in the file (in bytes) of the > corresponding docstring. It's presumably different because the source file > name in comment earlier in the file. Thanks. That was my guess, but I wanted to be sure. ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-29 15:13 ` Eli Zaretskii 2006-04-29 15:27 ` Stefan Monnier @ 2006-04-29 15:33 ` Andreas Schwab 2006-05-30 19:40 ` Reiner Steib 2 siblings, 0 replies; 90+ messages in thread From: Andreas Schwab @ 2006-04-29 15:33 UTC (permalink / raw) Cc: emacs-devel Eli Zaretskii <eliz@gnu.org> writes: > . Minor differences in the defvar's and custom forms, like these: > > -(defvar backup-inhibited nil (#$ . 2763)) > +(defvar backup-inhibited nil (#$ . 2801)) > > -(custom-declare-variable 'backup-by-copying 'nil '(#$ . -3035) :type 'boolean :group 'backup) > +(custom-declare-variable 'backup-by-copying 'nil '(#$ . -3073) :type 'boolean :group 'backup) > > I think these differences are immaterial, but just so we don't miss > something of importance: could someone who knows more than myself > about the byte-compiled code please tell what are those numbers that > differ between the two systems? These are pointers to the doc string, offsets into the file (the sign is the user-variable-p flag). Since the comment at the start of the files differ in length the offsets will differ too. Andreas. -- Andreas Schwab, SuSE Labs, schwab@suse.de SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-29 15:13 ` Eli Zaretskii 2006-04-29 15:27 ` Stefan Monnier 2006-04-29 15:33 ` Andreas Schwab @ 2006-05-30 19:40 ` Reiner Steib 2006-05-30 19:47 ` Eli Zaretskii 2006-06-03 11:53 ` Eli Zaretskii 2 siblings, 2 replies; 90+ messages in thread From: Reiner Steib @ 2006-05-30 19:40 UTC (permalink / raw) Cc: emacs-devel On Sat, Apr 29 2006, Eli Zaretskii wrote: >> From: Reiner Steib <reinersteib+gmane@imap.cc> >> On Fri, Apr 28 2006, Eli Zaretskii wrote: >> >> > I think it's time to see whether the *.elc files we use are identical. >> > Can you upload a couple of worst offenders, say, files.elc and >> > simple.elc? I'd like to compare them to mine. [...] > I compared these with the versions compiled on a 32-bit Windows host, > and they seem to be identical, except for 2 aspects: > > . Source files, whose absolute file names appear in a comment at the > beginning of the .elc files. These are in comments, so they are > obviously not the reason for the differences in pure space usage. > > . Minor differences in the defvar's and custom forms, like these: > > -(defvar backup-inhibited nil (#$ . 2763)) > +(defvar backup-inhibited nil (#$ . 2801)) [...] > > Meanwhile, I will try to prepare a GDB session that we could use to > compare the pure space allocation during loadup. I just wanted to state that I still need to use "-DSITELOAD_PURESIZE_EXTRA=100000" to avoid an overflow on x86_64 (GNU/Linux) even after the recent increase of BASE_PURESIZE[1]. 90000 is not sufficient. On i686 (GNU/Linux) I need 140000 (130000 is not sufficient). Bye, Reiner. [1] ,---- | 2006-05-24 Luc Teirlinck <teirllm@auburn.edu> | | * puresize.h (BASE_PURESIZE): Increase to 1210000. `---- -- ,,, (o o) ---ooO-(_)-Ooo--- | PGP key available | http://rsteib.home.pages.de/ ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-05-30 19:40 ` Reiner Steib @ 2006-05-30 19:47 ` Eli Zaretskii 2006-06-03 11:53 ` Eli Zaretskii 1 sibling, 0 replies; 90+ messages in thread From: Eli Zaretskii @ 2006-05-30 19:47 UTC (permalink / raw) > From: Reiner Steib <reinersteib+gmane@imap.cc> > Cc: emacs-devel@gnu.org > Date: Tue, 30 May 2006 21:40:30 +0200 > > > Meanwhile, I will try to prepare a GDB session that we could use to > > compare the pure space allocation during loadup. > > I just wanted to state that I still need to use > "-DSITELOAD_PURESIZE_EXTRA=100000" to avoid an overflow on x86_64 Yes, I didn't yet have time to prepare a GDB session I promised. Hopefully, I will have that time soon. ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-05-30 19:40 ` Reiner Steib 2006-05-30 19:47 ` Eli Zaretskii @ 2006-06-03 11:53 ` Eli Zaretskii 2006-06-09 15:33 ` Reiner Steib 1 sibling, 1 reply; 90+ messages in thread From: Eli Zaretskii @ 2006-06-03 11:53 UTC (permalink / raw) > From: Reiner Steib <reinersteib+gmane@imap.cc> > Cc: emacs-devel@gnu.org > Date: Tue, 30 May 2006 21:40:30 +0200 > > > Meanwhile, I will try to prepare a GDB session that we could use to > > compare the pure space allocation during loadup. > > I just wanted to state that I still need to use > "-DSITELOAD_PURESIZE_EXTRA=100000" to avoid an overflow on x86_64 > (GNU/Linux) even after the recent increase of BASE_PURESIZE[1]. 90000 > is not sufficient. On i686 (GNU/Linux) I need 140000 (130000 is not > sufficient). I've looked around some more with GDB, and here's what I'd like you to do. Run temacs under GDB, and type these commands: (gdb) b Fload (gdb) commands >p file >xstring >end (gdb) r -batch -l loadup Then, whenever Fload is called, GDB will display the name of the file that is about to be loaded. When it shows "emacs-lisp/byte-run", type the following commands: (gdb) set height 0 (gdb) b alloc.c:4718 (gdb) commands >bt 2 >xbacktrace >continue >end (gdb) c This will run for a while until it finishes loading byte-run, and stop on the next call to Fload. At that time, please copy everything that GDB displayed until that point, and put it somewhere on the Web where I can read it (or post here). I will then compare with what I see on my system. (If possible, please do this with a 32-bit build, as my access top a 64-bit host is sporadic.) TIA ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-06-03 11:53 ` Eli Zaretskii @ 2006-06-09 15:33 ` Reiner Steib 2006-06-09 16:49 ` Eli Zaretskii 0 siblings, 1 reply; 90+ messages in thread From: Reiner Steib @ 2006-06-09 15:33 UTC (permalink / raw) Cc: emacs-devel [-- Attachment #1: Type: text/plain, Size: 1306 bytes --] On Sat, Jun 03 2006, Eli Zaretskii wrote: > Run temacs under GDB, and type these commands: > > (gdb) b Fload > (gdb) commands > >p file > >xstring > >end > (gdb) r -batch -l loadup > > Then, whenever Fload is called, GDB will display the name of the file > that is about to be loaded. When it shows "emacs-lisp/byte-run", type > the following commands: > > (gdb) set height 0 > (gdb) b alloc.c:4718 > (gdb) commands > >bt 2 > >xbacktrace > >continue > >end > (gdb) c > > This will run for a while until it finishes loading byte-run, and stop > on the next call to Fload. At that time, please copy everything that > GDB displayed until that point, and put it somewhere on the Web where > I can read it (or post here). I will then compare with what I see on > my system. (If possible, please do this with a 32-bit build, as my > access top a 64-bit host is sporadic.) Attached you'll find the gzipped gdb log (from a fresh bootstrapped build on 32-bit GNU/Linux). BTW, the above is on SUSE 9.2. On SUSE 10.0 I don't observe an overflow. I don't have gcc version of SUSE 10.0 here, but I can provide it later if it's of interest. Bye, Reiner. -- ,,, (o o) ---ooO-(_)-Ooo--- | PGP key available | http://rsteib.home.pages.de/ [-- Attachment #2: pure-space-debug-2006-06-09.log.gz --] [-- Type: application/x-gzip, Size: 3931 bytes --] [-- Attachment #3: Type: text/plain, Size: 142 bytes --] _______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-devel ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-06-09 15:33 ` Reiner Steib @ 2006-06-09 16:49 ` Eli Zaretskii 2006-06-09 16:57 ` Andreas Schwab 0 siblings, 1 reply; 90+ messages in thread From: Eli Zaretskii @ 2006-06-09 16:49 UTC (permalink / raw) > From: Reiner Steib <reinersteib+gmane@imap.cc> > Cc: emacs-devel@gnu.org > Date: Fri, 09 Jun 2006 17:33:24 +0200 > > Attached you'll find the gzipped gdb log (from a fresh bootstrapped > build on 32-bit GNU/Linux). Thanks. Will look at it today or tomorrow. > BTW, the above is on SUSE 9.2. On SUSE 10.0 I don't observe an > overflow. I don't have gcc version of SUSE 10.0 here, but I can > provide it later if it's of interest. Please see whether the GCC versions are different (although I cannot yet see how a different version could explain such large differences). What is the GCC version on your SUSE 9.2? Can people who know about SUSE think of any differences between these two versions that could explain the difference in pure space usage? ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-06-09 16:49 ` Eli Zaretskii @ 2006-06-09 16:57 ` Andreas Schwab 2006-06-09 19:55 ` Eli Zaretskii 0 siblings, 1 reply; 90+ messages in thread From: Andreas Schwab @ 2006-06-09 16:57 UTC (permalink / raw) Cc: emacs-devel Eli Zaretskii <eliz@gnu.org> writes: > Please see whether the GCC versions are different (although I cannot > yet see how a different version could explain such large > differences). What is the GCC version on your SUSE 9.2? 9.2 has gcc 3.3.4, whereas 10.0 has 4.0.2. > Can people who know about SUSE think of any differences between these > two versions that could explain the difference in pure space usage? I could think of data alignment being an issue, but otherwise the behaviour of the generated code should be identical (modulo bugs). Andreas. -- Andreas Schwab, SuSE Labs, schwab@suse.de SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-06-09 16:57 ` Andreas Schwab @ 2006-06-09 19:55 ` Eli Zaretskii 2006-06-09 22:33 ` Andreas Schwab 0 siblings, 1 reply; 90+ messages in thread From: Eli Zaretskii @ 2006-06-09 19:55 UTC (permalink / raw) Cc: emacs-devel > From: Andreas Schwab <schwab@suse.de> > Cc: emacs-devel@gnu.org > Date: Fri, 09 Jun 2006 18:57:41 +0200 > > 9.2 has gcc 3.3.4, whereas 10.0 has 4.0.2. Thanks. > > Can people who know about SUSE think of any differences between these > > two versions that could explain the difference in pure space usage? > > I could think of data alignment being an issue The overflow happens on 9.2, but not on 10.0. Is it plausible that GCC 3.3.4 on SuSe 9.2 produces code with higher alignment requirements than GCC 4.0.2 on SuSe 10.0? ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-06-09 19:55 ` Eli Zaretskii @ 2006-06-09 22:33 ` Andreas Schwab 2006-06-10 7:39 ` Eli Zaretskii 0 siblings, 1 reply; 90+ messages in thread From: Andreas Schwab @ 2006-06-09 22:33 UTC (permalink / raw) Cc: emacs-devel Eli Zaretskii <eliz@gnu.org> writes: > The overflow happens on 9.2, but not on 10.0. Is it plausible that > GCC 3.3.4 on SuSe 9.2 produces code with higher alignment requirements > than GCC 4.0.2 on SuSe 10.0? I don't think so. And I cannot reproduce the problem: there are only 1207936 pure bytes used when building on 9.2, exactly the same as on 10.0. Andreas. -- Andreas Schwab, SuSE Labs, schwab@suse.de SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-06-09 22:33 ` Andreas Schwab @ 2006-06-10 7:39 ` Eli Zaretskii 2006-06-10 9:36 ` Andreas Schwab 0 siblings, 1 reply; 90+ messages in thread From: Eli Zaretskii @ 2006-06-10 7:39 UTC (permalink / raw) Cc: emacs-devel > From: Andreas Schwab <schwab@suse.de> > Cc: emacs-devel@gnu.org > Date: Sat, 10 Jun 2006 00:33:22 +0200 > > Eli Zaretskii <eliz@gnu.org> writes: > > > The overflow happens on 9.2, but not on 10.0. Is it plausible that > > GCC 3.3.4 on SuSe 9.2 produces code with higher alignment requirements > > than GCC 4.0.2 on SuSe 10.0? > > I don't think so. And I cannot reproduce the problem: there are only > 1207936 pure bytes used when building on 9.2, exactly the same as on 10.0. So it's not the OS and not GCC. What else can possibly affect this? Would a list of installed packages from Reiner help get a clue? ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-06-10 7:39 ` Eli Zaretskii @ 2006-06-10 9:36 ` Andreas Schwab 2006-06-10 12:04 ` Reiner Steib 0 siblings, 1 reply; 90+ messages in thread From: Andreas Schwab @ 2006-06-10 9:36 UTC (permalink / raw) Cc: emacs-devel Eli Zaretskii <eliz@gnu.org> writes: > So it's not the OS and not GCC. What else can possibly affect this? > Would a list of installed packages from Reiner help get a clue? I don't see how that can have any influence. The only hook that can increase the amount of preloaded libraries is site-load.el, but then you are supposed to define SITELOAD_PURESIZE_EXTRA appropriately. Andreas. -- Andreas Schwab, SuSE Labs, schwab@suse.de SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-06-10 9:36 ` Andreas Schwab @ 2006-06-10 12:04 ` Reiner Steib 0 siblings, 0 replies; 90+ messages in thread From: Reiner Steib @ 2006-06-10 12:04 UTC (permalink / raw) Cc: Eli Zaretskii, emacs-devel On Sat, Jun 10 2006, Andreas Schwab wrote: > Eli Zaretskii <eliz@gnu.org> writes: > >> So it's not the OS and not GCC. What else can possibly affect this? >> Would a list of installed packages from Reiner help get a clue? > > I don't see how that can have any influence. The only hook that can > increase the amount of preloaded libraries is site-load.el, but then you > are supposed to define SITELOAD_PURESIZE_EXTRA appropriately. I don't have a `site-load.el' file in my source and build directories: $ find . -name 'site-*' $ I only have the one from the distribution and some `site-load.el' in XEmacs directories: $ rpm -qf /usr/share/emacs/21.3/lisp/site-load.el emacs-21.3-193.4 Here are the compiler versions: $ gcc --version gcc (GCC) 3.3.4 (pre 3.3.5 20040809) [...] $ cat /etc/SuSE-release SuSE Linux 9.2 (i586) VERSION = 9.2 I forgot to mention that the i586 machine is a two processor machine, but that makes no difference: I get an overflow on a single processor machine as well (SuSE 9.2). $ cat /etc/SuSE-release SUSE LINUX 10.0 (i586) OSS VERSION = 10.0 $ gcc --version gcc (GCC) 4.0.2 20050901 (prerelease) (SUSE Linux) Bye, Reiner. -- ,,, (o o) ---ooO-(_)-Ooo--- | PGP key available | http://rsteib.home.pages.de/ ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-27 20:38 ` Eli Zaretskii ` (2 preceding siblings ...) 2006-04-27 21:56 ` Reiner Steib @ 2006-04-27 22:12 ` Luc Teirlinck 2006-04-27 22:29 ` Ken Raeburn 2006-04-27 22:24 ` Ken Raeburn 4 siblings, 1 reply; 90+ messages in thread From: Luc Teirlinck @ 2006-04-27 22:12 UTC (permalink / raw) Cc: emacs-devel >From my previous message: Of course, using different compilers or different C Libraries, _including_ different version numbers for the same compiler or library will not have any effect on the .el file, but it can definitely have an effect on the .elc files On second thought, this seems less immediately obvious, from a purely "logical" point of view. But apparently, from the empirical evidence, differences in compiler, library or OS do seem to matter much more compiled Lisp files. Probably, the alignment issues are more complex for them. Sincerely, Luc. ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-27 22:12 ` Luc Teirlinck @ 2006-04-27 22:29 ` Ken Raeburn 2006-04-27 22:53 ` Luc Teirlinck 2006-04-27 23:16 ` Luc Teirlinck 0 siblings, 2 replies; 90+ messages in thread From: Ken Raeburn @ 2006-04-27 22:29 UTC (permalink / raw) Cc: eliz, emacs-devel On Apr 27, 2006, at 18:12, Luc Teirlinck wrote: >> From my previous message: > > Of course, using different compilers or different C Libraries, > _including_ different version numbers for the same compiler or > library > will not have any effect on the .el file, but it can definitely > have > an effect on the .elc files > > On second thought, this seems less immediately obvious, from a purely > "logical" point of view. But apparently, from the empirical evidence, > differences in compiler, library or OS do seem to matter much more > compiled Lisp files. Probably, the alignment issues are more complex > for them. From what I've seen of the Lisp structures and allocation code, I'd be very surprised if this were true. You *may* get different compilers imposing different alignment/padding constraints for structures or unions, but such cases should be very rare and arguably reported as bugs (it'll lead to interoperability problems if they're used on the same system), and I doubt any of the types Emacs Lisp uses get any significant padding. And I don't think there are many data types allocated in loading a .elc file that are not used when loading a .el file. Ken ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-27 22:29 ` Ken Raeburn @ 2006-04-27 22:53 ` Luc Teirlinck 2006-04-27 23:16 ` Ken Raeburn 2006-04-27 23:16 ` Luc Teirlinck 1 sibling, 1 reply; 90+ messages in thread From: Luc Teirlinck @ 2006-04-27 22:53 UTC (permalink / raw) Cc: eliz, emacs-devel I may be wrong. I got the impression that differences in, for instance, the C library and even the actual version of, say glibc, did matter, from, for instance, the following comment from alloc.c, which seems to say that different versions of glibc waste different amounts of memory on alignment. But maybe I misunderstood the comment. /* Padding to leave at the end of a malloc'd block. This is to give malloc a chance to minimize the amount of memory wasted to alignment. It should be tuned to the particular malloc library used. On glibc-2.3.2, malloc never tries to align, so a padding of 0 is best. posix_memalign on the other hand would ideally prefer a value of 4 because otherwise, there's 1020 bytes wasted between each ablocks. In Emacs, testing shows that those 1020 can most of the time be efficiently used by malloc to place other objects, so a value of 0 can still preferable unless you have a lot of aligned blocks and virtually nothing else. */ #define BLOCK_PADDING 0 ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-27 22:53 ` Luc Teirlinck @ 2006-04-27 23:16 ` Ken Raeburn 2006-04-28 14:18 ` Andreas Schwab 0 siblings, 1 reply; 90+ messages in thread From: Ken Raeburn @ 2006-04-27 23:16 UTC (permalink / raw) Cc: eliz, emacs-devel On Apr 27, 2006, at 18:53, Luc Teirlinck wrote: > I may be wrong. I got the impression that differences in, for > instance, the C library and even the actual version of, say glibc, did > matter, from, for instance, the following comment from alloc.c, which > seems to say that different versions of glibc waste different amounts > of memory on alignment. But maybe I misunderstood the comment. No, I think you got that right ... the runtime process size and efficiency of heap allocation can vary a lot depending on the libraries. But the pure storage in Emacs doesn't get allocated that way; it comes out of a statically allocated array named pure[] in alloc.c, which has its own allocation routines (pure_alloc and friends). Ken ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-27 23:16 ` Ken Raeburn @ 2006-04-28 14:18 ` Andreas Schwab 2006-04-28 16:15 ` Eli Zaretskii 0 siblings, 1 reply; 90+ messages in thread From: Andreas Schwab @ 2006-04-28 14:18 UTC (permalink / raw) Cc: eliz, Luc Teirlinck, emacs-devel Ken Raeburn <raeburn@gnu.org> writes: > No, I think you got that right ... the runtime process size and > efficiency of heap allocation can vary a lot depending on the libraries. > But the pure storage in Emacs doesn't get allocated that way; it comes > out of a statically allocated array named pure[] in alloc.c, which has > its own allocation routines (pure_alloc and friends). The padding used by pure_alloc depends on USE_LSB_TAG, which may explain the difference. Andreas. -- Andreas Schwab, SuSE Labs, schwab@suse.de SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-28 14:18 ` Andreas Schwab @ 2006-04-28 16:15 ` Eli Zaretskii 2006-04-28 17:25 ` Reiner Steib 0 siblings, 1 reply; 90+ messages in thread From: Eli Zaretskii @ 2006-04-28 16:15 UTC (permalink / raw) Cc: emacs-devel > From: Andreas Schwab <schwab@suse.de> > Cc: Luc Teirlinck <teirllm@dms.auburn.edu>, eliz@gnu.org, > emacs-devel@gnu.org > Date: Fri, 28 Apr 2006 16:18:22 +0200 > > The padding used by pure_alloc depends on USE_LSB_TAG, which may explain > the difference. Thanks. But this will only explain the difference if Reiner says that he disabled USE_LSB_TAG (which AFAIK is on by default on x86_64 GNU/Linux systems). I simply built the checked-out tree, so my value of USE_LSB_TAG should be the default. Reiner? ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-28 16:15 ` Eli Zaretskii @ 2006-04-28 17:25 ` Reiner Steib 0 siblings, 0 replies; 90+ messages in thread From: Reiner Steib @ 2006-04-28 17:25 UTC (permalink / raw) Cc: Andreas Schwab, emacs-devel On Fri, Apr 28 2006, Eli Zaretskii wrote: >> From: Andreas Schwab <schwab@suse.de> [...] >> The padding used by pure_alloc depends on USE_LSB_TAG, which may explain >> the difference. > > Thanks. > > But this will only explain the difference if Reiner says that he > disabled USE_LSB_TAG (which AFAIK is on by default on x86_64 GNU/Linux > systems). I simply built the checked-out tree, so my value of > USE_LSB_TAG should be the default. I did the same. gdb_use_lsb is 1 on both archs when printed in gdb: (gdb) p gdb_use_lsb $1 = 1 Bye, Reiner. -- ,,, (o o) ---ooO-(_)-Ooo--- | PGP key available | http://rsteib.home.pages.de/ ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-27 22:29 ` Ken Raeburn 2006-04-27 22:53 ` Luc Teirlinck @ 2006-04-27 23:16 ` Luc Teirlinck 1 sibling, 0 replies; 90+ messages in thread From: Luc Teirlinck @ 2006-04-27 23:16 UTC (permalink / raw) Cc: eliz, emacs-devel My previous reply was due to confusion. The comment I quoted seems irrelevant for objects allocated in pure space. Sincerely, Luc. ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-27 20:38 ` Eli Zaretskii ` (3 preceding siblings ...) 2006-04-27 22:12 ` Luc Teirlinck @ 2006-04-27 22:24 ` Ken Raeburn 2006-04-27 22:38 ` David Kastrup 2006-04-28 5:29 ` Eli Zaretskii 4 siblings, 2 replies; 90+ messages in thread From: Ken Raeburn @ 2006-04-27 22:24 UTC (permalink / raw) Cc: emacs-devel On Apr 27, 2006, at 16:38, Eli Zaretskii wrote: > Comparison of your GDB session with mine shows that each time a .el > file is loaded, it uses up the exact same amount of pure storage in > your build as in mine. But every .elc file takes more pure storage on > your machine, sometimes only by 1KB, sometimes by as much as 20KB. That is weird. Perhaps output from (garbage-collect) before and after loading the individual .elc files would show something useful? The byte and object counts *should* be the same (uh, unless the pathnames to the elc files are stored somewhere but el file pathnames are not). It might also be useful to check that the .elc files you two are getting (you've both done "make bootstrap", right?) are actually similar. Ken ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-27 22:24 ` Ken Raeburn @ 2006-04-27 22:38 ` David Kastrup 2006-04-27 23:04 ` Ken Raeburn 2006-04-28 5:36 ` Eli Zaretskii 2006-04-28 5:29 ` Eli Zaretskii 1 sibling, 2 replies; 90+ messages in thread From: David Kastrup @ 2006-04-27 22:38 UTC (permalink / raw) Cc: Eli Zaretskii, emacs-devel Ken Raeburn <raeburn@raeburn.org> writes: > On Apr 27, 2006, at 16:38, Eli Zaretskii wrote: >> Comparison of your GDB session with mine shows that each time a .el >> file is loaded, it uses up the exact same amount of pure storage in >> your build as in mine. But every .elc file takes more pure storage on >> your machine, sometimes only by 1KB, sometimes by as much as 20KB. > > That is weird. Perhaps output from (garbage-collect) before and > after loading the individual .elc files would show something useful? > The byte and object counts *should* be the same (uh, unless the > pathnames to the elc files are stored somewhere but el file pathnames > are not). Not necessarily. Most filenames are written to accommodate 8+3. so if we have 12345678.el\0, this is twelve bytes. The same with .elc might require sixteen bytes after alignment. But it is more likely that some byte code internals cause trouble. -- David Kastrup, Kriemhildstr. 15, 44793 Bochum ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-27 22:38 ` David Kastrup @ 2006-04-27 23:04 ` Ken Raeburn 2006-04-28 5:36 ` Eli Zaretskii 1 sibling, 0 replies; 90+ messages in thread From: Ken Raeburn @ 2006-04-27 23:04 UTC (permalink / raw) Cc: Eli Zaretskii, emacs-devel On Apr 27, 2006, at 18:38, David Kastrup wrote: > Not necessarily. Most filenames are written to accommodate 8+3. so if > we have 12345678.el\0, this is twelve bytes. The same with .elc might > require sixteen bytes after alignment. I don't think that should be varying between compilers though. Unless the x86_64 ABI (implementation) isn't stable yet, which would be bad news... Ken ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-27 22:38 ` David Kastrup 2006-04-27 23:04 ` Ken Raeburn @ 2006-04-28 5:36 ` Eli Zaretskii 1 sibling, 0 replies; 90+ messages in thread From: Eli Zaretskii @ 2006-04-28 5:36 UTC (permalink / raw) Cc: raeburn, emacs-devel > Cc: Eli Zaretskii <eliz@gnu.org>, emacs-devel@gnu.org > From: David Kastrup <dak@gnu.org> > Date: Fri, 28 Apr 2006 00:38:34 +0200 > > Not necessarily. Most filenames are written to accommodate 8+3. so if > we have 12345678.el\0, this is twelve bytes. The same with .elc might > require sixteen bytes after alignment. As I wrote elsewhere, we need to explain several KB per .elc file, so a few bytes of difference won't do, even if the file names are stored. ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-27 22:24 ` Ken Raeburn 2006-04-27 22:38 ` David Kastrup @ 2006-04-28 5:29 ` Eli Zaretskii 2006-04-28 6:42 ` David Kastrup 2006-04-28 7:07 ` Ken Raeburn 1 sibling, 2 replies; 90+ messages in thread From: Eli Zaretskii @ 2006-04-28 5:29 UTC (permalink / raw) Cc: emacs-devel > Cc: emacs-devel@gnu.org > From: Ken Raeburn <raeburn@raeburn.org> > Date: Thu, 27 Apr 2006 18:24:55 -0400 > > The byte and object counts *should* be the same (uh, unless the > pathnames to the elc files are stored somewhere but el file pathnames > are not). Even if this is true (which I don't think it is), how can a stored name explain 20KB of difference? > It might also be useful to check that the .elc files you two are > getting (you've both done "make bootstrap", right?) are actually > similar. That's the point: how _could_ they be different? ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-28 5:29 ` Eli Zaretskii @ 2006-04-28 6:42 ` David Kastrup 2006-04-28 7:07 ` Ken Raeburn 1 sibling, 0 replies; 90+ messages in thread From: David Kastrup @ 2006-04-28 6:42 UTC (permalink / raw) Cc: Ken Raeburn, emacs-devel Eli Zaretskii <eliz@gnu.org> writes: >> Cc: emacs-devel@gnu.org >> From: Ken Raeburn <raeburn@raeburn.org> >> Date: Thu, 27 Apr 2006 18:24:55 -0400 >> >> The byte and object counts *should* be the same (uh, unless the >> pathnames to the elc files are stored somewhere but el file pathnames >> are not). > > Even if this is true (which I don't think it is), how can a stored > name explain 20KB of difference? Maybe the principal data structure for a byte code passage takes a different size because of alignment or data type issues? -- David Kastrup, Kriemhildstr. 15, 44793 Bochum ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-28 5:29 ` Eli Zaretskii 2006-04-28 6:42 ` David Kastrup @ 2006-04-28 7:07 ` Ken Raeburn 2006-04-28 13:03 ` Eli Zaretskii 1 sibling, 1 reply; 90+ messages in thread From: Ken Raeburn @ 2006-04-28 7:07 UTC (permalink / raw) Cc: emacs-devel On Apr 28, 2006, at 01:29, Eli Zaretskii wrote: >> From: Ken Raeburn <raeburn@raeburn.org> >> Date: Thu, 27 Apr 2006 18:24:55 -0400 >> >> The byte and object counts *should* be the same (uh, unless the >> pathnames to the elc files are stored somewhere but el file pathnames >> are not). (Actually, I should've said the increases in the byte and object counts, when each .elc file is loaded.) > Even if this is true (which I don't think it is), how can a stored > name explain 20KB of difference? It wouldn't, but if it does happen (and I don't think it does, either, but I don't recall for sure) it would be a reason for the numbers not to be *exactly* the same, so then a very small discrepancy wouldn't be a big problem. But like you say, I don't think it happens. >> It might also be useful to check that the .elc files you two are >> getting (you've both done "make bootstrap", right?) are actually >> similar. > > That's the point: how _could_ they be different? Barring the obvious, like local hacks affecting the byte-code optimizer, or some local bug causing character encoding conversions to be applied to byte-code strings, I have no idea. But since I have no other good idea how the 20K difference came up loading a .elc file, I figure breaking the problem down might help. For example: First, confirm that some file foo.elc to be loaded is (functionally) the same, and that it consume different amounts of storage, on the two systems. Then split it apart (binary search, one S-expression at a time, whatever) and see if there's some particular kind of expression in the .elc file that consumes different amounts of storage on the two systems. If we know what it is, perhaps we can figure out why it's handled differently. But if the files are different, then the problem isn't differing storage consumed by (identical) loaded objects, and we go off in a very different direction.... If people want to expend that much effort on it, of course. Ken ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-28 7:07 ` Ken Raeburn @ 2006-04-28 13:03 ` Eli Zaretskii 0 siblings, 0 replies; 90+ messages in thread From: Eli Zaretskii @ 2006-04-28 13:03 UTC (permalink / raw) Cc: emacs-devel > Cc: emacs-devel@gnu.org > From: Ken Raeburn <raeburn@raeburn.org> > Date: Fri, 28 Apr 2006 03:07:35 -0400 > > > That's the point: how _could_ they be different? > > Barring the obvious, like local hacks affecting the byte-code > optimizer, or some local bug causing character encoding conversions > to be applied to byte-code strings, I have no idea. But since I have > no other good idea how the 20K difference came up loading a .elc > file, I figure breaking the problem down might help. For example: > First, confirm that some file foo.elc to be loaded is (functionally) > the same, and that it consume different amounts of storage, on the > two systems. Yes, if we find no other explanation, comparing .elc files would be the way to go. > Then split it apart (binary search, one S-expression at > a time, whatever) and see if there's some particular kind of > expression in the .elc file that consumes different amounts of > storage on the two systems. No need for binary search, I think: since we are debugging pure storage use, it's better to put a breakpoint on the functions that allocate space off pure[], and then xbacktrace will show what expression is being evaluated, while the C code will show how much pure space is being allocated. > If people want to expend that much effort on it, of course. 275KB of memory sounds like a good reason to me, but that's me. ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-20 21:03 ` Reiner Steib 2006-04-20 21:37 ` Stefan Monnier 2006-04-21 7:48 ` Eli Zaretskii @ 2006-04-21 23:10 ` Luc Teirlinck 2006-04-22 10:13 ` Eli Zaretskii 2 siblings, 1 reply; 90+ messages in thread From: Luc Teirlinck @ 2006-04-21 23:10 UTC (permalink / raw) Cc: eliz, romain, emacs-devel Reiner Steib wrote: I also get the "Pure space overflow" warning from `fancy-splash-screens-1': I also get the "Pure space overflow" warning on 32 bit GNU/Linux, with freshly downloaded CVS. Any reason not to increase PURESIZE to get rid of this problem? Sincerely, Luc. ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-21 23:10 ` Luc Teirlinck @ 2006-04-22 10:13 ` Eli Zaretskii 2006-04-22 11:35 ` Miles Bader 0 siblings, 1 reply; 90+ messages in thread From: Eli Zaretskii @ 2006-04-22 10:13 UTC (permalink / raw) Cc: romain, Reiner.Steib, emacs-devel > Date: Fri, 21 Apr 2006 18:10:03 -0500 (CDT) > From: Luc Teirlinck <teirllm@dms.auburn.edu> > CC: eliz@gnu.org, romain@orebokech.com, emacs-devel@gnu.org > > Reiner Steib wrote: > > I also get the "Pure space overflow" warning from > `fancy-splash-screens-1': > > I also get the "Pure space overflow" warning on 32 bit GNU/Linux, with > freshly downloaded CVS. Any reason not to increase PURESIZE to get > rid of this problem? I increased it by 5K, but could you please post your data of pure[] usage similar to what I posted here yesterday? I think we simply _must_ understand why on similar systems the numbers are so different (with today's CVS, I'm still 7KB short of the limit before the 5K increase). I don't like solutions to problems we don't understand well enough, it looks like kludging around the problem instead of solving it. TIA ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-22 10:13 ` Eli Zaretskii @ 2006-04-22 11:35 ` Miles Bader 2006-04-22 13:15 ` Eli Zaretskii 2006-04-22 22:33 ` Richard Stallman 0 siblings, 2 replies; 90+ messages in thread From: Miles Bader @ 2006-04-22 11:35 UTC (permalink / raw) Cc: romain, Luc Teirlinck, Reiner.Steib, emacs-devel On 4/22/06, Eli Zaretskii <eliz@gnu.org> wrote: > I think we simply > _must_ understand why on similar systems the numbers are so different Why? What's the _downside_ of adding a fudge factor to puresize? Is it worth the time to debug? [On a modern system.] It's nice to understand every detail, but sometimes it's not worth the effort. -Miles -- Do not taunt Happy Fun Ball. ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-22 11:35 ` Miles Bader @ 2006-04-22 13:15 ` Eli Zaretskii 2006-04-23 1:59 ` Luc Teirlinck 2006-04-23 2:06 ` Luc Teirlinck 2006-04-22 22:33 ` Richard Stallman 1 sibling, 2 replies; 90+ messages in thread From: Eli Zaretskii @ 2006-04-22 13:15 UTC (permalink / raw) Cc: romain, teirllm, Reiner.Steib, emacs-devel > Date: Sat, 22 Apr 2006 20:35:05 +0900 > From: "Miles Bader" <miles@gnu.org> > Cc: "Luc Teirlinck" <teirllm@dms.auburn.edu>, romain@orebokech.com, > Reiner.Steib@gmx.de, emacs-devel@gnu.org > > On 4/22/06, Eli Zaretskii <eliz@gnu.org> wrote: > > I think we simply > > _must_ understand why on similar systems the numbers are so different > > Why? What's the _downside_ of adding a fudge factor to puresize? It makes the memory footprint larger. > It's nice to understand every detail, If you don't understand the problem, how do you know you indeed fixed it? How do you know there isn't some other factor at work here? > but sometimes it's not worth the effort. What effort? It took me 30 seconds to run temacs under GDB to produce the data, and another 5 minutes to write and run an Awk one-liner to process the data into the table I posted. I wish all problems I ever have to explore will take this little effort. ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-22 13:15 ` Eli Zaretskii @ 2006-04-23 1:59 ` Luc Teirlinck 2006-04-23 3:35 ` Eli Zaretskii 2006-04-23 2:06 ` Luc Teirlinck 1 sibling, 1 reply; 90+ messages in thread From: Luc Teirlinck @ 2006-04-23 1:59 UTC (permalink / raw) Cc: romain, emacs-devel, Reiner.Steib, miles Eli Zaretskii wrote" > Why? What's the _downside_ of adding a fudge factor to puresize? It makes the memory footprint larger. By a completely negligible percentage (a fraction of a percent), obviously not enough to worry about or waste any time on trying to reduce it further. Certainly not in the CVS version, where BASE_PURESIZE needs to be increased all the time and the only non-negligible effects of making the fudge factor even tinier are to increase the frequency of the required increases and to force most CVS user to increase the value locally if they have a very few small uninstalled changes. Comparing my present pure-bytes-used of 1200904 with the 1036280 from an old CVS version of 2005-02-07, suggests that pure-bytes-used is currently growing faster than 13 percent a year (between the the reference points I used it grew at an annualized rate of 13.7 percent). I do not know whether such a rate of growth constitutes a problem. I have no real figures, but I would guess that the amount of memory available on the average computer grows even faster than 14 percent a year, in which case the growth of pure-bytes-used does not represent a real problem. Anyway, whether the rate of growth of pure-bytes-used represents a problem or not, reducing the fudge-factor from a fraction of one percent to an even tinier fraction of one percent is completely meaningless. As long as that fudge factor stays within one percent, it stays negligible and does not contribute to the rate of growth. Sincerely, Luc. ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-23 1:59 ` Luc Teirlinck @ 2006-04-23 3:35 ` Eli Zaretskii 2006-04-23 3:46 ` Nick Roberts ` (2 more replies) 0 siblings, 3 replies; 90+ messages in thread From: Eli Zaretskii @ 2006-04-23 3:35 UTC (permalink / raw) Cc: romain, Reiner.Steib, emacs-devel > Date: Sat, 22 Apr 2006 20:59:51 -0500 (CDT) > From: Luc Teirlinck <teirllm@dms.auburn.edu> > CC: miles@gnu.org, romain@orebokech.com, Reiner.Steib@gmx.de, > emacs-devel@gnu.org > > Eli Zaretskii wrote" > > > Why? What's the _downside_ of adding a fudge factor to puresize? > > It makes the memory footprint larger. > > By a completely negligible percentage (a fraction of a percent), > obviously not enough to worry about or waste any time on trying to > reduce it further. I measure memory footprint in bytes, not in percents. 10KB is not negligible, IMHO, even if taken in isolation. > Comparing my present pure-bytes-used of 1200904 with the 1036280 from > an old CVS version of 2005-02-07, suggests that pure-bytes-used is > currently growing faster than 13 percent a year Again, this is 170KB growth, certainly not a negligible amount of memory. ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-23 3:35 ` Eli Zaretskii @ 2006-04-23 3:46 ` Nick Roberts 2006-04-23 13:51 ` Drew Adams ` (3 more replies) 2006-04-23 15:54 ` Bill Wohler 2006-04-23 16:23 ` Dan Nicolaescu 2 siblings, 4 replies; 90+ messages in thread From: Nick Roberts @ 2006-04-23 3:46 UTC (permalink / raw) Cc: romain, Luc Teirlinck, Reiner.Steib, emacs-devel > > Comparing my present pure-bytes-used of 1200904 with the 1036280 from > > an old CVS version of 2005-02-07, suggests that pure-bytes-used is > > currently growing faster than 13 percent a year > > Again, this is 170KB growth, certainly not a negligible amount of > memory. But given the RAM doubles every 18-24 months, increasing by only 13 percent a year means Emacs is becoming progressively easier to run. -- Nick http://www.inet.net.nz/~nickrob ^ permalink raw reply [flat|nested] 90+ messages in thread
* RE: PURESIZE increased (again) 2006-04-23 3:46 ` Nick Roberts @ 2006-04-23 13:51 ` Drew Adams 2006-04-23 16:02 ` Alan Shutko ` (2 subsequent siblings) 3 siblings, 0 replies; 90+ messages in thread From: Drew Adams @ 2006-04-23 13:51 UTC (permalink / raw) given that RAM doubles every 18-24 months,... by the time Emacs 22 releases, available RAM will be Omega. And Emacs RAM usage doesn't grow that fast, so you will by then be able to run Omega Emacs sessions simultaneously. ;-) Just kidding, folks - had to get in one last release joke before it actually happens! ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-23 3:46 ` Nick Roberts 2006-04-23 13:51 ` Drew Adams @ 2006-04-23 16:02 ` Alan Shutko 2006-04-23 18:41 ` Eli Zaretskii 2006-04-23 21:58 ` Richard Stallman 3 siblings, 0 replies; 90+ messages in thread From: Alan Shutko @ 2006-04-23 16:02 UTC (permalink / raw) Nick Roberts <nickrob@snap.net.nz> writes: > But given the RAM doubles every 18-24 months, increasing by only 13 percent a > year means Emacs is becoming progressively easier to run. Emacs already has already about the lowest memory requirements of the applications I use to do real work. My eclipse uses about 10x as much memory... -- Alan Shutko <ats@acm.org> - I am the rocks. Killed a lawyer, put spikes on the back of my ambulance! ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-23 3:46 ` Nick Roberts 2006-04-23 13:51 ` Drew Adams 2006-04-23 16:02 ` Alan Shutko @ 2006-04-23 18:41 ` Eli Zaretskii 2006-04-23 21:58 ` Richard Stallman 3 siblings, 0 replies; 90+ messages in thread From: Eli Zaretskii @ 2006-04-23 18:41 UTC (permalink / raw) Cc: emacs-devel > From: Nick Roberts <nickrob@snap.net.nz> > Date: Sun, 23 Apr 2006 15:46:03 +1200 > Cc: Luc Teirlinck <teirllm@dms.auburn.edu>, romain@orebokech.com, > Reiner.Steib@gmx.de, emacs-devel@gnu.org > > > Again, this is 170KB growth, certainly not a negligible amount of > > memory. > > But given the RAM doubles every 18-24 months, increasing by only 13 percent a > year means Emacs is becoming progressively easier to run. Maybe _you_ buy a new machine or upgrade its memory once every 18-24 months. I don't. ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-23 3:46 ` Nick Roberts ` (2 preceding siblings ...) 2006-04-23 18:41 ` Eli Zaretskii @ 2006-04-23 21:58 ` Richard Stallman 2006-04-23 23:06 ` Nick Roberts 3 siblings, 1 reply; 90+ messages in thread From: Richard Stallman @ 2006-04-23 21:58 UTC (permalink / raw) Cc: eliz, romain, teirllm, Reiner.Steib, emacs-devel But given the RAM doubles every 18-24 months, increasing by only 13 percent a year means Emacs is becoming progressively easier to run. Indeed, Emacs is now not particularly large, nor particularly slow to start up. A program using a mere Eight Megabytes is no longer Constantly Swapping. ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-23 21:58 ` Richard Stallman @ 2006-04-23 23:06 ` Nick Roberts 0 siblings, 0 replies; 90+ messages in thread From: Nick Roberts @ 2006-04-23 23:06 UTC (permalink / raw) Cc: emacs-devel > But given the RAM doubles every 18-24 months, increasing by only 13 > percent a year means Emacs is becoming progressively easier to run. > > Indeed, Emacs is now not particularly large, nor particularly slow to > start up. A program using a mere Eight Megabytes is no longer > Constantly Swapping. That quote is from another (more witty) Nick Roberts, although I wish I could take credit for it. But you're right, it's no longer appropriate and a new one is needed. Now if can only be the one to think of it... -- Nick http://www.inet.net.nz/~nickrob ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-23 3:35 ` Eli Zaretskii 2006-04-23 3:46 ` Nick Roberts @ 2006-04-23 15:54 ` Bill Wohler 2006-04-23 17:29 ` Luc Teirlinck 2006-04-23 18:43 ` Eli Zaretskii 2006-04-23 16:23 ` Dan Nicolaescu 2 siblings, 2 replies; 90+ messages in thread From: Bill Wohler @ 2006-04-23 15:54 UTC (permalink / raw) Eli Zaretskii <eliz@gnu.org> writes: > Again, this is 170KB growth, certainly not a negligible amount of > memory. That growth is .35% of my 48 MB Emacs process, so for what it's worth, *I* think it's negligible ;-). -- Bill Wohler <wohler@newt.com> http://www.newt.com/wohler/ GnuPG ID:610BD9AD Maintainer of comp.mail.mh FAQ and MH-E. Vote Libertarian! If you're passed on the right, you're in the wrong lane. ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-23 15:54 ` Bill Wohler @ 2006-04-23 17:29 ` Luc Teirlinck 2006-04-23 17:52 ` Bill Wohler 2006-04-23 18:53 ` Eli Zaretskii 2006-04-23 18:43 ` Eli Zaretskii 1 sibling, 2 replies; 90+ messages in thread From: Luc Teirlinck @ 2006-04-23 17:29 UTC (permalink / raw) Cc: emacs-devel Bill Wohler wrote: Eli Zaretskii <eliz@gnu.org> writes: > Again, this is 170KB growth, certainly not a negligible amount of > memory. That growth is .35% of my 48 MB Emacs process, so for what it's worth, *I* think it's negligible ;-). When I suggested that it even _might_ be a problem, I somehow saw a zero too many, I thought it was 1.7M (I should have looked more carefully), in which case it could have been something that _might_ be worth worrying about. Given that it only is 170K, I agree that it is obvious that this increase represents no problem whatsoever and that we should not worry about it. When I start Emacs with `emacs -q -nbc', the original memory usage is 9856K. But when I start actually using it, the Megs start growing immediately. For instance, if all I do in my freshly launched Emacs, is `M-x customize-browse' and open all top level groups to get a basic overview (by clicking on the `+' next to it and then closing it back by clicking on the `-'), the memory used goes up to 19568K. (That is opening _only_ the top level groups, no subgroups at all.) And then something apparently added an extra 8K to it quite a while after I stopped using the Emacs (probably font-lock or redisplay). If you have so little memory that 170K is worth worrying about, you quite simply have not enough memory to run Emacs (and _definitely_ not enough memory to run things like Gnome, KDE or common web browsers like Mozilla). If you have so little memory that even 10K is non-negligible, I have no idea what you could run. Not even vi, which takes exactly 1 Meg. Since I doubt that vi really requires _exactly_ 1M, even vi, which is especially designed to work on systems with very little memory, does not seem to care about small fudge factors like 10K. Sincerely, Luc. ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-23 17:29 ` Luc Teirlinck @ 2006-04-23 17:52 ` Bill Wohler 2006-04-23 17:58 ` David Kastrup ` (2 more replies) 2006-04-23 18:53 ` Eli Zaretskii 1 sibling, 3 replies; 90+ messages in thread From: Bill Wohler @ 2006-04-23 17:52 UTC (permalink / raw) Cc: emacs-devel Luc Teirlinck <teirllm@dms.auburn.edu> wrote: > If you have so little memory that 170K is worth worrying about, you > quite simply have not enough memory to run Emacs (and _definitely_ not > enough memory to run things like Gnome, KDE or common web browsers > like Mozilla). If you have so little memory that even 10K is > non-negligible, I have no idea what you could run. You bring up a good point. In what sort of environments do people run Emacs? If they are running under X or under Windows, Emacs certainly won't be the largest process. If they are running in a console on a PC or mainframe, 170 kB is probably nothing to worry about either. However, what if folks are running Emacs on embedded devices? Or PDAs? It's probably not worth our time to worry about these devices in the general case (since the number is probably zero given the constraints), but rather provide a stripped-down version of Emacs that pretty much just provides basic editing, plus anything else that space permits. That would then allow Emacs to run on these small devices. For comparison, most of the applications on my Treo are less than 100 kB, although a couple have pushed over the 1 MB threshold. Someday, when I have Linux running on my smartphone, I would like to be able to edit files in directories in Emacs instead of editing "categorized memos" as I do today. -- Bill Wohler <wohler@newt.com> http://www.newt.com/wohler/ GnuPG ID:610BD9AD Maintainer of comp.mail.mh FAQ and MH-E. Vote Libertarian! If you're passed on the right, you're in the wrong lane. ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-23 17:52 ` Bill Wohler @ 2006-04-23 17:58 ` David Kastrup 2006-04-23 19:43 ` Robert J. Chassell 2006-04-23 22:20 ` Richard Stallman 2 siblings, 0 replies; 90+ messages in thread From: David Kastrup @ 2006-04-23 17:58 UTC (permalink / raw) Bill Wohler <wohler@newt.com> writes: > Someday, when I have Linux running on my smartphone, I would like to > be able to edit files in directories in Emacs instead of editing > "categorized memos" as I do today. I think you'd better invest your energy into a cable or bluetooth link and make do with tramp. Emacs is geared for getting work done, and smartphone keyboards aren't. I tend to write SMS or Phonebook entries for my phone on my laptop and upload them. -- David Kastrup, Kriemhildstr. 15, 44793 Bochum ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-23 17:52 ` Bill Wohler 2006-04-23 17:58 ` David Kastrup @ 2006-04-23 19:43 ` Robert J. Chassell 2006-04-23 22:20 ` Richard Stallman 2 siblings, 0 replies; 90+ messages in thread From: Robert J. Chassell @ 2006-04-23 19:43 UTC (permalink / raw) Cc: emacs-devel ... Emacs to run on these small devices. Back in the 1980s, I stripped an Emacs 18 down to below 300 kilobytes; it had the common editing commands and probably C mode, but very little else. It took up less space than VI ... Someday, when I have Linux running on my smartphone, I would like to be able to edit files in directories in Emacs instead of editing "categorized memos" as I do today. Yes, that is fully possible, even taking 10, 20, or more times as much space as the 1980s instance. -- Robert J. Chassell bob@rattlesnake.com GnuPG Key ID: 004B4AC8 http://www.rattlesnake.com http://www.teak.cc ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-23 17:52 ` Bill Wohler 2006-04-23 17:58 ` David Kastrup 2006-04-23 19:43 ` Robert J. Chassell @ 2006-04-23 22:20 ` Richard Stallman 2 siblings, 0 replies; 90+ messages in thread From: Richard Stallman @ 2006-04-23 22:20 UTC (permalink / raw) Cc: emacs-devel However, what if folks are running Emacs on embedded devices? Or PDAs? They are rather bad platforms for GNU Emacs, as well as unlikely. I do not want to put any effort into making GNU Emacs work better on them--it would distract attention from things that really matter. There are (or at least were) other Emacses designed for smaller platforms. So please let's forget about those platforms here. Someday, when I have Linux running on my smartphone, I would like to be If it can run GNU Emacs, it will surely be a GNU/Linux system, not just Linux. So please say "when I have GNU/Linux running on my smartphone". Please don't give the credit for our work to someone else. See http://www.gnu.org/gnu/gnu-linux-faq.html. ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-23 17:29 ` Luc Teirlinck 2006-04-23 17:52 ` Bill Wohler @ 2006-04-23 18:53 ` Eli Zaretskii 1 sibling, 0 replies; 90+ messages in thread From: Eli Zaretskii @ 2006-04-23 18:53 UTC (permalink / raw) Cc: emacs-devel > Date: Sun, 23 Apr 2006 12:29:07 -0500 (CDT) > From: Luc Teirlinck <teirllm@dms.auburn.edu> > Cc: emacs-devel@gnu.org > > If you have so little memory that 170K is worth worrying about, you > quite simply have not enough memory to run Emacs (and _definitely_ not > enough memory to run things like Gnome, KDE or common web browsers > like Mozilla). If you have so little memory that even 10K is > non-negligible, I have no idea what you could run. Not even vi, which > takes exactly 1 Meg. Since I doubt that vi really requires _exactly_ 1M, > even vi, which is especially designed to work on systems with very > little memory, does not seem to care about small fudge factors like 10K. Luc, you simply misunderstand what I said, and so your arguments _completely_ miss the point, so much so that they are almost absurd. My point was twofold: . 10KB of memory well used is nothing to worry about. However, 10KB of _wasted_ memory is something I don't dismiss too easily, because there are other programs running on the same machine, and while 10KB for Emacs is a negligible amount, it is certainly _not_ so for a program with a 50KB footprint that needs to run at the same time. . My original motivation for insisting to understand the growth was that there could be some other factor at work here (a.k.a. ``bug''). Now please let's stop this thread because it threatens to deteriorate into mocking the subject, and the original problem was resolved already. ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-23 15:54 ` Bill Wohler 2006-04-23 17:29 ` Luc Teirlinck @ 2006-04-23 18:43 ` Eli Zaretskii 1 sibling, 0 replies; 90+ messages in thread From: Eli Zaretskii @ 2006-04-23 18:43 UTC (permalink / raw) Cc: emacs-devel > From: Bill Wohler <wohler@newt.com> > Date: Sun, 23 Apr 2006 08:54:59 -0700 > > Eli Zaretskii <eliz@gnu.org> writes: > > > Again, this is 170KB growth, certainly not a negligible amount of > > memory. > > That growth is .35% of my 48 MB Emacs process, so for what it's worth, > *I* think it's negligible ;-). It's not negligible if you have a program other than Emacs that needs to run and starts paging because it's 150KB short of its memory usage. ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-23 3:35 ` Eli Zaretskii 2006-04-23 3:46 ` Nick Roberts 2006-04-23 15:54 ` Bill Wohler @ 2006-04-23 16:23 ` Dan Nicolaescu 2006-04-23 18:40 ` Eli Zaretskii 2006-04-24 11:51 ` Richard Stallman 2 siblings, 2 replies; 90+ messages in thread From: Dan Nicolaescu @ 2006-04-23 16:23 UTC (permalink / raw) Cc: romain, Luc Teirlinck, Reiner.Steib, emacs-devel Eli Zaretskii <eliz@gnu.org> writes: > > Date: Sat, 22 Apr 2006 20:59:51 -0500 (CDT) > > From: Luc Teirlinck <teirllm@dms.auburn.edu> > > CC: miles@gnu.org, romain@orebokech.com, Reiner.Steib@gmx.de, > > emacs-devel@gnu.org > > > > Comparing my present pure-bytes-used of 1200904 with the 1036280 from > > an old CVS version of 2005-02-07, suggests that pure-bytes-used is > > currently growing faster than 13 percent a year > > Again, this is 170KB growth, certainly not a negligible amount of > memory. Since 2005-02-07 the following have been added to loadup.el: + (load "facemenu") + (load "emacs-lisp/syntax") + (load "font-lock") + (load "jit-lock") + (load "rfn-eshadow") + (if (fboundp 'x-create-frame) + (progn + (load "fringe") + (load "image") + (load "international/fontset") + (load "dnd") + (load "mwheel") + (load "tool-bar"))) + (if (featurep 'x) + (load "x-dnd")) + (load "jka-cmpr-hook") + (if (fboundp 'x-show-tip) (load "tooltip")) After deleting these the pure size used goes from 1200912 to 1086896 on my system (x86 Fedora Core 5). The bulk of it is due to the font-lock related files. Given that the above additions to loadup.el have added some desirable functionality to the default emacs build, the increase in pure memory use should be acceptable. ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-23 16:23 ` Dan Nicolaescu @ 2006-04-23 18:40 ` Eli Zaretskii 2006-04-23 18:48 ` Dan Nicolaescu 2006-04-24 11:51 ` Richard Stallman 1 sibling, 1 reply; 90+ messages in thread From: Eli Zaretskii @ 2006-04-23 18:40 UTC (permalink / raw) Cc: emacs-devel > Cc: Luc Teirlinck <teirllm@dms.auburn.edu>, romain@orebokech.com, > Reiner.Steib@gmx.de, emacs-devel@gnu.org > From: Dan Nicolaescu <dann@ics.uci.edu> > Date: Sun, 23 Apr 2006 09:23:43 -0700 > > Given that the above additions to loadup.el have added some desirable > functionality to the default emacs build, the increase in pure memory > use should be acceptable. I didn't say the additions were useless, just that the added footprint wasn't negligible. ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-23 18:40 ` Eli Zaretskii @ 2006-04-23 18:48 ` Dan Nicolaescu 2006-04-23 18:56 ` Eli Zaretskii 0 siblings, 1 reply; 90+ messages in thread From: Dan Nicolaescu @ 2006-04-23 18:48 UTC (permalink / raw) Cc: emacs-devel Eli Zaretskii <eliz@gnu.org> writes: > > Cc: Luc Teirlinck <teirllm@dms.auburn.edu>, romain@orebokech.com, > > Reiner.Steib@gmx.de, emacs-devel@gnu.org > > From: Dan Nicolaescu <dann@ics.uci.edu> > > Date: Sun, 23 Apr 2006 09:23:43 -0700 > > > > Given that the above additions to loadup.el have added some desirable > > functionality to the default emacs build, the increase in pure memory > > use should be acceptable. > > I didn't say the additions were useless, just that the added footprint > wasn't negligible. I had no intention of implying that. Just that the additional space is well explained by the added functionality, so there's little reason to worry that is due to hidden bug/problem. ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-23 18:48 ` Dan Nicolaescu @ 2006-04-23 18:56 ` Eli Zaretskii 0 siblings, 0 replies; 90+ messages in thread From: Eli Zaretskii @ 2006-04-23 18:56 UTC (permalink / raw) Cc: emacs-devel > Cc: emacs-devel@gnu.org > From: Dan Nicolaescu <dann@ics.uci.edu> > Date: Sun, 23 Apr 2006 11:48:05 -0700 > > > I didn't say the additions were useless, just that the added footprint > > wasn't negligible. > > I had no intention of implying that. Just that the additional space is > well explained by the added functionality How does one know it is ``well explained''? I asked in this thread, near its now long forgotten beginning, how does one estimate the amount of pure space taken by a set of Lisp files, but didn't hear any answers. (And now I think there is no way of making such estimations.) ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-23 16:23 ` Dan Nicolaescu 2006-04-23 18:40 ` Eli Zaretskii @ 2006-04-24 11:51 ` Richard Stallman 1 sibling, 0 replies; 90+ messages in thread From: Richard Stallman @ 2006-04-24 11:51 UTC (permalink / raw) Cc: eliz, romain, teirllm, Reiner.Steib, emacs-devel Given that the above additions to loadup.el have added some desirable functionality to the default emacs build, the increase in pure memory use should be acceptable. Even more cogent, the reason for this change is that Emacs always loaded those files just after it started up. My change is such that they are preloaded rather than loaded each time. ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-22 13:15 ` Eli Zaretskii 2006-04-23 1:59 ` Luc Teirlinck @ 2006-04-23 2:06 ` Luc Teirlinck 1 sibling, 0 replies; 90+ messages in thread From: Luc Teirlinck @ 2006-04-23 2:06 UTC (permalink / raw) Cc: romain, emacs-devel, Reiner.Steib, miles >From my previous message: Comparing my present pure-bytes-used of 1200904 with the 1036280 from an old CVS version of 2005-02-07, suggests that pure-bytes-used is currently growing faster than 13 percent a year (between the the reference points I used it grew at an annualized rate of 13.7 percent). And that was with a feature freeze in effect during the entire period. Sincerely, Luc. ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-22 11:35 ` Miles Bader 2006-04-22 13:15 ` Eli Zaretskii @ 2006-04-22 22:33 ` Richard Stallman 2006-04-23 1:05 ` Luc Teirlinck 1 sibling, 1 reply; 90+ messages in thread From: Richard Stallman @ 2006-04-22 22:33 UTC (permalink / raw) Cc: eliz, romain, teirllm, Reiner.Steib, emacs-devel > I think we simply > _must_ understand why on similar systems the numbers are so different Why? What's the _downside_ of adding a fudge factor to puresize? Is it worth the time to debug? [On a modern system.] If the numbers vary a little, that's not important in itself. But if they are very different, that suggests something else is wrong. It's worth tracking down the root cause, just to see if it has other consequences more important than variation in puresize. ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-22 22:33 ` Richard Stallman @ 2006-04-23 1:05 ` Luc Teirlinck 2006-04-23 3:32 ` Eli Zaretskii 2006-04-23 21:58 ` Richard Stallman 0 siblings, 2 replies; 90+ messages in thread From: Luc Teirlinck @ 2006-04-23 1:05 UTC (permalink / raw) Cc: eliz, romain, emacs-devel, Reiner.Steib, miles Richard Stallman wrote: If the numbers vary a little, that's not important in itself. But if they are very different, that suggests something else is wrong. They are not very different. They only differ by a fraction of one percent. Running temacs under GDB and putting a breakpoint on Fload (as Eli suggested) just does not seem to work for me. After byte-run is loaded, pure_bytes_used is 76028 for me, which is less than the 79800 posted by Eli at the same point in temacs. After that `c' in GDB just continues, apparently completely ignoring the breakpoint on Fload. After bootstrapping, my pure-bytes-used is 1200904, which is apparently less than the 1216528 reported by Eli. Both numbers are larger than BASE_PURESIZE used to be before it got increased from 1200000 to 1205000. After that increase I no longer get the overflow warning. I have a few tiny uninstalled changes, but if these make a difference, the fudge factor would really be to small. Sincerely, Luc. ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-23 1:05 ` Luc Teirlinck @ 2006-04-23 3:32 ` Eli Zaretskii 2006-04-23 21:58 ` Richard Stallman 1 sibling, 0 replies; 90+ messages in thread From: Eli Zaretskii @ 2006-04-23 3:32 UTC (permalink / raw) Cc: romain, Reiner.Steib, emacs-devel > Date: Sat, 22 Apr 2006 20:05:17 -0500 (CDT) > From: Luc Teirlinck <teirllm@dms.auburn.edu> > CC: miles@gnu.org, eliz@gnu.org, romain@orebokech.com, Reiner.Steib@gmx.de, > emacs-devel@gnu.org > > After that `c' in GDB just continues, apparently completely ignoring > the breakpoint on Fload. That is very strange indeed. > After bootstrapping, my pure-bytes-used is 1200904, which is > apparently less than the 1216528 reported by Eli. This part I understand: I measured the values on MS-Windows, which loads a bunch of files other systems don't (that's why it defines a 25KB extra for PURESIZE). > Both numbers are larger than BASE_PURESIZE used to be before it got > increased from 1200000 to 1205000. After that increase I no longer > get the overflow warning. Fine, then I think we can close the issue. Thanks. ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-23 1:05 ` Luc Teirlinck 2006-04-23 3:32 ` Eli Zaretskii @ 2006-04-23 21:58 ` Richard Stallman 1 sibling, 0 replies; 90+ messages in thread From: Richard Stallman @ 2006-04-23 21:58 UTC (permalink / raw) Cc: eliz, romain, emacs-devel, Reiner.Steib, miles They are not very different. They only differ by a fraction of one percent. In that case, perhaps it is not worth investigating. ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-16 12:13 ` Andreas Schwab 2006-04-16 16:59 ` Eli Zaretskii @ 2006-04-16 17:27 ` Romain Francoise 1 sibling, 0 replies; 90+ messages in thread From: Romain Francoise @ 2006-04-16 17:27 UTC (permalink / raw) Cc: Eli Zaretskii, emacs-devel Andreas Schwab <schwab@suse.de> writes: > Where do you see that? I see only 1198536 bytes (1877040 on 64bit). After rebuilding Emacs from a fresh checkout I get only 1199624 bytes, so the (- 1200000 1199624) => 376 remaining bytes must be taken by local changes. I have local items in the menu bar and it looks like they're the cause of the size increase; I didn't think they could. I reverted my change and will change the pure size as a local change, too; the trunk doesn't need it at the moment. Thanks for making me aware of this issue. -- Romain Francoise <romain@orebokech.com> | The sea! the sea! the open it's a miracle -- http://orebokech.com/ | sea! The blue, the fresh, the | ever free! --Bryan W. Procter ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-16 10:56 ` Romain Francoise 2006-04-16 12:13 ` Andreas Schwab @ 2006-04-16 17:07 ` Eli Zaretskii 2006-04-18 17:17 ` Bill Wohler 2 siblings, 0 replies; 90+ messages in thread From: Eli Zaretskii @ 2006-04-16 17:07 UTC (permalink / raw) Cc: emacs-devel > From: Romain Francoise <romain@orebokech.com> > Cc: emacs-devel@gnu.org > Date: Sun, 16 Apr 2006 12:56:42 +0200 > > I grant you that a 10,000 bytes increase for an overflow of 696 bytes > might be too much, but since the size keeps going up it's just preparing > for future changes... I don't see any need to prepare for future changes. When those changes come, if they require to enlarge PURESIZE, we will do it at that time. > As you may or may not know, since August 2005 I've been packaging weekly > snapshots of Emacs CVS for the Debian GNU/Linux operating system; > this gives me the opportunity to build Emacs automatically with a > variety of different configuration options and compiler flags every > week, so I catch these kinds of problems pretty quickly. I think the > overflow is caused this week by Bill's latest batch of changes to > Customize. My build is from today, so the Customize changes are already in. ^ permalink raw reply [flat|nested] 90+ messages in thread
* Re: PURESIZE increased (again) 2006-04-16 10:56 ` Romain Francoise 2006-04-16 12:13 ` Andreas Schwab 2006-04-16 17:07 ` Eli Zaretskii @ 2006-04-18 17:17 ` Bill Wohler 2 siblings, 0 replies; 90+ messages in thread From: Bill Wohler @ 2006-04-18 17:17 UTC (permalink / raw) Romain Francoise <romain@orebokech.com> writes: > I think the overflow is caused this week by Bill's latest batch of > changes to Customize. And if the other packages implement the :package-version keyword, it will get bigger as well. I did change the value from (symbol string) to (symbol . string) which saved a tiny bit of space; if anyone sees where we can get more savings, please let me know. -- Bill Wohler <wohler@newt.com> http://www.newt.com/wohler/ GnuPG ID:610BD9AD Maintainer of comp.mail.mh FAQ and MH-E. Vote Libertarian! If you're passed on the right, you're in the wrong lane. ^ permalink raw reply [flat|nested] 90+ messages in thread
end of thread, other threads:[~2006-06-10 12:04 UTC | newest] Thread overview: 90+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2006-04-16 7:07 PURESIZE increased (again) Eli Zaretskii 2006-04-16 7:18 ` Eli Zaretskii 2006-04-16 10:56 ` Romain Francoise 2006-04-16 12:13 ` Andreas Schwab 2006-04-16 16:59 ` Eli Zaretskii 2006-04-20 16:51 ` Reiner Steib 2006-04-20 18:50 ` Eli Zaretskii 2006-04-20 21:03 ` Reiner Steib 2006-04-20 21:37 ` Stefan Monnier 2006-04-21 7:49 ` Eli Zaretskii 2006-04-21 7:48 ` Eli Zaretskii 2006-04-21 9:15 ` Eli Zaretskii 2006-04-26 13:50 ` Reiner Steib 2006-04-27 20:38 ` Eli Zaretskii 2006-04-27 20:52 ` David Kastrup 2006-04-28 5:26 ` Eli Zaretskii 2006-04-27 21:19 ` Luc Teirlinck 2006-04-28 5:22 ` Eli Zaretskii 2006-04-28 16:09 ` Stefan Monnier 2006-04-28 16:27 ` Eli Zaretskii 2006-04-27 21:56 ` Reiner Steib 2006-04-28 5:35 ` Eli Zaretskii 2006-04-28 13:11 ` Reiner Steib 2006-04-28 15:24 ` Andreas Schwab 2006-04-28 16:19 ` Eli Zaretskii 2006-04-28 17:15 ` Reiner Steib 2006-04-29 15:13 ` Eli Zaretskii 2006-04-29 15:27 ` Stefan Monnier 2006-04-29 16:49 ` Eli Zaretskii 2006-04-29 15:33 ` Andreas Schwab 2006-05-30 19:40 ` Reiner Steib 2006-05-30 19:47 ` Eli Zaretskii 2006-06-03 11:53 ` Eli Zaretskii 2006-06-09 15:33 ` Reiner Steib 2006-06-09 16:49 ` Eli Zaretskii 2006-06-09 16:57 ` Andreas Schwab 2006-06-09 19:55 ` Eli Zaretskii 2006-06-09 22:33 ` Andreas Schwab 2006-06-10 7:39 ` Eli Zaretskii 2006-06-10 9:36 ` Andreas Schwab 2006-06-10 12:04 ` Reiner Steib 2006-04-27 22:12 ` Luc Teirlinck 2006-04-27 22:29 ` Ken Raeburn 2006-04-27 22:53 ` Luc Teirlinck 2006-04-27 23:16 ` Ken Raeburn 2006-04-28 14:18 ` Andreas Schwab 2006-04-28 16:15 ` Eli Zaretskii 2006-04-28 17:25 ` Reiner Steib 2006-04-27 23:16 ` Luc Teirlinck 2006-04-27 22:24 ` Ken Raeburn 2006-04-27 22:38 ` David Kastrup 2006-04-27 23:04 ` Ken Raeburn 2006-04-28 5:36 ` Eli Zaretskii 2006-04-28 5:29 ` Eli Zaretskii 2006-04-28 6:42 ` David Kastrup 2006-04-28 7:07 ` Ken Raeburn 2006-04-28 13:03 ` Eli Zaretskii 2006-04-21 23:10 ` Luc Teirlinck 2006-04-22 10:13 ` Eli Zaretskii 2006-04-22 11:35 ` Miles Bader 2006-04-22 13:15 ` Eli Zaretskii 2006-04-23 1:59 ` Luc Teirlinck 2006-04-23 3:35 ` Eli Zaretskii 2006-04-23 3:46 ` Nick Roberts 2006-04-23 13:51 ` Drew Adams 2006-04-23 16:02 ` Alan Shutko 2006-04-23 18:41 ` Eli Zaretskii 2006-04-23 21:58 ` Richard Stallman 2006-04-23 23:06 ` Nick Roberts 2006-04-23 15:54 ` Bill Wohler 2006-04-23 17:29 ` Luc Teirlinck 2006-04-23 17:52 ` Bill Wohler 2006-04-23 17:58 ` David Kastrup 2006-04-23 19:43 ` Robert J. Chassell 2006-04-23 22:20 ` Richard Stallman 2006-04-23 18:53 ` Eli Zaretskii 2006-04-23 18:43 ` Eli Zaretskii 2006-04-23 16:23 ` Dan Nicolaescu 2006-04-23 18:40 ` Eli Zaretskii 2006-04-23 18:48 ` Dan Nicolaescu 2006-04-23 18:56 ` Eli Zaretskii 2006-04-24 11:51 ` Richard Stallman 2006-04-23 2:06 ` Luc Teirlinck 2006-04-22 22:33 ` Richard Stallman 2006-04-23 1:05 ` Luc Teirlinck 2006-04-23 3:32 ` Eli Zaretskii 2006-04-23 21:58 ` Richard Stallman 2006-04-16 17:27 ` Romain Francoise 2006-04-16 17:07 ` Eli Zaretskii 2006-04-18 17:17 ` Bill Wohler
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs.git 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).