[GHC] #742: Graphics.SOE runs very slowly under win32.

GHC trac at galois.com
Thu Jun 22 08:47:18 EDT 2006


#742: Graphics.SOE runs very slowly under win32.
--------------------------------+-------------------------------------------
  Reporter:  guest              |          Owner:         
      Type:  bug                |         Status:  new    
  Priority:  normal             |      Milestone:         
 Component:  libraries (other)  |        Version:  6.4.1  
  Severity:  normal             |     Resolution:         
  Keywords:                     |             Os:  Windows
Difficulty:  Unknown            |   Architecture:  Unknown
--------------------------------+-------------------------------------------
Changes (by simonmar):

  * component:  Compiler => libraries (other)
  * os:  Unknown => Windows

Old description:

> The following program (example from "The Haskell School of Expression")
> runs very slowly, often taking a couple of minutes to create a window:
>
> import Graphics.SOE
> main    =       runGraphics (
>                         do      w <- openWindow "Hello" (300,300)
>                                 drawInWindow w (text(100,200) "Hello
> world!")
>                                 k <- getKey w
>                                 closeWindow w
>                         )
>

> Using:  GHC 6.4.1 release (msi installer).
> System: Windows 2000 sp4, 5.00.2195
> GCC:    3.4.2 (mingw-special)
> make:
>
> C:\Documents and Settings\Administrator\My
> Documents\progging_projects\Haskell>ghc --make -v -dcore-lint main.hs
> Glasgow Haskell Compiler, Version 6.4.1, for Haskell 98, compiled by GHC
> version 6.4
> Using package config file: C:\ghc\ghc-6.4.1\package.conf
> Hsc static flags: -static
> *** Chasing dependencies:
> Chasing modules from: main.hs
> Stable modules:
> *** Compiling Main             ( main.hs, main.o ):
> compile: input file main.hs
> *** Checking old interface for Main:
> Skipping  Main             ( main.hs, main.o )
> *** Deleting temp files
> Deleting: C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/ghc2064.s
> Warning: deleting non-existent
> C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/ghc2064.s
> Upsweep completely successful.
> *** Deleting temp files
> Deleting:
> link: linkables are ...
> LinkableM (Mon Apr 10 00:14:25 Eastern Daylight Time 2006) Main
>    [DotO main.o]
> Linking ...
> *** Linker
> C:\ghc\ghc-6.4.1\gcc -BC:\ghc\ghc-6.4.1\gcc-lib/ -v -o main.exe
> -DDONT_WANT_WIN32_DLL_SUPPORT main.o -LC:/ghc/ghc-6.4.1
> -LC:/ghc/ghc-6.4.1/gcc-lib -lHSHGL -lHSWin32 -lHSWin32_cbits -luser32
> -lgdi32 -lwinmm -lkernel32 -ladvapi32 -lHSbase -lH
> Sbase_cbits -lwsock32 -lmsvcrt -lkernel32 -luser32 -lshell32 -lHSrts -lm
> -lgmp -lwsock32 -u _GHCziBase_Izh_static_info -
> u _GHCziBase_Czh_static_info -u _GHCziFloat_Fzh_static_info -u
> _GHCziFloat_Dzh_static_info -u _GHCziPtr_Ptr_static_info
> -u _GHCziWord_Wzh_static_info -u _GHCziInt_I8zh_static_info -u
> _GHCziInt_I16zh_static_info -u _GHCziInt_I32zh_static_inf
> o -u _GHCziInt_I64zh_static_info -u _GHCziWord_W8zh_static_info -u
> _GHCziWord_W16zh_static_info -u _GHCziWord_W32zh_stat
> ic_info -u _GHCziWord_W64zh_static_info -u
> _GHCziStable_StablePtr_static_info -u _GHCziBase_Izh_con_info -u
> _GHCziBase_C
> zh_con_info -u _GHCziFloat_Fzh_con_info -u _GHCziFloat_Dzh_con_info -u
> _GHCziPtr_Ptr_con_info -u _GHCziPtr_FunPtr_con_in
> fo -u _GHCziStable_StablePtr_con_info -u _GHCziBase_False_closure -u
> _GHCziBase_True_closure -u _GHCziPack_unpackCString
> _closure -u _GHCziIOBase_stackOverflow_closure -u
> _GHCziIOBase_heapOverflow_closure -u _GHCziIOBase_NonTermination_closu
> re -u _GHCziIOBase_BlockedOnDeadMVar_closure -u
> _GHCziIOBase_BlockedIndefinitely_closure -u _GHCziIOBase_Deadlock_closur
> e -u _GHCziWeak_runFinalizzerBatch_closure -u ___stginit_Prelude
> Reading specs from C:/ghc/ghc-6.4.1/gcc-lib/specs
> Configured with: ../gcc/configure --with-gcc --with-gnu-ld --with-gnu-as
> --host=mingw32 --target=mingw32 --prefix=/mingw
>  --enable-threads --disable-nls --enable-
> languages=c,c++,f77,ada,objc,java --disable-win32-registry --disable-
> shared --e
> nable-sjlj-exceptions --enable-libgcj --disable-java-awt --without-x
> --enable-java-gc=boehm --disable-libgcj-debug --ena
> ble-interpreter --enable-hash-synchronization --enable-libstdcxx-debug
> Thread model: win32
> gcc version 3.4.2 (mingw-special)
>  C:/ghc/ghc-6.4.1/gcc-lib/collect2.exe -Bdynamic -o main.exe -u
> _GHCziBase_Izh_static_info -u _GHCziBase_Czh_static_info
>  -u _GHCziFloat_Fzh_static_info -u _GHCziFloat_Dzh_static_info -u
> _GHCziPtr_Ptr_static_info -u _GHCziWord_Wzh_static_inf
> o -u _GHCziInt_I8zh_static_info -u _GHCziInt_I16zh_static_info -u
> _GHCziInt_I32zh_static_info -u _GHCziInt_I64zh_static_
> info -u _GHCziWord_W8zh_static_info -u _GHCziWord_W16zh_static_info -u
> _GHCziWord_W32zh_static_info -u _GHCziWord_W64zh_
> static_info -u _GHCziStable_StablePtr_static_info -u
> _GHCziBase_Izh_con_info -u _GHCziBase_Czh_con_info -u _GHCziFloat_F
> zh_con_info -u _GHCziFloat_Dzh_con_info -u _GHCziPtr_Ptr_con_info -u
> _GHCziPtr_FunPtr_con_info -u _GHCziStable_StablePtr
> _con_info -u _GHCziBase_False_closure -u _GHCziBase_True_closure -u
> _GHCziPack_unpackCString_closure -u _GHCziIOBase_sta
> ckOverflow_closure -u _GHCziIOBase_heapOverflow_closure -u
> _GHCziIOBase_NonTermination_closure -u _GHCziIOBase_BlockedOn
> DeadMVar_closure -u _GHCziIOBase_BlockedIndefinitely_closure -u
> _GHCziIOBase_Deadlock_closure -u _GHCziWeak_runFinalizze
> rBatch_closure -u ___stginit_Prelude C:/ghc/ghc-6.4.1/gcc-lib/crt2.o
> C:/ghc/ghc-6.4.1/gcc-lib/crtbegin.o -LC:/ghc/ghc-6.
> 4.1 -LC:/ghc/ghc-6.4.1/gcc-lib -LC:/ghc/ghc-6.4.1/gcc-lib
> -L/mingw/lib/gcc/mingw32/3.4.2 -L/mingw/lib/gcc/mingw32/3.4.2/
> ../../../../mingw32/lib -L/mingw/lib
> -L/mingw/lib/gcc/mingw32/3.4.2/../../.. main.o -lHSHGL -lHSWin32
> -lHSWin32_cbits -l
> user32 -lgdi32 -lwinmm -lkernel32 -ladvapi32 -lHSbase -lHSbase_cbits
> -lwsock32 -lmsvcrt -lkernel32 -luser32 -lshell32 -l
> HSrts -lm -lgmp -lwsock32 -lmingw32 -lgcc -lmoldname -lmingwex -lmsvcrt
> -luser32 -lkernel32 -ladvapi32 -lshell32 -lmingw
> 32 -lgcc -lmoldname -lmingwex -lmsvcrt C:/ghc/ghc-6.4.1/gcc-lib/crtend.o
> link: done

New description:

 The following program (example from "The Haskell School of Expression")
 runs very slowly, often taking a couple of minutes to create a window:

 {{{
 import Graphics.SOE
 main    =       runGraphics (
                         do      w <- openWindow "Hello" (300,300)
                                 drawInWindow w (text(100,200) "Hello
 world!")
                                 k <- getKey w
                                 closeWindow w
                         )
 }}}

 Using:  GHC 6.4.1 release (msi installer).
 System: Windows 2000 sp4, 5.00.2195
 GCC:    3.4.2 (mingw-special)
 make:

 {{{
 C:\Documents and Settings\Administrator\My
 Documents\progging_projects\Haskell>ghc --make -v -dcore-lint main.hs
 Glasgow Haskell Compiler, Version 6.4.1, for Haskell 98, compiled by GHC
 version 6.4
 Using package config file: C:\ghc\ghc-6.4.1\package.conf
 Hsc static flags: -static
 *** Chasing dependencies:
 Chasing modules from: main.hs
 Stable modules:
 *** Compiling Main             ( main.hs, main.o ):
 compile: input file main.hs
 *** Checking old interface for Main:
 Skipping  Main             ( main.hs, main.o )
 *** Deleting temp files
 Deleting: C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/ghc2064.s
 Warning: deleting non-existent
 C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/ghc2064.s
 Upsweep completely successful.
 *** Deleting temp files
 Deleting:
 link: linkables are ...
 LinkableM (Mon Apr 10 00:14:25 Eastern Daylight Time 2006) Main
    [DotO main.o]
 Linking ...
 *** Linker
 C:\ghc\ghc-6.4.1\gcc -BC:\ghc\ghc-6.4.1\gcc-lib/ -v -o main.exe
 -DDONT_WANT_WIN32_DLL_SUPPORT main.o -LC:/ghc/ghc-6.4.1
 -LC:/ghc/ghc-6.4.1/gcc-lib -lHSHGL -lHSWin32 -lHSWin32_cbits -luser32
 -lgdi32 -lwinmm -lkernel32 -ladvapi32 -lHSbase -lH
 Sbase_cbits -lwsock32 -lmsvcrt -lkernel32 -luser32 -lshell32 -lHSrts -lm
 -lgmp -lwsock32 -u _GHCziBase_Izh_static_info -
 u _GHCziBase_Czh_static_info -u _GHCziFloat_Fzh_static_info -u
 _GHCziFloat_Dzh_static_info -u _GHCziPtr_Ptr_static_info
 -u _GHCziWord_Wzh_static_info -u _GHCziInt_I8zh_static_info -u
 _GHCziInt_I16zh_static_info -u _GHCziInt_I32zh_static_inf
 o -u _GHCziInt_I64zh_static_info -u _GHCziWord_W8zh_static_info -u
 _GHCziWord_W16zh_static_info -u _GHCziWord_W32zh_stat
 ic_info -u _GHCziWord_W64zh_static_info -u
 _GHCziStable_StablePtr_static_info -u _GHCziBase_Izh_con_info -u
 _GHCziBase_C
 zh_con_info -u _GHCziFloat_Fzh_con_info -u _GHCziFloat_Dzh_con_info -u
 _GHCziPtr_Ptr_con_info -u _GHCziPtr_FunPtr_con_in
 fo -u _GHCziStable_StablePtr_con_info -u _GHCziBase_False_closure -u
 _GHCziBase_True_closure -u _GHCziPack_unpackCString
 _closure -u _GHCziIOBase_stackOverflow_closure -u
 _GHCziIOBase_heapOverflow_closure -u _GHCziIOBase_NonTermination_closu
 re -u _GHCziIOBase_BlockedOnDeadMVar_closure -u
 _GHCziIOBase_BlockedIndefinitely_closure -u _GHCziIOBase_Deadlock_closur
 e -u _GHCziWeak_runFinalizzerBatch_closure -u ___stginit_Prelude
 Reading specs from C:/ghc/ghc-6.4.1/gcc-lib/specs
 Configured with: ../gcc/configure --with-gcc --with-gnu-ld --with-gnu-as
 --host=mingw32 --target=mingw32 --prefix=/mingw
  --enable-threads --disable-nls --enable-languages=c,c++,f77,ada,objc,java
 --disable-win32-registry --disable-shared --e
 nable-sjlj-exceptions --enable-libgcj --disable-java-awt --without-x
 --enable-java-gc=boehm --disable-libgcj-debug --ena
 ble-interpreter --enable-hash-synchronization --enable-libstdcxx-debug
 Thread model: win32
 gcc version 3.4.2 (mingw-special)
  C:/ghc/ghc-6.4.1/gcc-lib/collect2.exe -Bdynamic -o main.exe -u
 _GHCziBase_Izh_static_info -u _GHCziBase_Czh_static_info
  -u _GHCziFloat_Fzh_static_info -u _GHCziFloat_Dzh_static_info -u
 _GHCziPtr_Ptr_static_info -u _GHCziWord_Wzh_static_inf
 o -u _GHCziInt_I8zh_static_info -u _GHCziInt_I16zh_static_info -u
 _GHCziInt_I32zh_static_info -u _GHCziInt_I64zh_static_
 info -u _GHCziWord_W8zh_static_info -u _GHCziWord_W16zh_static_info -u
 _GHCziWord_W32zh_static_info -u _GHCziWord_W64zh_
 static_info -u _GHCziStable_StablePtr_static_info -u
 _GHCziBase_Izh_con_info -u _GHCziBase_Czh_con_info -u _GHCziFloat_F
 zh_con_info -u _GHCziFloat_Dzh_con_info -u _GHCziPtr_Ptr_con_info -u
 _GHCziPtr_FunPtr_con_info -u _GHCziStable_StablePtr
 _con_info -u _GHCziBase_False_closure -u _GHCziBase_True_closure -u
 _GHCziPack_unpackCString_closure -u _GHCziIOBase_sta
 ckOverflow_closure -u _GHCziIOBase_heapOverflow_closure -u
 _GHCziIOBase_NonTermination_closure -u _GHCziIOBase_BlockedOn
 DeadMVar_closure -u _GHCziIOBase_BlockedIndefinitely_closure -u
 _GHCziIOBase_Deadlock_closure -u _GHCziWeak_runFinalizze
 rBatch_closure -u ___stginit_Prelude C:/ghc/ghc-6.4.1/gcc-lib/crt2.o
 C:/ghc/ghc-6.4.1/gcc-lib/crtbegin.o -LC:/ghc/ghc-6.
 4.1 -LC:/ghc/ghc-6.4.1/gcc-lib -LC:/ghc/ghc-6.4.1/gcc-lib
 -L/mingw/lib/gcc/mingw32/3.4.2 -L/mingw/lib/gcc/mingw32/3.4.2/
 ../../../../mingw32/lib -L/mingw/lib
 -L/mingw/lib/gcc/mingw32/3.4.2/../../.. main.o -lHSHGL -lHSWin32
 -lHSWin32_cbits -l
 user32 -lgdi32 -lwinmm -lkernel32 -ladvapi32 -lHSbase -lHSbase_cbits
 -lwsock32 -lmsvcrt -lkernel32 -luser32 -lshell32 -l
 HSrts -lm -lgmp -lwsock32 -lmingw32 -lgcc -lmoldname -lmingwex -lmsvcrt
 -luser32 -lkernel32 -ladvapi32 -lshell32 -lmingw
 32 -lgcc -lmoldname -lmingwex -lmsvcrt C:/ghc/ghc-6.4.1/gcc-lib/crtend.o
 link: done
 }}}

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/742>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the Glasgow-haskell-bugs mailing list