@@ -1011,38 +1011,46 @@ building bison 2.3.
10111011bison 2.3
10121012=========
10131013
1014- This is an older version of bison required for the bison files in perl 5.10.1 .
1014+ This is an older version of bison required for the bison files in older perls .
10151015We backwards-bootstrap this from 3.4.1, using 3.4.1 to compile the bison files
10161016in 2.3. This parser works sufficiently well for perl 5.10.1.
10171017
10181018bison 3.4.2
10191019===========
10201020
1021- Bison 3.4.1 is buggy and segfaults when perl 5.32.1 is built. This is probably
1021+ Bison 3.4.1 is buggy and segfaults when perl is built. This is probably
10221022because it was built with a hand-written makefile. We do not build the latest
1023- bison because perl 5.32.1 requires bison <= 3.4.2.
1023+ bison because perl maybe requires bison <= 3.4.2.
1024+ This step could be improved, possibly.
10241025
1025- perl 5.10.1
1026- ===========
1026+ dist 3.5
1027+ ========
10271028
1028- Perl 5.10.1 is an intermediate version used before Perl 5.32. We require this
1029- version as it adds a couple of modules into lib/ required to regenerate files in
1030- Perl 5.32. We still use the Makefile instead of the metaconfig strategy, as
1031- metaconfig history becomes poor more than a few years back.
1029+ dist is perl's package used for generating Perl's Configure (which is written in
1030+ Perl itself). We 'compile' (aka generate) metaconfig, manifake and makegloss
1031+ from dist. We do not use dist's build system because it itself uses dist.
10321032
1033- dist 3.5-236
1034- ============
1033+ perl-Devel-Tokenizer-C 0.11
1034+ ===========================
10351035
1036- dist is perl's package used for generating Perl's Configure (which is written in
1037- Perl itself). We 'compile' (aka generate) metaconfig and manifake only from dist.
1038- We do not use dist's build system because it itself uses dist.
1036+ Devel::Tokenizer: :C is a Perl module used by the ``regen/keywords.pl `` script in
1037+ all newer perls. After each perl build, this module is rebuilt against the new
1038+ perl version. This will not be repeated in this document.
1039+
1040+ perl 5.8.9
1041+ ==========
1042+
1043+ This is the final version that can be built by perl 5.6. At this point we move
1044+ to using metaconfig rather than hand-written makefiles, as it is more
1045+ sustainable and produces more functional builds. This version brings a number
1046+ of new files to be regenerated. The metaconfig version was chosen by trial and
1047+ error, as there is no obvious history indicating which version to use.
10391048
1040- perl 5.32.1
1049+ perl 5.12.5
10411050===========
10421051
1043- We finally compile a full version of Perl using Configure. This includes all base
1044- extensions required and is the latest version of Perl. We are now basically able
1045- to run any Perl application we want.
1052+ This is the final version that can be built by perl 5.8. Again, there are new
1053+ files to be regenerated.
10461054
10471055libarchive 3.5.2
10481056================
@@ -1120,6 +1128,80 @@ This version of binutils provides a more comprehensive set of programming tools
11201128creating and managing binary programs. It also includes modern versions of the ``ld ``
11211129linker, the ``as `` assembler and the ``ar `` program.
11221130
1131+ perl 5.15.7
1132+ ===========
1133+
1134+ This development version of perl is the latest version that can be built by perl
1135+ 5.12. Usually, we would avoid using development releases of perl. However, in
1136+ the 5.15 development cycle, the Unicode system at the core of perl was changed
1137+ somewhat to use a new script ``regen/mk_invlists.pl ``, which can only be built
1138+ by a 5.15 version. So, we need to build a 5.15 version to progress. 5.15.7 is
1139+ the last version with the old Unicode system.
1140+
1141+ perl 5.16.3
1142+ ===========
1143+
1144+ This is the stable version of perl corresponding to 5.15 series. The
1145+ development version is insufficient to build the following perl releases, and
1146+ is quite buggy, but is enough to at least build 5.16.3.
1147+
1148+ perl 5.17.2, 5.17.4
1149+ ===================
1150+
1151+ Throughout the 5.17/18 development cycle, the new Unicode system went through a
1152+ lot of significant internal changes and restructuring. In particular, the
1153+ system was transformed to use a lot more pregenerated code, particularly
1154+ macros. There are multiple instances where a new internal symbol or macro
1155+ was introduced, and then immediately used somewhere else. These instances each
1156+ depend on one another in one way or another. All these changes mean we end
1157+ up building *two * development versions of perl to break these cycles in the
1158+ development cycle.
1159+
1160+ perl 5.18.4
1161+ ===========
1162+
1163+ This is another stable version of perl. We need this version because one final
1164+ aforementioned cycle has to be broken with this version. Also, the development
1165+ versions seem to be reasonably buggy again. Many patches need to be added to
1166+ this version to allow any future perl to be built.
1167+
1168+ perl 5.22.4
1169+ ===========
1170+
1171+ This is the last version that can be fairly easily built with patching perl
1172+ 5.18. The next version introduces a few new complexities, so this seems a good
1173+ target. We also backport the Unicode updates from 5.24 to 5.22 to allow 5.24
1174+ to be built with this version (see 5.24 for more information).
1175+
1176+ perl 5.24.4
1177+ ===========
1178+
1179+ Up until Perl 5.30, there are a number of updates and changes to the Unicode
1180+ tables, in fact too many to reasonably backport. The better solution is to
1181+ use the raw Unicode data and table generating script from 5.30 to an earlier
1182+ version. However, it uses too many new features to be used with 5.22, so we
1183+ need an intermediate version. 5.24 seems to work.
1184+
1185+ perl 5.30.3
1186+ ===========
1187+
1188+ 5.30 is the last version that builds cleanly with 5.24. 5.32+ have a weird
1189+ hanging bug in one of the regen scripts when using Perl 5.24, presumably
1190+ because of a new language construct that is not yet available.
1191+
1192+ perl 5.36.3
1193+ ===========
1194+
1195+ 5.36 is the last version that builds cleanly with 5.30. 5.38+ introduce a
1196+ number of new language features into the mk_invlists.pl script that are not
1197+ easily removed (there have been too many changes). 5.36 has enough support
1198+ of the new features.
1199+
1200+ perl 5.42.0
1201+ ===========
1202+
1203+ 5.42 is the latest version of Perl! The Perl bootstrap is complete.
1204+
11231205gperf 3.1
11241206=========
11251207
0 commit comments