AnyEven...l::Irssi(3)

🌸 NAME 🌸

okay bestie, welcome to AnyEvent::Impl::Irssi β€” AnyEvent adaptor for Irssi. This is the AnyEven...l::Irssi(3) page from the User Contributed Perl Documentation situation, and we're gonna make it make sense. πŸ’–

✨ SYNOPSIS ✨

use AnyEvent;

# this module gets loaded automatically when running under irssi

πŸ’– DESCRIPTION πŸ’–

So this module gives transparent support for AnyEvent under Irssi. You literally don't have to do anything to make Irssi scripts work with AnyEvent. It just... handles it. Slay. ✨

🚧 Limitations + implementation details 🚧

  • This backend does not support blocking waits. That means you must set a callback on any condvars, or otherwise make sure to never call recv on a condvar that hasn't been signalled yet. No blocking bestie, periodt.
  • Child exits will be handled by AnyEvent. AnyEvent will take over child handling, because Irssi only polls for children once/second and cannot handle unspecific child watchers. This should have no negative effect, as AnyEvent will emit a pidwait signal just like irssi itself would. Cute.
  • Artificial timer delays. Irssi artificially enforces timers to have at least a 10ms delay (by croaking, even). That means some applications will be limited to a rate of 100Hz (for example, Coro::AnyEvent thread scheduling). The vibe check says slow down. 🐒
  • Irssi leaks memory like hell. Yeah. πŸ’€

Apart from that, documentation is notoriously wrong (e.g. file handles are not supported by input_add, contrary to documentation), hooking into irssi has to be done in... weird... ways, but otherwise, Irssi is surprisingly full-featured (for basically being a hack). Honestly iconic for a hack. 🫢

πŸ”— SEE ALSO πŸ”—

AnyEvent, Irssi.

πŸ‘‘ AUTHOR πŸ‘‘


made with perl v5.42.0 energy, dated 2019-09-18, and yep this is the AnyEven...l::Irssi(3) page πŸ’…πŸ’–

πŸ“¦ where this page comes from