IO::AIO implements asynchronous I/O using whatever means your operating system
supports. It is implemented as an interface to libeio.
Asynchronous means that operations that can normally block your program (e.g.
reading from disk) will be done asynchronously: the operation will still block,
but you can do something else in the meantime. This is extremely useful for
programs that need to stay interactive even when doing heavy I/O (GUI programs,
high performance network servers etc.), but can also be used to easily do
operations in parallel that are normally done sequentially, e.g. stat'ing many
files, which is much faster on a RAID volume or over NFS when you do a number of
stat operations concurrently.
While most of this works on all types of file descriptors (for example sockets),
using these functions on file descriptors that support nonblocking operation
(again, sockets, pipes etc.) is very inefficient. Use an event loop for that
(such as the EV module): IO::AIO will naturally fit into such an event loop
itself.
In addition to asynchronous I/O, this module also exports some rather arcane
interfaces, such as madvise or linux's splice system call, which is why the A in
AIO can also mean advanced.
Drop FreeBSD < 14.0-BETA5 <sys/timerfd.h> workarounds
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=273373https://cgit.freebsd.org/src/commit/?h=releng/14.0&id=7454117918cdhttps://lists.freebsd.org/archives/freebsd-stable/2023-October/001533.html
Old -CURRENT, -STABLE, -RELENG snapshots were never supported in ports/.
This reverts commit 4458b6d2d931d462f260dc06fb7b9c7fa1f707aa.
This reverts commit f295903414ccab16e75feb05c851d726deb16713.
This reverts commit d7c830340dbb2e33451d3ad36ea5a707d0d222b6.
This reverts commit 572560076d1c987833958524a2bc4a60a1700287.
This reverts commit f4c28b489119fb134e7873047aea1aa643219d70.
This reverts commit 163928669d74be3a5d8a307b6a03abd06bf55cd6.
This reverts commit b8948f86c12cfe8a24ba203634e3a1572eab4ba8.
This reverts commit 5e70841f87b2d316acc170b0f550e4eab205b6e2.
This reverts commit 600ca97fd58482c907708888a7af879219540a79.
devel/p5-IO-AIO: Fix build on FreeBSD 14+
In file included from AIO.xs:173:
In file included from /usr/include/sys/timerfd.h:33:
In file included from /usr/include/sys/proc.h:47:
/usr/include/sys/condvar.h:46:8: error: redefinition of 'cv'
struct cv {
^
/usr/local/lib/perl5/5.34/mach/CORE/sv.h:243:8: note: previous definition is
here
struct cv {
^
618 warnings and 1 error generated.
Tested on: 14.0-ALPHA4
Remove WWW entries moved into port Makefiles
Commit b7f05445c00f has added WWW entries to port Makefiles based on
WWW: lines in pkg-descr files.
This commit removes the WWW: lines of moved-over URLs from these
pkg-descr files.
Approved by: portmgr (tcberner)
Add WWW entries to port Makefiles
It has been common practice to have one or more URLs at the end of the
ports' pkg-descr files, one per line and prefixed with "WWW:". These
URLs should point at a project website or other relevant resources.
Access to these URLs required processing of the pkg-descr files, and
they have often become stale over time. If more than one such URL was
present in a pkg-descr file, only the first one was tarnsfered into
the port INDEX, but for many ports only the last line did contain the
port specific URL to further information.
There have been several proposals to make a project URL available as
a macro in the ports' Makefiles, over time.
(Only the first 15 lines of the commit message are shown above )
devel: remove 'Created by' lines
A big Thank You to the original contributors of these ports:
* "Waitman Gobble" <uzimac@da3m0n8t3r.com>
* <jkoshy@FreeBSD.org>
* Aaron Dalton <aaron@FreeBSD.org>
* Aaron Dalton <aaron@daltons.ca>
* Aaron H. K. Diep <ahkdiep@gmail.com>
* Aaron Hurt <ahurt@anbcs.com>
* Abel Chow <abel_chow@yahoo.com>
* Adam McLaurin
* Adam Saponara <as@php.net>
* Adam Weinberger <adamw@FreeBSD.org>
* Ade Lovett <ade@FreeBSD.org>
(Only the first 15 lines of the commit message are shown above )
Change the way Perl modules are installed, update the default Perl to 5.18.
Before, we had:
site_perl : lib/perl5/site_perl/5.18
site_perl/perl_arch : lib/perl5/site_perl/5.18/mach
perl_man3 : lib/perl5/5.18/man/man3
Now we have:
site_perl : lib/perl5/site_perl
site_arch : lib/perl5/site_perl/mach/5.18
perl_man3 : lib/perl5/site_perl/man/man3
Modules without any .so will be installed at the same place regardless of the
(Only the first 15 lines of the commit message are shown above )
Remove all the bootstrap files (.bs) from the plists.
Starting with perl 5.20, they're not installed any more if empty,
and on FreeBSD, they're (always ?) empty.
PR: 190681
Submitted by: mat
Exp-Run by: antoine
Sponsored by: Absolight
Welcome bsd.perl.mk. Add support for constructs such as USE_PERL5=5.8.0+.
Drop support for antique perl.
Work done by: gabor
Sponsored by: Google Summer of Code 2007
Hat: portmgr
This module implements asynchronous I/O using whatever means your
operating system supports.
Asynchronous means that operations that can normally block your
program (e.g. reading from disk) will be done asynchronously: the
operation will still block, but you can do something else in the
meantime. This is extremely useful for programs that need to stay
interactive even when doing heavy I/O (GUI programs, high performance
network servers etc.), but can also be used to easily do operations in
parallel that are normally done sequentially, e.g. stat'ing many files,
which is much faster on a RAID volume or over NFS when you do a number
of stat operations concurrently.
While most of this works on all types of file descriptors (for example
sockets), using these functions on file descriptors that support
(Only the first 15 lines of the commit message are shown above )