Mercurial > hg > xemacs-beta
view build-msw-release.sh @ 5182:2e528066e2fc
Move #'sort*, #'fill, #'merge to C from cl-seq.el.
lisp/ChangeLog addition:
2010-04-01 Aidan Kehoe <kehoea@parhasard.net>
* cl-seq.el (fill, sort*, merge): Move these functions to fns.c.
(stable-sort): Make this docstring reflect the argument names used
in the #'sort* docstring.
* cl-macs.el (stable-sort): Make #'stable-sort exactly equivalent
to #'sort* in compiled code.
* bytecomp.el (byte-compile-maybe-add-*):
New macro, for functions like #'sort and #'mapcar that, to be
strictly compatible, should only take two args, but in our
implementation can take more, because they're aliases of #'sort*
and #'mapcar*.
(byte-compile-mapcar, byte-compile-sort, byte-compile-fillarray):
Use this new macro.
(map-into): Add a byte-compile method for #'map-into in passing.
* apropos.el (apropos-print): Use #'sort* with a :key argument,
now it's in C.
* compat.el (extent-at): Ditto.
* register.el (list-registers): Ditto.
* package-ui.el (pui-list-packages): Ditto.
* help.el (sorted-key-descriptions): Ditto.
src/ChangeLog addition:
2010-03-31 Aidan Kehoe <kehoea@parhasard.net>
* fns.c (STRING_DATA_TO_OBJECT_ARRAY)
(BIT_VECTOR_TO_OBJECT_ARRAY, c_merge_predicate_key)
(c_merge_predicate_nokey, list_merge, array_merge)
(list_array_merge_into_list, list_list_merge_into_array)
(list_array_merge_into_array, CHECK_KEY_ARGUMENT, Fmerge)
(list_sort, array_sort, FsortX):
Move #'sort*, #'fill, #'merge from cl-seq.el to C, extending the
implementations of Fsort, Ffillarray, and merge() to do so.
* keymap.c (keymap_submaps, map_keymap_sort_predicate)
(describe_map_sort_predicate):
Change the calling semantics of the C sort predicates to return a
non-nil Lisp object if the first argument is less than the second,
rather than C integers.
* fontcolor-msw.c (sort_font_list_function):
* fileio.c (build_annotations):
* dired.c (Fdirectory_files):
* abbrev.c (Finsert_abbrev_table_description):
Call list_sort instead of Fsort, list_merge instead of merge() in
these functions.
man/ChangeLog addition:
2010-04-01 Aidan Kehoe <kehoea@parhasard.net>
* lispref/lists.texi (Rearrangement):
Update the documentation of #'sort here, now that it accepts any
type of sequence and the KEY keyword argument. (Though this is
probably now the wrong place for this function, given that.)
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Thu, 01 Apr 2010 20:22:50 +0100 |
parents | 8a653fbe5c27 |
children | 308d34e9f07d |
line wrap: on
line source
#!/bin/sh # Copyright (C) 2000 Andy Piper # 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. # This file builds the release kits for both cygwin and win32. You # must have both environments configured for it to work properly. In # particular you must provide a suitable value for NATIVE_ZLIB_DIR. # configuration NATIVE_ZLIB_DIR=/usr/local/mingw/lib PROGRAM_FILES='c:/Program Files/XEmacs' TMPINSTALL=/tmp/local # no configuration past this point INSTALL= FILES= BUILD=1 for OPT in $* do case $OPT in --install) INSTALL=1;; --installonly) INSTALL=1; BUILD='';; --help) echo "usage: build-msw-release.sh [--install]" && exit;; --*) ;; *) FILES="$FILES $OPT";; esac done # pick up version info . version.sh # decide on names emacs_ver=${emacs_major_version}.${emacs_minor_version}.${emacs_beta_version} cygwin_tarball=xemacs-i686-pc-cygwin-${emacs_ver}${emacs_kit_version}.tar.gz win32_tarball=xemacs-i586-pc-win32-${emacs_ver}${emacs_kit_version}.tar.gz DISTDIR=`pwd`/windows # check to see if we should build if test "$BUILD" = "1" then echo "Building the mswindows ${emacs_ver} release" # cleanup everything first if [ -f Makefile ] ; then make distclean fi # nuke the dist dir. rm -rf windows # create a dist directory mkdir -p windows/cygwin32 mkdir -p windows/win32 mkdir -p /usr/local mkdir -p ${TMPINSTALL} # first build win32 (cd nt; nmake -f xemacs.mak clean; nmake -f xemacs.mak) (cd "${PROGRAM_FILES}"; rm -rf ./XEmacs-${emacs_ver}) (cd nt; nmake -f xemacs.mak install; nmake -f xemacs.mak clean) # now build cygwin ./configure --with-dragndrop --with-postgresql=no --with-x=no \ --bindir=/usr/local/bin/i686-pc-cygwin --with-site-lisp=yes \ --with-ipv6-cname=no --with-netinstall make CFLAGS=-O3 MINGW_ZLIB_DIR=${NATIVE_ZLIB_DIR} beta # deal with the netinstaller (cd netinstall; strip setup.exe) cp netinstall/setup.exe windows # the win32 tar ball needs setup.exe cp netinstall/setup.exe \ "${PROGRAM_FILES}"/XEmacs-${emacs_ver}/i586-pc-win32 # make the win32 tarball (cd "${PROGRAM_FILES}"; tar czvf ${DISTDIR}/win32/${win32_tarball} \ ./XEmacs-${emacs_ver}) # make the tarball make prefix=${TMPINSTALL} bindir=${TMPINSTALL}/bin/i686-pc-cygwin install (cd ${TMPINSTALL}; tar czvf ${DISTDIR}/cygwin32/${cygwin_tarball} \ ./bin/i686-pc-cygwin \ ./lib/xemacs-${emacs_ver} \ ./lib/xemacs/lock \ ./man/man1/ctags.1 \ ./man/man1/etags.1 \ ./man/man1/gnuattach.1 \ ./man/man1/gnuclient.1 \ ./man/man1/gnudoit.1 \ ./man/man1/gnuserv.1 \ ./man/man1/xemacs.1; rm -rf bin lib man) # figure out the ini file. cygwin_tarball_size=`ls -l windows/cygwin32/${cygwin_tarball} | awk '{ print $5; }'` win32_tarball_size=`ls -l windows/win32/${win32_tarball} | awk '{ print $5; }'` (cd netinstall; make CYGWIN_SIZE=${cygwin_tarball_size} \ WIN32_SIZE=${win32_tarball_size} \ KIT_VERSION=${emacs_kit_version} setup-bin.ini ) cp netinstall/setup-bin.ini windows # tidy up make distclean fi # end of build # optionally install to the ftp site if test "$INSTALL" != "" then echo "Installing the mswindows ${emacs_ver} release" scp -r -oUser=slb -oProtocol=1 windows/* \ ftp.xemacs.org:/pub/xemacs/windows # update setup.ini ssh -1 -l slb ftp.xemacs.org 'cd /pub/xemacs/windows; sh makeini.sh' fi