go-qml / qml

QML support for the Go language
Other
1.96k stars 189 forks source link

Go 1.3 support #76

Closed ildus closed 10 years ago

ildus commented 10 years ago

I updated Go to 1.3 release recently. I work in Mac OS X, Qt 5.3.1. I'm not sure it's related with go 1.3 or not, but error happens in qml goroutine:

2014-07-07 00:23:54.870 tracker[26348:2b03] *** Assertion failure in +[NSUndoManager _endTopLevelGroupings], /SourceCache/Foundation/Foundation-1056.13/Misc.subproj/NSUndoManager.m:328
2014-07-07 00:23:54.871 tracker[26348:2b03] +[NSUndoManager(NSInternal) _endTopLevelGroupings] is only safe to invoke on the main thread.
2014-07-07 00:23:54.873 tracker[26348:2b03] (
    0   CoreFoundation                      0x00007fff940f025c __exceptionPreprocess + 172
    1   libobjc.A.dylib                     0x00007fff929a5e75 objc_exception_throw + 43
    2   CoreFoundation                      0x00007fff940f0038 +[NSException raise:format:arguments:] + 104
    3   Foundation                          0x00007fff8ae91d41 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 189
    4   Foundation                          0x00007fff8adfc28c +[NSUndoManager(NSPrivate) _endTopLevelGroupings] + 156
    5   AppKit                              0x00007fff8cc31a43 -[NSApplication run] + 688
    6   libqcocoa.dylib                     0x000000000a6d2a25 _ZN21QCocoaEventDispatcher13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE + 2165
    7   QtCore                              0x0000000005cd7b0d _ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE + 381
    8   QtCore                              0x0000000005cdaa0c _ZN16QCoreApplication4execEv + 364
    9   tracker                             0x0000000004126801 runtime.asmcgocall + 97
)
2014-07-07 00:23:54.873 tracker[26348:2b03] *** Assertion failure in +[NSUndoManager _endTopLevelGroupings], /SourceCache/Foundation/Foundation-1056.13/Misc.subproj/NSUndoManager.m:328
2014-07-07 00:23:54.873 tracker[26348:2b03] An uncaught exception was raised
2014-07-07 00:23:54.874 tracker[26348:2b03] +[NSUndoManager(NSInternal) _endTopLevelGroupings] is only safe to invoke on the main thread.
2014-07-07 00:23:54.874 tracker[26348:2b03] (
    0   CoreFoundation                      0x00007fff940f025c __exceptionPreprocess + 172
    1   libobjc.A.dylib                     0x00007fff929a5e75 objc_exception_throw + 43
    2   CoreFoundation                      0x00007fff940f0038 +[NSException raise:format:arguments:] + 104
    3   Foundation                          0x00007fff8ae91d41 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 189
    4   Foundation                          0x00007fff8adfc28c +[NSUndoManager(NSPrivate) _endTopLevelGroupings] + 156
    5   AppKit                              0x00007fff8cc31aed -[NSApplication run] + 858
    6   libqcocoa.dylib                     0x000000000a6d2a25 _ZN21QCocoaEventDispatcher13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE + 2165
    7   QtCore                              0x0000000005cd7b0d _ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE + 381
    8   QtCore                              0x0000000005cdaa0c _ZN16QCoreApplication4execEv + 364
    9   tracker                             0x0000000004126801 runtime.asmcgocall + 97
)
2014-07-07 00:23:54.874 tracker[26348:2b03] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '+[NSUndoManager(NSInternal) _endTopLevelGroupings] is only safe to invoke on the main thread.'
*** First throw call stack:
(
    0   CoreFoundation                      0x00007fff940f025c __exceptionPreprocess + 172
    1   libobjc.A.dylib                     0x00007fff929a5e75 objc_exception_throw + 43
    2   CoreFoundation                      0x00007fff940f0038 +[NSException raise:format:arguments:] + 104
    3   Foundation                          0x00007fff8ae91d41 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 189
    4   Foundation                          0x00007fff8adfc28c +[NSUndoManager(NSPrivate) _endTopLevelGroupings] + 156
    5   AppKit                              0x00007fff8cc31aed -[NSApplication run] + 858
    6   libqcocoa.dylib                     0x000000000a6d2a25 _ZN21QCocoaEventDispatcher13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE + 2165
    7   QtCore                              0x0000000005cd7b0d _ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE + 381
    8   QtCore                              0x0000000005cdaa0c _ZN16QCoreApplication4execEv + 364
    9   tracker                             0x0000000004126801 runtime.asmcgocall + 97
)
libc++abi.dylib: terminating with uncaught exception of type NSException
SIGABRT: abort
PC=0x7fff8faa7866
signal arrived during cgo execution

