Development

Free Pascal is always under development. If 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.

Note: Always start using the latest official release when compiling a development version. Any other starting compiler is not guaranteed to work.

You have the following options:


Download Daily Source Snapshot of Development Tree (trunk)

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

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

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

Download Daily Source Snapshot of the Fixes Tree

You can download today's fixes branch (currently v3.0.x) sources in the form of a packed source snapshot from our FTP server (and its mirrors). These sources may eventually be used to build the next stable (fixes) release. These source 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 (31 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 compiled 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 compiled snapshots contain the latest bug fixes, without major new features. They may be more stable than the development snapshots (and even than the last official release), but there is still no guarantee that these snapshots are bug free.

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 always have access to the latest source code. It is also a method which requires less bandwidth once you have done the first download (called a "checkout" in SVN lingo).

Development snapshots

How do you obtain the sources via SVN? Generally, you need 3 steps:
(once 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 called "fpc" in the current directory, containing subdirectories with the following components:
    • rtl, the run time library source code for all platforms.
    • compiler, the compiler source code.
    • packages, packages source code (contains Free Component Library, gtk, ncurses, mysql and many more)
    • utils, the utilities source code.
    • fv, Free Vision.
    • tests, the compiler and RTL tests.
    • ide, the IDE source code.
    • installer, the text mode installer source code.
    If you do not want the entire repository, you can check out subsections using, e.g.,
    svn checkout http://svn.freepascal.org/svn/fpc/trunk/rtl fpc/rtl
    

    Normally, you should perform this checkout step just once.

  2. To update the sources that were downloaded (checked out) above to the latest available version, use
    svn update fpc
    
    or
    svn update fpc/rtl
    
    if you only downloaded some separate components, such as the rtl sources in this case.
    These commands will retrieve patches ONLY for the files that have changed on the server.

    You can repeat this step whenever you want to update your sources. It is by far the most economic way to remain up-to-date in terms of bandwidth.

Fixes to 3.0.x

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

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

To checkout a release, you have to checkout the tagged versions, e.g. svn checkout http://svn.freepascal.org/svn/fpc/tags/release_3_0_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 also listens at port 8080, so if you can not access svn on the default port 80, you can try to 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 check them out using 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 are browsing right now.
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.


Bugs and the Future

A list of known bugs is available here.
Future plans for Free Pascal can be viewed here.
If you are interested in FPC development, you may also be interested in the wiki.