Re: Attributes
Eleanor Bartle <[email protected]> Tue, 26 May 2026 01:06:17 -0700 (PDT)
| Newsgroups | gmane.comp.lang.lua.general |
|---|---|
| Message-ID | <[email protected]> |
Something to note is that when you have <close>, <const> comes more or less for free: a <close> binding is <const> anyway, otherwise some very strange things could happen. Also, <const> should not make tables immutable. The binding being constant should not be reflected in the bound value, otherwise if two locals refer to the same table and only one of them is <const>, how should that work? Only allow mutations through the one local? What if one of the fields is a table, which then gets saved in a different local? Should Lua remember that it's supposed to be <const>? On Monday, 25 May 2026 at 03:35:10 UTC+10 Pier wrote: > I absolutely love Lua for how easy it is to learn, how clean the syntax > is, and how extendable it is. However, I do have a few thoughts on > attributes which was in introduced in Lua 5.4 that I think deserve a good > discussion maybe. > > The concept itself is not bad and the syntax is a fair compromise. The > close attribute is amazing when working with systems where freeing memory > is important but easily overlooked or forgotten (i.e. closing files). On > the other hand, the const attribute is just... meh. I don't see any reason > to include it, because as far as I know it doesn't add any performance and, > importantly, it doesn't make tables immutable! The SNAKE_CASE convention to > me is more than enough to denote constants. I hold onto the belief that > developers are component enough to not make stupid mistakes such as > changing variables that aren't supposed to be changed or changing variables > in an unexpected way. Even if that does happen, they are usually caught > through pull-request or during test. I don't know many teams that allow > anyone to change the codebase freely. > > I guess for const to be useful it would have to add some extra benefit > than just protection. I am no compiler designer, but if I had to come up > with something I would say constant tables could be immutable and optimized > internally since the keys would never change, or constant variables being > expanded. I'm sure there are many ways to go about it. > > In the end, I still love Lua lol. Maybe I'm missing some context or > something, so I'm always happy to continue the discussion on this topic. > -- You received this message because you are subscribed to the Google Groups "lua-l" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/d/msgid/lua-l/bef82019-d23d-4c10-833a-91d391c3c8e0n%40googlegroups.com.