Saturday, September 25, 2010

GHCi and Cabal

Maybe I'm the only one who didn't already know this, but I'd like to describe how to use GHCi within a Cabal project under development.

Say I'm working on a library foobar:

~/foobar $ find -type f
./foobar.cabal
./Data/FooBar.hs
./Setup.hs
./LICENSE

I want to write a test program, which won't go in the Cabal distribution:

~/foobar $ cat > test.hs
import Data.FooBar
main = print fooBar
^D

~/foobar $ cabal configure && cabal build
Resolving dependencies...
Configuring foobar-0.1...
Preprocessing library foobar-0.1...
Building foobar-0.1...
Registering foobar-0.1...

~/foobar $ ghci test.hs
GHCi, version 6.12.1: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
[1 of 2] Compiling Data.FooBar      ( Data/FooBar.hs, interpreted )
[2 of 2] Compiling Main             ( test.hs, interpreted )
Ok, modules loaded: Data.FooBar, Main.

GHCi is loading Data.FooBar into the interpreter, but I wanted to test the compiled, optimized version that was just produced by Cabal. Let's try telling it about the dist/ directory:

~/foobar $ ghci test.hs -package-conf dist/package.conf.inplace
GHCi, version 6.12.1: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
[1 of 2] Compiling Data.FooBar      ( Data/FooBar.hs, interpreted )
[2 of 2] Compiling Main             ( test.hs, interpreted )
Ok, modules loaded: Data.FooBar, Main.

Still no good. Seems that the existence of the file Data/FooBar.hs overrides anything in the package database. Move to another directory:

~/foobar      $ mkdir test && cd test
~/foobar/test $ mv ../test.hs .
~/foobar/test $ ghci test.hs -package-conf ../dist/package.conf.inplace
GHCi, version 6.12.1: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
[1 of 1] Compiling Main             ( test.hs, interpreted )
Ok, modules loaded: Main.
*Main> fooBar
Loading package foobar-0.1 ... linking ... done.
"testing 123"

It works. :) For compiled code as well:

~/foobar/test $ ghc --make -O test.hs -package-conf ../dist/package.conf.inplace
[1 of 1] Compiling Main             ( test.hs, test.o )
Linking test ...
~/foobar/test $ ./test
"testing 123"

