Urgent.News

What's breaking now, across thousands of outlets.

Tech

I removed 1,918 comments across twelve workers. 51 of them were load-bearing.

The project caps comment blocks per file. A census found 2,886 blocks in the repository and 97 files over the cap. The plan was not to delete the text. Every block was relocated verbatim into an evidence ledger, pinned to the blob and line range it came from, and then stripped out of the source. Twelve workers did it in parallel over disjoint file lists. Each one carried the same control, and the…

In a recent project involving 12 workers, a total of 1,918 comment blocks were removed across 97 files in a repository that initially contained 2,886 such blocks. Rather than deleting the comments, they were relocated verbatim into an evidence ledger and then stripped out of the source code. Each worker processed a disjoint set of files, using the same control condition, "OK_COMMENT_DIFF non_comment=0", which confirmed that every removed line was indeed a comment.

Eleven out of the twelve workers completed their task without issues. However, one worker's file list included two proof files containing 51 comment blocks. The docstrings in these files played a crucial role, as they contained the requirement id that linked each theorem to the requirement it discharged. Despite the proof files compiling successfully, the claim that "every theorem answers a stated requirement" was invalidated after the comment removal.

This was because the removal control did not account for the readership of the removed comments, such as documentation tools or annotation extractors.

The fix was to restore the files byte for byte to their original state and mark the relocation as undone in the evidence ledger, as it is append-only. The theorem count was then corrected. Going forward, a new rule was established: when performing bulk removals, the control should run every reader of the removed content, not just the classifier. In this case, the documentation tool was the critical reader that needed to be considered.

Furthermore, the project revealed that each evidence row records the blob it came from, allowing anyone to reproduce the original text. However, a recipe for doing so was never executed before the project began. The authors emphasize that "is it a comment?" and "is anything reading it?" are two distinct questions. A green answer to the first question may be misinterpreted as an answer to the second, especially when dealing with "load-bearing" comments that are essential for certain tools.

The authors also mention that a reproduction recipe, though present in the documentation, had never been executed before, and thus, merely recording a row does not constitute a reliable source of information.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

When Do You Decide a Project Is Done?

I make A LOT of things. Some turn into bigger projects than I expected. Some are experiments. Some are tiny utilities I made because I wanted one very specific thing and didn't feel like using…

  • Projects should reach completion when their intended purpose is fulfilled.
  • Over-expansion can lead to overly complex tools deviating from original purpose.
  • Some projects are meant to exist without constant evolution.

More from Sunday 13 September →