[1611] in BarnOwl Developers

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

[nelhage/barnowl] 02f641: Abstract message creation into owl_message_new().

daemon@ATHENA.MIT.EDU (noreply@github.com)
Thu Oct 29 18:18:52 2009

Resent-From: nelhage@mit.edu
Resent-To: barnowl-dev-mtg@charon.mit.edu
X-Original-To: nelhage@lunatique.mit.edu
Date: Sat, 8 Aug 2009 21:38:35 -0700
To: barnowl-dev@mit.edu
From: noreply@github.com

Branch: refs/heads/barnowl_perlmessages
Home:   http://github.com/nelhage/barnowl

Commit: 02f6417ceb2bdb5cefb795f2fb09d0f5823e0efc
    http://github.com/nelhage/barnowl/commit/02f6417ceb2bdb5cefb795f2fb09d0f5823e0efc
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M aim.c
  M buddylist.c
  M functions.c
  M message.c
  M owl.h
  M perlconfig.c
  M zephyr.c

Log Message:
-----------
Abstract message creation into owl_message_new().


Commit: f3d692b20100cce4201896dd998457179a4838fd
    http://github.com/nelhage/barnowl/commit/f3d692b20100cce4201896dd998457179a4838fd
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M functions.c
  M message.c

Log Message:
-----------
Don't export owl_message_get_notice outside of message.c.


Commit: bd39b54f908073e2b4a56db369ba0132cafc3596
    http://github.com/nelhage/barnowl/commit/bd39b54f908073e2b4a56db369ba0132cafc3596
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M filter.c
  M message.c
  M owl.h
  M perl/lib/BarnOwl/Message.pm
  M perlconfig.c

Log Message:
-----------
Make the perl object the only message represention.

Messages are now stored in C as an SV*, and access the perl data
directly, rather than marshalling/unmarshalling in perlconfig.


Commit: 08c7e04b4f85444b32c815da33bceeaffc2bb095
    http://github.com/nelhage/barnowl/commit/08c7e04b4f85444b32c815da33bceeaffc2bb095
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M commands.c
  M functions.c
  M global.c
  M perlconfig.c

Log Message:
-----------
Abstract around getting the current message in C


Commit: f074cfc00f47bb2d86427602c3a375e1b9f1aa41
    http://github.com/nelhage/barnowl/commit/f074cfc00f47bb2d86427602c3a375e1b9f1aa41
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M messagelist.c
  M owl.h
  M view.c

Log Message:
-----------
Make owl_view actually a view into the global message list


Commit: a4921fd0cc2898a45a52b0716e4e216e23082e97
    http://github.com/nelhage/barnowl/commit/a4921fd0cc2898a45a52b0716e4e216e23082e97
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M util.c

Log Message:
-----------
Remove the only use of owl_messagelist_get_element outside view.c


Commit: ca756085571eb796cf305dbfc7642a6314fc42e3
    http://github.com/nelhage/barnowl/commit/ca756085571eb796cf305dbfc7642a6314fc42e3
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M messagelist.c
  M owl.h
  M view.c

Log Message:
-----------
Kill owl_messagelist_get_element entirely


Commit: f78d6c6d765fb6c8680114c78f9b117617b16ba5
    http://github.com/nelhage/barnowl/commit/f78d6c6d765fb6c8680114c78f9b117617b16ba5
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M message.c
  M owl.c

Log Message:
-----------
Fix the private/isprivate discrepancy.

Canonicalize on 'private' in the representation, with a kludge to
support old code.


Commit: b130f50a1fa17905326c0087925e5d3618934e41
    http://github.com/nelhage/barnowl/commit/b130f50a1fa17905326c0087925e5d3618934e41
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M owl.c

Log Message:
-----------
Grab all of stderr at once, instead of in small chunks.


Commit: e84ab1ff6a3da2aeb81d827bde71d160161965c2
    http://github.com/nelhage/barnowl/commit/e84ab1ff6a3da2aeb81d827bde71d160161965c2
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

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

Log Message:
-----------
Export owl_function_debugmsg to perl as BarnOwl::debug().


Commit: 0baeee2318e14df23357b747caca68d6204e9aef
    http://github.com/nelhage/barnowl/commit/0baeee2318e14df23357b747caca68d6204e9aef
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M functions.c
  M global.c
  M mainwin.c
  M message.c
  M messagelist.c
  M owl.c
  M owl.h
  M perl/lib/BarnOwl.pm
  M perl/lib/BarnOwl/Message.pm
  A perl/lib/BarnOwl/MessageList.pm
  M perlconfig.c
  M view.c

Log Message:
-----------
Move the message list into perl.


Commit: c0ef49b8d0e23100a7d0c27a7b81c913bf763b29
    http://github.com/nelhage/barnowl/commit/c0ef49b8d0e23100a7d0c27a7b81c913bf763b29
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M perl/lib/BarnOwl.pm
  M perl/lib/BarnOwl/Hooks.pm

