Mercurial > hg > xemacs-beta
view nt/make-build-dir @ 5160:ab9ee10a53e4
fix various problems with allocation statistics, track overhead properly
-------------------- ChangeLog entries follow: --------------------
lisp/ChangeLog addition:
2010-03-20 Ben Wing <ben@xemacs.org>
* diagnose.el (show-memory-usage):
* diagnose.el (show-object-memory-usage-stats):
Further changes to correspond with changes in the C code;
add an additional column showing the overhead used with each type,
and add it into the grand total memory usage.
src/ChangeLog addition:
2010-03-20 Ben Wing <ben@xemacs.org>
* alloc.c:
* alloc.c (init_lrecord_stats):
* alloc.c (free_normal_lisp_object):
* alloc.c (struct):
* alloc.c (clear_lrecord_stats):
* alloc.c (tick_lrecord_stats):
* alloc.c (COUNT_FROB_BLOCK_USAGE):
* alloc.c (COPY_INTO_LRECORD_STATS):
* alloc.c (sweep_strings):
* alloc.c (UNMARK_string):
* alloc.c (gc_sweep_1):
* alloc.c (finish_object_memory_usage_stats):
* alloc.c (object_memory_usage_stats):
* alloc.c (object_dead_p):
* alloc.c (fixed_type_block_overhead):
* alloc.c (lisp_object_storage_size):
* emacs.c (main_1):
* lisp.h:
* lrecord.h:
Export lisp_object_storage_size() and malloced_storage_size() even
when not MEMORY_USAGE_STATS, to get the non-MEMORY_USAGE_STATS
build to compile.
Don't export fixed_type_block_overhead() any more.
Some code cleanup, rearrangement, add some section headers.
Clean up various bugs especially involving computation of overhead
and double-counting certain usage in total_gc_usage. Add
statistics computing the overhead used by all types. Don't add a
special entry for string headers in the object-memory-usage-stats
because it's already present as just "string". But do count the
overhead used by long strings. Don't try to call the
memory_usage() methods when NEW_GC because there's nowhere obvious
in the sweep stage to make the calls.
* marker.c (compute_buffer_marker_usage):
Just use lisp_object_storage_size() rather than trying to
reimplement it.
author | Ben Wing <ben@xemacs.org> |
---|---|
date | Sat, 20 Mar 2010 20:20:30 -0500 |
parents | 4542b72c005e |
children | 308d34e9f07d |
line wrap: on
line source
: #-*- Perl -*- # Create skeleton build tree # # Copyright (C) 2003 Ben Wing. # # This file is part of XEmacs. # # XEmacs is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation; either version 2, or (at your option) any # later version. # # XEmacs is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License # for more details. # # You should have received a copy of the GNU General Public License # along with XEmacs; see the file COPYING. If not, write to # the Free Software Foundation, Inc., 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # # Author: Ben Wing <ben@xemacs.org> # # Synched up with: Not in FSF. eval 'exec perl -w -S $0 ${1+"$@"}' if 0; use File::Copy; use File::Basename; use Cwd; die "Creates a skeleton build tree for use with SOURCE_DIR in config.inc. Usage: $0 PATH " if ($#ARGV); my $path = $ARGV[0]; # Sometimes perl sucks, too. To get the equivalent of expand-file-name # in a reliable way, you have to do really weird shit, it seems. my $cwd = cwd (); $0 =~ s|\\|/|g; chdir (dirname ($0)); my $srcroot = dirname (cwd ()); # Convert the path to MS Windows format if we're running Cygwin Perl. chomp ($srcroot = `cygpath -w $srcroot`) if ($^O eq "cygwin"); $srcroot =~ s|/|\\|g; chdir ($cwd); print "Creating skeleton build tree in $path\n"; mkdir $path if ! -e $path; mkdir "$path/nt" if ! -e "$path/nt"; copy("$srcroot/nt/xemacs.mak", "$path/nt/xemacs.mak") if ! -e "$path/nt/xemacs.mak"; &HackFile ("config.inc.samp"); &HackFile ("config.inc") if -e "$srcroot/nt/config.inc"; sub HackFile { my $file = $_[0]; if (! -e "$path/nt/$file") { open IN, "<$srcroot/nt/$file"; open OUT, ">$path/nt/$file"; while (<IN>) { # Must hack away CRLF junk. Perl sucks again. Wouldn't it be # nice if perl handled this right?? Really can't be that hard!!! s/\r\n/\n/g; # hack the SOURCE_DIR line to point back to the source. s!^# SOURCE_DIR=.*!SOURCE_DIR=$srcroot!; print OUT; } close IN; close OUT; } }