1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-11-23 00:43:28 +00:00

Update to 1.7 (which is >1.11, strangely enough, so PORTEPOCH++).

This commit is contained in:
Anton Berezin 2006-01-11 13:17:31 +00:00
parent 1f1a3ea8d0
commit d92f8ffc2f
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=153261
7 changed files with 155 additions and 91 deletions

View File

@ -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>

View File

@ -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

View 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";

View File

@ -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)/;

View 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)

View File

@ -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