[3106] in BarnOwl Developers

home help back first fref pref prev next nref lref last post

[barnowl/barnowl] 9179fd: Use AnyEvent's Glib backend

daemon@ATHENA.MIT.EDU (noreply@github.com)
Wed Jun 22 00:39:52 2011

Date: Tue, 21 Jun 2011 21:39:49 -0700
To: barnowl-dev@mit.edu
From: noreply@github.com

  Branch: refs/heads/master
  Home:   https://github.com/barnowl/barnowl

  Commit: 9179fd71fd47ed199f7576349a03ba4de77a8683
      https://github.com/barnowl/barnowl/commit/9179fd71fd47ed199f7576349a03ba4de77a8683
  Author: David Benjamin <davidben@mit.edu>
  Date:   2011-06-21 (Tue, 21 Jun 2011)

  Changed paths:
    M README
  M perl/lib/BarnOwl.pm
  R perl/lib/BarnOwl/AnyEvent.pm

  Log Message:
  -----------
  Use AnyEvent's Glib backend


  Commit: 4f746f85cc260a0a14af03459d71b916d0d12785
      https://github.com/barnowl/barnowl/commit/4f746f85cc260a0a14af03459d71b916d0d12785
  Author: David Benjamin <davidben@mit.edu>
  Date:   2011-06-21 (Tue, 21 Jun 2011)

  Changed paths:
    M Makefile.am
  M configure.ac
  R glib_compat.c
  M owl.c

  Log Message:
  -----------
  Bump required glib version to 2.16

Debian Lenny's version is 2.16.6-3 and Ubuntu Hardy's is
2.16.6-0ubuntu1.2. Also remove the version check in main; it never did
anything useful as GLIB_CHECK_VERSION is evaluated at compile-time.


  Commit: 6b0b4f45d70ff57070fe617e46583f01ca1d8f78
      https://github.com/barnowl/barnowl/commit/6b0b4f45d70ff57070fe617e46583f01ca1d8f78
  Author: David Benjamin <davidben@mit.edu>
  Date:   2011-06-21 (Tue, 21 Jun 2011)

  Changed paths:
    M aim.c
  M owl.h

  Log Message:
  -----------
  Convert AIM timers to glib timers

We do lose the timer tracking feature, but I think that's fine. Glib
does have some main loop debug spew to run, though admittedly it may
require a custom-built glib.

Glib 2.14 allows us to use g_timeout_add_seconds which synchronizes
wakeups at the seconds granularity to minimize CPU wakeups.


  Commit: 72146c707fab7ab99e38b8bd3019068a62483784
      https://github.com/barnowl/barnowl/commit/72146c707fab7ab99e38b8bd3019068a62483784
  Author: David Benjamin <davidben@mit.edu>
  Date:   2011-06-21 (Tue, 21 Jun 2011)

  Changed paths:
    M variable.c
  M zephyr.c

  Log Message:
  -----------
  Convert pseudologins timer to glib timers


  Commit: 58f4fb26e327a513e881072e03944fe69a799b97
      https://github.com/barnowl/barnowl/commit/58f4fb26e327a513e881072e03944fe69a799b97
  Author: David Benjamin <davidben@mit.edu>
  Date:   2011-06-21 (Tue, 21 Jun 2011)

  Changed paths:
    M commands.c
  M functions.c
  M perl/lib/BarnOwl/Complete/Client.pm

  Log Message:
  -----------
  Drop show timers feature

It was useful to access programmatically and probably not hugely useful.
We can restore something like it later if it's really needed.


  Commit: 074bdaa6d33d340b3da12b08994f54e70986e9d5
      https://github.com/barnowl/barnowl/commit/074bdaa6d33d340b3da12b08994f54e70986e9d5
  Author: David Benjamin <davidben@mit.edu>
  Date:   2011-06-21 (Tue, 21 Jun 2011)

  Changed paths:
    M global.c
  M owl.h
  M perl/lib/BarnOwl/Timer.pm
  M perlconfig.c
  M perlglue.xs
  M select.c

  Log Message:
  -----------
  Replace BarnOwl::Timer with a perl wrapper over AnyEvent

This also allows us to kill owl_timer altogether.


  Commit: bcde7926f64b37bec0e1c92962e8110187f58242
      https://github.com/barnowl/barnowl/commit/bcde7926f64b37bec0e1c92962e8110187f58242
  Author: David Benjamin <davidben@mit.edu>
  Date:   2011-06-21 (Tue, 21 Jun 2011)

  Changed paths:
    M perl/lib/BarnOwl.pm
  M perlconfig.c
  M perlglue.xs
  M select.c

  Log Message:
  -----------
  Reimplement BarnOwl::add_io_dispatch with AnyEvent

