[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: debug.getinfo( aLevel, 'S' ).source?
- From: Petite Abeille <petite.abeille@...>
- Date: Thu, 7 Aug 2008 00:47:45 +0200
On Aug 7, 2008, at 12:14 AM, Luiz Henrique de Figueiredo wrote:
When combining several programs into one file, luac creates a hidden
main
program that simply runs the given program. That hidden program in
given
"=(luac)" as its source, in the absence of anything else that would
be useful.
Like the other programs, the main program is precompiled and so
keeps its
own notion of the source name. Changing the name of the file that
contains
precompiled code does not affect the names stored in the files.
I see... so... compiling 'module.lua' into 'module.luac' will
statically record '@module' as the source for that code in the luac
file itself, right? From then on, debug.getinfo will always return
'@module' as the source for that bytecode, irrespectively of the
effective code provenance, correct?
In other words, if code is loaded from a lua file, one gets its
location, if loaded from a luac file ones get the static information
recorded at the time of compilation, irrespectively of where the luac
bytecode was loaded from.
On the other hand... code coming from source or bytecode should be
equivalent for all practical purpose, no? But, in the case of
debug.getinfo at least, they seem to behave rather differently...
hmmm...
Are you proposing otherwise?
At this conjuncture, yes... I would argue that debug.getinfo( 'S' )
should consistently return the effective source location of a piece of
code, no matter if it's plain source or bytecode.
Just my 2¢ though.
Cheers,
PA.