Difference between revisions of "Compiler development articles/id"

From Free Pascal wiki
Jump to navigationJump to search
(New page: Saat ini versi FPC yang sedang dikembangkan adalah 2.3.1. Internal kompilator didokumentasikan di halaman FPC internals yang berkembang. = Umum = How to start FPC internals ...)
 
Line 34: Line 34:
 
= Processor dependent =
 
= Processor dependent =
  
Lihat juga [[Platform list|platform list]].
+
Lihat juga [[Platform list/id|daftar platform]].
  
 
[[Passing Pascal Types to C Routines]]
 
[[Passing Pascal Types to C Routines]]

Revision as of 20:04, 27 September 2007

Saat ini versi FPC yang sedang dikembangkan adalah 2.3.1. Internal kompilator didokumentasikan di halaman FPC internals yang berkembang.

Umum

How to start

FPC internals

Language related articles

Coding style

Porting Free Pascal

Hidupkan gaya baru smartlinking (freebsd,linux)

  • in i_*.pas add tf_smartlink_sections to the flags field of the platform description record for your OS/CPU combo (in my case i_bsd.pas, the system_i386_freebsd_info record)
  • in ogelf.pas scroll down to nearly the bottom, and add af_smartlink_sections to the flags field of as_i386_elf32_info
  • run "(g)make all OPT='-Aas -k--gc-sections' at the toplevel to build using new smartlinking routines.

C++ linking

Lihat http://rvelthuis.bei.t-online.de/articles/articles-cppobjs.htm

Catatan bahwa FPC tidak mempunyai ofset VMT negatif karerna keterbatasan GNU LD.

Fundamen C++ di atas <-> OPas bergantung pada antarmuka COM : (dikutip dari Rudy Velthuis)

"Well, all compilers must be able to create COM interfaces. Since in C++, these are simply pure abstract classes, and Delphi must have the same layout, for many reasons, they are all compatible. In fact, a pure abstract class pointer points to a structure of which the first entry is a VMT. This is also how interfaces are built"

Processor dependent

Lihat juga daftar platform.

Passing Pascal Types to C Routines

i386

PIC information

PowerPC

PPC Calling conventions

Linker Internal

Internal Linker

Paket

packages