1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-15 09:47:20 +00:00
emacs/doc/lispref
Dmitry Antipov f3372c8789 Block-based vector allocation of small vectors.
* src/lisp.h (struct vectorlike_header): New field `nbytes',
adjust comment accordingly.
* src/alloc.c (enum mem_type): New type `MEM_TYPE_VECTOR_BLOCK'
to denote vector blocks. Adjust users (live_vector_p,
mark_maybe_pointer, valid_lisp_object_p) accordingly.
(COMMON_MULTIPLE): Move outside #if USE_LSB_TAG.
(VECTOR_BLOCK_SIZE, vroundup, VECTOR_BLOCK_BYTES),
(VBLOCK_BYTES_MIN, VBLOCK_BYTES_MAX, VECTOR_MAX_FREE_LIST_INDEX),
(VECTOR_FREE_LIST_FLAG, ADVANCE, VINDEX, SETUP_ON_FREE_LIST),
(VECTOR_SIZE, VECTOR_IN_BLOCK): New macros.
(roundup_size): New constant.
(struct vector_block): New data type.
(vector_blocks, vector_free_lists, zero_vector): New variables.
(all_vectors): Renamed to `large_vectors'.
(allocate_vector_from_block, init_vectors, allocate_vector_from_block)
(sweep_vectors): New functions.
(allocate_vectorlike): Return `zero_vector' as the only vector of
0 items. Allocate new vector from block if vector size is less than
or equal to VBLOCK_BYTES_MAX.
(Fgarbage_collect): Move all vector sweeping code to sweep_vectors.
(init_alloc_once): Add call to init_vectors.
* doc/lispref/internals.text (Garbage Collection): Document new
vector management code and vectorlike_header structure.
2012-06-08 12:44:30 +04:00
..
.gitignore (configure, index.texi, vol1.*, vol2.*): Remove. 2008-06-17 05:59:50 +00:00
abbrevs.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
advice.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
anti.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
back.texi Add 2012 to FSF copyright years for Emacs files 2012-01-05 01:46:05 -08:00
backups.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
book-spine.texi Add "et al." to authors for emacs and elisp manuals. 2012-04-25 20:48:08 -04:00
buffers.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
ChangeLog Block-based vector allocation of small vectors. 2012-06-08 12:44:30 +04:00
commands.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
compile.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
control.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
customize.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
debugging.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
display.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
doclicense.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
edebug.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
elisp.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
errors.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
eval.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
files.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
frames.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
functions.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
gpl.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
hash.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
help.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
hooks.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
index.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
internals.texi Block-based vector allocation of small vectors. 2012-06-08 12:44:30 +04:00
intro.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
keymaps.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
lay-flat.texi Add 2012 to FSF copyright years for Emacs files 2012-01-05 01:46:05 -08:00
lists.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
loading.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
macros.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
Makefile.in Let configure test for a suitable mkdir -p 2012-05-11 20:57:48 -04:00
makefile.w32-in Give info files the .info extension 2012-05-03 23:45:03 -07:00
maps.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
markers.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
minibuf.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
modes.texi Implement default help-echo for mode line. 2012-06-03 17:03:23 +08:00
nonascii.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
numbers.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
objects.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
os.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
package.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
positions.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
processes.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
README * doc/lispref/README: Small updates. Use outline-mode. 2012-03-01 22:01:40 -05:00
searching.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
sequences.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
spellfile Spelling fixes. 2011-12-18 22:21:24 -08:00
streams.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
strings.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
symbols.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
syntax.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
text.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
tips.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
two-volume-cross-refs.txt Add 2012 to FSF copyright years for Emacs files 2012-01-05 01:46:05 -08:00
two-volume.make Remove the need for lispref vol1.texi and vol2.texi 2012-05-08 20:11:41 -07:00
variables.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00
windows.texi Nuke hand-written node pointers in doc/lispref 2012-05-26 18:34:14 -07:00

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Copyright (C) 2001-2012 Free Software Foundation, Inc.  -*- outline -*-
See the end of the file for license conditions.


README for the Emacs Lisp Reference Manual.

* This directory contains the texinfo source files for the Emacs Lisp
Reference Manual.

* Report bugs in the Lisp Manual (or in Emacs) using M-x report-emacs-bug.
To ask questions, use the help-gnu-emacs mailing list.

* The Emacs Lisp Reference Manual is quite large.  It totals around
1100 pages in smallbook format; the info files total around 3.0 megabytes.

* You can format this manual for Info, for printing hardcopy using TeX,
or for HTML.

* You can buy nicely printed copies from the Free Software Foundation.
Buying a manual from the Free Software Foundation helps support our GNU
development work.  See <http://shop.fsf.org/>.
(At time of writing, this manual is out of print.)

* The master file for formatting this manual for Tex is called `elisp.texi'.
It contains @include commands to include all the chapters that make up
the manual.

* This distribution contains a Makefile that you can use with GNU Make.

** To make an Info file, you need to install Texinfo, then run `make info'.

** Use `make elisp.pdf' or `make elisp.html' to create PDF or HTML versions.


This file is part of GNU Emacs.

GNU Emacs 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 3 of the License, or
(at your option) any later version.

GNU Emacs 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 GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.