mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-27 05:10:36 +00:00
Update to 1.7 (which is >1.11, strangely enough, so PORTEPOCH++).
This commit is contained in:
parent
1f1a3ea8d0
commit
d92f8ffc2f
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=153261
@ -6,7 +6,8 @@
|
||||
#
|
||||
|
||||
PORTNAME= Coro
|
||||
PORTVERSION= 1.11
|
||||
PORTVERSION= 1.7
|
||||
PORTEPOCH= 1
|
||||
CATEGORIES= devel
|
||||
MASTER_SITES= ${MASTER_SITE_PERL_CPAN}
|
||||
MASTER_SITE_SUBDIR= Coro
|
||||
@ -15,7 +16,7 @@ PKGNAMEPREFIX= p5-
|
||||
MAINTAINER= perl@FreeBSD.org
|
||||
COMMENT= Coro - coroutine process abstraction for perl
|
||||
|
||||
BUILD_DEPENDS= ${SITE_PERL}/${PERL_ARCH}/Event.pm:${PORTSDIR}/devel/p5-Event \
|
||||
BUILD_DEPENDS= p5-Event>=0.89:${PORTSDIR}/devel/p5-Event \
|
||||
${SITE_PERL}/${PERL_ARCH}/Scalar/Util.pm:${PORTSDIR}/lang/p5-Scalar-List-Utils
|
||||
RUN_DEPENDS= ${BUILD_DEPENDS}
|
||||
|
||||
@ -37,24 +38,25 @@ post-install:
|
||||
.include <bsd.port.pre.mk>
|
||||
|
||||
.if ${PERL_LEVEL} < 500600
|
||||
IGNORE= "This port requires perl 5.6 or newer"
|
||||
IGNORE= requires perl 5.6.0 or later. Install lang/perl5.8 and try again
|
||||
.endif
|
||||
|
||||
MAN3= Coro.3 \
|
||||
Coro::Channel.3 \
|
||||
Coro::Cont.3 \
|
||||
Coro::Event.3 \
|
||||
Coro::Handle.3 \
|
||||
Coro::MakeMaker.3 \
|
||||
Coro::RWLock.3 \
|
||||
Coro::Select.3 \
|
||||
Coro::Semaphore.3 \
|
||||
Coro::SemaphoreSet.3 \
|
||||
Coro::Signal.3 \
|
||||
Coro::Socket.3 \
|
||||
Coro::Specific.3 \
|
||||
Coro::State.3 \
|
||||
Coro::Timer.3 \
|
||||
Coro::Util.3
|
||||
MAN3= Coro.3 \
|
||||
Coro::AIO.3 \
|
||||
Coro::Channel.3 \
|
||||
Coro::Cont.3 \
|
||||
Coro::Event.3 \
|
||||
Coro::Handle.3 \
|
||||
Coro::MakeMaker.3 \
|
||||
Coro::RWLock.3 \
|
||||
Coro::Select.3 \
|
||||
Coro::Semaphore.3 \
|
||||
Coro::SemaphoreSet.3 \
|
||||
Coro::Signal.3 \
|
||||
Coro::Socket.3 \
|
||||
Coro::Specific.3 \
|
||||
Coro::State.3 \
|
||||
Coro::Timer.3 \
|
||||
Coro::Util.3
|
||||
|
||||
.include <bsd.port.post.mk>
|
||||
|
@ -1,3 +1,3 @@
|
||||
MD5 (Coro-1.11.tar.gz) = 6890d4641d62ff26eed9e9a849f4e45f
|
||||
SHA256 (Coro-1.11.tar.gz) = 72dbb6e778d44aaa3244c37e5cd5250d2b6ad4d959d4dee1d7ae427badb82a8b
|
||||
SIZE (Coro-1.11.tar.gz) = 54062
|
||||
MD5 (Coro-1.7.tar.gz) = 7f38a6641e18321a320ee1503a63d289
|
||||
SHA256 (Coro-1.7.tar.gz) = 9bfad7938046ea415b10cf3da996930fc6b87ac25bd7df555bd8509d361e9ee4
|
||||
SIZE (Coro-1.7.tar.gz) = 55794
|
||||
|
120
devel/p5-Coro/files/patch-Coro-Makefile.PL
Normal file
120
devel/p5-Coro/files/patch-Coro-Makefile.PL
Normal file
@ -0,0 +1,120 @@
|
||||
--- Coro/Makefile.PL.orig Wed Jan 11 13:20:06 2006
|
||||
+++ Coro/Makefile.PL Wed Jan 11 13:22:18 2006
|
||||
@@ -31,77 +31,8 @@ if ($^O =~ /win32/i or $^O =~ /cygwin/ o
|
||||
$iface = "s";
|
||||
}
|
||||
|
||||
-print <<EOF;
|
||||
-
|
||||
-*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
|
||||
-
|
||||
-C context sharing: This option makes it possible to share the C stack and
|
||||
-context between many coroutines, resulting in large memory savings and
|
||||
-slight speed gains, at the cost of potential (but mostly theoretical)
|
||||
-segfaults. On my Linux/x86 machine this decreased the size of a new
|
||||
-coroutine from 9k to 5k, but the savings are much more apparent on
|
||||
-machines without mmap or good memory management.
|
||||
-
|
||||
-The algorithm relies on the non-fact that the same machine stack pointer
|
||||
-indicates the same function call nesting level, which usually works good
|
||||
-enough (no known cases of it failing are known) but might fail in theory.
|
||||
-
|
||||
-The default (enabled) has been in use on productions servers for some
|
||||
-time now, without any problem reports, so you are encouraged to use the
|
||||
-default.
|
||||
-
|
||||
-EOF
|
||||
-
|
||||
-if (prompt ("Do you want to enable C context sharing (y/n)", "y") !~ /^\s*n/i) {
|
||||
- print "\nC context sharing enabled.\n\n";
|
||||
+$iface = "u";
|
||||
$DEFINE .= " -DCORO_LAZY_STACK";
|
||||
-}
|
||||
-
|
||||
-if ($iface) {
|
||||
- print <<EOF;
|
||||
-
|
||||
-*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
|
||||
-
|
||||
-Coro can use a number of methods to implement coroutines at the C
|
||||
-level. The default chosen is based on your current confguration and is
|
||||
-correct in most cases, but you still can chose between these alternatives:
|
||||
-
|
||||
-u The unix 'ucontext.h' functions are relatively new and not implemented
|
||||
- or well-tested in older unices. They allow very fast coroutine creation
|
||||
- and reasonably fast switching, and, most importantly, are very stable.
|
||||
-
|
||||
-s If the ucontext functions are not working or you don't want
|
||||
- to use them for other reasons you can try a workaround using
|
||||
- setjmp/longjmp/sigaltstack (also standard unix functions). Coroutine
|
||||
- creation is rather slow, but switching is very fast as well (often much
|
||||
- faster than with the ucontext functions). Unfortunately, glibc-2.1 and
|
||||
- below don't even feature a working sigaltstack.
|
||||
-
|
||||
-l GNU/Linux. Very old GNU/Linux systems (glibc-2.1 and below) need
|
||||
- this hack. Since it is very linux-specific it is also quite fast and
|
||||
- recommended even for newer versions; when it works, that is (currently
|
||||
- x86 and a few others only. If it compiles, it's usually ok).
|
||||
-
|
||||
-i IRIX. For some reason, SGI really does not like to follow the single
|
||||
- unix specification (does that surprise you?), so this workaround might
|
||||
- be needed (it's fast), although [s] and [u] should also work now.
|
||||
-
|
||||
-w Microsoft Windows. Try this on Microsoft Windows, although, as there is
|
||||
- no standard on how to do this under windows, this might work only on
|
||||
- cygwin or specific versions of msvc. Your problem.
|
||||
-
|
||||
-For most systems, the default chosen should be OK. If you experience
|
||||
-problems then you should experiment with this setting and/or turn off
|
||||
-optimizations (make OPTIMIZE=-O0).
|
||||
-
|
||||
-EOF
|
||||
-
|
||||
-retry:
|
||||
-
|
||||
- my $r = prompt "Use which implementation,\n" .
|
||||
- "<s>etjmp/longjump, <u>context, <i>rix, <l>inux or <w>indows?",
|
||||
- $iface;
|
||||
- $iface = lc $1 if $r =~ /(\S)/;
|
||||
|
||||
if ($iface eq "u") {
|
||||
$DEFINE .= " -DCORO_UCONTEXT";
|
||||
@@ -122,37 +53,9 @@ retry:
|
||||
print "\nUsing windows-specific implementation\n\n";
|
||||
} else {
|
||||
print "\nUnknown implementation \"$iface\"\n";
|
||||
- goto retry;
|
||||
}
|
||||
-} else {
|
||||
- print "\nUsing microsoft compatible coroutines\n\n";
|
||||
-}
|
||||
-
|
||||
-print <<EOF;
|
||||
-
|
||||
-*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
|
||||
-
|
||||
-Per-context stack size factor: Depending on your settings, Coro tries to
|
||||
-share the C stack as much as possible, but sometimes it needs to allocate
|
||||
-a new one. This setting controls the maximum size that gets allocated,
|
||||
-and should not be set too high, as memory and address space still is
|
||||
-wasted even if it's not fully used. The value entered will be multiplied
|
||||
-by sizeof(long), which is usually 4 on 32-bit systems, and 8 on 64-bit
|
||||
-systems.
|
||||
-
|
||||
-A setting of 16384 (the default) therefore corresponds to a 64k..128k
|
||||
-stack, which usually is ample space (you might even want to try 8192 or
|
||||
-lower if your program creates many coroutines).
|
||||
-
|
||||
-Some perls (mostly threaded ones and perl compiled under linux 2.6) and
|
||||
-some programs (inefficient regexes can use a lot of stack space) may
|
||||
-need much, much more: If Coro segfaults with weird backtraces (e.g. in a
|
||||
-function prologue) or in t/10_bugs.t, you might want to increase this to
|
||||
-65536 or more.
|
||||
-
|
||||
-EOF
|
||||
|
||||
-my $stacksize = prompt ("C stack size factor", "16384");
|
||||
+my $stacksize = 65536;
|
||||
$DEFINE .= " -DSTACKSIZE=$stacksize";
|
||||
|
||||
print "using a stacksize of $stacksize * sizeof(long)\n";
|
@ -1,69 +0,0 @@
|
||||
$FreeBSD$
|
||||
|
||||
--- Coro/Makefile.PL.orig Tue Aug 10 03:53:02 2004
|
||||
+++ Coro/Makefile.PL Tue Aug 10 16:14:57 2004
|
||||
@@ -31,62 +31,15 @@
|
||||
$iface = "s";
|
||||
}
|
||||
|
||||
-print <<EOF;
|
||||
-
|
||||
-Version 0.12 introduced C context sharing. This makes it possible to share
|
||||
-the C stack and context between many coroutines, resulting in memory
|
||||
-savings and slight speed gains, at the cost of potential (but mostly
|
||||
-theoretical) segfaults. On my Linux/x86 machine this decreased the size
|
||||
-of a new coroutine from 9k to 5k, but the savings are much more apparent
|
||||
-on machines without mmap or good memory management. This algorithm relies
|
||||
-on the non-fact that the same machine stack pointer indicates the same
|
||||
-function call nesting level, which usually works good enough but might
|
||||
-fail...
|
||||
-
|
||||
-The default (enabled) has been in-use on productions servers for some time
|
||||
-now, without any problem reports so far.
|
||||
-
|
||||
-EOF
|
||||
-
|
||||
-if (prompt ("Do you want to enable C context sharing (y/n)", "y") !~ /^\s*n/i) {
|
||||
+if (1 || prompt ("Do you want to enable C context sharing (y/n)", "y") !~ /^\s*n/i) {
|
||||
print "\nExperimental context sharing enabled.\n\n";
|
||||
$DEFINE .= " -DCORO_LAZY_STACK";
|
||||
}
|
||||
|
||||
if ($iface) {
|
||||
- print <<EOF;
|
||||
-
|
||||
-Coro can use various ways to implement coroutines at the C level:
|
||||
-
|
||||
-u The unix ucontext functions are newer and not implemented in older
|
||||
- unices (or broken libc's like glibc-2.2.2 and below). They allow very
|
||||
- fast coroutine creation and fast switching, and, most importantly, are
|
||||
- very stable.
|
||||
-
|
||||
-s If the ucontext functions are not working or you don't want
|
||||
- to use them for other reasons you can try a workaround using
|
||||
- setjmp/longjmp/sigaltstack (also standard unix functions). Coroutine
|
||||
- creation is rather slow, but switching is very fast as well (often much
|
||||
- faster than with the ucontext functions). Unfortunately, glibc-2.1 and
|
||||
- below don't even feature a working sigaltstack.
|
||||
-
|
||||
-l Older GNU/Linux systems (glibc-2.1 and below) need this hack. Since it is
|
||||
- very linux-specific it is also quite fast for newer versions; when it
|
||||
- works, that is (currently x86 only)...
|
||||
-
|
||||
-i IRIX. For some reason, SGI really does not like to follow the unix
|
||||
- standard (does that surprise you?), so this workaround might be needed
|
||||
- (it's fast), although s and u should also work now.
|
||||
-
|
||||
-For most systems, the default chosen should be OK. If you experience
|
||||
-problems then you should experiment with this setting and/or turn off
|
||||
-optimizations (make OPTIMIZE=-O0).
|
||||
-
|
||||
-EOF
|
||||
-
|
||||
retry:
|
||||
|
||||
- my $r = prompt "Use which implementation,\n" .
|
||||
+ my $r = 's' || prompt "Use which implementation,\n" .
|
||||
"<s>etjmp/longjump, <u>context, <i>rix or <l>inux?",
|
||||
$iface;
|
||||
$iface = lc $1 if $r =~ /(\S)/;
|
10
devel/p5-Coro/files/patch-coro.c
Normal file
10
devel/p5-Coro/files/patch-coro.c
Normal file
@ -0,0 +1,10 @@
|
||||
--- Coro/libcoro/coro.c.orig Wed Jan 11 13:16:29 2006
|
||||
+++ Coro/libcoro/coro.c Wed Jan 11 13:16:57 2006
|
||||
@@ -30,6 +30,7 @@
|
||||
* go to Ralf S. Engelschall <rse@engelschall.com>.
|
||||
*/
|
||||
|
||||
+#include <sys/types.h>
|
||||
#include "coro.h"
|
||||
|
||||
#if !defined(STACK_ADJUST_PTR)
|
@ -5,6 +5,7 @@
|
||||
%%SITE_PERL%%/%%PERL_ARCH%%/auto/Coro/State/State.bs
|
||||
%%SITE_PERL%%/%%PERL_ARCH%%/auto/Coro/.packlist
|
||||
%%SITE_PERL%%/%%PERL_ARCH%%/Coro.pm
|
||||
%%SITE_PERL%%/%%PERL_ARCH%%/Coro/AIO.pm
|
||||
%%SITE_PERL%%/%%PERL_ARCH%%/Coro/Cont.pm
|
||||
%%SITE_PERL%%/%%PERL_ARCH%%/Coro/State.pm
|
||||
%%SITE_PERL%%/%%PERL_ARCH%%/Coro/Channel.pm
|
||||
|
Loading…
Reference in New Issue
Block a user