On Mon, Feb 2, 2009 at 10:48 AM, <ro...@gnu.org> wrote: > Brett Cannon writes: > > On Mon, Feb 2, 2009 at 00:52, Rocky Bernstein <ro...@gnu.org> wrote: > > > As I've mentioned, I've been re-examining from ground up the whole > > > state of affairs in writing a debugger. > > > > > > One of the challenges of a debugger or any source-code analysis tool > > > is verifying that the source-code that the tool is reporting on > > > corresponds to the compiled object under execution. (For debuggers, > > > this problem becomes more likely to occur when you are debugging on a > > > computer that isn't the same as the computer where the code is > > > running.) > > > > > > Is there a checksum of the source text computed and stored in > > > compilation? > > > > No, only the bytecode version used, the mtime of the source the > > bytecode is derived from, and the bytecode itself. > > > > > If not, should there be one? > > > > If you are planning to read this directly from the .pyc file then it > > is not needed as the mtime timestamp in the .pyc should in general be > > enough to detect changes to the source. > > I'm not sure I understand. I am debugging program P on computer A > which may have (probably did?) do a compile. I am on computer B which > I have the source code. Maybe it is checked out from a version control > system same as on A. Maybe it has bytecodes, maybe not. But the > expectation is that the programmer thinks it matches what is currently > on A that the programmer is debuggging. Can I tell for certain? > > Suppose I'm writing a code coverage tool which can accumulate > statistics over many runs. I notice that the date on the Python file > changes, again one way it might is that it might be checked out fresh > and subversion for example will put in a current timestamp. How can > the code coverage tool know that the source hasn't changed even though > the file may have disappeared or maybe was modified several times but > in the end stays the same?
Unfortunately this use case (remote debugging) was not considered when the code object was designed and implemented. I don't know how important the use case is in general, but clearly it is important to you. I suggest that you move this discussion to python-ideas to ferret out a possible implementation and API; or to find out work-arounds. -- --Guido van Rossum (home page: http://www.python.org/~guido/) _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com