lua-users home
lua-l archive

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

It was thus said that the Great Matthew Wild once stated:
> On 27 November 2010 15:22, Alexander Gladysh <> wrote:
> > On Sat, Nov 27, 2010 at 16:55, Cosmin Apreutesei
> > <> wrote:
> >> This is a small C module by Matthew Wild that adds a debug.getsize()
> >> function which returns the size in bytes of a Lua object.
> >
> >> Homepage:
> >
> >> I found it useful so I packaged it and added a small test unit -
> >> tested in win32 and linux64. Grab it while it's hot:
> >>
> >
> > Thank you for the useful contribution.
> >
> > But why does this module change a standard namespace?
> >
> It's a debugging function. it's very implementation-specific. It
> belongs with other debugging functions. It's overkill to make a new
> namespace for a single function.

  I don't think so.  I've created a few functions [1] that I felt should go
into debug but didn't want to pollute that particular namespace.  So I
created the namespace "org.conman" and beneath that, created
"org.conman.debug" as a place for my debug functions to live.  That way, I
can either specify the full ... um ... path, to the function, or do
something slick like:

setmetatable(debug,{ __index = org.conman.debug }) --[2]

  I also did org.conman.table and org.conman.string, along with a few other
modules I've written [3].  That way, I only have to worry about clashing
with "org.conman" (which is unlikely) and not "debug" or "table" or

  -spc (I should probably release these modules at some point ... )

[1]	edit(), which edits the source for a given function written in Lua
	editf(), which edits the source file a given function is defined in
	hexdump(), which gives a hex dump of memory

[2]	Cute, but probably dangerous as well.  And not something I would do

[3]	org.conman.env:

		contains each environment variable, such that


		is the path to $HOME


		Loads /etc/passwd and /etc/group as tables:


		And creates to store paths:


		usable thus:



		Supports a Unix-like getopt() routine to parse the command