summaryrefslogtreecommitdiff
path: root/Master/source/tlperl/tlperl.README
diff options
context:
space:
mode:
Diffstat (limited to 'Master/source/tlperl/tlperl.README')
-rw-r--r--Master/source/tlperl/tlperl.README172
1 files changed, 51 insertions, 121 deletions
diff --git a/Master/source/tlperl/tlperl.README b/Master/source/tlperl/tlperl.README
index a56c80b5a42..1ca3911431d 100644
--- a/Master/source/tlperl/tlperl.README
+++ b/Master/source/tlperl/tlperl.README
@@ -1,4 +1,4 @@
-NOTES ON BUILDING TLPERL 2015
+NOTES ON BUILDING TLPERL 2016
BUILD PLATFORM
@@ -7,18 +7,20 @@ Linux.
GETTING THE PERL SOURCE
-I downloaded the latest stable Perl source 5.20.2 from CPAN.
+I downloaded the latest stable Perl source 5.22.1 from CPAN.
THE COMPILER
The file README.win32 in the root of the distribution contains
compilation instructions, which lists various supported MinGW
distributions, including a trimmed-down version of MinGW64 offered
-by the Strawberry Perl project. I unzipped
-mingw64-w32-gcc4.8.3_20140727.zip from
-http://strawberryperl.com/package/kmx/32_gcctoolchain/ and
+by the Strawberry Perl project. I downloaded
+mingw64-w32-gcc4.9.2_20150513.zip and
32bit_dmake-4.12.2-bin_20140810.zip from
-http://strawberryperl.com/package/kmx/32_tools/
+http://strawberryperl.com/package/kmx/32_gcctoolchain/ and
+http://strawberryperl.com/package/kmx/32_tools/ respectively,
+unzipped mingw and put dmake.exe and the dmake startup subdirectory
+in the bin subdirectory of mingw.
This MinGW compiler does not require installation; it is sufficient
to prepend <root>\bin to the searchpath before use.
@@ -28,91 +30,13 @@ BUILDING PERL
I went to the win32 subdirectory of the Perl source. In makefile.mk
I adjusted relevant settings to my build environment. As in the
previous release, I turned off optimization in the hope to avoid
-some intractable failures:
-
-*** makefile.mk.orig 2015-01-28 22:08:46.000000000 +0100
---- makefile.mk 2015-04-24 14:02:38.037487500 +0200
-***************
-*** 27,33 ****
- # newly built perl.
- #
- INST_DRV *= c:
-! INST_TOP *= $(INST_DRV)\perl
-
- #
- # Uncomment if you want to build a 32-bit Perl using a 32-bit compiler
---- 27,33 ----
- # newly built perl.
- #
- INST_DRV *= c:
-! INST_TOP *= $(INST_DRV)\tlperl
-
- #
- # Uncomment if you want to build a 32-bit Perl using a 32-bit compiler
-***************
-*** 144,150 ****
- # If you are using GCC, 4.3 or later by default we add the -fwrapv option.
- # See https://rt.perl.org/Ticket/Display.html?id=121505
- #
-! #GCCWRAPV *= define
-
- #
- # If you are using Intel C++ Compiler uncomment this
---- 144,150 ----
- # If you are using GCC, 4.3 or later by default we add the -fwrapv option.
- # See https://rt.perl.org/Ticket/Display.html?id=121505
- #
-! GCCWRAPV *= define
-
- #
- # If you are using Intel C++ Compiler uncomment this
-***************
-*** 209,215 ****
- # not be quoted)
- #
- .IF "$(CCTYPE)" == "GCC"
-! CCHOME *= C:\MinGW
- .ELSE
- CCHOME *= $(MSVCDIR)
- .ENDIF
---- 209,215 ----
- # not be quoted)
- #
- .IF "$(CCTYPE)" == "GCC"
-! CCHOME *= X:\mingw
- .ELSE
- CCHOME *= $(MSVCDIR)
- .ENDIF
-***************
-*** 465,474 ****
- -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32
-
- .IF "$(CFG)" == "Debug"
-! OPTIMIZE = -g -O2 -DDEBUGGING
- LINK_DBG = -g
- .ELSE
-! OPTIMIZE = -s -O2
- LINK_DBG = -s
- .ENDIF
-
---- 465,474 ----
- -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32
-
- .IF "$(CFG)" == "Debug"
-! OPTIMIZE = -g -O0 -DDEBUGGING
- LINK_DBG = -g
- .ELSE
-! OPTIMIZE = -s -O0
- LINK_DBG = -s
- .ENDIF
-
-[end of patch]
+some intractable failures. A diff for makefile.mk is included.
I compiled with
- dmake
+ dmake && dmake test
-and installed with
+There were no test errors. I installed with
dmake installbare
@@ -121,65 +45,71 @@ and installed with
INSTALLING MODULES
When adding modules, I added the new Perl bin directory to the
-searchpath. I downloaded all the modules from CPAN and added them with
+searchpath. I downloaded needed modules from CPAN and added them
+with
perl Makefile.PL && dmake && dmake test && dmake install
They are, in order of processing:
-Math::Int64 0.52
+Math::Int64 0.54
IO::String 1.08
Digest::SHA1 2.13
-File::Which 1.16
+File::Which 1.21
Encode::compat 0.07
-Encode::Locale 1.04
+Encode::Locale 1.05
Windows-specific:
-Win32::API 0.80
-Win32::WinError 0.04 (just copying WinError.pm to lib/Win32)
+Win32::API 0.84
+Win32::WinError 0.04 (just copying WinError.pm to site/lib/Win32)
+
Win32API::Registry 0.33
-Win32::Console 0.10
-Win32::TieRegistry 0.29 (errors in testing, as always)
-Win32::Shortcut 0.08
-Win32::OLE 0.1712 - warnings
+Win32::Console 0.10 (no tests)
+Win32::TieRegistry 0.30 (tests ok, for once)
+Win32::Shortcut 0.08 (no tests)
+Win32::OLE 0.1712
LWP and dependencies, in order of compilation/installation:
-Socket 2.018
+Socket 2.021
Date::Parse 2.30 (file TimeDate-2.30.tar.gz)
HTTP::Date 6.02
File::Listing 6.04
IO::HTML 1.001
LWP::MediaTypes 6.02
-URI 1.67
-HTTP::Message 6.06
+URI 1.71
+HTTP::Message 6.11
HTML::Tagset 3.20
-HTML::Parser 3.71
+HTML::Parser 3.72
WWW::RobotRules 6.02
HTTP::Negotiate 6.01
-Net::HTTP 6.07
-Mozilla::CA 20141217
+Net::HTTP 6.09
+Mozilla::CA 20160104
HTTP::Daemon 6.01
HTTP::Cookies 6.01
-LWP 6.13 (file libwww-perl-6.13.tar.gz)
+LWP 6.15 (file libwww-perl-6.15.tar.gz)
Perl/Tk:
Tk 804.033
-This module did not compile rightaway.
+This module did not compile rightaway:
-1. In Tk-804.033/PNG/zlib/win32/zlib.def I had to remove the LIBRARY
-line at the start. I also removed - maybe unnecessarily - the lines
-starting with `;'.
+1. In Tk-804.033/PNG/zlib/win32/zlib.def I had to comment out the
+ LIBRARY line at the start.
2. An entry '-limm32' somehow did not make it into LDLOADLIBS in the
-generated makefile. After manually adding this at the end of the
-LDLOADLIBS definition, the module compiled.
+ generated Makefile in the Tk source root directory. After
+ manually adding this at the end of the LDLOADLIBS definition,
+ dmake did succeed.
Tk-DirSelect 1.12
+And another Windows module, not previously included:
+
+Win32-Process-0.16
+
MAKING PERL PORTABLE
There were hard-coded paths in lib/Config.pm and
@@ -201,20 +131,22 @@ Config_heavy.pl got a similar treatment, in particular the
single-quoted here-documents with markers !END! (very long) and
EOVIRTUAL.
-The original versions are still present under the names Config.pm.orig
-and Config_heavy.pl.orig.
+The original versions are still present in the lib directory under
+the names Config.pm.orig and Config_heavy.pl.orig.
MODIFICATIONS FOR TEXLIVE
-- as explained above: our versions of lib/Config.pm and lib/Config_heavy.pl
- compute the location of tlperl dynamically.
-- The site/lib subdirectory is folded into lib.
-- The lib/pods directory has been removed.
+- As explained above: our versions of lib/Config.pm and lib/Config_heavy.pl
+ compute the location of tlperl dynamically. These files still
+ contain a hard-coded path for mingw.
+- The lib/pods directory has been removed, to save some space.
- The bin subdirectory now only contains exe- and dll files;
batch files and Perl scripts have been removed.
- Copied from mingw/bin to tlperl/bin:
libgcc_s_sjlj_1.dll, libstdc++-6.dll and libwinpthread-1.dll
+This time around, I kept the site directory tree separate.
+
TESTING WITH TEXLIVE
For testing the new Perl with the installer, I unpacked the net
@@ -224,13 +156,11 @@ For testing the new Perl with tlmgr-gui.exe from the installed TeX
Live, I copied it into the fresh installation.
Both tests were done with 32-bits Windows 7 Home Premium as regular
-user and 64-bits Windows 8 Professional as admin user.
+user and 64-bits Windows 7 Professional as admin user.
tlmgr-gui appeared to work as intended. I also successfully ran the
-uninstaller. However, later there turned out to be a transient
-problem with updating tlperl, whose update coincided with a tlmgr
-update.
+uninstaller.
Siep Kroonenberg
-Last revision: May 5 2015
+Last revision: April 2016