This is the second post in our blog series highlighting some of the cool features slated for Fedora 13. Our first spotlight feature focused on improvements in NetworkManager. This second post dives into several new and innovative features planned for Fedora 13 that we believe will be useful to Python developers of all levels. Early in the development cycle, Fedora engineering team member and contributor David Malcolm started working on more intelligent tracing and debugging features that solve some common difficulties. This work serves as an example of how Fedora leads by solving technical problems through the power of open source.
The release of Fedora 12 included SystemTap 1.0, a tracing utility that allows developers to instrument code, to see how its flow corresponds to various system activities such as reading from devices, or consulting bits of memory. You can read more about SystemTap in this interview with Will Cohen, a tools engineer at Red Hat. In that interview, which was conducted for the release of Fedora 12, Will mentions that he expected SystemTap to evolve beyond the Linux kernel to include higher-level user applications. In Fedora 13, we plan to include static probes, which application developers can use to understand how their code is interacting with system resources.
SystemTap includes its own scripting language, and David Malcolm used this capability to develop a Python-based “top” function, to show Python activity across the entire running system. But beyond that, he also created an additional script that developers can use to see their applications calling and returning from individual Python functions. The combination of these tools in Fedora 13 can give developers immediate insight not only into their program’s flow, but also into how their application spends its time, and where bottlenecks might be occurring.
But that’s not all. We anticipate that Fedora 13 also will include a new feature for integrated debugging of Python and C/C++ libraries using the GNU debugger (gdb). The Python programming language is simple, readable, and powerful, but it is not as fast as those that are compiled into pure machine code. Programmers often use Python with compiled libraries written in C or C++ language to enhance speed. However, in the past this made debugging more difficult as a program would wind its way in and out of the different kinds of code. In Fedora 13, though, the GNU debugger can provide information needed to debug both the interpreted and the compiled code, making the developer more effective at identifying and squashing bugs.
To watch David Malcolm explain some of these features, and give an on-screen demonstration of how they work, check out the video below on Python in Fedora 13. You can also read a Fedora community interview and information page about Python in Fedora 13 here.
And to see these features in action, you can try out the Fedora 13 Beta pre-release, which is available here. The final release of Fedora 13 is expected to be available in mid-May. Look for additional blogs in the coming weeks highlighting other cool features slated for Fedora 13.