<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, Jul 20, 2017 at 2:25 AM, Brian Sammon <span dir="ltr"><<a href="mailto:haskell-cafe@brisammon.fastmail.fm" target="_blank">haskell-cafe@brisammon.fastmail.fm</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">If I want to create a MyLib that uses C code (that I wrote) through FFI, it doesn't seem to be possible to use it in a runghc script like this, unless I create a package and install it.  Am I correct about this?</blockquote><div><br></div><div>You would have to explicitly link it in: runghc Foo.hs bar.o (or -lbar if it's a library). It's not really designed for anything larger than a single source file without non-package dependencies.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">In the course of researching this, I realized that I have a rather poor understanding of what "packages" are in ghc-land.  I have a<br>
high-level-overview understanding ("It's like rubygems, but for haskell"), but I'm rather unclear about the nuts-and-bolts of it.<br>
The tight coupling between packages and the ghc core is rather different than what I've seen in other programming languages I've used (I haven't programmed in Java though)<br></blockquote><div><br></div><div>Have you programmed in C, especially with heavy use of inline or CPP? The cause of the tight dependencies is that ghc inlines a lot of things, even across modules; which means that even parts of a module that aren't explicitly exported are generally visible for inlining. And performance will suck if you defeat this.</div></div><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div>brandon s allbery kf8nh                               sine nomine associates</div><div><a href="mailto:allbery.b@gmail.com" target="_blank">allbery.b@gmail.com</a>                                  <a href="mailto:ballbery@sinenomine.net" target="_blank">ballbery@sinenomine.net</a></div><div>unix, openafs, kerberos, infrastructure, xmonad        <a href="http://sinenomine.net" target="_blank">http://sinenomine.net</a></div></div></div>
</div></div>