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).
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.)
- To retrieve the full fpc source repository,
svn checkout http://svn.freepascal.org/svn/fpc/trunk fpcThis 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.
svn checkout http://svn.freepascal.org/svn/fpc/trunk/rtl fpc/rtl
Normally, you should perform this checkout step just once.
- To update the sources that were downloaded (checked out) above to the latest available version, use
svn update fpcor
svn update fpc/rtlif 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 fpcand 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_2 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 repositoriesThe 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.
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.