%general-entities; ]> $LastChangedBy$ $Date$ Other Programming Tools Other Programming Tools Introduction This section is provided to show you some additional programming tools for which instructions have not yet been created in the book or for those that are not appropriate for the book. Note that these packages may not have been tested by the BLFS team, but their mention here is meant to be a convenient source of additional information. Boost Boost provides free peer-reviewed portable C++ source libraries. The emphasis is on libraries which work well with the C++ Standard Library. The libraries are intended to be widely useful, and are in regular use by thousands of programmers across a broad spectrum of applications, platforms and programming environments. Project Home Page: Download Location: DDD (GNU Data Display Debugger) GNU DDD is a graphical front-end for command-line debuggers such as GDB, DBX, WDB, Ladebug, JDB, XDB, the Perl debugger, the Bash debugger, or the Python debugger. Besides usual front-end features such as viewing source texts, DDD has an interactive graphical data display, where data structures are displayed as graphs.. Project Home Page: Download Location: cachecc1 cachecc1 is a GCC cache. It can be compared with the well known ccache package. It has some unique features including the use of an LD_PRELOADed shared object to catch invocations to cc1, cc1plus and as, it transparently supports all build methods, it can cache GCC bootstraps and it can be combined with distcc to transparently distribute compilations. Project Home Page: Download Location: ccache ccache is a compiler cache. It acts as a caching pre-processor to C/C++ compilers, using the compiler switch and a hash to detect when a compilation can be satisfied from cache. This often results in 5 to 10 times faster speeds in common compilations. Project Home Page: Download Location: distcc distcc is a program to distribute builds of C, C++, Objective C or Objective C++ code across several machines on a network. distcc should always generate the same results as a local build, is simple to install and use, and is usually much faster than a local compile. distcc does not require all machines to share a filesystem, have synchronized clocks, or to have the same libraries or header files installed. They can even have different processors or operating systems, if cross-compilers are installed. Project Home Page: Download Location: Euphoria Euphoria is a simple, flexible, and easy-to-learn programming language. It lets you quickly and easily develop programs for Windows, DOS, Linux and FreeBSD. Euphoria was first released in 1993. Since then Rapid Deployment Software has been steadily improving it with the help of a growing number of enthusiastic users. Although Euphoria provides subscript checking, uninitialized variable checking and numerous other run-time checks, it is extremely fast. People have used it to develop high-speed DOS games, Windows GUI programs, and Linux X Windows programs. It is also very useful for CGI (Web-based) programming. Project Home Page: Download Location: FFTW (Fastest Fourier Transform in the West) FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) in one or more dimensions, of arbitrary input size, and of both real and complex data (as well as of even/odd data, i.e., the discrete cosine/sine transforms or DCT/DST). Project Home Page: Download Location: GDB (GNU Debugger) GDB is the GNU Project debugger. It allows you to see what is going on inside another program while it executes. It also allows you to see what another program was doing at the moment it crashed. Project Home Page: Download Location: GOB (GObject Builder) GOB (GOB2 anyway) is a preprocessor for making GObjects with inline C code so that generated files are not edited. Syntax is inspired by Java and Yacc or Lex. The implementation is intentionally kept simple, and no C actual code parsing is done. Project Home Page: Download Location: gocache (GNU Object Cache) ccache is clone of ccache, with the goal of supporting other compilers than GCC and adding additional features. Embedded compilers will especially be in focus. Project Home Page: Download Location: GTK+/GNOME Language Bindings (wrappers) GTK+/GNOME language bindings allow GTK+ to be used from other programming languages, in the style of those languages. Project Home Page: gtkmm gtkmm is the official C++ interface for the popular GUI library GTK+. Highlights include typesafe callbacks, widgets extensible via inheritance and a comprehensive set of widgets. You can create user interfaces either in code or with the Glade designer, using libglademm. Project Home Page: Download Location: Java-GNOME Java-GNOME is a set of Java bindings for the GNOME and GTK+ libraries that allow GNOME and GTK+ applications to be written in Java. The Java-GNOME API has been carefully designed to be easy to use, maintaining a good OO paradigm, yet still wrapping the entire functionality of the underlying libraries. Java-GNOME can be used with the Eclipse development environment and Glade user interface designer to create applications with ease. Project Home Page: Download Location: gtk2-perl gtk2-perl is the collective name for a set of perl bindings for GTK+ 2.x and various related libraries. These modules make it easy to write GTK and GNOME applications using a natural, perlish, object-oriented syntax. Project Home Page: Download Location: PyGTK PyGTK provides a convenient wrapper for the GTK library for use in Python programs, and takes care of many of the boring details such as managing memory and type casting. When combined with PyORBit and gnome-python, it can be used to write full featured GNOME applications. Project Home Page: Download Location: KDE Language Bindings KDE and most KDE applications are implemented using the C++ programming language, however there are number of bindings to other languages are available. These include scripting languages like Perl, Python and Ruby, and systems programming languages such as Java and C#. Project Home Page: Numerical Python (Numpy) Numerical Python adds a fast array facility to the Python language. Project Home Page: Download Location: Perl Scripts and Additional Modules There are many Perl scripts and additional modules located on the Comprehensive Perl Archive Network (CPAN) web site. Here you will find All Things Perl. Project Home Page: SCons SCons is an Open Source software construction tool, i.e, a next-generation build tool. Think of SCons as an improved, cross-platform substitute for the classic make utility with integrated functionality similar to Autoconf/Automake and compiler caches such as ccache. Project Home Page: Download Location: strace strace is a system call tracer, i.e., a debugging tool which prints out a trace of all the system calls made by another process or program. Project Home Page: Download Location: SWIG SWIG is a software development tool that connects programs written in C and C++ with a variety of high-level programming languages. SWIG is used with different types of languages including common scripting languages such as Perl, Python, Tcl/Tk and Ruby. The list of supported languages also includes non-scripting languages such as C#, Common Lisp (Allegro CL), Java, Modula-3 and OCAML. Also several interpreted and compiled Scheme implementations (Chicken, Guile, MzScheme) are supported. SWIG is most commonly used to create high-level interpreted or compiled programming environments, user interfaces, and as a tool for testing and prototyping C/C++ software. SWIG can also export its parse tree in the form of XML and Lisp s-expressions. Project Home Page: Download Location: Valgrind Valgrind is a collection of five tools: two memory error detectors, a thread error detector, a cache profiler and a heap profiler used for debugging and profiling Linux programs. Features include automatic detection of many memory management and threading bugs as well as detailed profiling to speed up and reduce memory use of your programs. Project Home Page: Download Location: