Kullanmak istediğim Hackage platformuna özgü birkaç kitaplık var (örneğin, inotify, kqueue). Ancak, koşullu derleme kullanarak platformlar arasında nasıl geçiş yapılacağına dair belgeler biraz seyrek görünüyor. İlgili belgeleri bulma konusunda sorun yaşıyorum ...Platform bağımsız kod nasıl yazılır Haskell (ghc)
Platformlar arasında geçiş yapmak için hangi önişlemci tanımlarını kullanabilirim?
Kablolu dosyamı, sırasıyla linux/osx'te inotify/kque/include dahil etmek/hariç tutmak için nasıl kurabilirim?
Burada belgelenmiş olmanın başkaları için de yararlı olabileceğini umuyorum, bu yüzden diğer ortak platformlardan bahsetmeye değer olabilir. Bu şeyleri her yerde aramak aptalca. Cabal documentation gösterildiği gibi paket açıklamasına extensions: CPP
ekleyin ve tanımlamak GHC documentation
belirtilen
Mümkünse CPP kullanmak yerine farklı paketler içermek için os_HOST_OS kullanılması tercih edilir. –
Ayrıca, farklı işletim sistemleri için farklı yazılması gereken tüm modüller varsa, tüm kaynak ağaçları arasında seçim yapmak için cabal'ın os komutlarını da kullanabilirsiniz. İçinde bir 'cpp-options' bloğu koymak yerine bir "hs-source-dirs" bloğu koymak yerine. –
Teşekkür ederim, iyi cevap –