Log Message:
-----------
Add machinery for logging errors very early in startup.

We can't just call BarnOwl::error() during initial load, because the
internal machinery isn't set up yet.


Commit: c2e5681ad21cf3fb386eb150f584ab302b02de48
    http://github.com/nelhage/barnowl/commit/c2e5681ad21cf3fb386eb150f584ab302b02de48
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M owl.c

Log Message:
-----------
Don't show startup message if we already have messages.

This is preparation for the evental future in which we have a
persistent message list.


Commit: 4b4c98c9c0248a0d0e134178fa26165a6760a568
    http://github.com/nelhage/barnowl/commit/4b4c98c9c0248a0d0e134178fa26165a6760a568
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M perlglue.xs

Log Message:
-----------
Make the messagelist available to perl code.


Commit: ae96837814f5ea17de2fe66df84389f21a539334
    http://github.com/nelhage/barnowl/commit/ae96837814f5ea17de2fe66df84389f21a539334
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M perl/lib/BarnOwl/Message.pm
  M perl/lib/BarnOwl/MessageList.pm

Log Message:
-----------
BarnOwl::Message: Get the next message ID from the message list.


Commit: 72d79e4705ecfc46aa7ca6545c62afdacce4a4d8
    http://github.com/nelhage/barnowl/commit/72d79e4705ecfc46aa7ca6545c62afdacce4a4d8
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M filterelement.c
  M message.c
  M perl/lib/BarnOwl/Message.pm
  M perl/modules/Jabber/lib/BarnOwl/Module/Jabber.pm

Log Message:
-----------
messages: Rename the `loginout' field to `login' everywhere.


Commit: 5c16e23948b46a9d076d5f17c79cc71e1dda2755
    http://github.com/nelhage/barnowl/commit/5c16e23948b46a9d076d5f17c79cc71e1dda2755
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M perl/lib/BarnOwl/Message.pm
  M perl/lib/BarnOwl/MessageList.pm

Log Message:
-----------
Notify the message list about message (un)deletion.


Commit: ccc7d9d553bd6c8c9903e587284ec897ba607538
    http://github.com/nelhage/barnowl/commit/ccc7d9d553bd6c8c9903e587284ec897ba607538
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M list.c
  M tester.c

Log Message:
-----------
Regression tests for lists


Commit: fa4ee71443b413481b48785d9d963094e280931b
    http://github.com/nelhage/barnowl/commit/fa4ee71443b413481b48785d9d963094e280931b
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M global.c
  M message.c
  M messagelist.c
  M owl.h

Log Message:
-----------
Maintain an fmtext sequence/version number.

This allows for O(1) invalidation of all fmtexts, without having to
walk the message list.


Commit: ca7f795f4031e2806a47b3e256f5cd126f641a30
    http://github.com/nelhage/barnowl/commit/ca7f795f4031e2806a47b3e256f5cd126f641a30
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M functions.c
  M global.c
  M mainwin.c
  M owl.c
  M owl.h
  M util.c
  M view.c

Log Message:
-----------
Use iterators to access views, not indices.

This additional layer of abstraction should allow views to eventually
be computed lazily from the message list as needed.


Commit: 9571889f22d459d58b8cb0cab20e59bf6edd5358
    http://github.com/nelhage/barnowl/commit/9571889f22d459d58b8cb0cab20e59bf6edd5358
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M commands.c
  M functions.c
  M global.c
  M message.c
  M owl.c
  M owl.h
  M view.c

Log Message:
-----------
Move the current style out of the view into owl_global for now at
least.


Commit: f870addeef8a70d0625e2835f044f74236b8a3fe
    http://github.com/nelhage/barnowl/commit/f870addeef8a70d0625e2835f044f74236b8a3fe
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M functions.c
  M owl.c
  M owl.h
  M view.c

Log Message:
-----------
Make views hold a filter name, rather than a filter object


Commit: 8b63d37c539fb1747eb61e154ff607d5aaa3177a
    http://github.com/nelhage/barnowl/commit/8b63d37c539fb1747eb61e154ff607d5aaa3177a
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M perlglue.xs

Log Message:
-----------
Implement filter matching from perl code


Commit: 0c2b50fb886bb9bb77c2b27ce87cd6a51b2d149c
    http://github.com/nelhage/barnowl/commit/0c2b50fb886bb9bb77c2b27ce87cd6a51b2d149c
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M functions.c
  M global.c
  M mainwin.c
  M owl.c
  M owl.h
  M perlconfig.c
  M util.c
  M view.c

Log Message:
-----------
Tweak the owl_iterator API to only work with pointer, in preparation
for the SV* transition


