Resources for Portable Programming (original) (raw)
This page is a set of pointers to useful references for writing good portable code, for the R developers and for people writing R extensions.
- C99 standard (technically a final draft: currently unavailable, butthis appears to be a corrected version). And itsrationale.
- C11 standard (technically a final draft), and anoverview of the changes.
- Fortran standards, including links to the F77 as well as the correctlayout of Fortran 77 subprograms. Final draft standards are available for F90 andF2003.
- ftnchek, a program to check against Fortran standards.
- POSIX 1003 standards (2008, revised 2016): how Unix-alike functions and tools are to behave. (2004 edition).
- Porting to 64 bit GNU/Linux systems. Covers a lot of details about 64- vs 32-bit architectures.
- The self-styled Filesystem Hierarchy Standard. Not written to the standard of a standard, but Debian Linux policy.
- How to write shared libraries. Lots of information on GCC 4.0.0 features, including controlling symbol visibility as implemented in R 2.3.0.
- mudflap. A bounds-checking (etc) tool for GCC 4.
- Valgrind. A debugging tool for ix86 Linux. (See also `Writing R Extensions'.)
- GCC Links and selected readings
- What Every Computer Scientist Should Know about Floating-Point Arithmetic by David Goldberg, including Doug Priest's supplement on extended-precision systems (such as ix86).
- FreeBSD's collection of man pages (including for some commercial Unixes). And more from *nixDoc.
- Jan Walter's Unix incompatibility notes. Not 100% reliable (please don't pretestisalpha by isascii, for example).