GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Breaking: Adapt coreutils dev file structure V2 by GunterSchmidt · Pull Request #206 · uutils/diffutils

Conversation

@GunterSchmidt

@GunterSchmidt GunterSchmidt commented Mar 29, 2026

Copy link
Copy Markdown
Contributor

Adapting the project structure to the coreutils structure.

This replaces PR #201.

TL;DR: Diff and Cmp now in separate folders with clap parser and international help, info and error messages. Tests and Bench adapted.

coreutils uses a source code tree, which has each tool in a separate dir unter /uu,
a separate library tree and the main file under /bin. Also a number of features are
available in another directory.

Adaptiong this structure allows more usage of the coreutils macros
and methods. It makes it easier for the developers to navigate when
working in both projects.

Each utility can now be opened standalone
which makes it also easier to test and benchmark.

Since it is a file location restructure, the commit is containing
a lot of files. The core compare logic was left unchanged as much as
possible.

This PR contains a number of commits so the change steps become clearer.

Update of utils 'diff' and 'cmp':

  • use clap parser (for diff 10x faster)
  • parser implements all options and returns
    not yet implemented error vs unexpected option
  • internationalization of error and
    info messages, e.g. help
  • moved main tests
    (still has some module tests)
  • separated and moved benches
  • clean up old code
  • adapted fuzzer
  • includes fix for SIGPIPE panics #192
  • Adapted diffutils main to coreutils main based on @oech3 PR 11385 of coreutils

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Gunter Schmidt and others added 7 commits March 26, 2026 12:06
Gunter Schmidt
Feat: Added Spell-Checker and fixed spellings
fcb1cdb
For Code Spell Checker extension.
Gunter Schmidt
Adapted LICENSE from coreutils
8b8fb39
Gunter Schmidt
Feat: introduce coreutils file structure
5fa4ff7
The file structure with
* bin for the main executable
* uu for the utilities
* uudiff for the libraries
was introduced.

To minimize changes, only these changes were done:
* move files to uu_ subdirectories
* main() --> uumain()
* bin/diffutils.rs replaces old main

This required:
* adjust modules in files
* adjust paths in tests

Whenever possible, methods of coreutils were used directly. For localization reasons, some modules needed to be copied and adapted for diffutils.

Issues: The tool dist was adapted as much as possible but may not work with this setup.
* requires all packages to be in the same repository
* possibly requires a separate README.md for each tool
Gunter Schmidt
reorder functions in cmp
52d3360
Gunter Schmidt
Feat: Update Cmp
8a69893
* use clap parser
* internationalization of error and
  info messages, e.g. --help
* moved tests into tests by-util
* separated and moved benches
* adapted fuzzer
* common parser error handling for all modules
* some fixes, e.g. error on selection of a directory
@renovate Gunter Schmidt
chore(deps): update codecov/codecov-action action to v6
b2258ed
Gunter Schmidt
Feat: Update Diff
ec17e5b
* use clap parser (10x faster)
* parser implements all options with
  not yet implemented error
* internationalization of error and
  info messages, e.g. help
* moved main tests
  (still has some module tests)
* separated and moved benches
* clean up old code
* adapted fuzzer
@GunterSchmidt GunterSchmidt mentioned this pull request Mar 29, 2026
Breaking: Adapt coreutils dev file structure #201
Closed
Gunter Schmidt and others added 5 commits March 29, 2026 12:50
Gunter Schmidt
Fix: Windows issues fixed
9102519
Gunter Schmidt
Fix: Cargo fmt
3c493f6
Gunter Schmidt
Fix: Codspeed benchmark test
46f0713
Gunter Schmidt
Fix: benchmarks in Windows
2f23eeb
Also some clippy findings
@GunterSchmidt
Merge branch 'uutils:main' into reorg_to_coreutils_structure
1a616f0
@sylvestre

sylvestre commented Apr 3, 2026

Copy link
Copy Markdown
Collaborator

it is very hard to review
anything you could do to split it? thanks

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@sylvestre

sylvestre commented Apr 4, 2026

Copy link
Copy Markdown
Collaborator

note that i am very happy about this change :)

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@GunterSchmidt

GunterSchmidt commented Apr 4, 2026

Copy link
Copy Markdown
Contributor Author

I am open to suggestions. I did steps, which you can see in the commits. I could do separate PRs for each commit, would that help?
The problem is that I have to rewrite large portions of the code when switching to clap. So, if you have an idea how to make it more atomic, I might be able to adjust accordingly.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@sylvestre

sylvestre commented Apr 4, 2026

Copy link
Copy Markdown
Collaborator

yeah, in several PR please

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@GunterSchmidt

GunterSchmidt commented Apr 11, 2026

Copy link
Copy Markdown
Contributor Author

okay, there will be 7 to 10 PRs coming, first one is very simple #208.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@sylvestre sylvestre closed this May 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

No reviews

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

2 participants

@GunterSchmidt @sylvestre
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.