This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Win32: implement our own stat(), and hence our own utime
[perl5.git] / patchlevel.h
CommitLineData
d6376244
JH
1/* patchlevel.h
2 *
eb3b8c7b
NC
3 * Copyright (C) 1993, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
4 * 2003, 2004, 2005, 2006, 2007, 2008, 2009, by Larry Wall and others
d6376244
JH
5 *
6 * You may distribute under the terms of either the GNU General Public
7 * License or the Artistic License, as specified in the README file.
8 *
9 */
10
8971fdd9 11/*
8971fdd9
KW
12=for apidoc AmDnU|U8|PERL_REVISION
13The major number component of the perl interpreter currently being compiled or
14executing. This has been C<5> from 1993 into 2020.
15
16Instead use one of the version comparison macros. See C<L</PERL_VERSION_EQ>>.
17
18=for apidoc AmDnU|U8|PERL_VERSION
19The minor number component of the perl interpreter currently being compiled or
20executing. Between 1993 into 2020, this has ranged from 0 to 33.
21
22Instead use one of the version comparison macros. See C<L</PERL_VERSION_EQ>>.
23
24=for apidoc AmDnU|U8|PERL_SUBVERSION
25The micro number component of the perl interpreter currently being compiled or
26executing. In stable releases this gives the dot release number for
27maintenance updates. In development releases this gives a tag for a snapshot
28of the status at various points in the development cycle.
29
30Instead use one of the version comparison macros. See C<L</PERL_VERSION_EQ>>.
31
32=cut
33*/
34
f7d144c8 35#ifndef __PATCHLEVEL_H_INCLUDED__
4d8076ea 36
a9fb271f
GS
37/* do not adjust the whitespace! Configure expects the numbers to be
38 * exactly on the third column */
39
40#define PERL_REVISION 5 /* age */
f69f4f3b 41#define PERL_VERSION 33 /* epoch */
790f2f66 42#define PERL_SUBVERSION 5 /* generation */
4d8076ea 43
273cf8d1
GS
44/* The following numbers describe the earliest compatible version of
45 Perl ("compatibility" here being defined as sufficient binary/API
46 compatibility to run XS code built with the older version).
75347591 47 Normally this should not change across maintenance releases.
75347591 48
ea3df0f8
GS
49 Note that this only refers to an out-of-the-box build. Many non-default
50 options such as usemultiplicity tend to break binary compatibility
51 more often.
52
52c1368c 53 This is used by Configure et al to figure out
ff935051
JH
54 PERL_INC_VERSION_LIST, which lists version libraries
55 to include in @INC. See INSTALL for how this works.
52c1368c
FR
56
57 Porting/bump-perl-version will automatically set these to the version of perl
58 to be released for blead releases, and to 5.X.0 for maint releases. Manually
59 changing them should not be necessary.
75347591 60*/
52c1368c 61#define PERL_API_REVISION 5
f69f4f3b 62#define PERL_API_VERSION 33
790f2f66 63#define PERL_API_SUBVERSION 5
ff935051
JH
64/*
65 XXX Note: The selection of non-default Configure options, such
66 as -Duselonglong may invalidate these settings. Currently, Configure
67 does not adequately test for this. A.D. Jan 13, 2000
68*/
75347591 69
e3321bb0
GS
70#define __PATCHLEVEL_H_INCLUDED__
71#endif
72
7f0a50ff 73/*
74 local_patches -- list of locally applied less-than-subversion patches.
75 If you're distributing such a patch, please give it a name and a
76 one-line description, placed just before the last NULL in the array
77 below. If your patch fixes a bug in the perlbug database, please
78 mention the bugid. If your patch *IS* dependent on a prior patch,
79 please place your applied patch line after its dependencies. This
80 will help tracking of patch dependencies.
81
2c9b9644 82 Please either use 'diff --unified=0' if your diff supports
22adf171
A
83 that or edit the hunk of the diff output which adds your patch
84 to this list, to remove context lines which would give patch
85 problems. For instance, if the original context diff is
86
7f0a50ff 87 *** patchlevel.h.orig <date here>
88 --- patchlevel.h <date here>
89 *** 38,43 ***
90 --- 38,44 ---
91 ,"FOO1235 - some patch"
92 ,"BAR3141 - another patch"
93 ,"BAZ2718 - and another patch"
94 + ,"MINE001 - my new patch"
95 ,NULL
96 };
52c1368c
FR
97
98 please change it to
7f0a50ff 99 *** patchlevel.h.orig <date here>
100 --- patchlevel.h <date here>
101 *** 41,43 ***
102 --- 41,44 ---
103 + ,"MINE001 - my new patch"
2c9b9644 104 ,NULL
7f0a50ff 105 };
52c1368c 106
7f0a50ff 107 (Note changes to line numbers as well as removal of context lines.)
108 This will prevent patch from choking if someone has previously
109 applied different patches than you.
f7047380
A
110
111 History has shown that nobody distributes patches that also
112 modify patchlevel.h. Do it yourself. The following perl
113 program can be used to add a comment to patchlevel.h:
114
115#!perl
116die "Usage: perl -x patchlevel.h comment ..." unless @ARGV;
1ae6ead9
JL
117open PLIN, "<", "patchlevel.h" or die "Couldn't open patchlevel.h : $!";
118open PLOUT, ">", "patchlevel.new" or die "Couldn't write on patchlevel.new : $!";
f7047380
A
119my $seen=0;
120while (<PLIN>) {
121 if (/\t,NULL/ and $seen) {
122 while (my $c = shift @ARGV){
321e50c7
GA
123 $c =~ s|\\|\\\\|g;
124 $c =~ s|"|\\"|g;
f7047380
A
125 print PLOUT qq{\t,"$c"\n};
126 }
127 }
128 $seen++ if /local_patches\[\]/;
129 print PLOUT;
130}
22adf171
A
131close PLOUT or die "Couldn't close filehandle writing to patchlevel.new : $!";
132close PLIN or die "Couldn't close filehandle reading from patchlevel.h : $!";
538f996c 133close DATA; # needed to allow unlink to work win32.
f7047380
A
134unlink "patchlevel.bak" or warn "Couldn't unlink patchlevel.bak : $!"
135 if -e "patchlevel.bak";
136rename "patchlevel.h", "patchlevel.bak" or
137 die "Couldn't rename patchlevel.h to patchlevel.bak : $!";
138rename "patchlevel.new", "patchlevel.h" or
139 die "Couldn't rename patchlevel.new to patchlevel.h : $!";
140__END__
141
22adf171
A
142Please keep empty lines below so that context diffs of this file do
143not ever collect the lines belonging to local_patches() into the same
144hunk.
f7047380 145
7f0a50ff 146 */
f7047380 147
e3321bb0 148#if !defined(PERL_PATCHLEVEL_H_IMPLICIT) && !defined(LOCAL_PATCH_COUNT)
486cd780
NC
149# if defined(PERL_IS_MINIPERL)
150# define PERL_PATCHNUM "UNKNOWN-miniperl"
486cd780 151# define PERL_GIT_UNPUSHED_COMMITS /*leave-this-comment*/
ec47230b
NC
152# elif defined(PERL_MICRO)
153# define PERL_PATCHNUM "UNKNOWN-microperl"
ec47230b 154# define PERL_GIT_UNPUSHED_COMMITS /*leave-this-comment*/
486cd780 155# else
dcff826f 156#include "git_version.h"
486cd780 157# endif
27da23d5 158static const char * const local_patches[] = {
3255d14b 159 NULL
691ce773
GA
160#ifdef PERL_GIT_UNCOMMITTED_CHANGES
161 ,"uncommitted-changes"
162#endif
eb5c076f 163 PERL_GIT_UNPUSHED_COMMITS /* do not remove this line */
3255d14b 164 ,NULL
7f0a50ff 165};
166
22adf171
A
167
168
b33f1439 169/* Initial space prevents this variable from being inserted in config.sh */
170# define LOCAL_PATCH_COUNT \
c3caa5c3 171 ((int)(C_ARRAY_LENGTH(local_patches)-2))
f7d144c8 172
cceca5ed 173/* the old terms of reference, add them only when explicitly included */
cceca5ed
GS
174#define PATCHLEVEL PERL_VERSION
175#undef SUBVERSION /* OS/390 has a SUBVERSION in a system header */
176#define SUBVERSION PERL_SUBVERSION
177#endif