HN’de tanıtıldı: Spray - 17 yaşındaki birinin 6 ayını harcayarak geliştirdiği C hata ayıklayıcısı
(github.com/d4ckard)- Spray, C kodu için küçük bir hata ayıklayıcıdır; özellikleri basit ve anlaşılır tutarak çalışan programları kontrol etmeyi ve durumlarını inceleyip değiştirmeyi amaçlayan bir araçtır
- Desteklenen özellikler arasında işlev, dosya satırı ve adres tabanlı breakpoint’ler; değişken, adres belleği ve register yazdırma ile ayarlama; C sözdizimi vurgulama; backtrace; komut, işlev ve satır düzeyinde adımlama; komut çıktısı biçim filtresi yer alır
- REPL komutları
print/set,break/delete,continue,next,step,leave,inst,backtraceolup yürütmeyi kontrol etme ve değer okuma-yazma işlemlerini gerçekleştirir printvesetsonrasına pipe (|) ile filtre eklenebilir;dec,hex,addr,bits,bytes,deref/*ile aynı 64 bit değeri farklı biçimlerde göstermek veya adres dereference işlemi yapmak mümkündür- Derleme için CHICKEN Scheme ve libdwarf gerekir; submodule’ler dahil klonladıktan sonra
makeçalıştırılırsabuilddizinindesprayikilisi oluşturulur - Hata ayıklanacak ikili dosya, hata ayıklama bilgisi içerecek şekilde
-gbayrağıyla derlenmelidir; optimizasyonu kapatmak da en iyi çıktıyı almak için gereklidir - Spray yalnızca Clang ile test edilmiştir; her derleyici aynı kod için hata ayıklama bilgisini farklı ürettiğinden, Spray ile hata ayıklanacak program
clangile derlenmelidir - Yol haritasında bileşik struct yazdırma ve değiştirme, bileşik struct sözdizimi vurgulama, frame pointer yerine DWARF tabanlı backtrace, inline function’lar, harici kütüphane yükleme ve hata ayıklanan programa gönderilen sinyalleri yakalama bulunuyor
1 yorum
Hacker News yorumları
Özellikle temiz, tutarlı ve iyi modülerleştirilmiş; ayrıca ikili biçimler ve kernel API’leri hakkında epey derin bilgi gerektiren bir problemi ele alıyor
Birçok “kıdemli” programcı bile böyle bir şeyi kavramsal düzeyde bile yapmakta zorlanırdı; “bugünün çocukları…” lafının tam tersi
Merak ediyorum, 17 yaşındaki biri bu düzeyde bilgiyi nasıl ediniyor? Kitaplar, akranlar, programlama kulüpleri, programcı ebeveynler gibi şeyler mi?
Saf merak, gerekli donanıma “öylece erişebilme” gibi büyük bir koşul ve biraz kitap ile dergiyle bile oldukça uzağa gidilebiliyor
Ebeveynlerim programcı değildi ama babam 1984’te erkenden bir bilgisayar almıştı; daha sonra işi sayesinde TurboPascal, C++ gibi derleyicileri eve getirip denememe izin verdi
Çoğunlukla dergi ve kitaplardan öğrendim; daha sonra demo yapımı tarafındaki yaşıtlarımla biraz etkileşimim oldu ve belgeler içeren diskleri (https://fr.wikipedia.org/wiki/DP_Tool_Club) posta yoluyla da satın aldım. Örneğin https://en.wikipedia.org/wiki/Ralf_Brown%27s_Interrupt_List gibi kaynaklardı
Küçük şeyler yaparak aşamalı biçimde yineledim; CGA için pencereleme araç takımı, Tetris klonu, Bomberman klonu, FFT yazılımı derken sonunda FPU olmadan, yalnızca yazılımla Phong rendering gibi gerçek zamanlı 3D rendering bile yaptım (https://github.com/thbar/demomaking#obez-1995)
Demo yapımı dünyasında aynı şeylerle uğraşan başka gençlerle tesadüfen tanıştım; yani tamamen izole, sıra dışı bir vaka değildim
Bugün meraklı bir çocuğun, o merakı doğru teşvik edilirse çok daha ileri gidebileceğini düşünüyorum
Ayrıca tahminin doğru; babam bilgisayar bilimci
Bazı çocuklar gerçekten inanılmaz. Ben o yaşta C++ öğrenirken pes edip ağlamıştım
Harika. Keşke gençken bende de bu kadar adanmışlık olsaydı
Google Summer of Code, KDE Season of Code, Linux Foundation LFX, X.org EVoC gibi programlara katılmanı öneririm
Çözmeye değer pek çok ilginç problem var. Öğrenciyken bunları bilmiş olmayı isterdim; şimdi tam zamanlı çalıştığım için açık kaynağa katkı yapacak zamanım yok
Böyle devam etmeni dilerim
Projeye ilk kez göz attım; iyi düzenlenmiş görünüyor. Harika
Ne kadar zamandır programlama yaptığını ve hangi dille başladığını merak ediyorum. Onlarca yıl daha yaşlı geliştiriciler arasında hâlâ Makefile kullanamayan epey kişi tanıyorum[1]
Kaynaktaki satır içi emojilerin niyetini merak ettim. Bugünün havalı çocukları hep böyle mi yapıyor, yoksa ASCII olmayan girdilere dikkat çekmek için mi?
[1]: Dinamik olarak üretilen hedefleri kullanamayan ya da anlayamayan daha da fazla kişi var
Emojiler yaklaşık bir hafta kadar yaptığım bir şaka gibiydi. Rust tarafında emojileri çok daha sık görüyorum sanırım. Özellikle silmedim
PID çevresindeki böcek emojilerinin eğlenceli olduğunu düşünüyorum. Yorumların içindekiler bir gün kalkabilir. Yine de şu ana kadar editör sorunu yaşamadım; Helix, Emacs, VSCode hepsi düzgün çalışıyor
Terminal renkleri kapalıysa REPL’de standart çıktıya emoji basmayı da birlikte devre dışı bırakmalı mıyım diye düşünüyorum
Tebrikler; projelerinde bol şans
Derleyiciler, bilişime ilgi duymamı sağlayan ilk tavşan deliklerinden biriydi
Defalarca, durmadan okuduğum kitaplardan biri artık ücretsiz yayımlanmış durumda; debugging değil derleyici tarafında olsa da okuma listene eklemeye değer olabilir
“Compiler Design in C”
https://holub.com/compiler/
Biraz eski bir kitap ama ilginç olabilir
Ne yazık ki birçok kitap fazlasıyla fildişi kule tarzında olabiliyor
17 yaşında bu düzeyde bilgi ve olgunluk gerçekten çok etkileyici
Ele aldığı ve denediği konular lisans düzeyinde beklenen şeyler; bu proje ise onların içinde lisansüstü ders seviyesine yakın
Saygılarımı sunar, başarılı bir kariyer dilerim
Birkaç yıl sonra hâlâ genç bir teknoloji meraklısı olacak; o zaman daha da etkileyici projeler yapma ihtimali yüksek
O noktaya gelindiğinde bu yaşta ne kadar ileride olduğu pek bilinmeyebilir. 20’lerinde başlayıp etkileyici işler yapan zeki insanlar da var ve aynı yaşa geldiklerinde çoğu gözlemciye akran gibi görünecekler
Yine de bu erken avantaj, sürdürebileceği haksız bir üstünlüğe dönüşebilir
Yıllar ya da on yıllar sonra bir tür “gizli silah” gibi ortaya çıkabilir
Genç programcıların kodlarını okumayı seviyorum. Epey yüksek düzeyde bilgiye sahip olup henüz yılların deneyimi yokken bütünü nasıl tasarladıklarını görmek ilginç
Yazar hızlı öğrenen biri gibi görünüyor ve 6 aylık çalışmanın sonucu olarak harika
Görünüşe göre 17 yaşındakiler hâlâ CD’nin ne olduğunu biliyor
Disket kaydetme ikonunu henüz emekliye ayırmamıza gerek olmayabilir :P
Güzel. Ben o yaştayken Turbo Pascal’da gerçek çizim kodunu elle optimize edilmiş assembly ile araya ekleyerek bir 2D grafik kütüphanesi yaptığımı hatırlıyorum
Ama bu interneti keşfetmeden önceydi; yapmak keyifliydi fakat hiçbir yerde kullanılmayan kişisel bir proje olarak kaldı
Kişisel projeni başkalarının görebileceği ve belki doğrudan kullanabileceği bir şeye dönüştüren bir sonraki adıma geçmiş olman harika. Genel olarak çok düzenli, yorumları iyi yazılmış ve README’si de açık
Dünyaya açmak ürkütücü olabilir; ama insanların söylediklerinin, özellikle de senin hakkındaysa, senin çalışman kadar onların kendileri hakkında da bir şey söylediğini hatırlamak iyi olur
Ek olarak, aslında bu projeden çok Motes ile ilgileniyorum; şimdi denemeye çalışacağım :)
Emacs eklentisinde garip davranışlar olabilir. Yine de script’ler son birkaç haftadır bende kusursuz çalıştı
Umarım beğenirsin :D
Harika
Bu gece kodu clone’layıp inceleyeceğim
İlgi alanlarımız benzer olduğu için bu projeye katkıda bulunmaya çalışacağım
Çoğu yere yorum bıraktım ama hepsinin yardımcı olup olmayacağını bilmiyorum
Debugger yazmak özellikle zordur; bu ise epey iyi