The recent patch to free memory in hs_exit() on Win32 unfortunately broke
profiling, because it freed the memory slightly too early.
# Initialise and check sanity.
# Initialise and check sanity.
-AC_INIT([The Glorious Glasgow Haskell Compilation System], [6.5], [glasgow-haskell-bugs@haskell.org], [ghc])
+AC_INIT([The Glorious Glasgow Haskell Compilation System], [6.5.20060329], [glasgow-haskell-bugs@haskell.org], [ghc])
AC_CONFIG_SRCDIR([ghc.spec.in])
# duplicate from ../configure.ac
AC_CONFIG_SRCDIR([ghc.spec.in])
# duplicate from ../configure.ac
/* stop timing the shutdown, we're about to print stats */
stat_endExit();
/* stop timing the shutdown, we're about to print stats */
stat_endExit();
- /* clean up things from the storage manager's point of view.
- * also outputs the stats (+RTS -s) info.
- */
+ // clean up things from the storage manager's point of view.
+ // also outputs the stats (+RTS -s) info.
exitStorage();
#ifdef RTS_GTK_FRONTPANEL
exitStorage();
#ifdef RTS_GTK_FRONTPANEL
// during endProfiling().
fclose(prof_file);
#endif
// during endProfiling().
fclose(prof_file);
#endif
#if defined(TICKY_TICKY)
if (RtsFlags.TickyFlags.showTickyStats) PrintTickyInfo();
#endif
#if defined(TICKY_TICKY)
if (RtsFlags.TickyFlags.showTickyStats) PrintTickyInfo();
#endif
#if defined(mingw32_HOST_OS)
shutdownAsyncIO();
#endif
#if defined(mingw32_HOST_OS)
shutdownAsyncIO();
#endif
+
+ // Finally, free all our storage.
+ freeStorage();
}
// Compatibility interfaces
}
// Compatibility interfaces
exitStorage (void)
{
stat_exit(calcAllocated());
exitStorage (void)
{
stat_exit(calcAllocated());
+}
+
+void
+freeStorage (void)
+{