Bunun hakkında zaten bir soru olacağını düşündüm, ama bulamıyorum.GHC: derleme tarihini ekle
Programımın derlendiği tarihi yazdırmasını istiyorum. Bunu ayarlamanın en kolay yolu nedir?
Birkaç olasılık düşünebilirim, ancak bunların hiçbiri "kolay" diyeceğiniz şey değil. İdeal olarak, her çalıştırdığımda ghc --make Foo
yapabilmek ve Foo
derleme çıktısını almak istiyorum. akla
Çeşitli olmayan kolay olasılıklar:
Şablon Haskell öğrenin. Bugünün tarihini almak için
Data.Time
'u nasıl kullanacağınızı öğrenin. Bunu bir dizeye dönüştürmenin yolunu bulun. (Şimdi programım çalışmak için TH gerektirir. Ayrıca, her zaman bu modülü yeniden derlemek için ikna etmem gerekiyor, aksi takdirde tüm modül yerine [asla değişmez] bu modül için derleme tarihini aldım.)Sistem tarihini içeren küçük bir Haskell modülü oluşturan bir kabuk komut dosyası yazın. (Şimdi! Ayrıca Windows üzerinde kabuk komut dosyası çok istenen bırakır. O shell script kullanmak yerine doğrudan programımı derlemek zorunda)
Sit aşağı ve dolu küçücük Haskell modülünü oluşturur bazı Haskell kod yazmak tarih. (Önceki fikirden daha taşınabilir - ancak yine de fazladan oluşturma adımları gerektirir veya yazdırılan tarih yanlış olur.)
Cabal üzerinden bunu yapmanın bir yolu olabilir - ancak bu küçük programı gerçekten paketlemek istiyorum bir tarih tesisi almak için?
herkes herhangi basit bir öneriniz var mı?
Alias ghc Tarih dizgisi için # -} 've' şimdi = ŞİMDİ '. Çirkin hack, sizi daha fazla iş alan daha temiz bir alternatife itecek kadar çirkin olabilir. –
@DanielFischer Görünüşe göre, Windows kabuğu bir komutun çıktısından bir değişken belirleme yeteneğinden yoksundur. Bunun yerine, stdin metnini okuyan SET/P VAR = 'içeren bir kesmek kullanmalısınız. Komut çıktısını bir dosyaya aktarırsanız, daha sonra tekrar boruya gönderirseniz, istediğiniz efekti elde edebilirsiniz ... ancak JESUS! > _ < – MathematicalOrchid
Oh, vay. PowerShell bile bu yeteneğe sahip değil mi? –