 |
Nathan Sidwell, Vladimir Prus, Pedro Alves, Sandra Loosemore, and Jim Blandy, 2008 GCC Developers' Summit
This paper describes how CodeSourcery enhanced the GNU Debugger to allow some threads of a multithreaded application to continue, while other threads are stopped and examined by the debugger.
|
 |
Paul Brook & Daniel Jacobowitz, 2007 GCC Developers' Summit
A reversible debugger offers both standard debugger operations
(e.g. step and next) and reverse execution equivalents that
rewind the program's state. Even on simple programs, this is
convenient: for instance, if you identify a bad memory write, it
allows you to step backward and see the value that was in memory
before it was overwritten. In more complex systems, reversible
debugging allows you to examine the environment at and before an
intermittent fault.
This paper describes a prototype implementation of reversible
debugging, using entirely Free Software - GDB and QEMU. We
explain how source-level debugging actions are built on top of
primitive operations, how the primitive operations are implemented,
and how the simulated environment interacts with the outside world.
|
 |
Nathan Sidwell & Joseph Myers, 2006 GCC Developers' Summit
Both GCC and GLIBC contain implementations of floating point routines. This paper discusses the issues with GCC's routines and shows how we incorporated GLIBC's routines into the compiler's library to give a significant performance increase.
|
 |
Mark Mitchell, Dr. Dobb's Journal
VSIPL++ is a C++ API for high-performance computing. One unique feature of it is that it includes direct support for parallel applications.
|
 |
Nathan Sidwell & Zachary Weinberg, 2004 GCC Developers' Summit
The current abstract syntax tree of GCC uses a dynamically typed
über-union for nearly all nodes. The desire for a statically typed
tree design has been raised several times over recent years, but there
has been no concerted effort to implement such a design. We describe
the impacts of the current design, both in implementation and
performance degradation. We present a design for statically typed
trees, along with case studies of part of the conversion. We outline
a plan for full conversion and discuss further improvements that this
would enable.
|
 |
Nathan Sidwell & Zachary Weinberg, 2004 GCC Developers' Summit
Slides for paper above.
|
 |
Nathan Sidwell, Ottawa Linux User's Group
This presentation describes new features and capabilites of GCC 3.4 and outlines the SSA infrastructure that will be present in GCC 3.5.
|
 |
Mark Mitchell, 2003 GCC Developers' Summit
This presentation (given as the closing keynote for the first annual GCC Summit) discusses the unique challenges faced by GCC due to its reliance on multiple developers with sometimes competing agendas. The solutions proposed include increased design formalism and centralized funding.
|
 |
Zachary Weinberg, 2003 GCC Developers' Summit
GCC is considered more difficult to modify or debug than other programs of similar size. This paper will investigate the reasons for this difficulty, from the point of view of a maintenance programmer: someone producing a small patch to fix a bug or implement a feature, without causing new problems for unrelated use. Because the development tree's head is expected to be functional at all times, such incremental changes are normal -- even regular contributors are in the maintenance programmer's shoes.
|
|
 |
Nathan Sidwell, 2003 GCC Developers' Summit
The 3.0 series of G++ compilers and libraries offers a new multi-vendor ABI and increasing conformance to the C++ standard. The C++ ABI offers increased efficiency for C++ idioms and interoperability with other compilers. Features of the ABI of which the G++ user should be aware are described. Both additional and deprecated features in versions of 3.2, 3.3, and 3.4 are described. Using various source idioms to aid the G++ optimizers and loading process is shown. The process of tracking the C++ standard as both defect reports and C++0X become available is outlined.
|
 |
Nathan Sidwell, ACCU 2003
During 2000/2001 a C++ ABI was designed from scratch. GCC implemented that ABI and uses it for all architectures. This paper describes the origin of the ABI, why GCC uses it, what it is, and what it is not. The ABI has some optimizations that improve user programs. User programs that have assumed more than the C++ language guarantees may be affected.
|
 |
Stephen Freund & Mark Mitchell, Second Lightweight Languages Workshop
This paper demonstrates that the Python language is not signal-safe, due to Python's support for raising exceptions from signal handlers. A modification of the language that restores signal safety is proposed.
|
 |
Gabriel Dos Reis, ACCU 2002
This slide presentation proposes a mechanism for constraining the types of template arguments via the concept of "signatures."
|
 |
Mark Mitchell, Linux Magazine
The February 2001 Linux Magazine presented an article entitled Embrace and Extend: What Can Linux Learn from Microsoft's .NET? In that piece, Jon Udell put forth the notion that Microsoft's .NET initiative is built upon a number of ideas that have substantial technical merit and argued that GNU/Linux users ought to consider embracing and extending the platform. However, while that article laid out many of the reasons why .NET might be interesting to GNU/Linux aficionados, it did not spend much time on the technical aspects of how supporting .NET on GNU/Linux would work. Because this is a topic worthy of further discussion, we will take an in-depth look at what it will take to make the GNU Compiler Collection (GCC) support .NET.
|
 |
Mark Mitchell, Jeffrey Oldham, Alex Samuel, New Riders
If you're a developer already experienced with programming for the GNU/Linux system, are experienced with another UNIX-like system and are interested in developing GNU/Linux software, or want to make the transition from a non-UNIX environment and are already familiar with the general principles of writing good software, this book is for you.
|
 |
Benjamin Chelf, Linux Magazine
These articles explain how to make maximum use of the GNU/Linux C library.
|
 |
Mark Mitchell, Open Source Developers Journal
Although GCC is more popular now than ever before, it is also up against some of the toughest competitive and technical challenges it has ever faced. As more and more commercial compilers become available for Linux and other open source platforms, what needs to be done to make sure that GCC retains its position as the "king of the hill?"
|
 |
Mark Mitchell & Alex Samuel, Atlanta Linux Showcase
The GNU Compiler Collection (GCC) is the most fundamental component of the GNU/Linux developer's toolchest. GCC, like the Linux kernel and the X windowing system, is a complex but important part of the GNU/Linux operating system. In fact, both the kernel and X are built with GCC, so, to a large extent, the speed and correctness of the entire system depends on GCC.
|
 |
Mark Mitchell, Dr. Dobb's Journal
Aliasing issues make it difficult for compilers to generate code that runs as fast as you might hope. Luckily, the C++ type system makes clear what can and cannot alias.
|
|