Fastest way to reload module with GHC API

JP Moresmau jpmoresmau at gmail.com
Mon Jan 28 17:07:43 CET 2013


Yes, thank you Simon, my test works if I wait at least 1 second before the
two loads, so I'd say I run exactly into that issue. So I can adapt my code
to only remove the target if the files do not give me a time difference.

Thanks a million!

JP


On Fri, Jan 25, 2013 at 5:29 PM, Simon Marlow <marlowsd at gmail.com> wrote:

> 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<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/ <http://jpmoresmau.blogspot.com/>
>>
>
>


-- 
JP Moresmau
http://jpmoresmau.blogspot.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/glasgow-haskell-users/attachments/20130128/d28f5837/attachment.htm>


More information about the Glasgow-haskell-users mailing list