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.
TODO
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
Item |
Status |
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 --help |
COMPLETED |
Eliminate warnings |
COMPLETED |
Check GNU compatibility |
COMPLETED |
Check POSIX conformance |
COMPLETED |
sort
Item |
Status |
Missing -g / --general-numeric-sort |
INCOMPLETE |
Missing --help |
INCOMPLETE |
Missing -M / --month-sort |
INCOMPLETE |
Missing -S / --buffer-size |
COMPLETED |
Missing --version |
COMPLETED |
Eliminate warnings |
INCOMPLETE |
Check GNU compatibility |
INCOMPLETE |
Check POSIX conformance |
INCOMPLETE |
diff
Item |
Status |
Missing --ignore-file-name-case |
BROKEN |
Missing --no-ignore-file-name-case |
COMPLETED |
Missing --strip-trailing-cr |
INCOMPLETE |
Missing --normal |
COMPLETED |
Missing --left-column |
INCOMPLETE |
Missing --suppress-common-lines |
INCOMPLETE |
Missing --GTYPE-group-format |
INCOMPLETE |
Missing --line-format |
INCOMPLETE |
Missing --LTYPE-line-format |
INCOMPLETE |
Missing --tabsize |
INCOMPLETE |
Missing --unidirectional-new-file |
INCOMPLETE |
Missing --from-file |
INCOMPLETE |
Missing --to-file |
INCOMPLETE |
Missing --horizon-lines |
INCOMPLETE |
Missing --speed-large-files |
INCOMPLETE |
Missing --help |
COMPLETED |
Missing --ignore-blank-lines |
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 |
Eliminate warnings |
COMPLETED |
Check GNU compatibility |
INCOMPLETE |
Check POSIX conformance |
INCOMPLETE |