4 comments:

  1. شركة تنظيف فلل بالرياض تتيح لكم ما تحتاجونه من خدمات تنظيف في مختلف المنشآت بجميع المساحات والأغراض والمحتويات، إذ أن الشركة تقدم من خلال أفضل العمال والمتخصصين وبإشراف الخبراء الذين تستعين بهم الشركة للإشراف على ما يتم القيام به من مهام وخدمات وتوفير كافة سبل الراحة لعملائها الكرام من خلال ما تستعين به من وسائل ومواد ومعدات تتميز بتقنياتها المتطورة والحديثة والتي تواكب من خلالها مستلزمات العصر الحديث و للوصول إلى أفضل ما قد يتطلع له العملاء بجميع فئاتهم في ما يأملون في الوصول لها من مستوى خاص بنظافة المنشأة التي يقيمون فيها أو يعملون بها ويسعون جاهدين إلى أن تظهر بأجمل هيئة وأكمل صورة داخليا وخارجيا.
    تمتع بأسعار لا مثيل لها مع شركة تنظيف فلل بالرياض
    يتمتع عملاء الشركة بمزايا لا تتوافر بالشركات الأخرى إذ أن أسعارنا هي الأرخص والأفضل رغم أن خدماتنا هي الأضمن والأفضل والأكثر تميزا بالمقارنة مع كبرى الشركات المماثلة إذ أن خدماتنا وأسعارنا لا منافس لها وتتميز شركة نظافة فلل بالرياض بما توفره من عروض ذات أسعار وخصومات رائعة ومذهلة على تنظيف الفلل وتعطيرها وتعقيمها جيدا من الاوبئة والجراثيم التي توجد فى تلك المساحات من الفلل الكبيرة والصغيرة .
    https://www.allsaad.com/70-2/
    لمزيد من خدماتنا
    شركة عزل فوم بالرياض

    ReplyDelete
  2. توفر هذه الشركة عدد كبير من مختلف أنواع الخدمات الخاصة بالمنزل ، و على رأس هذه الخدمات تسليك و تنظيف المجاري و البيارات ، كما أن الشركة تعتمد في الكشف عن الانسداد على أحدث الماكينات و الألات ، التي تعمل على الكشف عن مكان الانسداد بشكل محدد ليتم تسليكه ، مع الكشف عن السبب في حدوث الانسداد ، هذا بالإضافة إلى توفير أجهزة تعمل على شفط الأوساخ من البيارات ، مع التأكد من أن كافة مواسير الصرف قد عادت لطبيعتها ، و توفر الشركة أيضا إمكانية الكشف عن تسرب مياه الصرف لمياه الصنبور .
    و هذه الشركة توفر خدمات تسليك و تنظيف مواسير الصرف الصحي ، و كذلك توفر أيضا خدمات تنظيف البيارات و غرف التفتيش ، مع الاعتماد على مواد حديثة تعمل على إزابة التكتلات الموجودة بالصرف و التي أدت إلى الانسداد ، و كذلك تقنيات و أجهزة توفر الكشف عن مكان التعطل ، هذا مع توفير إمكانية شفط القاذورات المتراكمة في المكان الذي أصيب بالانسداد ، و تفير خدمات الكشف عن اختلاط الصرف بالمياه
    شركة تسليك مجاري بالرياض
    خدمات تنظيف حمامات السباحة
    المسبح من أهم الأشياء التي تستخدم ربما كشكل ديكوري بداخل المنزل ، أو أنها تستخدم لمزيد من المتعة داخل المنزل ، و لابد من الاهتمام بتنظيفها بشكل دوري حتى لا تكون سببا في نقل الميكروبات و الأمراض ، و هناك العديد من الشركات التي تعمل على تنظيف المسابح بالرياض بأعلى مستوى و منها على سبيل شركة أرض الانجاز
    حيث توفر الشركة إمكانية تنظيف المسبح بشكل دوري بالاعتماد على أفضل الخامات ، التي تساعد على تنظيف و تعقيم المسبح و المياه الموجودة بها ، هذا بالإضافة إلى الاعتماد على تقنيات حديثة تساعد على إزالة الرواسب المتراكمة على جدران المسبح دون الاضرار به أو اتلافه ، كذلك توفر الشركة أيضا مواد معقمة للمياه يتم وضعها فيها بعد أن يتم ملئ المسبح و تفريغه أكثر من مرة لضمان نظافته .
    و هذه الشركة تعتبر من أكثر الشركات التي توفر خدماتها بالرياض ،الشركة توفر العديد من الخدمات و على رأسها تنظيف المسابح ، حيث توفر أدوات حديثة قادرة على تنظيف المسبح دون الاضرار به ، فضلا عن خدمات تطهير المياه من الجراثيم ، و ذلك بالاعتماد على مواد متوافقة مع أعلى المعايير العالمية ، هذا إالى جانب الاعتماد على عمالة متخصصة في هذا الأمر تعي كمية الكلور المفترض اضافتها لكم مياه معين ، حتى لا تسبب الضرر لمستخدمي المسبح .
    شركة تنظيف مسابح بالرياض
    طرق عزل خزانات المياة
    الخزانات من أهم الأشياء التي لابد من وجودها في المنزل ، و ذلك لأنها تعمل على حفظ المياه باستمرار في وقت انقطاعها ، و كذلك تعمل على حفظها بجودة عالية ، و هناك العديد من الشركات التي توفر خدمات عزل الخزانات بالرياض و منها على سبيل المثال شركة أرض الانجاز
    الشركة تعمل على توفير العديد من الخدمات المميزة ، و من بينها مختلف أعمال الصيانة ، هذا بالإضافة إلى توفير العديد من الخدمات التي تتمثل في العزل سواء العزل المائي أو الحراري و غيرها ، كذلك توفر الشركة خدمات مميزة تتعلق بعزل الخزانات ، و ذلك بالاعتماد على تقنيات عالية الجودة ، هذه التقنيات لا تتفاعل مع المياه و لا تؤثر على جودتها ، و يتم انتقائها تبعا لنوع الخزان سواء كان بلاستيك أو خرساني و كذلك سواء كان سط

    شركة عزل خزانات بالرياض

    ReplyDelete
  3. homeshop4u เว็บไซต์สำหรับคนรักสัตว์ สัตว์เลี้ยงยอดนิยม ดูแลสุขภาพสัตว์เลี้ยงของคุณ ติดตามได้ที่นี้ เเนะนำเทคนิค เเละทรคิในการเลี้ยงสัตว์เลี้ยงอย่างถูกวิธี การเลี้ยงสัตว์เลี้ยงให้ถูกวิธีสุขภาพสัตว์เลี้ยงให้ดีได้ง่ายๆ เเนะนำสัตว์เลี้ยงเเสนน่ารัก รอบรู้สัตว์เลี้ยงทั่วโลกในเว็บไซต์เดียว.

    ReplyDelete
  4. Gutt Websäit : Tertinggi
    Gutt Websäit : Zonahobisaya
    Gutt Websäit : Terdalam
    Gutt Websäit : Terbanyak
    Gutt Websäit : Profil
    Gutt Websäit : Zonahobisaya
    Gutt Websäit : Zonahobisaya
    Gutt Websäit : One Piece

    ReplyDelete