You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm not sure whether this is the right place to ask, but I'd like to have your help.
When a conduit is run in an IO monad and it is lifted into Shake's Action monad (or Rules monad), and the conduit uses <$> directly or indirectly, a memory leak occurs.
The above program exits with "heap overflow" after a while thanks to the rtsopts.
If any of the following changes are made, the leak goes away:
main' replaces main to be called directly
(id <$> CC.map id) is removed or replaced with CC.map id
Notably, replacing CC.last with CC.lastDef undefined causes the memory leak, presumably because CC.lastDef is defined as lastDef a = fromMaybe a <$> last.
I couldn't minimize it further to see whether Shake is the true cause of the leak or not. I doubt it, but I don't know.
The text was updated successfully, but these errors were encountered:
I'm not sure whether this is the right place to ask, but I'd like to have your help.
When a conduit is run in an
IO
monad and it is lifted into Shake'sAction
monad (orRules
monad), and the conduit uses<$>
directly or indirectly, a memory leak occurs.This is my minimized example:
The above program exits with "heap overflow" after a while thanks to the rtsopts.
If any of the following changes are made, the leak goes away:
main'
replacesmain
to be called directly(id <$> CC.map id)
is removed or replaced withCC.map id
Notably, replacing
CC.last
withCC.lastDef undefined
causes the memory leak, presumably becauseCC.lastDef
is defined aslastDef a = fromMaybe a <$> last
.I couldn't minimize it further to see whether Shake is the true cause of the leak or not. I doubt it, but I don't know.
The text was updated successfully, but these errors were encountered: