aarzilli / golua

Go bindings for Lua C API - in progress

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Error stack/tracebacks?

tisba opened this issue · comments

Hi there!

little disclaimer first: I'm not terribly familiar with go. I'm trying to take a look around how to use lua with go. I've opened a similar issue with Shopify/go-lua#87 because I had the same problem with (missing) tracebacks.

I'm struggling a bit on how to get proper tracebacks for errors.

Giving this hello.lua file containing:

print("Hello World")

function foo()
  print("Hello, I'm foo!")
  bar()
end

foo()

…run with lua hello.lua gives me:

Hello World
Hello, I'm foo!
lua: hello.lua:5: attempt to call global 'bar' (a nil value)
stack traceback:
	hello.lua:5: in function 'foo'
	hello.lua:8: in main chunk
	[C]: in ?

With golua used in file.go:

package main

import "../lua"
import "fmt"

func main() {
	L := lua.NewState()
	defer L.Close()
	L.OpenLibs()

	err := L.DoFile("hello.lua")

	fmt.Printf("%v\n", err)
}

…run with go run file.go gives me:

Hello World
Hello, I'm foo!
hello.lua:5: attempt to call global 'bar' (a nil value)

How can I get a comparable traceback with golua? Something that can be presented to a user. Are there more examples somewhere?

I don't think it's collected anywhere, you'd have to change golua.