-
C-Reduce का उपयोग
- C-Reduce, Regehr और उनके सहयोगियों द्वारा विकसित एक टूल है, जिसका उपयोग C compiler bug reproducer को न्यूनतम करने के लिए किया जाता है.
- उदाहरण के लिए, जब आप Clang bug को ट्रिगर करने वाली 10,000 लाइनों की C file को छोटा करना चाहते हैं, तब यह उपयोगी है.
- C-Reduce केवल C भाषा तक सीमित नहीं है और इसे कई भाषाओं पर लागू किया जा सकता है.
-
C-Reduce की आवश्यकताएँ
- deterministic condition की आवश्यकता होती है.
- तेज reproducer होने पर reduction की गति बेहतर होती है.
- C-Reduce द्वारा छोटा की जा सकने वाली एक या अधिक editable source files की आवश्यकता होती है.
-
RustPython bug का मामला
- RustPython में हुई bug की रिपोर्ट करने के लिए
interesting.sh script लिखी गई.
- यह script RustPython चलाने के बाद एक खास error message को grep से खोजती है.
-
C-Reduce चलाना
- C-Reduce चलाकर file size को 50% से अधिक घटाने में सफलता मिली.
--not-c option का उपयोग करके C-विशेष passes से बचा गया और इसे Python के लिए optimize किया गया.
- नतीजतन, file को तेज़ी और आसानी से छोटा किया जा सका.
-
निष्कर्ष
- C-Reduce को कई भाषाओं पर लागू किया जा सकता है, और यह files को तेज़ी व कुशलता से छोटा करने में उपयोगी है.
- यह एक open source blog है, इसलिए अगर कोई गलती हो तो बदलाव का सुझाव दिया जा सकता है.
1 टिप्पणियां
Hacker News टिप्पणियाँ
एक उपयोगकर्ता ने फ़ाइल को छोटा करने का तरीका साझा किया और RustPython तथा scrapscript का उपयोग करके इसे सेट अप करने का तरीका समझाया
git cloneकमांड का उपयोग करके RustPython और scrapscript को clone किया, औरcargo build --releaseसे build कियाinteresting.shफ़ाइल डाउनलोड की और उसे execute permission दियाnix run nixpkgs#creduceकमांड का उपयोग करके फ़ाइल को छोटा कियाC-Reduce के उपयोग की सिफारिश की गई, और साथ में Shrinkray नामक टूल भी आज़माने की सलाह दी गई
उल्लेख किया गया कि C-Reduce पर शोध-पत्र 2012 में प्रकाशित हुआ था
C-Reduce के बारे में पहली बार पता चला, और वही रोमांच महसूस हुआ जैसा पहली बार git bisect खोजने पर हुआ था
C-Reduce के उदाहरण दिखाने वाला एक लेख मिला, लेकिन हर iteration में क्या हटाया जाए यह कैसे तय होता है, इसे समझना कठिन लगा
C-Reduce को बहुत उपयोगी बताया गया
delta debugging कोई नया विचार नहीं है
deltaनाम का delta debugging implementation 19 साल से भी पुराना है और open source के रूप में जारी किया गया थायह SQL में भी अच्छी तरह काम करता है, और कार्यस्थल पर इसका उपयोग किया जा रहा है
यह समझाना मुश्किल है कि C भाषा के अलावा दूसरी भाषाओं में भी यह कैसे काम करता है, अगर उसके लिए कोई व्याख्या न हो
C-Reduce के एक अच्छे successor tool के रूप में cvise की सिफारिश की गई