Live data from Hacker News

Lua 5.5

lua.org

11–20 of 138 posts

Re: Lua 5.5

#11

Interesting, it looks like you can use ´global myvar’ now, as compared to ´myvar’ implicit globals, say from back in 5.1, or ´local myvar’. It’s worth noting that global is a reserved keyword now, so environments that had a ´global()´ function for escaping environments will now need to rename their helper function.

But.. why ? Globals are just variables that reside in the wrapping env table that also contain the C functions. If a closures is a onion of table lookups out of the function context from local -> function scope -> global scope is simply the last lookup before a not found variable with nil is declared?

Re: Lua 5.5

#12
I never coded in Lua but I found out recently that Lua is now in FreeBSD base [0] This is huge for Lua and FreeBSD.

Now something that worry me is whenever you need to make an HTTP request or parse some JSON you need to go on a quest for a "library" on the Internet. It doesn't seems to have a (semi-)official "Extended Standard Library" I can quickly trust.

- [0] https://man.freebsd.org/cgi/man.cgi?query=flua&apropos=0&sek...

Re: Lua 5.5

#13

Interesting, it looks like you can use ´global myvar’ now, as compared to ´myvar’ implicit globals, say from back in 5.1, or ´local myvar’. It’s worth noting that global is a reserved keyword now, so environments that had a ´global()´ function for escaping environments will now need to rename their helper function.

But.. why ? Globals are just variables that reside in the wrapping env table that also contain the C functions. If a closures is a onion of table lookups out of the function context from local -> function scope -> global scope is simply the last lookup before a not found variable with nil is declared?

Module exports with side effects, and setting environments doesn’t guarantee global access.

Re: Lua 5.5

#14
post #3

Cannot wait for another version of Lua to sit unused basically everywhere. Truly is a shame, everything seems to have settled on 5.1 for the most part without ever being updated, or any intention of it being updated. Some really nice features post 5.1 I understand each version of Lua introduces breaking changes in the language, which isn't great as the language becomes fragmented (Or not really, once again 5.1 is pre…

> everything seems to have settled on 5.1 Not exactly. LuaJIT has backported various hot features from 5.2 and 5.3 as long as they're unlikely to break 5.1 code.

I'm pretty sure that's only OpenResty's distribution of LuaJIT.

I think the real LuaJIT is strictly 5.1

Re: Lua 5.5

#15

I never coded in Lua but I found out recently that Lua is now in FreeBSD base [0] This is huge for Lua and FreeBSD. Now something that worry me is whenever you need to make an HTTP request or parse some JSON you need to go on a quest for a "library" on the Internet. It doesn't seems to have a (semi-)official "Extended Standard Library" I can quickly trust. - [0] https://man.freebsd.org/cgi/man.cgi?query=flua&apropos=…

The Lua ecosystem is more like the Lisp ecosystem than Python. The language is small enough that there’s a lot of stuff out there that’s just… finished. Hasn’t been updated in 10 years but still works. The LunarModules org tries to gather it up and keep it compatible.

For an extended standard lib, the closest thing is probably Penlight. https://github.com/lunarmodules/Penlight If you want async IO, sockets, etc, check out Luvit. https://luvit.io

Lua is really designed as an extension language but it’s such a nifty little language that sometimes you really wish you could use it in place of Python or Perl, which is why LuaJIT is so popular. But LuaJIT is really just one guy’s project. Its metaprogramming features are really nice and let you build some Lisp-style DSLs, and if you want full Lisp syntax you can drop in Fennel. If you’re just writing extension code you often don’t need a standard lib because it’s easier just to roll your own function to fill the gap.

Personally, I found it easier and quicker to just read the reference manual to learn the language. It’s small and simple enough that you shouldn’t have trouble getting up to speed if you have a couple other imperative languages under your belt. IMO metatables are much easier to work with than JavaScript’s prototype inheritance.

Re: Lua 5.5

#16
post #14

Earlier quoted context omitted.

> everything seems to have settled on 5.1 Not exactly. LuaJIT has backported various hot features from 5.2 and 5.3 as long as they're unlikely to break 5.1 code.

I'm pretty sure that's only OpenResty's distribution of LuaJIT. I think the real LuaJIT is strictly 5.1

No, real LuaJIT has some features from 5.2 and 5.3

https://luajit.org/extensions.html

Re: Lua 5.5

#17
post #3

Cannot wait for another version of Lua to sit unused basically everywhere. Truly is a shame, everything seems to have settled on 5.1 for the most part without ever being updated, or any intention of it being updated. Some really nice features post 5.1 I understand each version of Lua introduces breaking changes in the language, which isn't great as the language becomes fragmented (Or not really, once again 5.1 is pre…

[deleted]

Re: Lua 5.5

#18
post #14

Earlier quoted context omitted.

> everything seems to have settled on 5.1 Not exactly. LuaJIT has backported various hot features from 5.2 and 5.3 as long as they're unlikely to break 5.1 code.

I'm pretty sure that's only OpenResty's distribution of LuaJIT. I think the real LuaJIT is strictly 5.1

Not true, see "Extensions from Lua 5.2" here: https://luajit.org/extensions.html

Re: Lua 5.5

#19
post #4

One of the new features I found interesting, declarations for global variables, is buried in the reference manual. Here's a link to the section that discusses it: https://www.lua.org/manual/5.5/manual.html#2.2

[deleted]

Re: Lua 5.5

#20
We never got a new edition of Programming in Lua for 5.4... does that mean we won't ever get one for 5.5?
Post reply on HN