RPerl
view release on metacpan or search on metacpan
Makefile.PL view on Meta::CPAN
elsif ($version_retval =~ m/Free\ Software\ Foundation/xms) {
$cxx_real = 'g++';
}
else {
print {*STDERR} 'C++ compiler ', $cxx, ' does not seem to provide the known g++ or clang++ compilers, bailing out!', "\n";
exit 0;
}
}
#print {*STDERR} '<<< DEBUG >>>: have $cxx_real = ', $cxx_real, "\n";
# must meet minimum compiler version requirements
$version_retval =~ m/(\d+\.\d+)/xms;
my $version = $1 + 0;
#print {*STDERR} '<<< DEBUG >>>: have $version = ', $version, "\n";
if ($version < $min_cxx_versions->{$cxx_real}) {
print {*STDERR} 'C++ compiler ', $cxx_real, ' version ', $version, ' found, does not meet minimum version requirement ', $min_cxx_versions->{$cxx_real} , ', bailing out!', "\n";
exit 0;
}
# fix read-only blib/lib in MS Windows
if ( $OSNAME eq 'MSWin32' ) {
push( @ExtUtils::MakeMaker::Overridable, qw(pm_to_blib) );
}
WriteMakefile(
NAME => 'RPerl',
ABSTRACT => 'Restricted Perl, The Optimizing Perl 5 Compiler',
AUTHOR => 'Will Braswell <wbraswell@cpan.org>',
VERSION_FROM => 'lib/RPerl.pm',
LICENSE => 'perl_5',
EXE_FILES => ['script/rperl'],
MIN_PERL_VERSION => '5.12.0', # NEED ANSWER, CORRELATION #rp000: is RPerl truly incompatible with Perl v5.10 and earlier?
# MAKE => 'gmake', # CORRELATION #rp200, Windows + EU::MM + GNU makef
CONFIGURE_REQUIRES => {
# DEV NOTE, CORRELATION #rp061: prioritize installation of all dists which are (or may be) dependencies of other dists or components, CONFIGURE_REQUIRES prioritizes installation, PREREQ_PM creates runtime dependency
'IO::Socket::SSL' => '2.043', # (infamously problematic) subdependency for Alien::*
'Alien::Base::ModuleBuild' => '1.02', # dependency of Alien::GSL etc, v1.02 allows setting download protocol via env var as workaround for Alien::GSL
'Alien::GMP' => '1.08', # dependency of Math::BigInt::GMP, v1.08 uses http intead of ftp, no env var workaround required
'Alien::GSL' => '1.01', # dependency of Math::GSL, set env var ALIEN_GSL_REPO_FTP_PROTOCOL=http in .travis.yml as workaround fix to avoid Travis network failures
},
PREREQ_PM => {
# DEV NOTE, CORRELATION #rp061: prioritize installation of all dists which are (or may be) dependencies of other dists or components, CONFIGURE_REQUIRES prioritizes installation, PREREQ_PM creates runtime dependency
'IO::Socket::SSL' => '2.043', # (infamously problematic) subdependency of Alien::*
'Alien::Base::ModuleBuild' => '1.02', # dependency of Alien::GSL etc, v1.02 allows setting download protocol via env var as workaround for Alien::GSL
'Alien::GMP' => '1.08', # dependency of Math::BigInt::GMP, v1.08 uses http intead of ftp, no env var workaround required
'Alien::GSL' => '1.01', # dependency of Math::GSL, set env var ALIEN_GSL_REPO_FTP_PROTOCOL=http in .travis.yml as workaround fix to avoid Travis network failures
# RPERL USER DEPENDENCIES
'ExtUtils::MakeMaker' => '7.04', # for compatibility with Inline::C >= v0.75
'PPI' => '1.242', # avoid endless loop from exponents of 2+ zeroes; https://github.com/adamkennedy/PPI/pull/230
'Test::Exception' => '0.43', # 0.43 needed because Appveyor testing required it
'Test::CPAN::Changes' => '0.400002',
'Test::Number::Delta' => '1.06', # for compatibility with Perls compiled using -Duselongdouble
'Test2::Suite' => '0.000069', # older versions are broken
'Perl::Critic' => '1.121',
'Perl::Tidy' => '20191203', # RT#130394: Allow short nested blocks; had to reformat 19 test files to pass tests again
'Inline' => '0.80',
'Inline::C' => '0.76', # wbraswell added CPPFLAGS
'Inline::CPP' => '0.74', # davido & mohawk fixed ntype warnings; davido & wbraswell fixed namespace hack; nanis fixed Win32 filename space bug
'Inline::Filters' => '0.19', # wbraswell, rurban, & bulk88 added preprocess inc array; wbraswell added CPPFLAGS; bulk88 fix space in path
'PadWalker' => '2.1',
'Module::Refresh' => '0.17',
'Filter::Simple' => '0.91',
'Module::ScanDeps' => '1.19',
'Time::HiRes' => '1.9726',
'List::MoreUtils' => '0.33',
'Math::BigInt::GMP' => '1.46',
'Math::GSL' => '0.39',
'Alien::astyle' => '0.009',
'Alien::PCRE2' => '0.015', # for regex support
'Alien::JPCRE2' => '0.012', # for regex support
# 'Alien::Pluto' => '0.003',
'MongoDB' => "v1.8.0", # NEED FIX: EU::MM does not seem to handle v-strings properly???
'IPC::Run3' => '0.048', # for subcompile, testing, etc
# RPERL SYSTEM (NON-USER) DEPENDENCIES
'Parse::Eyapp' => '1.21', # RPerl Grammar; used by grammar_recompile.sh
'File::Which' => '1.21', # RPerl Grammar; used by grammar_increment.pl
'CPAN::Meta' => '2.150005', # CPAN Distribution Build; used for generating CPAN metadata from this file
'App::Pod2CpanHtml' => '0.04', # Learning RPerl; used by pod2rperlhtml.pl, provides pod2cpanhtml
'Date::Format' => '2.24', # Learning RPerl; used by pod2rperlhtml.pl
'Pod::PseudoPod' => '0.18', # Learning RPerl; provides ppodchecker, ppod2txt, ppod2html, ppod2docbook
'Text::ASCIITable' => '0.20', # Learning RPerl; used by pod2text & ppod2txt
},
META_MERGE => {
'meta-spec' => {
version => '2',
url => 'https://metacpan.org/pod/CPAN::Meta::Spec'
},
# NEED FIX: no_index is a temporary solution to the CPAN indexing and data type package naming issue
# mst says we need to set data type package names without using 'package FOO;' like how Lexical::Types works
no_index => {
# indexing of the following packages is double-disabled, both here and also newlines-in-package-declarations
package => [
# DEV NOTE: the following package namespaces are already controlled by some other PAUSE owner on CPAN,
'array', 'boolean', 'hash', 'integer', 'method', 'number', 'object', 'ref', 'string', 'unknown',
# DEV NOTE, CORRELATION #rp045: identifiers containing underscores may be reserved by C++
# the following packages must exist outside of the RPerl::Test namespace for testing purposes
'MyClass_Good', '_MyClass_Bad'
],
# DEV NOTE: disable indexing of all test package namespaces
namespace => ['RPerl::Test'],
},
release_status => 'stable',
keywords => [qw(rperl perl5 optimizing compiler optimize compile)],
description => 'RPerl is the optimizing compiler for the Perl 5 programming language. '
. 'RPerl compiles slow low-magic Perl 5 code into fast binary code, which can optionally be mixed back into high-magic Perl apps.',
resources => {
license => ['http://dev.perl.org/licenses/'],
homepage => 'http://www.rperl.org',
bugtracker => { web => 'http://rt.cpan.org/Public/Dist/Display.html?Name=RPerl' },
repository => {
type => 'git',
url => 'git://github.com/wbraswell/rperl.git',
web => 'https://github.com/wbraswell/rperl',
},
x_IRC => "irc://irc.perl.org/#perl11",
# x_mailinglist => "http://lists.rperl.org/listinfo/dev",
( run in 0.735 second using v1.01-cache-2.11-cpan-fe3c2283af0 )