Thursday, January 19, 2006

Debugger (again)

Hi All,

I think I'll stop playing with the debugger... it's not fun anymore... There's nothing left to speed ;-)

I've tried some other python debuggers, just to compare them in 'performance', and I must say that pydev took an A+ (considering that those are A+ too!!)

I won't say the names of those, because you never know what others could say about it, but in speed terms the new version (still unreleased), will be the best by far when compared to other pydev versions.

I've also managed to make the variables be returned 'on-demand', so that there are only 'very-short' delays when hitting a breakpoint and for later getting any variable (instead of a very long one when a breakpoint was hit).

As for features, we've already have the basic stuff such as breakpoints, step in, out, variable inspection and some intermediate stuff, such as evaluating some expression or making a conditional breakpoint (and all that supporting python and jython).

I believe that what is missing for a 'complete' feature-wise debugger is:
- break for exception (intermediate)
- pause running program (intermediate)
- remote debugging (intermediate): this would require the user to add in its pythonpath and use some calls to it (I already have a 'prototype' for it, but won't make it available just now...)
- attach to running program (hard) note: this is quite different from having just a 'pause' button (in which case we already lauched it from within pydev), and I'm not really sure how feasible it is
- mixed-mode java/jython debugging (hard)



Wednesday, January 18, 2006

Debugger speed (up and up again)

Yeap, I decided to play a little with the debugger again... It is strange as sometimes just a 'little' profiling can speed things a lot more...

Now, this time, I did 2 improvemens:

1. The way that the main 'dispatch' was being handled: every time a new dispatch was called, I got the file information again from the frame (and had to do a couple of os.path calls), but in the end, the overhead for that was huge, so, now I 'cache' the context so that the filename and the base of the filename are stored in a cache.

2. The way that the shell was communicating with the shell was in the 'main' loop, for each call... now it is in a thread (I thought that this was going to be the major speed up, but number 1 was much more effective at it).

That will be available at release



Tuesday, January 17, 2006


Just released it... There are many changes:

The debugger does not print its tracing anymore, plus some problems with the jython shell and other bugfixes.

The actual 'feature' for this release is that the interpreter configuration will be backwards compatible from now on, but this has a drawback in the release, meaning that the current interpreter configuration will be lost.

Actually, I had to work on its structure and it became backward-incompatible, so, I decided that it's about time that it does not change anymore, even if its internal structure changes, and put it as a feature... actually, it just stores the information that the user enters in a place separated from the actual structure, which will be re-created with that info if it is not able to recreate by itself.



Friday, January 13, 2006

Debugger problem in

Hi all, just noted that version has shipped with a problem in the debugger...

The problem is that the tracing is on (which can make debugging MUCH, MUCH slower, because it prints many things to stderr).

To fix it, go to the plugin org.python.pydev.debug and change the file pysrc/ setting "pydevd_trace = 0".

I'll try to release a new version on monday with that fix!



Tuesday, January 10, 2006

New Release (

Hi all,

Quite some time without a release hum?

Well, it's already out... its changes are mostly bugs and some features (Thanks to Mikko Ohtamaa for those: new project and new module...)

Also, I'll try not to let you without a release for so long again, but in the last 2 months I had only little time to spend on it.

Hope you enjoy.



Friday, January 06, 2006

What's going on...

Well, lot's of things happening right now...

I've got a hand from Mikko Ohtamaa, which has implemented some long-awaited wizards (create new python project and create new python module)... It still has some minor adjustments to do, but it's almost ready for release...

And another thing that might also make it to the next release is a package explorer (only in plans currently, but who knows...)

As for me, I'm currently trying to solve some problems that have been happening when using the code-completion shell for some users... I think I got it right this time... it sometimes got in a lock condition because of some threading issues... which for some reason never happened to me ;-)

Well, this release is taking longer that others, but I hope it is worth it!