goroutine 20 [syscall]:
runtime.cgocall(0x40b6510, 0x66f7f58)
    /usr/local/go/src/pkg/runtime/cgocall.c:143 +0xe5 fp=0x66f7f40 sp=0x66f7ef8
gopkg.in/qml%2ev0._Cfunc_applicationExec(0x43e64d0)
    gopkg.in/qml.v0/_obj/_cgo_defun.c:71 +0x31 fp=0x66f7f58 sp=0x66f7f40
gopkg.in/qml%2ev0.guiLoop()
    /Users/ildus/dev/golang/src/gopkg.in/qml.v0/bridge.go:43 +0x129 fp=0x66f7fa8 sp=0x66f7f58
runtime.goexit()
    /usr/local/go/src/pkg/runtime/proc.c:1445 fp=0x66f7fb0 sp=0x66f7fa8
created by gopkg.in/qml%2ev0.Init
    /Users/ildus/dev/golang/src/gopkg.in/qml.v0/qml.go:44 +0xad

goroutine 16 [chan send]:
gopkg.in/qml%2ev0.RunMain(0xc208000fd0)
    /Users/ildus/dev/golang/src/gopkg.in/qml.v0/bridge.go:73 +0xad
gopkg.in/qml%2ev0.NewEngine(0x0)
    /Users/ildus/dev/golang/src/gopkg.in/qml.v0/qml.go:71 +0xac
main.main()
    /Users/ildus/dev/golang/src/tracker/tracker.go:417 +0x225

goroutine 19 [finalizer wait]:
runtime.park(0x4111270, 0x43e2770, 0x43cf089)
    /usr/local/go/src/pkg/runtime/proc.c:1369 +0x89
runtime.parkunlock(0x43e2770, 0x43cf089)
    /usr/local/go/src/pkg/runtime/proc.c:1385 +0x3b
runfinq()
    /usr/local/go/src/pkg/runtime/mgc0.c:2644 +0xcf
runtime.goexit()
    /usr/local/go/src/pkg/runtime/proc.c:1445

goroutine 17 [syscall]:
runtime.goexit()
    /usr/local/go/src/pkg/runtime/proc.c:1445

rax     0x0
rbx     0xb021d000
rcx     0xb021b398
rdx     0x0
rdi     0x2b03
rsi     0x6
rbp     0xb021b3c0
rsp     0xb021b398
r8      0x6e6f697470656378
r9      0x7fff8fddc8d0
r10     0x8000000
r11     0x206
r12     0xb021b520
r13     0x6417fd8
r14     0x6
r15     0xb021b400
rip     0x7fff8faa7866
rflags  0x206
cs      0x7
fs      0x0
gs      0x310a0000
make: *** [run] Error 2
cookieo9 commented 10 years ago

This is a duplicate of #66, you are running qml.v0 which doesn't work on an OS which requires GUI operations to be performed on the main thread.

qml.v1 (in development) can guarantee (if started properly) that all gui operations are done on the main thread, but for now requires that you use git manually to install the proper branch.

Details for getting v1 to work on OS X are documented here: https://groups.google.com/forum/#!topic/go-qml/309B4MAS2dE

ildus commented 10 years ago

Thank you, i changed v0 to v1 and it works