Commit: eed1dd6164fb2396e1414011c769a68014f0d0c7
    http://github.com/nelhage/barnowl/commit/eed1dd6164fb2396e1414011c769a68014f0d0c7
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M global.c
  M owl.c
  M owl.h
  M perl/lib/BarnOwl.pm
  A perl/lib/BarnOwl/View.pm
  A perl/lib/BarnOwl/View/Iterator.pm
  M view.c

Log Message:
-----------
Move views and view iterators into perl code


Commit: ace91456dfb47c0873acbd787173a7385296bdb0
    http://github.com/nelhage/barnowl/commit/ace91456dfb47c0873acbd787173a7385296bdb0
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M messagelist.c

Log Message:
-----------
Delete some methods that are no longer needed from C


Commit: 356d102bbbb50c021009ae39c2d89eaa0fed6ce3
    http://github.com/nelhage/barnowl/commit/356d102bbbb50c021009ae39c2d89eaa0fed6ce3
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M perl/lib/BarnOwl/MessageList.pm
  M perl/lib/BarnOwl/View.pm
  M perl/lib/BarnOwl/View/Iterator.pm

Log Message:
-----------
Support iterating the message list from an arbitrary point.

In addition, support iteration in reverse.


Commit: e45c7f4d622b5ac2c0c8359f4dc70ef102eb9c8c
    http://github.com/nelhage/barnowl/commit/e45c7f4d622b5ac2c0c8359f4dc70ef102eb9c8c
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M functions.c

Log Message:
-----------
Mark some things as unsupported in preparation for changing iterator
semantics.


Commit: 0b12021829a0d7364a964236516263bcd1bf6623
    http://github.com/nelhage/barnowl/commit/0b12021829a0d7364a964236516263bcd1bf6623
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M perl/lib/BarnOwl/View.pm
  M perl/lib/BarnOwl/View/Iterator.pm

Log Message:
-----------
First pass at lazily populating views.

This is minimally tested, doesn't work for many cases, and can
crash. But that's why this is an experimental branch, and it does
sorta work.


Commit: 76a455845d1eb53eaeab9ada0901642b666cfcae
    http://github.com/nelhage/barnowl/commit/76a455845d1eb53eaeab9ada0901642b666cfcae
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M perl/lib/BarnOwl/View.pm

Log Message:
-----------
Add some debug spew and fix stupid bugs in fill_back and
recalculate_around.


Commit: deeb26cd3566111105145fa9d1096f04f2e8655a
    http://github.com/nelhage/barnowl/commit/deeb26cd3566111105145fa9d1096f04f2e8655a
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M perl/lib/BarnOwl/View.pm
  M perl/lib/BarnOwl/View/Iterator.pm

Log Message:
-----------
Update the ::Iterator predicates to be correct for partially loaded
views


Commit: e3b947718d6baa285113b7920e4f7b36b4134501
    http://github.com/nelhage/barnowl/commit/e3b947718d6baa285113b7920e4f7b36b4134501
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M perl/lib/BarnOwl/View.pm
  M perl/lib/BarnOwl/View/Iterator.pm

Log Message:
-----------
Fix a confusion between message objects and message IDs


Commit: 6c8b56b2cd7f7afcdd2507612d804a73340ee98b
    http://github.com/nelhage/barnowl/commit/6c8b56b2cd7f7afcdd2507612d804a73340ee98b
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M functions.c

Log Message:
-----------
Make changefilter deal with the fact that initializing a new iterator
invalidates the view.


Commit: 7da9e62a4acb759f61b9a83cb08f7f2fb5c79457
    http://github.com/nelhage/barnowl/commit/7da9e62a4acb759f61b9a83cb08f7f2fb5c79457
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M perl/lib/BarnOwl/View/Iterator.pm

Log Message:
-----------
Make initialize_at_* only reset the view if necessary


Commit: 8346cac78e23b096dd09d613cf9add61819ddbeb
    http://github.com/nelhage/barnowl/commit/8346cac78e23b096dd09d613cf9add61819ddbeb
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M perl/lib/BarnOwl/View.pm

Log Message:
-----------
|| doesn't actually mean defined-or


Commit: 3fbf7f4879078fbe08789151d1d0740e6ece5df2
    http://github.com/nelhage/barnowl/commit/3fbf7f4879078fbe08789151d1d0740e6ece5df2
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M functions.c

Log Message:
-----------
Slightly hackish fix to deal with topmsg's across regenerating views


Commit: 042a3bd6b8565f7088632e5be84490e4c3690bf9
    http://github.com/nelhage/barnowl/commit/042a3bd6b8565f7088632e5be84490e4c3690bf9
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M perl/lib/BarnOwl/View.pm

Log Message:
-----------
Actually fix the skipping messages on filter change bug.

Iiiiii should document these crazy interfaces I'm writing.


Commit: 812c9b3c842d13e61390b36bf5948d99e69e3026
    http://github.com/nelhage/barnowl/commit/812c9b3c842d13e61390b36bf5948d99e69e3026
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M functions.c

Log Message:
-----------
Slightly better solution for scrolling behavior on narrow


Commit: 0c9616b1fcc7bb4a6c0b613fc1bf07ba628a741f
    http://github.com/nelhage/barnowl/commit/0c9616b1fcc7bb4a6c0b613fc1bf07ba628a741f
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M functions.c
  M global.c
  M perl/lib/BarnOwl/Hooks.pm
  M perl/lib/BarnOwl/View.pm
  M perl/lib/BarnOwl/View/Iterator.pm
  M perlconfig.c
  M view.c

Log Message:
-----------
Rewrite views to use a bitmap of message IDs to cache filters, and remember caches across filter changes.


Commit: ac2350edf8c6e1334ee2261acd79c8e4a6d47fe1
    http://github.com/nelhage/barnowl/commit/ac2350edf8c6e1334ee2261acd79c8e4a6d47fe1
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M perl/lib/BarnOwl/View.pm
  M view.c

Log Message:
-----------
Discard all filter caches when we expunge messages.


Commit: 9fff82a5aa9eb63cf71f2948165d84e5df770ad0
    http://github.com/nelhage/barnowl/commit/9fff82a5aa9eb63cf71f2948165d84e5df770ad0
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M functions.c
  M perl/lib/BarnOwl/MessageList.pm
  M perl/lib/BarnOwl/View.pm
  M view.c

Log Message:
-----------
Smarter invalidation on expunge.

There's no need to completely rebuild views on expunge; We can just
clear the deleted messages from the bitmap. This should be a big
performance win since expunge is a relatively common operation.


Commit: ff09dfb32369c5aae5cee5b67f3f110fbfdb5c0d
    http://github.com/nelhage/barnowl/commit/ff09dfb32369c5aae5cee5b67f3f110fbfdb5c0d
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M perl/lib/BarnOwl/View.pm
  M perl/lib/BarnOwl/View/Iterator.pm
  A perl/lib/BarnOwl/View/RangeList.pm

Log Message:
-----------
Maintain multiple valid ranges of the cache bitmap.

Use a linked list of valid ranges to maintain multiple valid ranges of
the bitmap caching membership in a filter.


Commit: 8caaa1016e4e3d13a95c89f1388c149034016ee3
    http://github.com/nelhage/barnowl/commit/8caaa1016e4e3d13a95c89f1388c149034016ee3
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M perl/lib/BarnOwl/View.pm

Log Message:
-----------
perlwrap.pm: Remove unused reset_all()


Commit: 753c6b5fe59c0958cf3605688e80d23589dcb276
    http://github.com/nelhage/barnowl/commit/753c6b5fe59c0958cf3605688e80d23589dcb276
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M functions.c

Log Message:
-----------
Remove the errors on delete view and delete trash.


Commit: 8d87c373241c74081e0201ca71e15ef70b3ae880
    http://github.com/nelhage/barnowl/commit/8d87c373241c74081e0201ca71e15ef70b3ae880
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M message.c

Log Message:
-----------
Lock messages by marking all of their attributes as read-only after creation.


Commit: 10a3aa2f88da659037e1f5e796f0b45b86390105
    http://github.com/nelhage/barnowl/commit/10a3aa2f88da659037e1f5e796f0b45b86390105
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M perlglue.xs

Log Message:
-----------
Lock messages when they're queued from perl, as well.


Commit: 928e9c1bf17a2fb57d8426d430e330f59138ac48
    http://github.com/nelhage/barnowl/commit/928e9c1bf17a2fb57d8426d430e330f59138ac48
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M message.c
  M perl/lib/BarnOwl/Message.pm

Log Message:
-----------
Add a mutable 'metadata' hash to messages.


Commit: cb822b29499b03e4cc3620c6a2a4c1169f0cb6c5
    http://github.com/nelhage/barnowl/commit/cb822b29499b03e4cc3620c6a2a4c1169f0cb6c5
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M perl/lib/BarnOwl/MessageList.pm

Log Message:
-----------
perlwrap.pm: Fix reverse iteration in MessageList


Commit: c3d3d2b640e7756d2527c782c90189ca83fe6e62
    http://github.com/nelhage/barnowl/commit/c3d3d2b640e7756d2527c782c90189ca83fe6e62
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M filterelement.c
  M message.c

Log Message:
-----------
Add the ability to filter on metadata using meta:foo as a predicate.


Commit: 79a96c509cb0f8377f3ff99526eb0a3d0ca4e4e4
    http://github.com/nelhage/barnowl/commit/79a96c509cb0f8377f3ff99526eb0a3d0ca4e4e4
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M commands.c
  M message.c
  A perl/lib/BarnOwl/Commands.pm
  M perl/lib/BarnOwl/Hooks.pm
  M perl/lib/BarnOwl/Message.pm

Log Message:
-----------
Move the 'yes' and 'no' commands into perl.

Move the 'yes' and 'no' commands into perl and replace their direct
modification of messages with use of the new meta hash.


Commit: 429601a80da2d42232b1738a78c573a2cc3a95cf
    http://github.com/nelhage/barnowl/commit/429601a80da2d42232b1738a78c573a2cc3a95cf
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M list.c

Log Message:
-----------
Squash pointer/integer cast warnings on 64-bit platforms.


Commit: 846d526f83e72255e1334c0c446d760a1389c20c
    http://github.com/nelhage/barnowl/commit/846d526f83e72255e1334c0c446d760a1389c20c
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  A t/message-list.t
  A t/messages.t
  A t/mock.pl

Log Message:
-----------
Add some basic tests for messages and the message list.

t/mock.pl mocks enough of perlglue.xs to load our code without loading
barnowl itself, so that we can test things in perl code.


Commit: 82b5d0a9f480e866674e320671198628d033c769
    http://github.com/nelhage/barnowl/commit/82b5d0a9f480e866674e320671198628d033c769
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M perl/lib/BarnOwl/MessageList.pm

Log Message:
-----------
Fix a bug in BarnOwl::MessageList::binsearch

The (failing) tests in the previous commit unmask a bug in binsearch,
where it would sometimes return an incorrect index. Fix that bug.


Commit: eba6f8e5d4544d2d13db01705f2fb40200974efa
    http://github.com/nelhage/barnowl/commit/eba6f8e5d4544d2d13db01705f2fb40200974efa
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M perl/lib/BarnOwl/MessageList.pm
  M t/message-list.t

Log Message:
-----------
More message list tests, and clean up the message list API.

More strictly define the iterate_* message list API, document it, and add
tests that it behaves as documented.


Commit: 63bc8ac7aeaf7795a628e841352928781c90455f
    http://github.com/nelhage/barnowl/commit/63bc8ac7aeaf7795a628e841352928781c90455f
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M perl/lib/BarnOwl/MessageList.pm
  M t/message-list.t

Log Message:
-----------
Redesign the MessageList iterator API slightly.

I think as a rule, iterators will confuse you less if they point between
objects, instead of at them. I'm planning to implement this behavior at
higher levels, and it will make life easier to have lower levels
implement it as well.


Commit: 691927e8b1f171fef2c2ae993c5d651832bc964c
    http://github.com/nelhage/barnowl/commit/691927e8b1f171fef2c2ae993c5d651832bc964c
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M perl/lib/BarnOwl/View/RangeList.pm
  M t/mock.pl
  A t/range-list.t

Log Message:
-----------
RangeList: Tests and API changes/fixes.

Make ranges have edges between points, rather than on points, as well.


Commit: 3786f3adbe08399632fd40c8290726cdb780a243
    http://github.com/nelhage/barnowl/commit/3786f3adbe08399632fd40c8290726cdb780a243
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M perl/lib/BarnOwl/View/RangeList.pm
  M t/range-list.t

Log Message:
-----------
RangeList: ranges can never shrink

Add tests and fix a bug.


Commit: e16a5cd93e25eb323015d7559bcd1b15f379a513
    http://github.com/nelhage/barnowl/commit/e16a5cd93e25eb323015d7559bcd1b15f379a513
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M perl/lib/BarnOwl/View.pm
  M perl/lib/BarnOwl/View/Iterator.pm
  M perl/lib/BarnOwl/View/RangeList.pm
  M t/mock.pl
  M t/range-list.t
  A t/view-basic.t
  M view.c

Log Message:
-----------
New view iterator API and tests, first pass.

Change view iterators to point between messages, instead of at messages,
and add some basic tests for behavior.


Commit: 133fabad0c2e4df65ce3cac8dc89d80114f8b135
    http://github.com/nelhage/barnowl/commit/133fabad0c2e4df65ce3cac8dc89d80114f8b135
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M perl/lib/BarnOwl/View/Iterator.pm
  M t/00-core-tests.t
  M t/view-basic.t

Log Message:
-----------
Add some tests for iterator behavior in the presence of deletion.


Commit: 025cfc7b4d9649ab49612f803f3b7883143ca5d1
    http://github.com/nelhage/barnowl/commit/025cfc7b4d9649ab49612f803f3b7883143ca5d1
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M t/mock.pl
  M t/view-basic.t

Log Message:
-----------
Move the test filters into mock.pl


Commit: 362c9eef248fa2d74ad045a03c07a43dd6de62c3
    http://github.com/nelhage/barnowl/commit/362c9eef248fa2d74ad045a03c07a43dd6de62c3
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M perl/lib/BarnOwl/View/Iterator.pm
  A t/view-bugs.t

Log Message:
-----------
Add a test file for bugfixes, and fix a bug with Iterator::cmp.


Commit: 393bac5a41f4e1fcd8dd11f325cd3a8c1091fdac
    http://github.com/nelhage/barnowl/commit/393bac5a41f4e1fcd8dd11f325cd3a8c1091fdac
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M perl/lib/BarnOwl/View.pm
  M perl/lib/BarnOwl/View/Iterator.pm
  M t/view-basic.t
  M t/view-bugs.t

Log Message:
-----------
More tests, more bugfixes.

* Test iterating the primes
* Test is_empty and is_at_end on one-message message lists, including
  through deleting that one message.


Commit: 149afaf2640fd44ccefe30ed1f339bb003d0aa62
    http://github.com/nelhage/barnowl/commit/149afaf2640fd44ccefe30ed1f339bb003d0aa62
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M message.c
  M perl/lib/BarnOwl/Message.pm

Log Message:
-----------
Rename the _time field to unix_time.

For consistency with mainline.


Commit: adea511b8b44636e5572df99f03d1cc2cc1f7d6a
    http://github.com/nelhage/barnowl/commit/adea511b8b44636e5572df99f03d1cc2cc1f7d6a
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M message.c

Log Message:
-----------
Quash two "value computed is not used" warnings.


Commit: f4d7d279a8a442c90ddc3ce7df5e1b25a75c41b3
    http://github.com/nelhage/barnowl/commit/f4d7d279a8a442c90ddc3ce7df5e1b25a75c41b3
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M functions.c

Log Message:
-----------
functions.c: Remove reference to owl_view_iterator_has_prev


Commit: 1a4593bbfcc3736f9735b34849c4506ee8fa76d8
    http://github.com/nelhage/barnowl/commit/1a4593bbfcc3736f9735b34849c4506ee8fa76d8
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M functions.c

Log Message:
-----------
functions.c: Don't initialize iterators at -1


Commit: a02756eacdabb431b453feb8de050379b948d1e9
    http://github.com/nelhage/barnowl/commit/a02756eacdabb431b453feb8de050379b948d1e9
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M perl/lib/BarnOwl/MessageList.pm
  M t/view-bugs.t

Log Message:
-----------
Some tests and bugfixes for an empty message list.


Commit: 4f6d346df6a4277f3b5a764e7c9b5441c9dcbc10
    http://github.com/nelhage/barnowl/commit/4f6d346df6a4277f3b5a764e7c9b5441c9dcbc10
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M view.c

Log Message:
-----------
view.c: Fix method names


Commit: 3bdc0d18232e4282a44d5d13b9e633f7b749bc90
    http://github.com/nelhage/barnowl/commit/3bdc0d18232e4282a44d5d13b9e633f7b749bc90
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M functions.c

Log Message:
-----------
calculate_topmsg_normal: Don't loop forever if the curmsg is at the end.


Commit: 9be1afca3a035033a3bf81fbacded74ddcfc80b3
    http://github.com/nelhage/barnowl/commit/9be1afca3a035033a3bf81fbacded74ddcfc80b3
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M perlconfig.c

Log Message:
-----------
message2hashref: Increment the refcnt before returning it.

Previous code assumed that calling message2hashref returned an SV*
that included a reference they owned. Preserve that convention.


Commit: d5acf3ac8a9e1db9a5f84481677d5baebb872259
    http://github.com/nelhage/barnowl/commit/d5acf3ac8a9e1db9a5f84481677d5baebb872259
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M functions.c

Log Message:
-----------
Some small logic fixes for cursor motion for the new iterator API.


Commit: cd8b65a8dd6dc5725375ec4c027d29fc5e856002
    http://github.com/nelhage/barnowl/commit/cd8b65a8dd6dc5725375ec4c027d29fc5e856002
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M mainwin.c
  M util.c

Log Message:
-----------
Fix the continually-displayed <more> in the sepbar.


Commit: e351193c94df060289ff901fe47958dc357f23fc
    http://github.com/nelhage/barnowl/commit/e351193c94df060289ff901fe47958dc357f23fc
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M tester.c

Log Message:
-----------
tester.c: Fix compiling


Commit: 8c71ab6532785501d25524871820528d11b13c37
    http://github.com/nelhage/barnowl/commit/8c71ab6532785501d25524871820528d11b13c37
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M t/00-core-tests.t

Log Message:
-----------
Set BARNOWL_DATA_DIR before running the built-in tester.


Commit: b37f88d2a4855f9dce6e1f74891ac540004e637d
    http://github.com/nelhage/barnowl/commit/b37f88d2a4855f9dce6e1f74891ac540004e637d
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M tester.c

Log Message:
-----------
tester: Output a correct plan


Commit: 1464130478649d82b2c2156866198feed0bdc7f3
    http://github.com/nelhage/barnowl/commit/1464130478649d82b2c2156866198feed0bdc7f3
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M functions.c

Log Message:
-----------
Simplify owl_function_expunge.

Iterators do the correct thing across message deletions, so there's no
reason to play the stupid save-the-message-id game. As a bonus, I
think this stops the point from moving around randomly on 'x'.


Commit: 3be32fd29ba257e233a00f74004db59c3e02e841
    http://github.com/nelhage/barnowl/commit/3be32fd29ba257e233a00f74004db59c3e02e841
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M functions.c

Log Message:
-----------
expunge: Don't let the point go off the message list.


Commit: bc72c313e8bec6415916adbf9108660d0cb358f9
    http://github.com/nelhage/barnowl/commit/bc72c313e8bec6415916adbf9108660d0cb358f9
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M mainwin.c

Log Message:
-----------
Add a check in case the point does ends up off the messagelist.

I believe the previous commit /should/ enforce the invariant that the
point never points past the last message, unless the message list is
empty. However, add an explicit check for it, since with the current
code, violating that invariant will result in a segfault.


Commit: 7e47d00f6413f69ed90b8ac4526184d3e3456575
    http://github.com/nelhage/barnowl/commit/7e47d00f6413f69ed90b8ac4526184d3e3456575
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M functions.c

Log Message:
-----------
Fix a segfault in owl_function_page_curmsg.


Commit: a500749dc08e41d59966d961c17739bdb25f9f37
    http://github.com/nelhage/barnowl/commit/a500749dc08e41d59966d961c17739bdb25f9f37
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M functions.c

Log Message:
-----------
Fix a bug with the point when changing filters.

Don't let the point go off the end of the message list.


Commit: 4538268fe960c70fb2a116a8d19fb4742f05d595
    http://github.com/nelhage/barnowl/commit/4538268fe960c70fb2a116a8d19fb4742f05d595
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M commands.c
  M functions.c
  M owl.c
  M perl/lib/BarnOwl/View.pm
  M t/view-basic.t
  M t/view-bugs.t
  M view.c

Log Message:
-----------
Remove the 'name' field from views.


Commit: 6a7d03b35d88a4e58d7d6b8561fbdf5b8808a0fa
    http://github.com/nelhage/barnowl/commit/6a7d03b35d88a4e58d7d6b8561fbdf5b8808a0fa
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M t/messages.t

Log Message:
-----------
message.t: Fix test for the _time -> unix_time renaming


Commit: 71460431a11e35be1e8c59bc40d63f14283c2887
    http://github.com/nelhage/barnowl/commit/71460431a11e35be1e8c59bc40d63f14283c2887
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M functions.c
  M global.c
  M mainwin.c
  M owl.c
  M owl.h
  M util.c

Log Message:
-----------
Move state out of owl_global into the mainwin


Commit: fbd7f88488718db24aecc6f754271d3ef8567746
    http://github.com/nelhage/barnowl/commit/fbd7f88488718db24aecc6f754271d3ef8567746
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M functions.c

Log Message:
-----------
Clean up the framer ("topmsg calculation") a bunch.


Commit: e9a714de3543d3184ba19268245ea48775c2fabc
    http://github.com/nelhage/barnowl/commit/e9a714de3543d3184ba19268245ea48775c2fabc
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M functions.c
  M global.c
  M mainwin.c

Log Message:
-----------
Move the framer into mainwin.c


Commit: 63b26017dc5bfc5a8bd1e7d77428030208c222f1
    http://github.com/nelhage/barnowl/commit/63b26017dc5bfc5a8bd1e7d77428030208c222f1
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M functions.c
  M global.c
  M mainwin.c
  M perl/lib/BarnOwl/View/Iterator.pm
  M view.c

Log Message:
-----------
Remove manual set_topmsg() calls.


Commit: 0f6384fb3796e10daccb6be04d04a58a9083e7bb
    http://github.com/nelhage/barnowl/commit/0f6384fb3796e10daccb6be04d04a58a9083e7bb
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M mainwin.c

Log Message:
-----------
I think this is more correct behavior when changing filter.


Commit: 3be3c2f5cc032cbee308385c63407b76c23efebb
    http://github.com/nelhage/barnowl/commit/3be3c2f5cc032cbee308385c63407b76c23efebb
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

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

Log Message:
-----------
Move the current_view into the mainwin.


Commit: bb83f24a9f4fc7b807a4dbaacbf967a6e689e7a4
    http://github.com/nelhage/barnowl/commit/bb83f24a9f4fc7b807a4dbaacbf967a6e689e7a4
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M functions.c

Log Message:
-----------
Fix the 'last' command.


