Development

Free Pascal is always under development. When you want to see how the development is progressing you can take a peek at the developer versions.

Note: There is no support for the development versions.

You have the following options:


Download Daily Source Snapshot of Development Tree (trunk)

You can download todays development (trunk - currently v2.3.x) sources in form of a packed snapshot from our FTP server (and its mirrors). These snapshots are updated on a daily basis, and reflect the state of the source repository.

Entire fpc sources archive of trunk: fpc.zip (24 MB).

Furthermore, there is an even larger archive including the fpc sources together with docs sources and release building related files in the same directory - fpcbuild.zip.

Download Daily Source Snapshot of the Fixes Tree

You can download todays fixes branch (currently v2.2.x) sources which will lead to the next stable (fixes) release in form of a packed snapshot from our FTP server (and its mirrors). These snapshots are updated on a daily basis, and reflect the state of the source repository.

Entire fpc sources archive of the fixes branch: fpc.zip (24 MB)

Furthermore, there is an even larger archive including the fpc sources together with docs sources and release building related files in the same directory - fpcbuild.zip.



Download Daily Update of Development Tree (trunk)

These snapshots contain the latest development updates and bug fixes. There is no guarantee that the new development updates are fully working and that the snapshot is bugfree.

The files are available from our ftp site and mirrors.

Download Daily Update of the Fixes Tree

These snapshots contain the latest bug fixes, without major new features. This should be more stable than the development snapshots (and even the last official release), but there is still no guarantee that these snapshots are bugfree.

The files are available from our ftp site and mirrors.



Connect to Source Repository with SVN

As an alternative to the daily zip files of the SVN sources, the SVN repository has been made accessible for everyone, with read-only access. This means that you can directly access the code, and you will have really the last-minute sources available. It is also a method which requires less bandwidth once you have done the first download (checkout in SVN lingo).

Development snapshots

How to do this? Generally, you need 3 steps:
(If you have SVN installed, of course. Look here for instructions on how to do that.)

  1. To retrieve the full fpc source repository, type
    svn checkout http://svn.freepascal.org/svn/fpc/trunk fpc
    
    This will create a directory fpc in your SVN repository directory, containing subdirectories with the following packages:
    • rtl, the RunTime Library source for all platforms.
    • compiler, the compiler source.
    • fcl, the Free Component Library source.
    • packages, Packages source (contains gtk, ncurses, mysql and many more)
    • utils, the utils sources.
    • fv, Free Vision
    • tests, the compiler and RTL tests.
    • ide, the IDE sources.
    • installer, the text mode installer sources.

    If you don't want the entire repository, you could try to check out parts with
    svn checkout http://svn.freepascal.org/svn/fpc/trunk/rtl fpc/rtl
    

    Normally, you should perform this step just once.

  2. To update the sources which were downloaded (checkout) above
    svn update fpc
    
    or
    svn update fpc/rtl
    
    if you only downloaded some separate packages, the rtl sources in this case.
    This will retrieve patches ONLY for the files that have changed.

    This step you can repeat whenever you want to update your sources. It is by far the most economic in terms of bandwidth.

Fixes to 2.2.x

The fixes need a separate directory, create a separate directory fixes, enter it, and repeat the above checkout command with the URL http://svn.freepascal.org/svn/fpc/branches/fixes_2_2:

cd mysvn/fixes
svn checkout http://svn.freepascal.org/svn/fpc/branches/fixes_2_2 fpc
and to update:
svn update fpc

To checkout release, you've to checkout the tagged versions, e.g. svn checkout http://svn.freepascal.org/svn/fpc/tags/release_2_2_0 fpc

The sources of docs are in a separate repository called fpcdocs, so the command to get them is

svn checkout http://svn.freepascal.org/svn/fpcdocs/trunk fpcdocs

In case you have trouble with the default server, you can use http://svn2.freepascal.org as alternative svn server. Furthermore, this server listens also at port 8080, so if you can not access svn on the default port 80, you might use http://svn2.freepascal.org:8080 instead.

If you want to learn more about subversion, read this excellent Subversion book which is also available online in different formats for free.


Other repositories

The fpc svn server hosts more repositories than only the fpc repository, you can get them by svn co http://svn.freepascal.org/svn/<repository> where <repository> is:
fpcprojects Several fpc related projects like a converted TTT 5.10, gdbpas or the FPC irc bot.
lazarus Lazarus.
fpcdocs The fpc documentation sources.
html The sources of the fpc website you're just browsing.
fpcbuild Everything needed to build fpc releases. This links to several other repositories, so this checkout is really big.
logs Log files of the repositories mentioned above.


Browse the Source Repository with a Web Browser

The contents of the SVN archive can also be browsed with your web-browser through this viewcvs interface.


Mercurial mirror

For developement without subversion write access or without any internet, a Mercurial (a distributed VCS) mirror of the svn trunk is available at: http://florianklaempfl.de:8000/fpctrunk.

Bugs and the Future

A list of known bugs is available here.
And the future plans of Free Pascal can be viewed here.
If you're interested in FPC development, you might be also interested in the wiki.