From a2697e9631a572c52da84fcd73054293313f9bb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Lam?= Date: Mon, 6 Sep 2021 15:56:24 +0200 Subject: [PATCH] contributing: Add "no copy/pasting pseudocode" rule --- Contributing.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Contributing.md b/Contributing.md index 4b373837..24b4245f 100644 --- a/Contributing.md +++ b/Contributing.md @@ -136,6 +136,8 @@ public: 3. **Implement the function in C++.** * Stay close to the original code, but not too close: your code should mostly look like normal, clean C++ code. If it does not, chances are that you won't get a good match at all. + * Do **NOT** copy and paste any pseudocode. **Reimplement it**. While we cannot go for a fully "clean room" approach, you should be reimplementing code, not copy/pasting anything from the original executable. + * PRs that violate this rule will be rejected. * Keep in mind that decompilers can only produce C pseudocode. Some function calls may be member function calls. * Identify inlined functions and *uninline* them. For example, if you see a string copy, do **not** write the copy loop manually! Instead, call the inline function and let the compiler inline the function for you. * Identify duplicate pieces of code: those are usually a sign that functions have been inlined.