Commit: 5b941e0eaf0e5e183334c55ffb8e0f379d74a007
    http://github.com/nelhage/barnowl/commit/5b941e0eaf0e5e183334c55ffb8e0f379d74a007
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M perl/lib/BarnOwl/Message.pm
  M perl/lib/BarnOwl/View.pm

Log Message:
-----------
Update cached views whenever metadata on a message changes.


Commit: 0a4bb51642c56d77f8b2aaf535b3e822f05552a9
    http://github.com/nelhage/barnowl/commit/0a4bb51642c56d77f8b2aaf535b3e822f05552a9
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M perlglue.xs

Log Message:
-----------
perlglue.xs: Harden the SV_IS_MESSAGE macro


Commit: 0219f6273eda62043d097ec04b31e2cc81e316de
    http://github.com/nelhage/barnowl/commit/0219f6273eda62043d097ec04b31e2cc81e316de
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M owl.c

Log Message:
-----------
Remove a useless variable in main().


Commit: 828e6be906a644ee1586df08e6c734427d02c669
    http://github.com/nelhage/barnowl/commit/828e6be906a644ee1586df08e6c734427d02c669
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M util.c

Log Message:
-----------
sepbar: Don't show "??? / ???", just show the total number of messages.

I currently have no intention of fixing that feature, so showing ??? just
draws attention to the fact that it's not there.


Commit: c3a058c1ee786036389c68051a0506f167482fcc
    http://github.com/nelhage/barnowl/commit/c3a058c1ee786036389c68051a0506f167482fcc
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M functions.c
  M message.c

Log Message:
-----------
Fix loopwrite.

The loopwrite functions depended on the caller to set the message
direction, which broke because messages are now "locked" to be read-only
after creation. Fix that, and make the API saner while we're at it.


Commit: bcf522467a2a6526117b60b1b0c7789695cdc0e0
    http://github.com/nelhage/barnowl/commit/bcf522467a2a6526117b60b1b0c7789695cdc0e0
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M t/mock.pl

Log Message:
-----------
mock.pl: Fix tests.

Merging with 'master' added code to BarnOwl.pm that relies on
new_command and new_variable, which we had not mocked. For now, stub
them with empty definitions.


Commit: 74b679406206a5ee2ca8e0f1dd1e66430f5c4502
    http://github.com/nelhage/barnowl/commit/74b679406206a5ee2ca8e0f1dd1e66430f5c4502
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M perl/lib/BarnOwl/View.pm
  M perl/lib/BarnOwl/View/Iterator.pm
  M perl/lib/BarnOwl/View/RangeList.pm
  M t/mock.pl

Log Message:
-----------
BarnOwl::View: Be less verbose by default.

BarnOwl::View's debug spew is incredibly detailed. Make another internal
variable that controls it, and set if off by default.


Commit: 88d0607ff2d643025a269a380dfdec72b5bc9b27
    http://github.com/nelhage/barnowl/commit/88d0607ff2d643025a269a380dfdec72b5bc9b27
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M perl/lib/BarnOwl/View/Iterator.pm

Log Message:
-----------
BarnOwl::View::Iterator: Don't use trivial accessors

This code is almost all on critical paths, and the method call
overhead adds up.


Commit: 7e7286d05abb90c0bd13e0110f82b050232c7beb
    http://github.com/nelhage/barnowl/commit/7e7286d05abb90c0bd13e0110f82b050232c7beb
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M perl/lib/BarnOwl/View.pm
  M perl/lib/BarnOwl/View/Iterator.pm

Log Message:
-----------
BarnOwl::View: Cache the most-recently-used range.

Keep track of which range we accessed last, to speed the common case
of lots of operations around the same point.


Commit: 935d2411b0e1afa51580935780820757ef5a38c6
    http://github.com/nelhage/barnowl/commit/935d2411b0e1afa51580935780820757ef5a38c6
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M perl/lib/BarnOwl/View.pm

Log Message:
-----------
View.pm: Optimize sub message.

Access $_ directly, instead of 'shift'ing into variables. This
decreases time by 40% in one of the hottest subs we have.


Commit: 689138e382c801e1286c127302cc6a7791b3891e
    http://github.com/nelhage/barnowl/commit/689138e382c801e1286c127302cc6a7791b3891e
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M perl/lib/BarnOwl/MessageList.pm

Log Message:
-----------
MessageList: Cache $self->{keys}.

Doing a 'sort' on every iteration is expensive.


Commit: 791e70fbd70b7f5c879aece4c0374ed156c74148
    http://github.com/nelhage/barnowl/commit/791e70fbd70b7f5c879aece4c0374ed156c74148
Author: Nelson Elhage <nelhage@mit.edu>
Date:   2009-08-07 (Fri, 07 Aug 2009)

Changed paths:
  M perl/lib/BarnOwl/View/Iterator.pm

Log Message:
-----------
Explicitly optimize the common case in BarnOwl::View::Iterator::fixup



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