We can emulate the interesting semantics with perl. The one difference
is that perl code can now register an IO dispatch on file descriptors C
code was interested in. This isn't a big deal was Glib can handle
multiple watches on the same FD. Granted, more than one reader on an FD
would cause trouble, but there was nothing stopping perl code from
reading from an FD we cared about anyway.

AnyEvent also does not support select's exceptfd, so this is a slight
behavior change, but probably an uninteresting one.


  Commit: bbb7876cf12ac8f20b2ae29e09e8051ee0707d5a
      https://github.com/barnowl/barnowl/commit/bbb7876cf12ac8f20b2ae29e09e8051ee0707d5a
  Author: David Benjamin <davidben@mit.edu>
  Date:   2011-06-21 (Tue, 21 Jun 2011)

  Changed paths:
    M owl.c

  Log Message:
  -----------
  Replace the stdin reader with a GIOChannel watch

We ignore the channel itself as ncurses expects to do its own thing.


  Commit: 2244836f51939a939edaac90302eca3379f5c362
      https://github.com/barnowl/barnowl/commit/2244836f51939a939edaac90302eca3379f5c362
  Author: David Benjamin <davidben@mit.edu>
  Date:   2011-06-21 (Tue, 21 Jun 2011)

  Changed paths:
    M owl.c

  Log Message:
  -----------
  Use g_io_add_watch in the stderr redirect

We may actually be able to put GIOChannel to good use here with
g_io_channel_read_line.


  Commit: a6a9ddb190070cf1469e5dad392b5389b027df56
      https://github.com/barnowl/barnowl/commit/a6a9ddb190070cf1469e5dad392b5389b027df56
  Author: David Benjamin <davidben@mit.edu>
  Date:   2011-06-21 (Tue, 21 Jun 2011)

  Changed paths:
    M owl.h
  M popexec.c

  Log Message:
  -----------
  Replace popexec's io_dispatch with a glib io watch

Again, this code may be simplified with a GIOChannel.


  Commit: 2d04312c185f2db6283ca297b126f0134344507d
      https://github.com/barnowl/barnowl/commit/2d04312c185f2db6283ca297b126f0134344507d
  Author: David Benjamin <davidben@mit.edu>
  Date:   2011-06-21 (Tue, 21 Jun 2011)

  Changed paths:
    M zephyr.c

  Log Message:
  -----------
  Use g_io_add_watch in zephyr initialization

Which removes the final use of owl_io_dispatch.


  Commit: aa69c1effa8d25277213dc0c3f6fcc4c9e3ed461
      https://github.com/barnowl/barnowl/commit/aa69c1effa8d25277213dc0c3f6fcc4c9e3ed461
  Author: David Benjamin <davidben@mit.edu>
  Date:   2011-06-21 (Tue, 21 Jun 2011)

  Changed paths:
    M global.c
  M owl.h
  M select.c

  Log Message:
  -----------
  And finally, remove owl_io_dispatch

All uses have been replaced with a GIOChannel watch.


  Commit: e146cd7daa6e098d58e1d6cbbf8c74225bcd2da8
      https://github.com/barnowl/barnowl/commit/e146cd7daa6e098d58e1d6cbbf8c74225bcd2da8
  Author: David Benjamin <davidben@mit.edu>
  Date:   2011-06-21 (Tue, 21 Jun 2011)

  Changed paths:
    M popexec.c
  M zephyr.c

  Log Message:
  -----------
  Remove all uses of G_IO_PRI

Any use of G_IO_PRI (and correspondingly OWL_IO_EXCEPT) is likely a bug
as it's not really used for anything useful. The main use case is TCP
out-of-band data which really isn't used by anyone.

Reported-by: Anders Kaseorg <andersk@mit.edu>


  Commit: 84a071f695d32531171f37a5ae51c7e8a719122b
      https://github.com/barnowl/barnowl/commit/84a071f695d32531171f37a5ae51c7e8a719122b
  Author: David Benjamin <davidben@mit.edu>
  Date:   2011-06-21 (Tue, 21 Jun 2011)

  Changed paths:
    M select.c

  Log Message:
  -----------
  Remove global main_context variable

It's really not necessary. We can pass NULL to g_main_loop_new to use
the default context, and we don't reference the variable anywhere else.


Compare: https://github.com/barnowl/barnowl/compare/937a00e...84a071f

home help back first fref pref prev next nref lref last post