I have been using nsf's "gothic" (tcl/tk go binding) libary under Linux for a while now : it works very well and is very convenient for adding a tcl/tck-based graphical interface to a Go application (more or less what Tkinter is to Python).
However, I experienced a few problems installing it under Mac.
In an attempt to solve that problem, I made the following modifications to my Mac development environment:
Installed the latest version of Xcode.
Removed "port" (port of the Linux tools for Mac) entirely and installed it from scratch to the latest version.
Upgraded to the latest stable version of Go.
Now at least I can install "gothic" under Mac and it compiles without complaining.
I had to make the following changes to the interpreter.go
file, so that the header directives point to the correct library location:
#cgo !tcl85 LDFLAGS: -L/opt/local/lib
#cgo !tcl85 LDFLAGS: -ltcl8.6 -ltk8.6
#cgo !tcl85 CFLAGS: -I/opt/local/include/tcl8.6
#cgo darwin tcl85 CFLAGS: -I/opt/local/include
#cgo darwin tcl85 CFLAGS: -I/opt/local/include/tcl8.6
instead of the original:
#cgo !tcl85 LDFLAGS: -ltcl8.6 -ltk8.6
#cgo !tcl85 CFLAGS: -I/usr/include/tcl8.6
#cgo tcl85 LDFLAGS: -ltcl8.5 -ltk8.5
#cgo tcl85 CFLAGS: -I/usr/include/tcl8.5
#cgo darwin tcl85 CFLAGS: -I/opt/X11/include
So that is points to the correct libraries.
The current situation is that the examples do compile, without any warnings or error messages.
The problem is that the resulting executables only run correctly randomly, form time to time, but most of the time just "hangs" (displays an empty white rectangle where the interface should be) the execution of the program blocks.
In nsf's code the last statement which gets executed apparently (when the executable gets stuck) is the call to Tk_Mainloop()
.
This is as far as I have come in trying to figure out what is going wrong.
So obviously, it is not a Go (golang) to Tcl binding problem.
It looks as if the "connection" between Tcl and Tk sometimes works and sometimes not in that context (whereas it works perfectly under Linux).
Has anybody had more success in using "gothic" on a mac (or possibly more experience with using tcl/tk bindings under mac) ?
If yes, would be very grateful for some help on how to proceed.
Thanks,