Sign in Join
FPDoc Onlineexperiment

Programmer's Guide

Using the compiler well: directives, memory, the code it makes, linking, libraries, resources and porting.

  1. Compiler directives
    1. Introduction
    2. Local directives
    3. Global directives
  2. Using conditionals, messages and macros
    1. Conditionals
    2. Macros
    3. Compile time variables
    4. Compile time expressions
    5. Messages
  3. Using Assembly language
    1. Using assembler in the sources
    2. Intel 80x86 Inline assembler
    3. Motorola 680x0 Inline assembler
    4. Signaling changed registers
  4. Generated code
    1. Units
    2. Programs
  5. Intel MMX support
    1. What is it about?
    2. Saturation support
    3. Restrictions of MMX support
    4. Supported MMX operations
    5. Optimizing MMX support
  6. Code issues
    1. Register Conventions
    2. Name mangling
    3. Calling mechanism
    4. Nested procedure and functions
    5. Constructor and Destructor calls
    6. Entry and exit code
    7. Parameter passing
    8. Stack limitations
  7. Linking issues
    1. Using external code and variables
    2. Making libraries
    3. Using smart linking
  8. Memory issues
    1. The memory model.
    2. Data formats
    3. Data alignment
    4. The heap
    5. Using DOSmemory under the Go32 extender
    6. When porting Turbo Pascal code
    7. Memavail and Maxavail
  9. Resource strings
    1. Introduction
    2. The resource string file
    3. Updating the string tables
    4. GNU gettext
    5. Caveat
  10. Thread programming
    1. Introduction
    2. Programming threads
    3. Critical sections
    4. The Thread Manager
  11. Optimizations
    1. Non processor specific
    2. Processor specific
    3. Optimization switches
    4. Tips to get faster code
    5. Tips to get smaller code
    6. Whole Program Optimization
    7. General principles
  12. Programming shared libraries
    1. Introduction
    2. Creating a library
    3. Using a library in a pascal program
    4. Using a pascal library from a C program
    5. Some Windows issues
  13. Using Windows resources
    1. The resource directive $R
    2. Creating resources
    3. Using string tables.
    4. Inserting version information
    5. Inserting an application icon
    6. Using a Pascal preprocessor
  14. Anatomy of a unit file
    1. Basics
    2. reading ppufiles
    3. The Header
    4. The sections
    5. Creating ppufiles
  15. Compiler and RTL source tree structure
    1. The compiler source tree
    2. The RTL source tree
  16. Compiler limits
    1. Compiler modes
      1. FPC mode
      2. TP mode
      3. Delphi mode
      4. DelphiUnicode mode
      5. OBJFPC mode
      6. MACPAS mode
      7. ISO mode
      8. Extended Pascal mode
    2. Using fpcmake
      1. Introduction
      2. Functionality
      3. Usage
      4. Format of the configuration file
      5. Programs needed to use the generated makefile
      6. Variables that affect the generated makefile
      7. Variables set by fpcmake
      8. Rules and targets created by fpcmake
    3. Compiling the compiler
      1. Introduction
      2. Before starting
      3. Compiling using make
      4. Compiling by hand
    4. Compiler defines during compilation

      An experiment, built from development snapshots. Not the official Free Pascal or Lazarus documentation.