Skip to content

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

@yangyongzhen

Description

@yangyongzhen

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()

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions