Mercurial > hg > xemacs-beta
view lisp/mule/iso-with-esc.el @ 5170:5ddbab03b0e6
various fixes to memory-usage stats
-------------------- ChangeLog entries follow: --------------------
lisp/ChangeLog addition:
2010-03-25 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 in show-object-memory-usage-stats showing
the ancillary Lisp overhead used with each type; shrink columns for
windows in show-memory-usage to get it to fit in 79 chars.
src/ChangeLog addition:
2010-03-25 Ben Wing <ben@xemacs.org>
* alloc.c:
* alloc.c (struct):
* alloc.c (finish_object_memory_usage_stats):
* alloc.c (object_memory_usage_stats):
* alloc.c (Fobject_memory_usage):
* alloc.c (lisp_object_memory_usage_full):
* alloc.c (compute_memusage_stats_length):
* lrecord.h:
* lrecord.h (struct lrecord_implementation):
Add fields to the `lrecord_implementation' structure to list an
offset into the array of extra statistics in a
`struct generic_usage_stats' and a length, listing the first slice
of ancillary Lisp-object memory. Compute automatically in
compute_memusage_stats_length(). Use to add an entry
`FOO-lisp-ancillary-storage' for object type FOO.
Don't crash when an int or char is given to object-memory-usage,
signal an error instead.
Add functions lisp_object_memory_usage_full() and
lisp_object_memory_usage() to compute the total memory usage of an
object (sum of object, non-Lisp attached, and Lisp ancillary
memory).
* array.c:
* array.c (gap_array_memory_usage):
* array.h:
Add function to return memory usage of a gap array.
* buffer.c (struct buffer_stats):
* buffer.c (compute_buffer_usage):
* buffer.c (vars_of_buffer):
* extents.c (compute_buffer_extent_usage):
* marker.c:
* marker.c (compute_buffer_marker_usage):
* extents.h:
* lisp.h:
Remove `struct usage_stats' arg from compute_buffer_marker_usage()
and compute_buffer_extent_usage() -- these are ancillary Lisp
objects and don't get accumulated into `struct usage_stats';
change the value of `memusage_stats_list' so that `markers' and
`extents' memory is in Lisp-ancillary, where it belongs.
In compute_buffer_marker_usage(), use lisp_object_memory_usage()
rather than lisp_object_storage_size().
* casetab.c:
* casetab.c (case_table_memory_usage):
* casetab.c (vars_of_casetab):
* emacs.c (main_1):
Add memory usage stats for case tables.
* lisp.h:
Add comment explaining the `struct generic_usage_stats' more,
as well as the new fields in lrecord_implementation.
* console-impl.h:
* console-impl.h (struct console_methods):
* scrollbar-gtk.c:
* scrollbar-gtk.c (gtk_compute_scrollbar_instance_usage):
* scrollbar-msw.c:
* scrollbar-msw.c (mswindows_compute_scrollbar_instance_usage):
* scrollbar-x.c:
* scrollbar-x.c (x_compute_scrollbar_instance_usage):
* scrollbar.c:
* scrollbar.c (struct scrollbar_instance_stats):
* scrollbar.c (compute_all_scrollbar_instance_usage):
* scrollbar.c (scrollbar_instance_memory_usage):
* scrollbar.c (scrollbar_objects_create):
* scrollbar.c (vars_of_scrollbar):
* scrollbar.h:
* symsinit.h:
* window.c:
* window.c (find_window_mirror_maybe):
* window.c (struct window_mirror_stats):
* window.c (compute_window_mirror_usage):
* window.c (window_mirror_memory_usage):
* window.c (compute_window_usage):
* window.c (window_objects_create):
* window.c (syms_of_window):
* window.c (vars_of_window):
Redo memory-usage associated with windows, window mirrors, and
scrollbar instances. Should fix crash in find_window_mirror,
among other things. Properly assign memo ry to object memory,
non-Lisp extra memory, and Lisp ancillary memory. For example,
redisplay structures are non-Lisp memory hanging off a window
mirror, not a window; make it an ancillary Lisp-object field.
Window mirrors and scrollbar instances have their own statistics,
among other things.
author | Ben Wing <ben@xemacs.org> |
---|---|
date | Thu, 25 Mar 2010 06:07:25 -0500 |
parents | a67bfb29dd8b |
children | 308d34e9f07d |
line wrap: on
line source
;;; iso-with-esc.el -- ;;; Provision of the hateful and never widely implemented Latin, Greek and ;;; Cyrillic variable-length ISO 2022 coding systems that passed for Latin ;;; 2, Latin 10, (etc) support in XEmacs for so long. ;; ;; Copyright (C) 2006 Free Software Foundation ;; Author: Aidan Kehoe ;; 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., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;;; Code: ;; It is not particularly reasonable that iso-latin-1-with-esc has a ;; value of t for the safe-charsets property. We discourage its use, ;; though, and this behaviour is compatible with GNU. ;;;###autoload (define-coding-system-alias 'iso-latin-1-with-esc 'iso-2022-8) ;;;###autoload (make-coding-system 'iso-latin-2-with-esc 'iso2022 "ISO-8859-2 (Latin-2)" '(charset-g0 ascii charset-g1 latin-iso8859-2 charset-g2 t charset-g3 t safe-charsets (ascii latin-iso8859-2) mnemonic "MIME/Ltn-2")) ;;;###autoload (make-coding-system 'iso-latin-3-with-esc 'iso2022 "ISO-8859-3 (Latin-3)" '(charset-g0 ascii charset-g1 latin-iso8859-3 charset-g2 t charset-g3 t safe-charsets (ascii latin-iso8859-3) mnemonic "MIME/Ltn-3")) ;;;###autoload (make-coding-system 'iso-latin-4-with-esc 'iso2022 "ISO-8859-4 (Latin-4)" '(charset-g0 ascii charset-g1 latin-iso8859-4 charset-g2 t charset-g3 t safe-charsets (ascii latin-iso8859-4) mnemonic "MIME/Ltn-4")) ;;;###autoload (make-coding-system 'iso-latin-9-with-esc 'iso2022 "ISO 4873 conforming 8-bit code (ASCII + Latin 9; aka Latin-1 with Euro)" '(mnemonic "MIME/Ltn-9" ; bletch safe-charsets (ascii latin-iso8859-15) eol-type nil charset-g0 ascii charset-g1 latin-iso8859-15 charset-g2 t charset-g3 t)) ;;;###autoload (make-coding-system 'iso-latin-5-with-esc 'iso2022 "ISO-8859-9 (Latin-5)" '(charset-g0 ascii charset-g1 latin-iso8859-9 charset-g2 t charset-g3 t safe-charsets (ascii latin-iso8859-9) mnemonic "MIME/Ltn-5")) ;;;###autoload (make-coding-system 'cyrillic-iso-8bit-with-esc 'iso2022 "ISO-8859-5 (Cyrillic)" '(charset-g0 ascii charset-g1 cyrillic-iso8859-5 charset-g2 t charset-g3 t safe-charsets (ascii cyrillic-iso8859-5) mnemonic "ISO8/Cyr")) ;;;###autoload (make-coding-system 'hebrew-iso-8bit-with-esc 'iso2022 "ISO-8859-8 (Hebrew)" '(charset-g0 ascii charset-g1 hebrew-iso8859-8 charset-g2 t charset-g3 t no-iso6429 t safe-charsets (ascii hebrew-iso8859-8) mnemonic "MIME/Hbrw")) ;;;###autoload (make-coding-system 'greek-iso-8bit-with-esc 'iso2022 "MIME ISO-8859-7" '(charset-g0 ascii charset-g1 greek-iso8859-7 charset-g2 t charset-g3 t safe-charsets (ascii greek-iso8859-7) mnemonic "Grk")) ;;;###autoload (make-coding-system 'arabic-iso-8bit-with-esc 'iso2022 ;; GNU's iso-8859-6 is ;; iso2022-compatible. "ISO-8859-6 (Arabic)" '(charset-g0 ascii charset-g1 arabic-iso8859-6 charset-g2 t charset-g3 t no-iso6429 t safe-charsets (ascii arabic-iso8859-6) mnemonic "MIME/Arbc"))