2013-01-13 24 views
5

Sto provando a eseguire an example utilizzando EnableGUIfunction.non riesce a far funzionare wxHaskell da ghci su Mac

% ghci -framework Carbon Main.hs 

*Main> enableGUI >> main 

Questo è quello che ho al posto di un programma di lavoro:

2013-01-14 00:21:03.021 ghc[13403:1303] *** Assertion failure in +[NSUndoManager _endTopLevelGroupings], /SourceCache/Foundation/Foundation-945.11/Misc.subproj/NSUndoManager.m:328 
2013-01-14 00:21:03.022 ghc[13403:1303] +[NSUndoManager(NSInternal) _endTopLevelGroupings] is only safe to invoke on the main thread. 
2013-01-14 00:21:03.024 ghc[13403:1303] (
    0 CoreFoundation      0x00007fff8c8ea0a6 __exceptionPreprocess + 198 
    1 libobjc.A.dylib      0x00007fff867243f0 objc_exception_throw + 43 
    2 CoreFoundation      0x00007fff8c8e9ee8 +[NSException raise:format:arguments:] + 104 
    3 Foundation       0x00007fff884966a2 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 189 
    4 Foundation       0x00007fff884fc8b7 +[NSUndoManager(NSPrivate) _endTopLevelGroupings] + 156 
    5 AppKit        0x00007fff8ecb832d -[NSApplication run] + 687 
    6 libwx_osx_cocoau_core-2.9.4.0.0.dylib 0x000000010ae64c96 _ZN14wxGUIEventLoop5DoRunEv + 40 
    7 libwx_baseu-2.9.4.0.0.dylib   0x000000010b37e0e5 _ZN13wxCFEventLoop3RunEv + 63 
    8 libwx_baseu-2.9.4.0.0.dylib   0x000000010b2e91bf _ZN16wxAppConsoleBase8MainLoopEv + 81 
    9 libwx_osx_cocoau_core-2.9.4.0.0.dylib 0x000000010ae1b04f _ZN5wxApp5OnRunEv + 29 
    10 libwx_baseu-2.9.4.0.0.dylib   0x000000010b32e8d1 _Z7wxEntryRiPPw + 102 
    11 libwxc.dylib      0x000000010bc8a9a4 ELJApp_InitializeC + 116 
    12 ???         0x000000010beb9702 0x0 + 4494956290 
) 
2013-01-14 00:21:03.024 ghc[13403:1303] *** Assertion failure in +[NSUndoManager _endTopLevelGroupings], /SourceCache/Foundation/Foundation-945.11/Misc.subproj/NSUndoManager.m:328 

Quando sto compilo e macosx-app, funziona piuttosto bene, ma, per ovvie ragioni, voglio davvero che questo lavoro da ghci.

Cosa posso fare? Google non rivela nulla sui misteriosi problemi di NSUndoManager utilizzati con Haskell. :(

risposta

0

wxHaskell non ha funzionato all'interno ghci per un po '. A quanto pare C++ gestione della memoria e riutilizzare componenti all'interno ghci causa problemi. È necessario riscrivere juat principale ripetutamente. :(

Il faq dice

gHCi non può mescolare le librerie statiche e dinamiche, ma sarà risolto in un prossimo futuro in wxHaskell

3

ghci -fno-ghci-sandbox

.

lavori per me su OSX 10.8, wx 0.90.0.1

grazie a Heinrich: https://github.com/jodonoghue/wxHaskell/pull/6

+0

aggiungendo 'GHC-opzioni: -fno-ghci-sandbox' nel file cabala/(sezione Executable) fanno è lavoro anche in Leksah/ghci - debugger. –

+0

Appena provato e confermato 'ghc-options: -fno-ghci-sandbox' risolve il problema. Grazie Luc Taesch! – Slabko