== Proposition A. Do not implement `-a' and `-o'. ==

Why.

1. Most of the `test` usage is 2 or 3 arg. ops.
2. Issues (and possible `||', `&&' substitutions), described in [0]

[0] http://www.opengroup.org/onlinepubs/000095399/utilities/test.html

3. In case of usage of it, `exec /usr/bin/test $args` can be
   implemented. Thus, smart users of `-a' and `-o' will have to
   install some kind of external `test` or `[`, e.g. GNU coreutils.


>From the point of view of my current state of the rewrite, i have
everything open coded and unrolled, very size and speed optimized.
Making any kind of recursive implementation for `-a' && `-o' *and*
thus `\(', `\)', will cause me to copy same stuff in functions (i have
room for that) or replacing current things with those functions, which
is ugly and more work on testing.


== Proposition B. Extend `-ot' and `-nt' to check a list of files. ==

This are not POSIX ops, described in [0] as to be not included from
original KornShell, due to not including `[[' semantics.

Nonetheless, they are present in `dash` and in other implementations.
Maybe because of [0]:

     Additional implementation-defined operators and primary_operators
     may be provided by implementations. They shall be of the form -
     operator where the first character of operator is not a digit.

Now, i want to add something like this:

#!/bin/dash
cd /mnt/path/to/src

test file.c -ot [ utils/foo.c include/bar.h ] && do_update
[ file.c -nt [ utils/foo.c include/bar.h ] ]  || do_nothing

test vmlinux.o -nt [ $DEP_LIST ] || do_something

#shend

When using parameter, IFS can split any kind of list separation, so
list syntax, basically, is not that much important.

Why. Because of my intention of getting rid of the `make` based built
system(s). It was discussed many time by many people. The Linux kernel
kbuild/kconfig flame wars ended without any positive result. In
addition to that, any kind of smart up-to-date heuristics can be
scripted easily.

This change is not going to be major, because now it is possible to
multiply calls or using `-a' || `-o'. But going to be very good
optimization for such kinds of applications.

It doesn't introduce hidden incompatibilities or buggy usage. Using
can be done only in small, specific areas, such as `klibc'.

Square braces `[' && `]' proposed, because they not require escaping
from the shell.

--
-o--=O`C
 #oo'L O
<___=E M
-
To unsubscribe from this list: send the line "unsubscribe dash" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to