- Apple’ın MPW C derleyicisi hata mesajlarını toplayan bir sayfa; derleyicinin String kaynaklarının decompile edilmesiyle elde edilen gerçek alıntılar olduğu belirtiliyor
- Normal derleyici tanıları yerine şaka ve hiciv içeren ifadelerle ANSI C standardı, tür kısıtları ve sözdizimi hataları aktarılıyor
- Örneklerde dize sabiti uzunluğu,
switchiçindeki label’lar,typedefkonumu,volatile/registerbirleşimi, sabit değiştirme gibi C dili hataları yer alıyor void *işlemleri,voidcast’i, struct yeniden tanımı,gotoile otomatik değişken başlatmanın iç içe geçtiği hatalar gibi belirli derleme durumlarını doğrudan hedef alıyor- Derleyicinin boyutunun 324KB olduğu, yayımlanan listenin tamamı değil yalnızca bir seçki olabileceği ve telif durumunun da net olmadığı ekleniyor
MPW C derleyicisi hata mesajları derlemesi
- Apple’ın MPW C derleyicisinin ürettiği bazı hata mesajlarını listeleyen bir sayfa
- Mesajlar gerçek çıktı olarak sunuluyor ve derleyicinin String kaynaklarının decompile edilmesiyle elde edildiği söyleniyor
- Derleyicinin boyutu 324KB olduğundan listenin tamamı değil, yalnızca kısmi bir alıntı olabileceği belirtiliyor
- Telif meselesi konusunda kesin bir şey söylenemediği ifade ediliyor
Şaka gibi görünen gerçek tanı örnekleri
-
C sözdizimi ve ANSI standardını eğip büken mesajlar
- Dize sabiti uzunluğu sınırı:
"String literal too long (I let you have 512 characters, that's 3 more than ANSI said I should)"
switchifadesinin içinde yalnızcacaseya dadefaultlabel’larının bulunması gerektiğini söyleyen hata:"...And the lord said, 'lo, there shall only be case or default labels inside a switch statement'"
- Beklenmedik bir
typedefadıyla karşılaşılan durum:"a typedef name was a complete surprise to me at this point in your program"
- ANSI C maddesine atıf yaparak cast hedefinin scalar olması gerektiğini belirten mesaj:
"type in (cast) must be scalar; ANSI 3.3.4; page 39, lines 10-11 (I know you don't care, I'm just trying to annoy you)"
- Dize sabiti uzunluğu sınırı:
-
Türler ve bildirimlerle ilgili hatalar
volatileileregisterın birlikte kullanılamayacağını söyleyen mesaj:"'Volatile' and 'Register' are not miscible"
- Sabitlerin değiştirilemeyeceğini hicivli biçimde ifade eden hata:
"You can't modify a constant, float upstream, win an argument with the IRS, or satisfy this compiler"
- Zaten tanımlanmış bir struct’ı yeniden tanımlamaya çalışılan durum:
"This struct already has a perfectly good definition"
voidile ilgili cast kısıtı:"Can't cast a void type to type void (because the ANSI spec. says so, that's why)"
void *üzerinde gelişi güzel işlem yapılamayacağını söyleyen mesaj:"can't go mucking with a 'void *'"
-
Kısa ya da abartılı hata ifadeleri
- Kısa ve doğrudan hata:
"Huh ?"
- Daha önce işlenmiş bir fonksiyonla yeniden karşılaşılan durum:
"we already did this function"
- Blok dışından gelen
goto, initializer’a sahip otomatik değişken ve fazla dar pencereyi aynı anda konu eden uzun hata:"This label is the target of a goto from outside of the block containing this label AND this block has an automatic variable with an initializer AND your window wasn't wide enough to read this whole error message"
- Yorum içinde
/*bulunduğu durum:"Call me paranoid but finding '/*' inside this comment makes me suspicious"
- Tek satırda fazla sayıda hata bulunan durum:
"Too many errors on one line (make fewer)"
- Sembol tablosunun dolduğu fatal heap hatası:
"Symbol table full - fatal heap error; please go buy a RAM upgrade from your local Apple dealer"
- Kısa ve doğrudan hata:
1 yorum
Hacker News yorumları
Bilişimde böyle oyunculuğun olduğu zamanları özlüyorum
Amazon’dayken yöneticim, eskiden 404 sayfasını yenilerken kızının çizdiği bir kedi resmini tarayıp sayfanın gövdesine koyduğunu söylemişti. 2009’da işe başladığımda o görsel hâlâ duruyordu ama bir noktada biri fark edip stok bir köpek fotoğrafıyla değiştirmiş gibiydi. Yine de asset adı hâlâ
kayli-kitty.jpgidi; daha sonra tekrar dönen fotoğraflara geçilince orijinalin izi kaybolduİlgili blog yorumunu da buldum: https://www.davebellous.com/2006/09/25/what-the/#comment-290...
Amazon’un büyük köpek görseli kullanan mevcut hata sayfasını Haziran 2016 civarında devreye aldığı görülüyor: https://web.archive.org/web/20160612232820/http://www.amazon...
www.amazon.com’u açıp doğrudan kaynağa bakın :)Cidden merak ediyorum; velisi geçmişte onay vermiş olsa bile böyle bir şey mümkün mü?
“Symbol table full - fatal heap error; please go buy a RAM upgrade from your local Apple dealer” demek; bilgisayarı aldıktan sonra da RAM yükseltmesi satın alabildiğimiz eski günleri hatırlatıyor
Bugün olsa “Symbol table full - fatal heap error; please go buy a new Mac with more RAM” olurdu herhalde
Modern işletim sistemlerinin hepsi swapping destekler, dolayısıyla derleme devam eder ama yalnızca çok daha yavaşlar. Modern bir bilgisayarda gerçekten “bellek yetersiz” durumuna düşmek için hem RAM’i hem diski doldurmanız gerekir
node_modules’ün %20’sini koyabilirsiniz“a typedef name was a complete surprise to me at this point in your program”
Eğlenceli derleyici hata mesajlarının olduğu zamanlar güzeldi. Eskiden bir tedarikçinin derleyicisinde şöyle bir mesaj gördüğümü hatırlıyorum: “No! But they'll only let me warn you. Danger Will Robinson! Danger!”
Bir de “Really! If you are fussing around with void *, just go home or at least back to your editor!” vardı. Sanırım IT yöneticisi o mesaj yüzünden o tedarikçiyi kullanmaya devam etmişti. SDK idare ederdi ama eğlenceliydi
void*neden bu kadar büyük bir meseleydi, bağlamını merak ediyorumMümkün olur olmaz özgün MacOS üzerinde programlama yaptım. Bu hata mesajlarının çoğunu hatırlıyorum. Özellikle “Too many errors on one line (make fewer)” aklımda kalmış
Bir header dosyası değiştiğinde derlemenin 45 dakika sürdüğünü de hatırlıyorum
En büyük XCMD’de üç dil de vardı; MPW bunu hiç sorun çıkarmadan link’liyordu. Tek bir dosyanın içine yapıştırılacak küçük kod blokları olan projeleri otomatikleştirmek de kolaydı. Nadir hata mesajlarından biri çıktığında kahkahalarla güldüğümü hatırlıyorum. Bunu yapan kişi, iyi iş çıkarmış
Bu derleyiciyi birkaç yıl kullanınca, çok büyük fonksiyonlar olmadığı sürece üretilen 68k nesne kodunu kafamda anında C koduna “decompile” edebilir hâle geldim
MacNosy kullanınca genellikle birkaç saat içinde bir uygulamanın C kaynağını yeniden oluşturabiliyordum. Uygulamanın MacNosy dosyasını assembler dosyası ve
rsrcdosyasına dönüştüren bir script’im vardı; orijinaliyle eşdeğer şekilde derlenebilir bir uygulamayı korurken fonksiyonları tek tek C’ye taşıyabiliyordum. Başta oyun hack’lemek için kullandım ama ara sıra hata düzeltmek için de kullandımMPW C derleyicisinin kod üretiminin bu kadar öngörülebilir olmasının bir nedeni de 68k komut kümesinin simetrikliğiydi. Basit bir derleyici yaptılar ve iyi çalıştı. Emeğin çoğu başka yerlere gitti. Hangi kodun çıkacağını oldukça doğru tahmin edebildiğiniz için, kod üretimi hoşunuza gitmezse kaynağı değiştirmeniz yeterliydi.
javacderleyicisinin de benzer bir felsefeye sahip olmasını seviyorum. Kalıpları öğrendikten sonra neredeyse optimale yakın bytecode üretebiliyorsunuz90’ların başında bir eğitim şirketinde kullanılan Glockenspiel C++ derleyicisi cfront’tan türetilmiş bir şeydi; en sevdiğim sözdizimi hatası mesajı ise sadece “core dumped” idi
C++’ın kendisiyle bile zorlanan kursiyerlere, para karşılığı verilen bir eğitimde bunu açıklamak epey sıkıntılıydı
“Call me paranoid but finding '/*' inside this comment makes me suspicious” demiş; bu, hocam, sizin dert edeceğiniz bir şey değil
/*içinde bir/*daha varsa, kapatmak için iki kez*/gerekmesi gibi.Gerçekte berbat bir fikir olabilir ama böyle olsaydı zaman kazandıracağı epey durum yaşadım
Sayfanın içeriğinden biraz ayrı bir konu ama birçok MPW utility’sinin, hata mesajları dâhil çıktıyı komut biçiminde üretme şeklini gerçekten seviyordum
Terminal bir editör buffer’ı olduğu için imleci ilgili satıra götürüp ya da satıra tıklayıp
cmd-entergibi bir şeye basarak ilgili dosyayı açmak mümkün oluyordu“a typedef name was a complete surprise to me at this point in your program”
Bu listeyi sayısız kez görmüş olmama rağmen, bu mesajı her gördüğümde kahkahamı tutamıyorum
Önceki tartışma: https://news.ycombinator.com/item?id=30238928
Bağlam eklemek gerekirse, bu mesajları üreten MPW C derleyicisi aslında Apple içinde geliştirilmiş değil; Green Hills Software[1] tarafından sözleşmeyle yapılmış. Wikipedia sayfasında[2] ve onun kaynağında[3] da geçiyor; ilginç olan, o kaynağın bizzat bu konu olması
[1] https://en.m.wikipedia.org/wiki/Green_Hills_Software
[2] https://en.m.wikipedia.org/wiki/Macintosh_Programmer%27s_Wor...
[3] https://web.archive.org/web/20140528005901/http://lists.appl...