X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=TODO;h=f38c0b66c36c33013540e7f3a4772544e7eab233;hb=fc3b301d4faf666195e5913e319a553a9066ef2c;hp=30ccb08a6f5db904973d568e9e31b4a03a9dae09;hpb=7d03e2bd7133e3f4892ac6e28dcc71691cafd074;p=platform%2Fupstream%2Fcoreutils.git diff --git a/TODO b/TODO index 30ccb08..f38c0b6 100644 --- a/TODO +++ b/TODO @@ -1,18 +1,49 @@ -restore djgpp, eventually -merge TODO lists -add unit tests for lib/*.c -rewrite lib/ftw.c not to use explicit recursion, and then use nftw in - chown, chgrp, chmod, du - -strip: add an option to specify the program used to strip binaries. - suggestion from Karl Berry +If you're interested in helping, here are some tasks that we've considered +over the years. Beware: some are quite old and no longer valid. To avoid +wasting your time by duplicating work or by working on a task that is no +longer pertinent, please search the mailing list and post your intent +before embarking on a big project. + +================================================== +Modify chmod so that it does not change an inode's st_ctime + when the selected operation would have no other effect. + First suggested by Hans Ecke in + http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/2920 + Discussed more recently on . + +document the following in coreutils.texi: + mktemp + [ + pinky +Also document the SELinux changes. + +Suggestion from Paul Eggert: + More generally, there's not that much use for imaxtostr nowadays, + since the inttypes module and newer versions of gettext allow things + like _("truncating %s at %" PRIdMAX " bytes") to work portably. + I suspect that (if someone cares to take the time) we can remove + all instances of imaxtostr and umaxtostr in coreutils and gnulib. + +cp --recursive: use fts and *at functions to perform directory traversals + in source and destination hierarchy rather than forming full file names. + The latter (current) approach fails unnecessarily when the names + become very long, and requires space and time that is quadratic in the + depth of the hierarchy. [Bo Borgerson is working on this] + +printf: + Now that gnulib supports *printf("%a"), import one of the + *printf-posix modules so that printf(1) will support %a even on + platforms where the native *printf(3) is deficient. + Suggestion from Eric Blake. + +renice: POSIX utility, needs implementing. + suggestion from Karl Berry (among others). + Bob Proulx is working on this. doc/coreutils.texi: Address this comment: FIXME: mv's behavior in this case is system-dependent Better still: fix the code so it's *not* system-dependent. -implement --target-directory=DIR for install (per texinfo documentation) - ls: add --format=FORMAT option that controls how each line is printed. cp --no-preserve=X should not attempt to preserve attribute X @@ -23,13 +54,6 @@ And once that's done, add an exclusion so that `cp --link' no longer incurs the overhead of saving src. dev/ino and dest. filename in the hash table. -See if we can be consistent about where --verbose sends its output: - These all send --verbose output to stdout: - head, tail, rm, cp, mv, ln, chmod, chown, chgrp, install, ln - These send it to stderr: - shred mkdir split - readlink is different - Write an autoconf test to work around build failure in HPUX's 64-bit mode. See notes in README -- and remove them once there's a work-around. @@ -43,59 +67,16 @@ Should printf '\0123' print "\n3"? printf: consider adapting builtins/printf.def from bash -df: add `--total' option, suggested here http://bugs.debian.org/186007 - -seq: give better diagnostics for invalid formats: - e.g. no or too many % directives -seq: consider allowing format string to contain no %-directives - -dd: consider adding an option to suppress `bytes/block read/written' -output to stderr. Suggested here: - http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=165045 - -m4: rename all macros that start with AC_ to start with another prefix - -resolve RH report on cp -a forwarded by Tim Waugh - -Martin Michlmayr's patch to provide ls with `--sort directory' option - -Remove uses of PROTOTYPES - tail: don't use xlseek; it *exits*. Instead, maybe use a macro and return nonzero. -add mktemp? Suggested by Nelson Beebe - -Now that AC_FUNC_LSTAT and AC_FUNC_STAT are in autoconf, -remove m4/stat.m4 and m4/lstat.m4. - -df: alignment problem of `Used' heading with e.g., -mP - reported by Karl Berry - tr: support nontrivial equivalence classes, e.g. [=e=] with LC_COLLATE=fr_FR -fix tail -f to work with named pipes; reported by Ian D. Allen - lib/strftime.c: Since %N is the only format that we need but that glibc's strftime doesn't support, consider using a wrapper that would expand /%(-_)?\d*N/ to the desired string and then pass the resulting string to glibc's strftime. -sort: Compress temporary files when doing large external sort/merges. - This improves performance when you can compress/uncompress faster than - you can read/write, which is common in these days of fast CPUs. - suggestion from Charles Randall on 2001-08-10 - -sort: Add an ordering option -R that causes 'sort' to sort according - to a random permutation of the correct sort order. Also, add an - option --random-seed=SEED that causes 'sort' to use an arbitrary - string SEED to select which permutations to use, in a deterministic - manner: that is, if you sort a permutation of the same input file - with the same --random-seed=SEED option twice, you'll get the same - output. The default SEED is chosen at random, and contains enough - information to ensure that the output permutation is random. - suggestion from Feth AREZKI, Stephan Kasal, and Paul Eggert on 2003-07-17 - unexpand: [http://www.opengroup.org/onlinepubs/007908799/xcu/unexpand.html] printf 'x\t \t y\n'|unexpand -t 8,9 should print its input, unmodified. printf 'x\t \t y\n'|unexpand -t 5,8 should print "x\ty\n" @@ -103,6 +84,101 @@ unexpand: [http://www.opengroup.org/onlinepubs/007908799/xcu/unexpand.html] Let GNU su use the `wheel' group if appropriate. (there are a couple patches, already) -cut: when stdin is a tty, one has to hit EOF *twice* to get it to stop +sort: Investigate better sorting algorithms; see Knuth vol. 3. + + We tried list merge sort, but it was about 50% slower than the + recursive algorithm currently used by sortlines, and it used more + comparisons. We're not sure why this was, as the theory suggests it + should do fewer comparisons, so perhaps this should be revisited. + List merge sort was implemented in the style of Knuth algorithm + 5.2.4L, with the optimization suggested by exercise 5.2.4-22. The + test case was 140,213,394 bytes, 426,4424 lines, text taken from the + GCC 3.3 distribution, sort.c compiled with GCC 2.95.4 and running on + Debian 3.0r1 GNU/Linux, 2.4GHz Pentium 4, single pass with no + temporary files and plenty of RAM. + + Since comparisons seem to be the bottleneck, perhaps the best + algorithm to try next should be merge insertion. See Knuth section + 5.3.1, who credits Lester Ford, Jr. and Selmer Johnson, American + Mathematical Monthly 66 (1959), 387-389. + +Remove suspicious uses of alloca (ones that may allocate more than + about 4k) + +Adapt these contribution guidelines for coreutils: + http://sources.redhat.com/automake/contribute.html + +Improve test coverage. + See HACKING for instructions on generating an html test coverage report. + Find a program that has poor coverage and improve. + +Changes expected to go in, someday. +====================================== + + dd patch from Olivier Delhomme + + test/mv/*: clean up $other_partition_tmpdir in all cases + + ls: when both -l and --dereference-command-line-symlink-to-dir are + specified, consider whether to let the latter select whether to + dereference command line symlinks to directories. Since -l has + an implicit --NO-dereference-command-line-symlink-to-dir meaning. + Pointed out by Karl Berry. + + dd: consider adding an option to suppress `bytes/block read/written' + output to stderr. Suggested here: + http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=165045 + + Pending copyright papers: + ------------------------ + getpwnam from Bruce Korb + + pb (progress bar) from Miika Pekkarinen + + ------------------------------ + +Remove long-deprecated options. Search case-insensitive for +`deprecated' and `remove in '. Automate this. + +Add a distcheck-time test to ensure that every distributed +file is either read-only(indicating generated) or is +version-controlled and up to date. + +remove `%s' notation (now that they're all gone, add a maint.mk sc_ + rule to ensure no new ones are added): + grep -E "\`%.{,4}s'" src/*.c + +remove all uses of the `register' keyword: Done. add a maint.mk rule + for this, too. + +remove or adjust chown's --changes option, since it + can't always do what it currently says it does. + +Support arbitrary-precision arithmetic in those tools for which it +makes sense. Factor and expr already support this via libgmp. +The "test" program is covered via its string-based comparison of +integers. To be converted: seq. + +Adapt tools like wc, tr, fmt, etc. (most of the textutils) to be + multibyte aware. The problem is that I want to avoid duplicating + significant blocks of logic, yet I also want to incur only minimal + (preferably `no') cost when operating in single-byte mode. + +pr's use of nstrftime can make it malloc a very large (up to SIZE_MAX) buffer + +----- + +Copyright (C) 2002-2008 Free Software Foundation, Inc. + +This program 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. + +This program 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. -look at sort patches from http://www.math.cas.cz/~kasal/sw/gnu/coreutils/ +You should have received a copy of the GNU General Public License +along with this program. If not, see .