Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bad argument #2 to '__newindex' (not a number in proper range) #110

Open
yangyongzhen opened this issue Sep 9, 2020 · 0 comments
Open

Comments

@yangyongzhen
Copy link

yangyongzhen commented Sep 9, 2020

is go-lua can only run in 64bit machine?
when i run my lua script on ubuntu 64 bit, it works ok( lua test.lua), and i run my golang code using go run main.go,int works ok too,
but when i just cross compile the same golang code using GOOS=linux GOARCH=arm GOARM=7 go build main.go
error occured,
i hope to use go-lua on my 32bit arm board,
root@b503_lcd:# uname -a
Linux b503_lcd 4.1.15-2.1.0+g37e48c8 #90 SMP PREEMPT Fri Oct 26 11:41:29 CST 2018 armv7l GNU/Linux
root@b503_lcd:
# ./main
test go lua...
this is CONNECT,127.0.0.15050
panic: runtime error: test.lua:34: bad argument #2 to '__newindex' (not a number in proper range)
goroutine 1 [running]:
main.main()
/mnt/hgfs/b503/gopath/src/golua/main.go:11 +0xa0

the 34 line is string.format("%012d",34567890121111)
why? is go-lua can only run in 64bit machine?

Here's my test:
package main
import "github.com/Shopify/go-lua"
import "fmt"
var arg1 = 1
var arg2 = 2
func add(x, y int) int {
fmt.Printf("this is go func add\n")
return x + y
}

var luatestGofunc0 = func(l *lua.State) int {
fmt.Printf("this is a go func-0 called by lua script!\n")
top := l.Top()
fmt.Printf("top:%d\n", top)
a0 := l.ToUserData(0)
a1 := l.ToUserData(1)
a2 := l.ToUserData(2)
fmt.Printf("ao,a1,a2=%#v,%#v,%#v\n", a0, a1, a2)
return 2
}

func main() {
fmt.Printf("hello golang,test lua script...\n")
l := lua.NewState()
l.Register("LtestGofunc0", luatestGofunc0)
l.Register("LtestGofunc1", func(l *lua.State) int {
fmt.Printf("this is a go func 1...\n")
return 0
})
lua.OpenLibraries(l)
if err := lua.DoFile(l, "test1.lua"); err != nil {
panic(err)
}
}

bellow is test1.lua:
this is a lua script demo:

ip= "127.0.0.1"
port = 5050

function CONNECT( ip,port )
print("this is CONNECT,"..ip..port)
end

function TxData( tx )
print("this is TxData,"..tx)
end

function DISCONNECT( ... )
print("this is DISCONNECT")
end

ret = CONNECT(ip,port)

MTI = 'B001' --
STI = '52' --
DBL = '0000001C' --
DATA = '' --

shanghu = string.format("%012d",34567890121111) ----------------------the 34 line
poscode = string.format("%016d",34567890112233)
samcode = '313233343536'
optcode = '3132333435363738'

DATA = shanghu..poscode..samcode..optcode
DBL = string.format("%08x",string.len(DATA)/2)
TX = MTI .. STI .. DBL .. DATA

ret,rcv = TxData(TX)
print(rcv)

MTI = 'B004'
blackver = '00000000'
DATA = blackver .. poscode
DBL = string.format("%02x",string.len(DATA)/2)
TX = MTI .. STI .. DBL .. DATA

ret,rcv = TxData(TX)
print(rcv)

DISCONNECT()

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant