background preloader

C

Facebook Twitter

Xml

Threads. Perftools - Google Code. These tools are for use by developers so that they can create more robust applications. Especially of use to those developing multi-threaded applications in C++ with templates. Includes TCMalloc, heap-checker, heap-profiler and cpu-profiler. Recent news: 19 Apr 2014 gperftools 2.2rc is out! Here are notable changes since 2.1: a number of fixes for a number compilers and platforms. The following people helped with ideas or patches (based on git log, some contributions purely in bugtracker might be missing): Andrew C. 30 July 2013 gperftools 2.1 is out! Just few fixes where merged after rc. Some fixes for debug allocation on POWER/Linux 20 July 2013 gperftools 2.1rc is out! As a result of more than a year of contributions we're ready for 2.1 release.

But before making that step I'd like to create RC and make sure people have chance to test it. Here are notable changes since 2.0: fixes for building on newer platforms. 06 February 2012 Hello from your new maintainer. -Dave 03 February 2012 26 August 2011. Customizing Printf - The GNU C Library. C++ Code Optimizations. Top 10 Ways to be Screwed by "C" To get on this list, a bug has to be able to cause at least half a day of futile head scratching, and has to be aggravated by the poor design of the "C" language. In the interests of equal time, and to see how the world has progressed in the 20-odd years since "C" escaped from its spawning ground, see my Top 10 Ways to be Screwed by the Java programming language, and for more general ways to waste a lot of time due to bad software, try my Adventures in Hell page.

A better language would allow fallible programmers to be more productive. Infallible programmers, of the type unix' and "C" designers anticipated, need read no further. In fairness, I have to admit that the writers of compilers have improved on the situation in recent years, by detecting and warning about potentially bad code in many cases. Non-terminated comment, "accidentally" terminated by some subsequent comment, with the code in between swallowed. a=b; /* this is a bug c=d; /* c=d will never happen */ Or consider this: or as. The GNU C Library. Node: Top Next: Introduction Prev: (dir) Up: (dir) This is Edition 0.06 DRAFT, last updated 24 October 1994, of The GNU C Library Reference Manual , for Version 1.09 Beta of the GNU C Library.

Introduction Purpose of the GNU C Library. Error Reporting How the GNU Library functions report error conditions. Memory Allocation Your program can allocate memory dynamically and manipulate it via pointers. Character Handling Character testing and conversion functions. String and Array Utilities Utilities for copying and comparing strings and arrays. Extended Characters Support for extended character sets. Locales The country and language can affect the behavior of library functions.

Searching and Sorting General searching and sorting functions. Pattern Matching Matching wildcards and regular expressions, and shell-style ``word expansion''. I/O Overview Introduction to the I/O facilities. Streams High-level, portable I/O facilities. Low-Level I/O Low-level, less portable I/O. File System Interface Pipes and FIFOs Sockets Names. Optimizing C and C++ Code. Embedded software often runs on processors with limited computation power, thus optimizing the code becomes a necessity.

In this article we will explore the following optimization techniques for C and C++ code developed for Real-time and Embedded Systems. Many techniques discussed here have roots in the material we covered in the articles dealing with C to Assembly translation. A good understanding of the following articles will help: Premature optimization is the root of all evil Donald Knuth wrote, "Programmers waste enormous amounts of time thinking about, or worrying about, the speed of noncritical parts of their programs, and these attempts at efficiency actually have a strong negative impact when debugging and maintenance are considered.

We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. In general, correctness and readability considerations trump code performance issues for most of your code. Local variable scope. Dennis Ritchie Home Page. Location Dennis Ritchie Bell Labs, Rm 2C-517 600 Mountain Ave. Murray Hill, New Jersey 07974-0636, USA dmr@bell-labs.com +1 908-582-3770 (office), +1 908-582-5857 (fax) In Memoriam Dennis died in early October, 2011. This is a note from his sister and brothers: As Dennis's siblings, Lynn, John, and Bill Ritchie--on behalf of the entire Ritchie family--we wanted to convey to all of you how deeply moved, astonished, and appreciative we are of the loving tributes to Dennis that we have been reading. We can confirm what we keep hearing again and again: Dennis was an unfailingly kind, sweet, unassuming, and generous brother--and of course a complete geek.

We are terribly sad to have lost him, but touched beyond words to realize what a mark he made on the world, and how well his gentle personality--beyond his accomplishments--seems to be understood. Lynn, John, and Bill Ritchie History For many years, I worked in the Computing Sciences Research Center of Bell Labs. Some material Plan 9 and Inferno. C/C++ Reference. Programming in C. A. D. Marshall 1994-2005 Substantially Updated March 1999 Next: Copyright Keyword Searcher Click Here to Download Course Notes. Direct link to Java Algorithm Animations (C related) Lecture notes + integrated exercises, solutions and marking Useful Links C tutorial for reference for beginners About this document ...

Programming in C. Getting Started with LLVM System. Overview Welcome to LLVM! In order to get started, you first need to know some basic information. First, LLVM comes in three pieces. The first piece is the LLVM suite. This contains all of the tools, libraries, and header files needed to use LLVM. It contains an assembler, disassembler, bitcode analyzer and bitcode optimizer. It also contains basic regression tests that can be used to test the LLVM tools and the Clang front end. The second piece is the Clang front end. There is a third, optional piece called Test Suite. Requirements Before you begin to use the LLVM system, review the requirements given below.

Hardware LLVM is known to work on the following host platforms: Note Code generation supported for Pentium processors and upCode generation supported for 32-bit ABI onlyTo use LLVM modules on Win32-based system, you may configure LLVM with --enable-shared.MCJIT not working well pre-v7, old JIT engine not supported any more. Software Host C++ Toolchain, both Compiler and Standard Library.