📄 news
字号:
about a 10% improvement in some circumstances. The new algorithm should also be a better foundation for adding compression or server-side load limiting. * New --allow option for distccd allows IP-based access control in either inetd or standalone daemon modes. * Locking mechanism now distinguishes between daemons on different ports of the same machine for the purposes of load balancing. * Print timing and estimated rate on bulk data transfers. * Open binary files in O_BINARY mode on Cygwin. May fix some corruption problems on this platform. More investigation would be appreciated. Based on a patch by Helind. PORTABILITY: * Use putenv() rather than setenv() to fit into SUSv2 and work on Solaris 8. Pointed out by Dimitri Papadopoulos. * Add some functions from libiberty to aid portability.distcc-1.1 "balls to the wall" 2003-01-28 BUGS: * Flag platforms that have a sendfile() function, but that aren't explicitly supported, because it seems to vary substantially. At the moment only FreeBSD and Linux are known. * Fix configure test for hstrerror(). Patch from Frerich Raabe. * Check for inadvertent recursion, where distcc calls itself as the compiler. Causes an exit with value 111. * Don't log client hostname, only the IP address. It's not really necessary and can slow us down. * If run by root, discard privileges rather than flagging an error. The persona to assume is set by the --user option and defaults to "distcc". The user "nobody" or uid 65534 is used as a fallback if the named user is not found. BENCHMARK: * Allow for running benchmarks repeatedly, printing the mean and standard deviation of run time. * Projects may now be selected by an unambiguous prefix of their name, so you can just say "benchmark hello" rather than "benchmark hello-2.1.1". * Print better explanatory messages while the benchmark is running. TESTING: * Update some tests to work with changed behaviour of gcc 3.2 as well as 2.95. DOCUMENTATION: * Many updates to distcc User Manual. * Comply with GNU Standards by keeping all messages in the NEWS file, not just those for the current release.distcc-1.0 "consider the oyster" 2003-01-16 BUG FIXES: * Fix sendfile() bug on FreeBSD that could cause files to be mistransmitted. Perhaps not manifest on x86? Reported by Kris Kennaway. PACKAGING: * Distribute as .tar.bz2 rather than .tar.gz. (We pay by the byte.) DOCUMENTATION: * The recommended convention for gcc names is <target>-gcc-<version>, and GCC 3.3 will install itself under this name. (Alexandre Oliva, Claes Wallin) BENCHMARK: * New macro-benchmark and test suite for distcc. Invoke it with "make benchmark." It takes a long time to run and causes a lot of source code to be downloaded, but should be self-contained. This is the start of a script that runs distcc to build various open source programs, as an overall test of correctness, and to measure performance of a distcc installation. It relies on the user to install and configure distcc servers and clients, but handles the work of downloading, preparing, and building packages by itself. There are still some rough edges on the script, but it may be of interest. * Add control over which phases of the benchmark are run. * Add ability to run tests repeatedly and report mean and standard deviation. REMOVALS: * Remove Plucker file: nobody seems to be downloading it, and it's easy enough for people to build if they're interested. * Remove PDF and Postscript from documentation in tarball. They are still available from the web site or may be built from source.distcc-0.15 "petrified forest" 2002-12-12 INCOMPATIBILITIES: * Change default port from 4200 to IANA-assigned standard for distcc service "3632". Compatibility with old installations can be retained by explicitly setting --port=4200 on the server, or using "HOST:PORT" on the client. * Fake-root directory for "make install" is now set by DESTDIR, not TARGET_ROOT. (Alexandre Oliva.) BUG FIXES: * Run the preprocessor with output sent to stdout and redirected to a file, rather than by using the -o option. This should fix some compilers that can't handle "-E -o". It may improve gcc behaviour with -MD, but because gcc behaviour has changed over time it may not be a complete fix. For gcc 3.2 it is recommended that -MF be used to explicitly set the dependency output filename. TESTING: * Add test case for transmission of a zero-byte file. * Add badly-behaved compiler drop-in for use in testing. PORTABILITY: * Use the correct autoconf macros to detect whether install(1) is available and working, and if not, fall back to using the included install-sh script. This should fix "make install" on Solaris. (Mike Santy) * Fix waitpid() takes three options. Required for Irix. (Michael Santy) * Fix autoconf detection of resolv.h on Solaris. (Dimitri Papadopoulos) DOCUMENTATION: * Describe information to include in a bug report. * Remove "Results" chapter from manual: there are now many more detailed results on the web site, and this information is better suited to storage there, because it will be updated on a different cycle. End-users don't really need to have it in their reference. * Remove "MOC Compatibility" section from manual because at the moment there is nothing to say. * Add a new section about the complexities of gcc -MD. * Remove "Bugs" section from the manual, and put it into a new TOOD file instead. Keep information about reporting bugs and using the test suite, but put it in a different section.distcc-0.14 "no agonizing hanging weights" 2002-11-13 BUG FIXES: * Take lock on localhost only when compiling locally, not for all compilations. This removes the accidental limit of only 4 overall jobs. (Martin Pool) * Fix Makefile bug that caused HTML documentation to be missing from the distribution tarball. (Frerich Raabe, Martin Pool) * Make PreprocessPlainText_Case run in appropriate subdirectory. (Martin Pool) PORTABILITY: * Test for wait4 and wait3, which are missing on IRIX. (Mike Santy, Martin Pool) DOCUMENTATION: * Include example init.d script. (Jason Thomas)distcc-0.13 "Armistice" 2002-11-11 FEATURES: * New --no-detach option to cause the server not to detach from its parent. It still forks normally when a connection is accepted. This may be useful with daemontools or other frameworks that prefer the daemon not to detach. (Martin Pool) * Log messages on the server of severity "warning" or higher are captured and sent back to the client. (Martin Pool) * If the local preprocessor fails, do not re-run the job locally because it would presumably fail in the same way. (Martin Pool) * By default, the client only sends "warning" or higher messages to stderr, so that nothing extra is logged unless there is possibly a failure in distcc itself. With a DISTCC_LOG file, "notices" and higher are logged. (Martin Pool) * Better messages when a compiler exits or crashes. (Martin Pool) * If the compiler because of a signal, return 128+SIGNAL, per Unix convention. (Martin Pool) * Compilers and preprocessors are now run in their own process groups, and terminated if the daemon is killed. (Martin Pool) * When the daemon parent is terminated, it does not kill all its children. Instead, they're allowed to finish whatever they're working on, and then exit. This allows for more graceful shutdown. (Martin Pool) * More specific exit codes for some error cases. Don't panic. (Martin Pool) * Include popt library and --with-included-popt configure option to aid installation on systems that don't have it. By default it is statically linked in only if the build machine does not have a suitable library and header. (Martin Pool) REMOVALS: * Remove support for feeding the compiler from a fifo. The gain from using fifos does not seem to justify the maintenance burden. (Martin Pool) - This makes the behaviour more consistent, because some platforms (Cygwin) or filesystems (NFS, strangely) can't use fifos. It removes a code path and a slightly complex autodetection. - Using fifos makes some potential scheduling improvements hard: the server can't make good decisions about how many tasks to run, because each one will only use a fraction of the CPU. The client cannot serialize file transmission, which would probably be desirable. - Using fifos makes reliably handling compiler failures slightly harder: the compiler may crash or exit at any time, which will in turn cause the server to hang if it later tries to open or write to the fifo. In previous versions, distcc tried to handle this by catching SIGCHLD when the child terminated, and aborting the operation, but I am not sure that the method is completely reliable. BUG FIXES: * Detached daemon now ignores hangup signal. (Martin Pool) * When the parent is terminated, don't kill its process group. Allow children to finish in their own time. (Martin Pool) * Detect the case where cpp claims to have succeeded, but did not actually produce any output. (Martin Pool) * Do not use atexit() to clean up temporary files, because this can cause havoc if it's ever called from a child process that forked but failed to exec. (Martin Pool) * Handle "gcc -S foo.c -o -", which ought to write assembly to stdout. (Alexandre Oliva) * Fix bug in handling IO errors (e.g. dropped connection) in the server. (Martin Pool) * If we fail to cork a socket, continue anyhow. (Martin Pool) * Make error handling for IO more consistent. (Martin Pool) * Follow Unix convention of returning 128+SIGNAL if the compiler exits with a signal. (Martin Pool) TESTING: * Add tests for parsing slot limit from host specification. (Martin Pool) * Daemon tests collect dead servers faster, so the tests run a bit faster. (Martin Pool) * Nicer handling of ^C while running tests: print "INTERRUPT" and terminate the whole test. (Martin Pool) * Add new tests for scanning command lines with an implied compiler name. (Martin Pool) * When the parent is terminated, don't kill its process group. Allow children to finish in their own time. (Martin Pool) * Detect the case where cpp claims to have succeeded, but did not actually produce any output. (Martin Pool) * Add test case for #error directive. (Martin Pool) * Add test case for preprocessing non-C text, as is done by (for example) xrdb. (Martin Pool) * Add test case for invocations like "distcc -c test1.c test2.c". (Martin Pool) * Add test for handling of a compiler missing from the server. (Martin Pool) * Allow distcc's version to be set to something like "0.13cvs-nofifo". (Martin Pool) * Add test for handling of a compiler missing from the server. (Martin Pool) * Improved ComfyChair testing framework. (Tim Potter, Martin Pool) PORTABILITY: * Includes example init.d script for SuSE 7.x and 8.0. Not installed by default. (Brandon Forehand) DOCUMENTATION: * Document use with Gentoo Linux. (Dean Bailey, Ernesto, Martin Pool) INTERNAL: * Get rid of recursive Make and fix various small Makefile bugs. (Martin Pool) * Add $(TARGET_ROOT) variable for "make install", for use in building binary packages. (Martin Pool, Nick Moffitt) * wait4() on Solaris can't handle a pid of -1, which means "any child" on Linux and BSD. Use pid of 0 instead to collect any children from the same process group. (Kevin Bailey) * Client does not abruptly drop network connection on compiler failure but rather reads the 0-byte object file token. (Martin Pool) * Rework logger library to allow multiple logger callbacks to be active at once. This is used for the server, which can write to its own log files and also send a copy of messages to a buffer to be sent to the client. (Martin Pool)distcc-0.12 "Klein, kosten- und schn鰎kellos" 2002-10-07 BUG FIXES: * Handle "gcc -S foo.c -o -", which ought to write assembly to stdout. (Alexandre Oliva) PORTABILITY: * wait4() on Solaris can't handle a pid of -1, which means "any child" on Linux and BSD. Use pid of 0 instead to collect any children from the same process group. (Kevin Bailey) TESTING: * Add tests for "-o -". (Martin Pool)distcc-0.11 "Nuclear Bedtime Story" 2002-09-25 FEATURES: * More helpful message explaining that popt is needed if it is missing at build time. (Martin Pool) * Better stripping of options from remote command lines. (Martin Pool) * Handle the new -MM, -MG, -MP, -MF, -MT, -MQ options for gcc 3.x. (Stephan Kulow, Martin Pool) PERFORMANCE: * Whenever a command by either the client or the server, it counts towards the load on that machine. This covers undistributed commands, cpp, and compilation. This should avoid the bias in earlier versions towards overloading the client. (Martin Pool) BUG FIXES: * IO errors should not cause the process to terminate straight away, because they are properly handled and we may have important cleanup to do. (Martin Pool) * Fix error handling in code for executing compilers. (Martin Pool) * Fix leakage of file descriptors when trying to acquire a lock. (Martin Pool) * Do not object to running as group 0, because on BSD this is "wheel" and many non-privileged users are in it. (Frerich Raabe, Martin Pool) * Fix (non-exploitable) buffer overrun bug. (Dave Zarzycki) PORTABILITY:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -