* Minor syntax cleanups in the manual
* In non-maintainer mode set NDEBUG to disable assert()
* Performance improvements in strcache:
Build Info 1000 2000 4000
3.82 -g 2.61s 8.85s 33.52s
3.82 -O2 1.90s 7.62s 27.82s
New -g (with asserts) 1.03s 2.31s 5.79s
New -O2 (no asserts) 0.65s 1.50s 3.52s
(sub_process_t): Use intptr_t for file handles and pid_t for
process ID.
(process_pipes, process_init_fd, process_begin): Use intptr_t for
file handles and pid_t for process ID.
Savannah bug #27809. Patch by Ozkan Sezer <sezeroz@gmail.com>
(exec_command) [WINDOWS32]: Use pid2str instead of non-portable
%Id.
main.c (handle_runtime_exceptions): Use %p to print addresses,
to DTRT on both 32-bit and 64-bit hosts. Savannah bug #27809.
job.c (w32_kill, start_job_command, create_batch_file): Use
pid_t for process IDs and intptr_t for the 1st arg of
_open_osfhandle.
function.c (windows32_openpipe): Use pid_t for process IDs and
intptr_t for the 1st arg of _open_osfhandle.
(func_shell): Use pid_t for process IDs.
main.c (main) [WINDOWS32]: Pacify the compiler.
config.h.W32.template (pid_t): Add a definition for 64-bit
Windows builds that don't use GCC.
Savannah bug #27809. Patch by Ozkan Sezer <sezeroz@gmail.com>
backward-incompatible change in the 2008 POSIX specification.
- Add the .SHELLFLAGS variable so people can choose their own shell flags.
- Add tests for this.
- Add documentation for this.
SYS_SIGLIST_DECLARED.
Include <sys/version.h> because ports of GCC 4.3.0 and later no
longer include it, so macros like __DJGPP_MINOR__ are no longer
defined automatically.
* Makefile.DOS.template (INCLUDES): Use $(prefix) and the
corresponding variables to define LIBDIR, INCLUDEDIR and LOCALEDIR
instead of using the hardcoded ones.
(SUBDIRS): doc subdir added.
(INFO_DEPS, DVIS): Values changed to 'make.info' and 'make.dvi'.
(TEXI2HTML, TEXI2HTML_FLAGS): Removed. Use makeinfo --html to
create html formated docs. texi2html may not be ported to DOS.
(make.info, make.dvi, make.ps, make.html): Make targets depend on
'make.texi'.
(.texi.info, .texi, .texi.dvi): Now recursively invocate. Change
-I switch to look in ./ instead of ./doc.
(html): Target depend on html-recursive instead of make_1.html.
(make_1.html): Removed.
(mostlyclean-aminfo): Use $(srcdir)/doc instead of ./ as prefix.
(all-recursive): Allow for more than one subdir in the build
process.
(mostlyclean-recursive, clean-recursive, distclean-recursive)
(maintainer-clean-recursive, check-recursive): Enter in doc/ too.
(tags-recursive): Allow for more than one subdir in the build
process.
(info-recursive, dvi-recursive, ps-recursive, html-recursive): New
targets. Enter into doc/ to produce the targets.
(all-am): $(INFO_DEPS) replaced by info.
- Fix memory errors found by valgrind
- Remove multi_glob() and empower parse_file_seq() to do its job:
the goal here is to remove the confusing reverse/re-reverse we do on
the file lists: needed for future fixes.
- Add a prefix arg to parse_file_seq()
- Make concat() variadic so it can take arbitrary #'s of strings
- Fix Savannah bug #17752
- Test suite:
* When tests fail keep a "run" file containing the command invoked.
* Support for the Valgrind "memcheck" and "massif" tools.
(find_file): Accept 3 arguments PATH_VAR, FULL_FNAME, and FULL_LEN
instead of an LPOFSTRUCT pointer. Use xmalloc instead of malloc.
Loop over an array of extensions, instead of duplicating the same
code inline. Use SearchPath followed by CreateFile, instead of
the obsolete OpenFile. Fixes Savannah bug #17277.
(process_begin): Find $(PATH) in `envp', and pass a pointer to it
to `find_file'. Fixes Savannah bug #25662.
(TEXINFOS): Value changed to `doc/make.texi'.
(.SUFFIXES): Use .texi instead of .texinfo.
(make.info, make.dvi): Depend on doc/make.texi.
(.texi.info): New target, instead of ".texinfo.info". Change -I switch
to $(MAKEINFO) to look in doc/. Use --no-split.
(.texi): New target, instead of ".texinfo". Change -I switch to $(MAKEINFO)
to look in doc/. Use --no-split.
(.texi.dvi): New target, instead of ".texinfo.dvi". Change -I switch
to $(MAKEINFO) to look in doc/.
(install-info-am, uninstall-info): Don't look for "*.i[0-9]" and
"*.i[0-9][0-9]" (due to --no-split above).
(noinst_TEXINFOS, TEXI2HTML, TEXI2HTML_FLAGS): New variables.
(html, make_1.html): New targets.
(.PHONY): Add "html".
(.SUFFIXES): Add .html.
HAVE_DECL_SYS_SIGLIST.
job.c (child_execute_job): Remove __MSDOS__ because MSDOS/DJGPP build does
not use child_execute_job.
variable.c (define_automatic_variables) [__MSDOS__]: Always export the SHELL
environment variable to the child.
Allows the user to reset the prefix character for introducing recipe lines
from the default (tab) to any other single character, and back again.
Also, reworked the manual to consistently use the word "recipe" to describe
the set of commands we use to update a target, instead of the various
phrases used in the past: "commands", "command lines", "command scripts",
etc.
One of our translations disappeared from the translations site so remove it.
The fdl.texi file was changed to not contain any @node entries, so add some
around it in make.texi.
Add a new feature to the test suite suggested by Icarus Sparry:
set a timer before invoking a test, so that if it loops infinitely we
will wake up and have a chance to kill the process and continue.
Fix an uninitialized variable.
Add builtin rules for Objective C.
Add a new debug line that shows where the commands that are about to be run
were defined.
comparison functions to always use POSIX strcasecmp(). For non-POSIX
systems that use other functions (strcmpi or stricmp) use a macro to alias
strcasecmp to those. If we can't find any of them (VMS, plus whatever
UNIX doesn't have them) then define our own version in misc.c.