[Git][ghc/ghc][wip/T23991] users-guide: Refactor handling of :base-ref: et al.
Ben Gamari (@bgamari)
gitlab at gitlab.haskell.org
Wed Sep 27 14:40:39 UTC 2023
Ben Gamari pushed to branch wip/T23991 at Glasgow Haskell Compiler / GHC
Commits:
ce7271d7 by Ben Gamari at 2023-09-27T10:40:32-04:00
users-guide: Refactor handling of :base-ref: et al.
- - - - -
4 changed files:
- configure.ac
- docs/users_guide/ghc_config.py.in
- hadrian/src/Rules/Generate.hs
- − m4/library_version.m4
Changes:
=====================================
configure.ac
=====================================
@@ -1145,20 +1145,6 @@ AC_SUBST(BUILD_MAN)
AC_SUBST(BUILD_SPHINX_HTML)
AC_SUBST(BUILD_SPHINX_PDF)
-dnl ** Determine library versions
-dnl The packages below should include all packages needed by
-dnl doc/users_guide/ghc_config.py.in.
-LIBRARY_VERSION(base)
-LIBRARY_VERSION(Cabal, Cabal/Cabal/Cabal.cabal)
-dnl template-haskell.cabal and ghc-prim.cabal are generated later
-dnl by Hadrian but the .in files already have the version
-LIBRARY_VERSION(template-haskell, template-haskell/template-haskell.cabal.in)
-LIBRARY_VERSION(array)
-LIBRARY_VERSION(ghc-prim, ghc-prim/ghc-prim.cabal.in)
-LIBRARY_VERSION(ghc-compact)
-LIBRARY_ghc_VERSION="$ProjectVersion"
-AC_SUBST(LIBRARY_ghc_VERSION)
-
if grep ' ' compiler/ghc.cabal.in 2>&1 >/dev/null; then
AC_MSG_ERROR([compiler/ghc.cabal.in contains tab characters; please remove them])
fi
=====================================
docs/users_guide/ghc_config.py.in
=====================================
@@ -18,14 +18,14 @@ libs_base_uri = '../libraries'
# N.B. If you add a package to this list be sure to also add a corresponding
# LIBRARY_VERSION macro call to configure.ac.
lib_versions = {
- 'base': '@LIBRARY_base_VERSION@',
- 'ghc-prim': '@LIBRARY_ghc_prim_VERSION@',
- 'template-haskell': '@LIBRARY_template_haskell_VERSION@',
- 'ghc-compact': '@LIBRARY_ghc_compact_VERSION@',
- 'ghc': '@LIBRARY_ghc_VERSION@',
- 'parallel': '@LIBRARY_parallel_VERSION@',
- 'Cabal': '@LIBRARY_Cabal_VERSION@',
- 'array': '@LIBRARY_array_VERSION@',
+ 'base': '@LIBRARY_base_UNIT_ID@',
+ 'ghc-prim': '@LIBRARY_ghc_prim_UNIT_ID@',
+ 'template-haskell': '@LIBRARY_template_haskell_UNIT_ID@',
+ 'ghc-compact': '@LIBRARY_ghc_compact_UNIT_ID@',
+ 'ghc': '@LIBRARY_ghc_UNIT_ID@',
+ 'parallel': '@LIBRARY_parallel_UNIT_ID@',
+ 'Cabal': '@LIBRARY_Cabal_UNIT_ID@',
+ 'array': '@LIBRARY_array_UNIT_ID@',
}
version = '@ProjectVersion@'
=====================================
hadrian/src/Rules/Generate.hs
=====================================
@@ -320,7 +320,21 @@ packageVersions = foldMap f [ base, ghcPrim, compiler, ghc, cabal, templateHaske
where
f :: Package -> Interpolations
f pkg = interpolateVar var $ version <$> readPackageData pkg
- where var = "LIBRARY_" <> pkgName pkg <> "_VERSION"
+ where var = "LIBRARY_" <> escapedPkgName pkg <> "_VERSION"
+
+packageUnitIds :: Stage -> Interpolations
+packageUnitIds stage =
+ foldMap f [ base, ghcPrim, compiler, ghc, cabal, templateHaskell, ghcCompact, array ]
+ where
+ f :: Package -> Interpolations
+ f pkg = interpolateVar var $ pkgUnitId stage pkg
+ where var = "LIBRARY_" <> escapedPkgName pkg <> "_UNIT_ID"
+
+escapedPkgName :: Package -> String
+escapedPkgName = map f . pkgName
+ where
+ f '-' = '_'
+ f other = other
templateRule :: FilePath -> Interpolations -> Rules ()
templateRule outPath interps = do
@@ -348,6 +362,7 @@ templateRules = do
templateRule "libraries/template-haskell/template-haskell.cabal" $ projectVersion
templateRule "libraries/prologue.txt" $ packageVersions
templateRule "docs/index.html" $ packageVersions
+ templateRule "docs/users_guide/ghc_config.py" $ packageUnitIds Stage1
-- Generators
=====================================
m4/library_version.m4 deleted
=====================================
@@ -1,10 +0,0 @@
-# LIBRARY_VERSION(lib, [cabal_file])
-# --------------------------------
-# Gets the version number of a library.
-# If $1 is ghc-prim, then we define LIBRARY_ghc_prim_VERSION as 1.2.3
-# $2 points to the directory under libraries/
-AC_DEFUN([LIBRARY_VERSION],[
-cabal_file=m4_default([$2],[$1/$1.cabal])
-LIBRARY_[]translit([$1], [-], [_])[]_VERSION=`grep -i "^version:" libraries/${cabal_file} | sed "s/.* //"`
-AC_SUBST(LIBRARY_[]translit([$1], [-], [_])[]_VERSION)
-])
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/ce7271d7b0aa183082f3d09f760d92bbf5ff4d0a
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/ce7271d7b0aa183082f3d09f760d92bbf5ff4d0a
You're receiving this email because of your account on gitlab.haskell.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-commits/attachments/20230927/dc59993b/attachment-0001.html>
More information about the ghc-commits
mailing list