From: Fabián Ezequiel Gallina Date: Wed, 28 Jan 2015 03:09:39 +0000 (-0300) Subject: Merge from origin/emacs-24 X-Git-Tag: emacs-25.0.90~2572^2~56 X-Git-Url: https://code.delx.au/gnu-emacs/commitdiff_plain/8e9166c92c97e7c2041eecee4e00d412a1eca1be Merge from origin/emacs-24 a012c7b Fix copyright years by hand 732fd4c Update copyright year to 2015 Conflicts: INSTALL.REPO admin/notes/lel-TODO doc/man/grep-changelog.1 doc/misc/eww.texi etc/CONTRIBUTE etc/GNU etc/NEWS etc/refcards/emacsver.tex etc/refcards/ru-refcard.tex lib-src/grep-changelog lib-src/test-distrib.c lib/alloca.in.h lib/binary-io.h lib/c-ctype.h lib/c-strcasecmp.c lib/c-strncasecmp.c lib/careadlinkat.c lib/close-stream.c lib/dosname.h lib/dup2.c lib/filemode.h lib/fpending.c lib/fpending.h lib/getgroups.c lib/getloadavg.c lib/getopt.in.h lib/getopt1.c lib/getopt_int.h lib/gettext.h lib/gettime.c lib/gettimeofday.c lib/group-member.c lib/md5.c lib/md5.h lib/memrchr.c lib/sha1.c lib/sig2str.c lib/stdarg.in.h lib/stdbool.in.h lib/stdlib.in.h lib/strftime.c lib/strtoimax.c lib/strtol.c lib/strtoll.c lib/strtoull.c lib/tempname.c lib/time_r.c lib/unsetenv.c lib/xalloc-oversized.h lisp/gnus/gnus-setup.el lisp/progmodes/cap-words.el lisp/w32-common-fns.el m4/alloca.m4 m4/dup2.m4 m4/filemode.m4 m4/getgroups.m4 m4/getloadavg.m4 m4/gettime.m4 m4/gettimeofday.m4 m4/gnulib-common.m4 m4/group-member.m4 m4/manywarnings.m4 m4/memrchr.m4 m4/mktime.m4 m4/pathmax.m4 m4/pthread_sigmask.m4 m4/sig2str.m4 m4/ssize_t.m4 m4/st_dm_mode.m4 m4/stat-time.m4 m4/stdarg.m4 m4/stdbool.m4 m4/stddef_h.m4 m4/stdio_h.m4 m4/strftime.m4 m4/strtoimax.m4 m4/strtoll.m4 m4/strtoull.m4 m4/strtoumax.m4 m4/time_h.m4 m4/timer_time.m4 m4/timespec.m4 m4/unistd_h.m4 m4/utimbuf.m4 nextstep/README nt/addsection.c src/insdel.c src/w32heap.c test/automated/package-x-test.el --- 8e9166c92c97e7c2041eecee4e00d412a1eca1be diff --cc INSTALL.REPO index 3431ee480b,e26d367255..61b16340d3 --- a/INSTALL.REPO +++ b/INSTALL.REPO @@@ -1,10 -1,9 +1,14 @@@ + Copyright (C) 2002-2015 Free Software Foundation, Inc. + See the end of the file for license conditions. + + Building and Installing Emacs from the Repository +Simply run 'make'. This should work if your files are freshly checked +out from the repository, and if you have the proper tools installed. +If it doesn't work, or if you have special build requirements, the +following information may be helpful. + Building Emacs from the source-code repository requires some tools that are not needed when building from a release. You will need: diff --cc src/w32heap.c index d5a9dae0aa,3b4738fcf4..ee0eb16150 --- a/src/w32heap.c +++ b/src/w32heap.c @@@ -1,55 -1,28 +1,55 @@@ - /* Heap management routines for GNU Emacs on the Microsoft Windows - API. Copyright (C) 1994, 2001-2015 Free Software Foundation, Inc. + /* Heap management routines for GNU Emacs on the Microsoft Windows API. + Copyright (C) 1994, 2001-2015 Free Software Foundation, Inc. -This file is part of GNU Emacs. + 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 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. + 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 . */ + You should have received a copy of the GNU General Public License + along with GNU Emacs. If not, see . */ /* - Geoff Voelker (voelker@cs.washington.edu) 7-29-94 + Geoff Voelker (voelker@cs.washington.edu) 7-29-94 */ +/* + Heavily modified by Fabrice Popineau (fabrice.popineau@gmail.com) 28-02-2014 +*/ + +/* + Memory allocation scheme for w32/w64: + + - Buffers are mmap'ed using a very simple emulation of mmap/munmap + - During the temacs phase: + * we use a private heap declared to be stored into the `dumped_data' + * unfortunately, this heap cannot be made growable, so the size of + blocks it can allocate is limited to (0x80000 - pagesize) + * the blocks that are larger than this are allocated from the end + of the `dumped_data' array; there are not so many of them. + We use a very simple first-fit scheme to reuse those blocks. + * we check that the private heap does not cross the area used + by the bigger chunks. + - During the emacs phase: + * we create a private heap for new memory blocks + * we make sure that we never free a block that has been dumped. + Freeing a dumped block could work in principle, but may prove + unreliable if we distribute binaries of emacs.exe: MS does not + guarantee that the heap data structures are the same across all + versions of their OS, even though the API is available since XP. */ + #include #include +#include +#include #include "w32common.h" #include "w32heap.h" #include "lisp.h" /* for VALMASK */