Name: perl-MCE Version: 1.829 Release: 1%{?dist} Summary: Many-core Engine for Perl providing parallel processing capabilities License: GPL+ or Artistic URL: http://search.cpan.org/dist/MCE/ Source0: http://www.cpan.org/authors/id/M/MA/MARIOROY/MCE-%{version}.tar.gz Patch0: MCE-1.818-Fix-sharp-bang-line.patch Patch1: MCE-1.812-Sereal-deps.patch BuildArch: noarch # Module Build BuildRequires: coreutils BuildRequires: findutils BuildRequires: make BuildRequires: perl BuildRequires: perl-generators BuildRequires: perl(ExtUtils::MakeMaker) # Module Runtime BuildRequires: perl(base) BuildRequires: perl(bytes) BuildRequires: perl(Carp) BuildRequires: perl(constant) BuildRequires: perl(Exporter) BuildRequires: perl(Fcntl) BuildRequires: perl(File::Path) BuildRequires: perl(IO::Handle) BuildRequires: perl(Scalar::Util) BuildRequires: perl(Sereal) >= 3.015 BuildRequires: perl(Socket) BuildRequires: perl(Storable) >= 2.04 BuildRequires: perl(strict) BuildRequires: perl(Symbol) BuildRequires: perl(threads::shared) BuildRequires: perl(Time::HiRes) BuildRequires: perl(warnings) # Script Runtime BuildRequires: perl(Cwd) BuildRequires: perl(Getopt::Long) BuildRequires: perl(lib) BuildRequires: perl(vars) # Test Suite BuildRequires: perl(Test::More) >= 0.88 # Dependencies Requires: perl(:MODULE_COMPAT_%(eval "$(perl -V:version)"; echo $version)) Requires: perl(File::Path) Requires: perl(IO::Handle) Requires: perl(Sereal) >= 3.015 Requires: perl(Storable) >= 2.04 Requires: perl(Symbol) Requires: perl(threads::shared) %description Many-core Engine (MCE) for Perl helps enable a new level of performance by maximizing all available cores. MCE spawns a pool of workers and therefore does not fork a new process per each element of data. Instead, MCE follows a bank queuing model. Imagine the line being the data and bank-tellers the parallel workers. MCE enhances that model by adding the ability to chunk the next n elements from the input stream to the next available worker. %package tools Summary: Many-core Engine command line tools Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release} Requires: grep, gzip %description tools This package delivers command line tools like mce_grep(1) that utilize the Many-core Engine (MCE) Perl library. %prep %setup -q -n MCE-%{version} # Fix sharp-bang line %patch0 # Avoid hard dependencies on Sereal %patch1 %build MCE_INSTALL_TOOLS=1 perl Makefile.PL INSTALLDIRS=vendor make %{?_smp_mflags} %install make pure_install DESTDIR=%{buildroot} find %{buildroot} -type f -name .packlist -delete %{_fixperms} -c %{buildroot} # Add symlinks for grep variants ln -s mce_grep %{buildroot}%{_bindir}/mce_egrep ln -s mce_grep %{buildroot}%{_bindir}/mce_fgrep ln -s mce_grep %{buildroot}%{_bindir}/mce_zgrep ln -s mce_grep %{buildroot}%{_bindir}/mce_zegrep ln -s mce_grep %{buildroot}%{_bindir}/mce_zfgrep %check make test %files %if 0%{?_licensedir:1} %license LICENSE Copying %else %doc LICENSE Copying %endif %doc Changes Credits README.md %doc %{perl_vendorlib}/MCE.pod %doc %{perl_vendorlib}/MCE/Core.pod %doc %{perl_vendorlib}/MCE/Examples.pod %dir %{perl_vendorlib}/MCE/ %dir %{perl_vendorlib}/MCE/Core/ %{perl_vendorlib}/MCE.pm %{perl_vendorlib}/MCE/Candy.pm %{perl_vendorlib}/MCE/Core/Input/ %{perl_vendorlib}/MCE/Core/Manager.pm %{perl_vendorlib}/MCE/Core/Validation.pm %{perl_vendorlib}/MCE/Core/Worker.pm %{perl_vendorlib}/MCE/Flow.pm %{perl_vendorlib}/MCE/Grep.pm %{perl_vendorlib}/MCE/Loop.pm %{perl_vendorlib}/MCE/Map.pm %{perl_vendorlib}/MCE/Mutex.pm %{perl_vendorlib}/MCE/Mutex/ %{perl_vendorlib}/MCE/Queue.pm %{perl_vendorlib}/MCE/Relay.pm %{perl_vendorlib}/MCE/Signal.pm %{perl_vendorlib}/MCE/Step.pm %{perl_vendorlib}/MCE/Stream.pm %{perl_vendorlib}/MCE/Subs.pm %{perl_vendorlib}/MCE/Util.pm %{_mandir}/man3/MCE.3* %{_mandir}/man3/MCE::Candy.3* %{_mandir}/man3/MCE::Core.3* %{_mandir}/man3/MCE::Examples.3* %{_mandir}/man3/MCE::Flow.3* %{_mandir}/man3/MCE::Grep.3* %{_mandir}/man3/MCE::Loop.3* %{_mandir}/man3/MCE::Map.3* %{_mandir}/man3/MCE::Mutex.3* %{_mandir}/man3/MCE::Mutex::Channel.3* %{_mandir}/man3/MCE::Mutex::Flock.3* %{_mandir}/man3/MCE::Queue.3* %{_mandir}/man3/MCE::Relay.3* %{_mandir}/man3/MCE::Signal.3* %{_mandir}/man3/MCE::Step.3* %{_mandir}/man3/MCE::Stream.3* %{_mandir}/man3/MCE::Subs.3* %{_mandir}/man3/MCE::Util.3* %files tools %{_bindir}/mce_grep %{_bindir}/mce_egrep %{_bindir}/mce_fgrep %{_bindir}/mce_zgrep %{_bindir}/mce_zegrep %{_bindir}/mce_zfgrep %changelog * Wed May 3 2017 Paul Howarth - 1.829-1 - Update to 1.829 - Reduced memory consumption * Sat Apr 29 2017 Paul Howarth - 1.828-1 - Update to 1.828 - Do not enable barrier mode for Queue on the Windows platform - Fixed MCE::Mutex::Flock, tmp_file missing script name in path - Added Curses and Prima to list for enabling the posix_exit option - Allow a hash as input_data: Core API, MCE::{ Flow, Loop, Step } - Improved API documentation on MCE models with more synopsis - Enhanced IPC and signal handling, reduced memory consumption - Make tmp_dir on demand in MCE::Signal; ditto for sess_dir in MCE - Load Fcntl, File::Path, Symbol on demand * Wed Apr 5 2017 Paul Howarth - 1.827-1 - Update to 1.827 - Do not enable barrier mode in Queue if constructed inside a thread or by MCE Model (e.g. Step, Stream); ditto for fast => 1 option - Updated MCE not to croak when running Perl in taint mode via perl -T; failing -T were MCE::Core::Input::{ Generator, Sequence }, MCE::Signal and MCE::Util - Added Denis Fateyev, Felipe Gasper and Paul Howarth to Credits * Mon Apr 3 2017 Paul Howarth - 1.826-1 - Update to 1.826 - Performance improvements in MCE::Queue - Is now safe running MCE with the Wx GUI toolkit (wxWidgets) - BR:/R: perl(Sereal) unconditionally * Sat Apr 1 2017 Paul Howarth - 1.824-1 - Update to 1.824 - Check for EINTR during sysread and syswrite - Improved reliability when running nested MCE sessions - Updated MCE::Mutex with Channel and Fcntl implementations - Calibrated the number of data-channels for IPC - Completed validation for using MCE with 200+ cores - Completed validation for running MCE on a box having 100+ cores - Tuned the number of data-channels for IPC, setting upper limit in MCE::Core::Input::{ Handle and Sequence } to not impact the OS kernel; the result is better performance, yet graceful * Sun Mar 19 2017 Paul Howarth - 1.821-1 - Update to 1.821 - Improved reliability when running MCE with threads - Added parallel Net::Pcap and Ping demonstrations on Github: https://github.com/marioroy/mce-examples/tree/master/network - Optimized 'dequeue' method in MCE::Queue - Optimized 'synchronize' method in MCE::Mutex * Thu Mar 9 2017 Paul Howarth - 1.820-1 - Update to 1.820 - Improved reliability when running MCE inside an eval block * Sat Mar 4 2017 Paul Howarth - 1.819-1 - Update to 1.819 - Fixed issue with localizing AUTOFLUSH variable before autoflush handles * Thu Mar 2 2017 Paul Howarth - 1.818-1 - Update to 1.818 - Updated bin/mce_grep for determining chunk level and chunk size - Fixed an issue for not seeing STDERR output with '--chunk-level=file' - Added support for zgrep, zegrep, and zfgrep - Replaced Sereal with Sereal::Decoder and Sereal::Encoder in Makefile, inside recommends section; ditto for META files - Refactored MCE::Queue: merged local and manager code base into one - Removed t/04_norm_que_local.t and t/04_prio_que_local.t - Added 'end' method to MCE::Queue - Updated documentation on dequeue and pending - Add symlinks for mce_grep variants * Sat Feb 25 2017 Paul Howarth - 1.817-1 - Update to 1.817 - Revised the description of max_retries in MCE::Core.pod - Improved bin/mce_grep with -r parameter: - If no paths are given, start recursively in the current directory rather than await data from STDIN - Set chunk-level accordingly to list mode * Fri Feb 24 2017 Paul Howarth - 1.815-1 - Update to 1.815 - Fixed divide-by-zero error in MCE->yield - Refactored code for the interval option by moving the code to the manager process, which allows the manager process to accommodate the next available worker ready to run; previously, a worker taking a long time resulted in empty time slots - Revised the description of posix_exit in MCE::Core.pod * Mon Feb 20 2017 Paul Howarth - 1.814-1 - Update to 1.814 - Enhanced the progress option for use with MCE->process - Updated progress demonstrations in MCE::Core.pod * Thu Feb 16 2017 Paul Howarth - 1.813-1 - Update to 1.813 - Added progress option, a code block for receiving info on progress made; see MCE::Core.pod for demonstrations accommodating all input data types * Wed Feb 15 2017 Paul Howarth - 1.812-1 - Update to 1.812 - Bumped minimum requirement for Sereal to 3.015 when available; added check ensuring matching version for Encoder and Decoder - Add patch to avoid unintentional hard dependencies on Sereal * Tue Feb 14 2017 Paul Howarth - 1.811-1 - Update to 1.811 - Fixed bug in MCE::Queue (dequeue_nb) when queue has zero items - Applied small optimization in MCE::Core::Input::Sequence and Generator - Added cross-platform template to MCE::Examples for making an executable - Removed signal handling for XCPU and XFSZ from MCE::Signal - Imply posix_exit => 1 if Gearman::XS or Gearman::Util is present during MCE construction - Added MCE + Gearman demonstrations (xs and non-xs) on Github: https://github.com/marioroy/mce-examples/tree/master/gearman_xs https://github.com/marioroy/mce-examples/tree/master/gearman - Changed kilobytes and megabytes to kibiBytes (KiB) and mebiBytes (MiB) respectively inside the documentation * Sat Feb 11 2017 Fedora Release Engineering - 1.810-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild * Sat Dec 10 2016 Paul Howarth - 1.810-1 - Update to 1.810 - Updated check for IO handle allowed; this allows $gather_fh = *STDOUT{IO} construction in Perl ≤ 5.10.1 * Thu Nov 24 2016 Paul Howarth - 1.809-1 - Update to 1.809 - Bug fixes for running MCE inside threads - Random numbers are unique between workers * Sat Nov 5 2016 Paul Howarth - 1.808-1 - Update to 1.808 - Workers persist unless shutdown explicitly while running alongside the Mojolicious framework * Wed Nov 2 2016 Paul Howarth - 1.807-1 - Update to 1.807 - Enhanced relay capabilities - Added Mandelbrot example to MCE::Example - Added extra demonstrations to MCE::Relay - Added test script - Tweaked manager-loop delay for special cases - applies to MSWin32 only * Wed Oct 12 2016 Paul Howarth - 1.806-1 - Update to 1.806 - Fixed two typos - Support input_data with nested arrays in MCE Models * Fri Sep 2 2016 Paul Howarth - 1.805-1 - Update to 1.805 - Fixed bug in MCE::Queue (GH#4) - Improved support for running MCE with Tk; added Tk demonstrations to MCE::Examples * Fri Jul 29 2016 Paul Howarth - 1.804-1 - Update to 1.804 - Removed the sleep statement in MCE->restart_worker - Added FCGI::ProcManager demonstrations to MCE::Examples - Automatically set posix_exit to 1 whenever (F)CGI.pm is present (https://github.com/marioroy/mce-perl/issues/1) * Mon Jul 11 2016 Paul Howarth - 1.803-1 - Update to 1.803 - Re-enabled Sereal 3.008+ for Perl < v5.12.0, if available - Optimized dequeue methods in MCE::Queue * Mon Jul 4 2016 Paul Howarth - 1.802-1 - Update to 1.802 - Default to Storable for serialization in Perl less than v5.12.0; Sereal 3.008+, if available, is loaded automatically in Perl v5.12+ * Sun Jul 3 2016 Paul Howarth - 1.801-1 - Update to 1.801 - Fixed race condition in Queue->await - MCE 1.801 is stable on all supported platforms - Completed work supporting cyclical include of MCE Core / Models - Updated MCE to support Perl included with Git Bash - Renamed temp dir from 'mce' to 'Perl-MCE' under user's %%TEMP%% location on Windows, e.g. Native Perl, Cygwin, Git Bash - BR: perl-generators unconditionally * Sun Jun 19 2016 Paul Howarth - 1.800-1 - Update to 1.800 - Fixed dequeue (count) in MCE::Queue for standalone mode - On Windows, improved stablity and feature parity with UNIX - Use Sereal 3.008+ automatically if available on the box - Added support for cyclical include of MCE Core, MCE Models, and MCE Queue by scoping the configuration to the local package (CPAN RT#107384) * Sun May 29 2016 Paul Howarth - 1.708-1 - Update to 1.708 - Improved import routine in MCE Models and MCE::Subs; this resolves an issue where functions are not exported; e.g. mce_flow, mce_flow_s - Added support for IO::TieCombine handles, which enables MCE->print and MCE->sendto to work reliably with App::Cmd and App::Cmd::Tester; see Testing and Capturing Output in MCE::Examples * Thu May 26 2016 Paul Howarth - 1.707-1 - Update to 1.707 - Fixed logic when workers exit; improved reliability on Windows - Applied MCE-1.700-provides.patch from Red Hat - Added META.json to the distribution - BR: perl-generators where available - Drop upstreamed provides patch * Mon May 16 2016 Jitka Plesnikova - 1.706-2 - Perl 5.24 rebuild * Sun Apr 24 2016 Paul Howarth - 1.706-1 - Update to 1.706 - Time::HiRes sleep resolution is 15 milliseconds on Windows and Cygwin; adjusted timeout values accordingly - Reinstated the hack for faster IO when use_slurpio => 1 is specified; tuned chunk_size => 'auto' * Fri Apr 15 2016 Paul Howarth - 1.705-1 - Update to 1.705 - Bumped version for Test::More to 0.88 - BR:/R: perl(Sereal) where available * Thu Apr 14 2016 Paul Howarth - 1.704-1 - Update to 1.704 BUG FIXES - Fixed restart on the Windows platform, bug introduced in 1.700 - Reached *stable* on all major platforms for MCE 1.7x ENHANCEMENTS - Enabled auto-destroy for MCE objects - Enabled freeze callbacks for Sereal - Switched bug tracking to Github - Tweaked test scripts * Sun Mar 20 2016 Paul Howarth - 1.703-1 - Update to 1.703 - Completed IPC optimizations for 1.7 * Wed Mar 16 2016 Paul Howarth - 1.702-1 - Update to 1.702 - Use a patch to fix unversioned provides of perl(MCE) - Get rid of redundant provides/requires filters - Make %%files list more explicit * Thu Feb 04 2016 Fedora Release Engineering - 1.608-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild * Thu Jun 18 2015 Fedora Release Engineering - 1.608-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild * Wed Jun 03 2015 Jitka Plesnikova - 1.608-2 - Perl 5.22 rebuild * Fri Apr 10 2015 Petr Šabata - 1.608-1 - 1.608 bump * Thu Apr 09 2015 Petr Šabata - 1.606-1 - 1.606 bump * Wed Apr 08 2015 Petr Šabata - 1.605-1 - 1.605 bump * Mon Mar 23 2015 Petr Šabata - 1.604-1 - 1.604 bump * Wed Feb 11 2015 Petr Pisar - 1.600-3 - Move mce_grep tool into a separate sub-package * Tue Feb 10 2015 Petr Pisar - 1.600-2 - Correct dependencies * Wed Feb 04 2015 Petr Šabata - 1.600-1 - 1.600 bump * Mon Jan 05 2015 Petr Šabata - 1.522-1 - 1.522 bump * Wed Dec 17 2014 Petr Šabata - 1.521-1 - 1.521 bump * Tue Nov 11 2014 Petr Šabata 1.520-1 - Initial packaging