Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| gaborsoc2008 [2008/07/22 11:01] – GáborKövesdán | gaborsoc2008 [2022/08/15 06:29] (current) – remove space from name KubilayKocak | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ===== Porting BSD-licensed Text-Processing Tools from OpenBSD ===== | ===== Porting BSD-licensed Text-Processing Tools from OpenBSD ===== | ||
| + | |||
| %%FreeBSD%% currently uses the GNU versions of the command-line text-processing tools: grep, sort, diff, patch, sdiff. The goal of this project is to port the BSD-licensed versions of these tools from %%OpenBSD%% and optimize the performance where possible, provide standard-conformance and handling of wide character sets. The man pages also need to be revised and completed. | %%FreeBSD%% currently uses the GNU versions of the command-line text-processing tools: grep, sort, diff, patch, sdiff. The goal of this project is to port the BSD-licensed versions of these tools from %%OpenBSD%% and optimize the performance where possible, provide standard-conformance and handling of wide character sets. The man pages also need to be revised and completed. | ||
| - | ===== TODO ===== | + | ===== BSD grep ===== |
| - | ==== Overall items ==== | + | |
| - | * Create regression tests. | + | |
| - | * Find a method to collect which options are used by the Ports Collection so that we can measure the progress of the compatibility. | + | |
| - | * Compare performance to GNU tools and optimize implementation to bring performance to par | + | |
| - | * See how well (on features and performance) GNU tools deal with wide character set input | + | |
| - | ==== grep ==== | + | Please see [[KyleEvans/ |
| - | ^ Item ^ Status ^ | + | ===== sort ===== |
| - | | Missing --label | COMPLETED | | + | |
| - | | Missing --null | COMPLETED | | + | |
| - | | Missing --color / --colour | COMPLETED | | + | |
| - | | Missing -D / --devices | COMPLETED | | + | |
| - | | Missing -H / --with-filename | COMPLETED | | + | |
| - | | Missing -J / --bz2decompress | COMPLETED | | + | |
| - | | Missing -d / --directories | COMPLETED | | + | |
| - | | Missing -m / --max-count | COMPLETED | | + | |
| - | | Missing -o / --only-matching | COMPLETED | | + | |
| - | | Missing --include suboption for -r | COMPLETED | | + | |
| - | | Missing --exclude suboption for -r | COMPLETED | | + | |
| - | | Missing --help | COMPLETED | | + | |
| - | | Eliminate warnings | COMPLETED | | + | |
| - | | Comment the code | INCOMPLETE | | + | |
| - | | Check GNU compatibility | COMPLETED | | + | |
| - | | Check POSIX conformance | COMPLETED | | + | |
| - | | Clean up the code | COMPLETED | | + | |
| - | | Merge possible improvements from %%NetBSD%% | COMPLETED | | + | |
| - | | Add wide character support | COMPLETED | | + | |
| - | | Add NLS support | COMPLETED | | + | |
| - | | Change binary support to use a buffer and don't pre-extract gzip/bzip2 files | INCOMPLETE | | + | |
| - | | Add optional -P / --perl-regexp support with PCRE | INCOMPLETE | | + | |
| - | Comments: The functional compatibility of BSD grep seems good, but there are some incompatibilities between the GNU regex library and our libc-regex. The former accepts non-standard regexes, like for example (a|), which contains an empty subexpression. There are a bunch of such cases, thus it is not possible to fix those in the BSD grep code, furthermore a different behaviour in our base regex library and BSD grep should be avoided. Such incompatibilities: | + | Has been rewritten from scratch. There are some missing features. Performance |
| - | + | ||
| - | * (a|) has an empty subexpression in extended regexp | + | |
| - | * (a||b) has an empty subexpression in extended regexp | + | |
| - | * ?*, *?, %%**%%, ??, (* ^* have invalid repetition operators in extended regexp | + | |
| - | + | ||
| - | ==== sort ==== | + | |
| - | + | ||
| - | ^ Item ^ Status ^ | + | |
| - | | Missing -g / --general-numeric-sort | INCOMPLETE | | + | |
| - | | Missing --help | COMPLETED | | + | |
| - | | Missing -M / --month-sort | INCOMPLETE | | + | |
| - | | Missing -S / --buffer-size | COMPLETED | | + | |
| - | | Missing --version | COMPLETED | | + | |
| - | | Eliminate warnings | INCOMPLETE | | + | |
| - | | Comment the code | INCOMPLETE | | + | |
| - | | Check GNU compatibility | INCOMPLETE | | + | |
| - | | Check POSIX conformance | COMPLETED | | + | |
| - | ==== diff ==== | + | ===== diff ===== |
| ^ Item ^ Status ^ | ^ Item ^ Status ^ | ||
| - | | Missing --ignore-file-name-case | BROKEN | + | | Missing --ignore-file-name-case | COMPLETED |
| | Missing --no-ignore-file-name-case | COMPLETED | | | Missing --no-ignore-file-name-case | COMPLETED | | ||
| - | | Missing --strip-trailing-cr | INCOMPLETE | + | | Missing --strip-trailing-cr | COMPLETED |
| | Missing --normal | COMPLETED | | | Missing --normal | COMPLETED | | ||
| - | | Missing --left-column | INCOMPLETE | | ||
| - | | Missing --suppress-common-lines | INCOMPLETE | | ||
| | Missing --tabsize | INCOMPLETE | | | Missing --tabsize | INCOMPLETE | | ||
| | Missing --unidirectional-new-file | COMPLETED | | | Missing --unidirectional-new-file | COMPLETED | | ||
| | Missing --from-file | COMPLETED | | | Missing --from-file | COMPLETED | | ||
| | Missing --to-file | COMPLETED | | | Missing --to-file | COMPLETED | | ||
| - | | Missing --horizon-lines | INCOMPLETE | | ||
| - | | Missing --speed-large-files | COMPATIBLE | | ||
| | Missing --help | COMPLETED | | | Missing --help | COMPLETED | | ||
| | Missing --ignore-blank-lines | INCOMPLETE | | | Missing --ignore-blank-lines | INCOMPLETE | | ||
| | Missing --ignore-tab-expansion | INCOMPLETE | | | Missing --ignore-tab-expansion | INCOMPLETE | | ||
| - | | Missing --show-function-line | INCOMPLETE | | ||
| - | | Missing -W / --width | INCOMPLETE | | ||
| - | | Missing -y / --side-by-side | INCOMPLETE | | ||
| | Missing -v / --version | COMPLETED | | | Missing -v / --version | COMPLETED | | ||
| | Eliminate warnings | COMPLETED | | | Eliminate warnings | COMPLETED | | ||