Fastest way to reload module with GHC API
Simon Marlow
marlowsd at gmail.com
Fri Jan 25 17:29:51 CET 2013
Has the file's modification time changed? If you're doing this very
quickly (within 1 second) then you might run into this:
http://hackage.haskell.org/trac/ghc/ticket/7473
Cheers,
Simon
On 25/01/13 16:02, JP Moresmau wrote:
> When I do that (only adding the target once and just doing load after
> the file has changed) the changes in the file are not taken into account
> (getNamesInScope for example doesn't give me the name of a type added
> inside the file). I probably have my stupid hat on (friday
> afternoon...), but when I do remove/load in between it works...
>
> Thanks
>
>
> On Fri, Jan 25, 2013 at 4:33 PM, Simon Marlow <marlowsd at gmail.com
> <mailto:marlowsd at gmail.com>> wrote:
>
> On 25/01/13 14:30, JP Moresmau wrote:
>
> Hello, I just want to be sure of what's the fastest way to reload a
> module with the GHC API.
> I have a file whose path is fp
> I load the module with:
> addTarget Target { targetId = TargetFile fp Nothing,
> targetAllowObjCode
> = True, targetContents = Nothing }
> Then I load the module
> load LoadAllTargets
> And when I want to reload the module (the contents of fp have
> changed) I do:
> removeTarget (TargetFile fp Nothing)
> load LoadAllTargets
> and then I rerun my initial code (addTarget, load)
>
>
> You should be able to just invoke 'load LoadAllTargets' and omit the
> intermediate remove/load step. Or is there a reason you want to
> remove the target?
>
> Cheers,
> Simon
>
>
>
>
> --
> JP Moresmau
> http://jpmoresmau.blogspot.com/
More information about the Glasgow-haskell-users
mailing list