# ProjectVersionInt does *not* contain the patchlevel (rationale: this
# figure is used for conditional compilations, and library interfaces
# etc. are not supposed to change between patchlevels).
+#
+# The ProjectVersionInt is included in interface files, and GHC
+# checks that it's reading interface generated by the same ProjectVersion
+# as itself. It does this even though interface file syntax may not
+# change between versions. Rationale: calling conventions or other
+# random .o-file stuff might change even if the .hi syntax doesn't
ProjectName = The Glorious Glasgow Haskell Compilation System
ProjectNameShort = ghc
-ProjectVersion = 4.05
-ProjectVersionInt = 405
+ProjectVersion = 4.09
+ProjectVersionInt = 409
#
# Optionally, you can get the compiler driver to check the
CcMajorVersion=36
CcMinorVersion=1
+# Interface file version (hi-boot files only)
#
-# Interface file version
+# A GHC built with HscIfaceFileVersion=n will look for
+# M.hi-boot-n, and only then for
+# M.hi-boot.
+# (It'll be happy with the latter if the former doesn't exist.)
#
-# If you should happen to make changes to the interface file format
-# that will break compatibility with older versions, up this variable.
-#
+# This variable is used ONLY for hi-boot files.
+# Its only purpose is to allow you to have a single directory
+# with multiple .hi-boot files for the same module, each
+# corresponding to a different version of GHC.
+#
+# It is propagated to hsc like this:
+# * This file is included in ghc/Makefile
+# * ghc/Makefile has a main/Constants.lhs-specific flag
+# -DHscIfaceFileVersion=$(HscIfaceFileVersion)
+# * main/Constants.lhs defines
+# interfaceFileFormatVersion = HscIfaceFileVersion
+# So there!
+
HscIfaceFileVersion=5
-# But watch out: interface file format after Simon's renamer
-# hacking isn't the same as before, but it may not make
-# any difference for the GHC boot files.
-# May 1999