lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


2015-07-09 5:57 GMT+02:00 Soni L. <fakedme@gmail.com>:
> On 08/07/15 11:12 PM, Luiz Henrique de Figueiredo wrote:
>>
>> Use
>>         debug.setmetatable(nil, {__index = {}})
>>
> I should make a library for this that doesn't require debug.

Why are many Lua programmers reluctant to use the debug library?

Lua 5.3.1 Reference Manual on the debug library:

| This library provides the functionality of the debug interface (§4.9)
| to Lua programs. You should exert care when using this library.
| Several of its functions violate basic assumptions about Lua code
| (e.g., that variables local to a function cannot be accessed from
| outside; that userdata metatables cannot be changed by Lua code;
| that Lua programs do not crash) and therefore can compromise
| otherwise secure code. Moreover, some functions in this library
| may be slow.

This is daunting, certainly, but it used to be worse.

Lua 5.1.5 Reference Manual on the debug library:

| The functions provided here should be used exclusively for debugging
| and similar tasks, such as profiling. Please resist the temptation to use
| them as a usual programming tool

By reading these together, one can draw the conclusion that the Lua
developers no longer feel that the debugging library is only there for
debugging, profiling etc, and that it is now OK to use its functions
as
a usual programming tool provided that you exert care.

So why are we still squeamish about it?