[PythonCAD] tracing pythoncad

Eric Wilhelm scratchcomputing at gmail.com
Sat May 26 05:06:33 CEST 2007

# from nescivi
# on Friday 25 May 2007 06:07 pm:

>does Doxygen work on Python code?

I agree with Glen here.  I'll add that doxygen was really intended for 
static code -- dynamic languages can do much more powerful things.

If someone is familiar with python's concept of runtime and debugging, 
please look into this:  building a wrapper that launches pythoncad with 
trace.run() would be IMO the most valuable tool for understanding what 
is happening.

Glen is right about the architecture overview issue -- it would be very 

However, I imagine that fully understanding the architecture is possibly 
too time-consuming and is a large conceptual burden as far as making 
simple changes go.  That is, a lower barrier to entry would allow 
someone who is completely unfamiliar with the architecture to make a 
useful addition or change by easily discoving what bits of code are 
relevant.  Or, "understanding the whole by starting with the details."  
I think it is much easier to stay motivated and not get overwhelmed if 
you can clearly see what is happening and what you want to have happen.  
If you can easily make a difference, you'll keep coming back to do 

Just get the patience required for first-time hacking down to about 5 
minutes or less (this roughly assumes a familiarity with python, but 
zero familiarity with pythoncad.)  If you can give instructions as 
simple as this, I think you'll have it:

  svn co \
    http://subversion.pythoncad.org:9000/svn/pythoncad/trunk pythoncad
  cd pythoncad
  # setup.py?
  python tracegtkpycad.py
  # now hit Ctrl+Alt+1, do stuff, hit Ctrl+Alt+2
  $EDITOR pycadtrace.txt

So malloc calls a timeout and starts rummaging around the free chain,
sorting things out, and merging adjacent small free blocks into larger
blocks. This takes 3 1/2 days.
--Joel Spolsky

More information about the PythonCAD mailing list