gopher-lua
gopher-lua copied to clipboard
tonumber doesn't handle E notation correctly
You must post issues only here. Questions, ideas must be posted in discussions.
- [x] GopherLua is a Lua5.1 implementation. You should be familiar with Lua programming language. Have you read Lua 5.1 reference manual carefully?
- [x] GopherLua is a Lua5.1 implementation. In Lua, to keep it simple, it is more important to remove functionalities rather than to add functionalities unlike other languages . If you are going to introduce some new cool functionalities into the GopherLua code base and the functionalities can be implemented by existing APIs, It should be implemented as a library.
Please answer the following before submitting your issue:
- What version of GopherLua are you using? : v1.1.0
- What version of Go are you using? : 1.20
- What operating system and processor architecture are you using? : MacOS/ARM
- What did you do? :
print(tonumber("2e2")) - What did you expect to see? :
200 - What did you see instead? :
nil
Hi there, I met a case where Lua 5.1 can successfully convert "2e2" into number where gopher-lua returns nil. This is what I tried in the REPL:
$ lua5.1
Lua 5.1.5 Copyright (C) 1994-2012 Lua.org, PUC-Rio
> print(tonumber("2e2"))
200
I am trying to patch baselib.go#L404 so that gopher-lua works for me in such cases, hopefully my patch could merged back to the upstream too.
Is there any specification for tonumber that I am unaware of? I will try to make it compliance to spec if there is one.
I am looking at https://www.lua.org/source/5.1/lvm.c.html#luaV_tonumber in the meanwhile.