SkillAgentSearch skills...

Gothic

Tcl/Tk Go bindings

Install / Use

/learn @nsf/Gothic
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Tcl/Tk Go bindings.

VERSION NOTICE

Recently Tcl/Tk 8.6 were released. I use them as a default, if you still have Tcl/Tk 8.5 use go get -tags tcl85 github.com/nsf/gothic.

DESCRIPTION

In its current state the bindings are a bit Tk-oriented. You can't create an interpreter instance without Tk. In future it's likely it will be changed.

The API is very simple. In the package you have one type and one function:

type Interpreter struct func NewInterpreter (init interface{}) *Interpreter

In order to launch an interpreter you have to call the "NewInterpreter" function, it will make a new instance of a tcl/tk interpreter in a separate goroutine, execute "init", block in Tk's main loop and then the function returns a pointer to the new instance of an "Interpreter".

"init" could be a string with tcl commands that are executed before Tk's main loop, or a function with this signature: "func (*Interpreter)". This function gets executed the same way as the string, that is - before Tk's main loop.

Here are the methods of the "Interpreter":

func (*Interpreter) ErrorFilter(filt func(error) error) func (*Interpreter) Eval(args ...interface{}) error func (*Interpreter) EvalAs(out interface{}, args ...interface{}) error func (*Interpreter) Set(name string, val interface{}) error func (*Interpreter) UploadImage(name string, img image.Image) error func (*Interpreter) RegisterCommand(name string, cbfunc interface{}) error func (*Interpreter) UnregisterCommand(name string) error func (*Interpreter) RegisterCommands(name string, val interface{}) error func (*Interpreter) UnregisterCommands(name string) error

As it was stated before, the "Interpreter" is being executed in a separate goroutine and each method is completely thread-safe. Also every method is synchronous. It will queue commands for execution and wait for their completion.

That's it. See "examples" directory it has the use cases for most of the API.

View on GitHub
GitHub Stars153
CategoryDevelopment
Updated23d ago
Forks26

Languages

Go

Security Score

90/100

Audited on Mar 9, 2026

No findings