1 puan yazan GN⁺ 2024-11-28 | 1 yorum | WhatsApp'ta paylaş
  • C-Reduce'in kullanımı

    • C-Reduce, Regehr ve çalışma arkadaşları tarafından geliştirilen, C derleyici hata yeniden üreticilerini küçültmek için kullanılan bir araçtır.
    • Örneğin, Clang hatasını tetikleyen 10.000 satırlık bir C dosyasını küçültmek istediğinizde faydalıdır.
    • C-Reduce yalnızca C diliyle sınırlı değildir; çeşitli dillere uygulanabilir.
  • C-Reduce'in gereksinimleri

    • Deterministik bir koşul gerekir.
    • Hızlı bir yeniden üretici varsa küçültme hızına yardımcı olur.
    • C-Reduce'in küçültebileceği, değiştirilebilir bir veya daha fazla kaynak dosya gerekir.
  • RustPython hata vakası

    • RustPython'da ortaya çıkan bir hatayı bildirmek için interesting.sh betiği yazıldı.
    • Betik, RustPython'ı çalıştırdıktan sonra belirli hata mesajını grep ile arar.
  • C-Reduce çalıştırma

    • C-Reduce çalıştırılarak dosya boyutunu %50'den fazla azaltmada başarı sağlandı.
    • C'ye özgü geçişlerden kaçınmak ve Python'a uygun şekilde optimize etmek için --not-c seçeneği kullanıldı.
    • Sonuç olarak dosya hızlı ve kolay biçimde küçültülebildi.
  • Sonuç

    • C-Reduce çeşitli dillere uygulanabilir ve dosyaları hızlı ve verimli biçimde küçültmek için kullanışlıdır.
    • Bu açık kaynaklı bir blogdur; hata varsa değişiklik önerisinde bulunabilirsiniz.

1 yorum

 
GN⁺ 2024-11-28
Hacker News görüşleri
  • Bir kullanıcı, dosyayı küçültme yöntemini paylaşıyor ve RustPython ile scrapscript kullanarak nasıl kurulum yapılacağını açıklıyor

    • RustPython ve scrapscript'i klonlamak için git clone komutu kullanılıyor ve cargo build --release ile derleniyor
    • interesting.sh dosyası indiriliyor ve çalıştırma izni veriliyor
    • Dosyayı küçültmek için nix run nixpkgs#creduce komutu kullanılıyor
  • C-Reduce kullanılmasını tavsiye ediyor ve Shrinkray adlı aracı da birlikte denemeyi öneriyor

    • Shrinkray biçimden bağımsızdır ve C-Reduce'un iyi çalışmadığı durumlarda da faydalıdır
  • C-Reduce hakkında bir makalenin 2012'de yayımlandığından bahsediyor

    • John Regehr ve diğerlerinin makalesi üzerinden C-Reduce'un nasıl çalıştığı açıklanıyor
  • C-Reduce'u ilk kez öğrendiğini ve bunun, git bisect'i ilk keşfettiğindekiyle benzer bir heyecan verdiğini söylüyor

    • Daha sonra ihtiyaç duyduğunda kullanmak için aklında tutmaya karar veriyor
  • C-Reduce örneklerini gösteren bir yazı bulduğunu, ancak her yinelemede neyin kaldırılacağına nasıl karar verildiğini anlamanın zor olduğunu söylüyor

    • Bir tokenization süreci olduğunu tahmin ediyor, ancak bunun programlama dilleri arasında nasıl çalıştığını anlamakta zorlanıyor
  • C-Reduce'u çok faydalı bulduğunu değerlendiriyor

    • CSmith kullanarak rastgele test programları üretiyor ve çökme olduğunda sorunu otomatik olarak küçültmek için C-Reduce kullanıyor
  • Delta debugging yeni bir kavram değil

    • "delta" adlı delta debugging uygulaması 19 yıldan daha eski ve açık kaynak olarak yayımlandı
    • LLVM tanıtımında standart delta debugging aracı olarak anılıyor
  • SQL'de de iyi çalıştığını ve iş yerinde kullandığını söylüyor

    • Bunu SQLancer aracılığıyla keşfettiğini belirtiyor
  • C dili dışındaki dillerde de çalışmasının nedenine dair bir açıklama olmadan buna inanmanın zor olduğunu söylüyor

    • LLM kullanılmadığı için bunun daha da kafa karıştırıcı olduğunu belirtiyor
  • C-Reduce için iyi bir devam aracı olarak cvise'ı öneriyor

    • Assembly programlarını en küçük kümeye indirmek için bunu birkaç kez kullandığını ve çok faydalı bir program olduğunu söylüyor