Timeline


and

Jun 18, 2011:

11:56 PM Ticket #143 (jwrite fails on jids including a dash (-)) closed by jgross@mit.edu
fixed
11:52 PM Ticket #181 (Display jabber names (not just jids)) created by jgross@mit.edu
Currently, only jids are displayed on messages and notifications. We …
11:04 PM Ticket #172 (These tickets should go somewhere) closed by andersk@mit.edu
fixed
5:17 PM Ticket #149 (Net::IRC is abandoned) closed by davidben@mit.edu
fixed: Fixed in 1753ea0efc7c6af1bbd2888e6138421dbb939fad. Using AnyEvent::IRC now.
5:12 PM Changeset [0d3c100] by GitHub Merge Button <merge-button@github.com>
Merge e93dd785a2e76aa0dc14ecd56fd2c61b3598bc96 into 5b197f71370f5a5b3c3c09935c5679d6c90fa4c2
5:09 PM Changeset [e93dd78]release-1.10release-1.8release-1.9 by David Benjamin <davidben@mit.edu>
Properly tear down the ncurses screen in tester.c There's actually a set of valgrind suppressions in ncurses, and there really isn't API to clean up after initscr. But since we allocate this SCREEN ourselves, may as well clean it up.
5:07 PM Changeset [f0781ba]release-1.10release-1.8release-1.9 by David Benjamin <davidben@mit.edu>
Release reference to GMainLoop when done It's only done at shutdown, but we may as well appease valgrind.
4:39 PM Changeset [596c8b10]release-1.10release-1.8release-1.9 by David Benjamin <davidben@mit.edu>
Don't leak string data in owl_util_regtest
2:57 PM Changeset [a9237aa]release-1.10release-1.8release-1.9 by David Benjamin <davidben@mit.edu>
Don't specify both G_VOID and G_SCALAR Turns out G_SCALAR is 0, so it doesn't really matter, but we may as well say what we mean.

Jun 11, 2011:

10:16 PM Changeset [5b197f7]release-1.10release-1.8release-1.9 by Anders Kaseorg <andersk@mit.edu>
zcrypt: Remove unused #include <zephyr/zephyr.h> Signed-off-by: Anders Kaseorg <andersk@mit.edu>
6:31 PM Changeset [7df7be2] by David Benjamin <davidben@mit.edu>
Replace BarnOwl::Timer with a perl wrapper over AnyEvent This also allows us to kill owl_timer altogether.
6:31 PM Changeset [b9d22f7] by David Benjamin <davidben@mit.edu>
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.
6:31 PM Changeset [89fe67e] by David Benjamin <davidben@mit.edu>
Convert pseudologins timer to glib timers
6:31 PM Changeset [6dc3757] by David Benjamin <davidben@mit.edu>
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.
6:31 PM Changeset [db4f7c3] by David Benjamin <davidben@mit.edu>
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.
6:31 PM Changeset [431fcd8] by David Benjamin <davidben@mit.edu>
Use AnyEvent's Glib backend
3:52 PM Changeset [2fe7c45]release-1.10release-1.8release-1.9 by Karl Ramm <xyzzy-github@1ts.org>
Merge pull request #24 from ezyang/master Handle Jabber nicks with leading dashes (e.g. Facebook XMPP) Signed-off-by: Edward Z. Yang <ezyang@mit.edu> Reviewed-By: Karl Ramm <kcr@1ts.org>
10:04 AM Changeset [d6ab007] by GitHub Merge Button <merge-button@github.com>
Merge a27acf7e0eeeab9f58eed28146c6c99cc161b3b0 into 83a4af3422d232d9ef981a5a009e31549c839a14
9:35 AM Changeset [a27acf7]release-1.10release-1.8release-1.9 by Edward Z. Yang <ezyang@mit.edu>
Handle Jabber nicks with leading dashes (e.g. Facebook XMPP) Signed-off-by: Edward Z. Yang <ezyang@mit.edu>

Jun 10, 2011:

7:06 PM Changeset [7f86e3d] by Anders Kaseorg <andersk@mit.edu>
zcrypt: Remove unused #include <zephyr/zephyr.h> Signed-off-by: Anders Kaseorg <andersk@mit.edu>

Jun 6, 2011:

11:50 AM Changeset [28cd43f9] by GitHub Merge Button <merge-button@github.com>
Merge 83a4af3422d232d9ef981a5a009e31549c839a14 into cc305b53e93deb26ad26d3eb1beaf34d53c0d6ac

Jun 4, 2011:

5:55 AM Changeset [83a4af3]release-1.10release-1.8release-1.9 by Jason Gross <jgross@mit.edu>
Replace free() with g_free() I can't believe I missed this when I made 950e2dac.

Jun 3, 2011:

11:07 PM Changeset [6376af1] by David Benjamin <davidben@mit.edu>
Use glib spawn functions when launching a newmsgproc The glib version is smaller and has the advantage of not leaking all our file descriptors to the process. More importantly, it does not call malloc between fork and exec which is not safe in the presence of threads.

May 30, 2011:

10:27 PM Changeset [cc305b5]release-1.10release-1.8release-1.9 by Adam Glasgall <glasgall@mit.edu>
Move log-writing onto a background thread. Currently, Barnowl writes message logs on the same thread as the UI and other I/O. This means that if writing log files is very slow (e.g. if logpath or classlogpath point to somewhere in AFS and the fileserver that volume relies on is very slow to respond), barnowl freezes up until the write completes. This patch creates a background logging thread as part of initialization and runs a main loop on that thread. Logging is then accomplished by posting tasks that write to log files to that thread, a la how other threads can post tasks to the UI thread's main loop. Post a quit task to the logging thread's mainloop instead of quitting directly Calling g_main_quit() on the main thread to quit the logging thread could resultin log tasks still in its queue getting lost. Instead, after we've shut down everything that could log messages, post a quit task to the log thread so that it'll only get run after everything outstanding has been processed.
10:27 PM Changeset [44976fe]release-1.10release-1.8release-1.9 by Adam Glasgall <glasgall@mit.edu>
Make owl_select_post_task take a context argument Make owl_select_post_task take a context argument to indicate /which/ running mainloop it should run the task on, since now there's more than one.
7:51 PM Changeset [9835b7a] by GitHub Merge Button <merge-button@github.com>
Merge 1081d0fb7e406801281c29e6ec2e0f9362f9b70c into 259e60a8abc2d2d41bc7a484b02a334fdd13857f
7:49 PM Ticket #175 ("startup" command produces error when run for the first time) closed by andersk@mit.edu
fixed: Pushed as commit 6eb3ed9ee6c4b94d35628e5b6b2bbaeccca565a9.
7:46 PM Changeset [259e60a8]release-1.10release-1.8release-1.9 by Anders Kaseorg <andersk@mit.edu>
Remove the length limit on field values in :info
7:45 PM Changeset [8ffa264]release-1.10release-1.8release-1.9 by Anders Kaseorg <andersk@mit.edu>
startup: check for file before calling owl_util_file_deleteline This fixes trac #175: '"startup" command produces error when run for the first time'. The startup command deletes duplicate lines, and thus errored when no file existed. A check has been added to prevent this.
7:43 PM Changeset [6eb3ed9]release-1.10release-1.8release-1.9 by Anders Kaseorg <andersk@mit.edu>
Show how far you are in a long message Addresses most of ticket #119 - it shows how far you are in a long message, but not in a message that you're typing. The display style I've somewhat arbitrarily chosen is to replace <truncated> with <truncated: $num_lines_through/$total_lines>. Additionally, the <truncated> part of sepbar has been moved to be next to 'SCROLL', which it is most similar to.

May 28, 2011:

2:24 AM Ticket #180 (Paste detection in wordwrap) created by adehnert@mit.edu
When pasting zephyr excerpts, code, and other preformatted text, it's …
2:07 AM Ticket #179 (Intelligently (refuse to) wordwrap lists) created by adehnert@mit.edu
When I hit M-q in the middle of something like […] Or […] I want …

May 27, 2011:

12:08 PM Ticket #178 (failure message from addbuddy is clobbered by inaccurate success message) created by jgross@mit.edu
owl_zephyr_addbuddy owl_function_errors if it can't open the …
12:00 PM Ticket #65 (ability to set exposure arbitrarily) closed by jgross@mit.edu
fixed: Fixed by commit f203cad04d71e968a11be5e72e6c9d805e02010d

May 25, 2011:

11:10 PM Changeset [414a272] by GitHub Merge Button <merge-button@github.com>
Merge 6476c0e00a11e070e7480afa291a8a0976aa7828 into 697221fc51f0060043c93821f0358317f6bc6ab0
11:05 PM Changeset [6476c0e]release-1.10release-1.8release-1.9 by Anders Kaseorg <andersk@mit.edu>
stderr_redirect_handler: Handle partial or failed reads Signed-off-by: Anders Kaseorg <andersk@mit.edu>
3:45 PM Ticket #177 (Explicitly set jabber status should not be overridden) created by kchen@mit.edu
If I explicitly set a jabber status, it should not be overridden. …

May 24, 2011:

9:36 PM Changeset [f1c845b] by GitHub Merge Button <merge-button@github.com>
Merge 697221fc51f0060043c93821f0358317f6bc6ab0 into b848e308e9f8f212ddbf787f08111af994000512
9:36 PM Changeset [697221f]release-1.10release-1.8release-1.9 by David Benjamin <davidben@mit.edu>
Inform the user when an unpunt command does nothing Also, make the corresponding message for referencing a punt filter by number not an error. It's not an internal error, so it needn't be logged.
9:36 PM Changeset [78f6c35]release-1.10release-1.8release-1.9 by David Benjamin <davidben@mit.edu>
Don't use skiptokens in punt/unpunt There was no need for it. This cuts down on one of the more nasty usages of skiptokens in command parsing.
9:22 PM Changeset [2d415cc]release-1.10release-1.8release-1.9 by David Benjamin <davidben@mit.edu>
Fix the documentation for punt/unpunt The full extent of the horrors of these commands' syntax had not quite been correctly documented.
5:39 PM Ticket #176 (viewuser should support non-zephyr protocols) created by kchen@mit.edu
I frequently talk with one person on jabber, and whenever I want to …
12:10 AM Changeset [b848e30]release-1.10release-1.8release-1.9 by David Benjamin <davidben@mit.edu>
Fix the build on libzephyr-less machines Just don't compile the event source functions at all. There's no good reason to use them without libzephyr support. We should really move towards not building zephyr.c in that case anyway.

May 23, 2011:

10:24 PM Changeset [33b6431b]release-1.10release-1.8release-1.9 by David Benjamin <davidben@mit.edu>
Clarify owl_io_dispatch ownership A created owl_io_dispatch is owned by whoever created. For instances where owl_select needs to remove one of them, we instead invalidate them. In the case of perl IO dispatches, they are owned by the nebulous blob that implicitly maps fd to IO dispatch. This is completely insane, but should avoid leaving people with invalid owl_io_dispatch pointers. Use this same mechanism to restore owl_select_prune_bad_fds logic. We really need to kill this and owl_timer in favor of glib's things.
9:09 PM Changeset [f97c1a6]release-1.10release-1.8release-1.9 by David Benjamin <davidben@mit.edu>
Merge branch 'g_main_loop' The logic in owl_select_prune_bad_fds still needs to be reimplemented. Conflicts: configure.ac owl.c select.c
8:57 PM Changeset [1d21d9f]release-1.10release-1.8release-1.9 by David Benjamin <davidben@mit.edu>
Use sigwaitinfo instead of sigwait Eh, may as well give the signal handlers a little bit more rope.
8:57 PM Changeset [ba12b44]release-1.10release-1.8release-1.9 by David Benjamin <davidben@mit.edu>
Add owl_select_post_task helper function Honestly, the only thing you'd ever want to do to a message loop from another thread is post a one-off task to it. Why Glib makes this so difficult is beyond me.
8:57 PM Changeset [117b2ba]release-1.10release-1.8release-1.9 by David Benjamin <davidben@mit.edu>
Move owl_process_input_char to owl.c It would be nice to move some functions out of there too, but it really makes no sense in select.c.
8:57 PM Changeset [dc1edbd]release-1.10release-1.8release-1.9 by David Benjamin <davidben@mit.edu>
Add a GSource for AIM events The AIM file descriptor hack is somewhat less of a hack now. Remove code related to the old AIM implementation now that it's been superceded.
8:57 PM Changeset [08e9842]release-1.10release-1.8release-1.9 by David Benjamin <davidben@mit.edu>
Cleanly destroy the signal thread on shutdown This isn't strictly necessary here, but we should probably be in the habit of safely cleaning up our helper threads. Switch the implementation from GThread to pthreads directly. The cleanest way to kill a signaling thread is to send it SIGTERM with pthread_kill, but GThread doesn't expose that and gives no way to get at the pthread_t.
8:57 PM Changeset [6bd485e]release-1.10release-1.8release-1.9 by David Benjamin <davidben@mit.edu>
Reset signal dispositions and mask, in case our parent was lame Also check return values more carefully.
8:57 PM Changeset [47128d9]release-1.10release-1.8release-1.9 by David Benjamin <davidben@mit.edu>
Allow interrupts to be taken at any point This way we can catch SIGINT in the middle of a search if we care. (Though ideally we wouldn't block the event loop when searching like this.)
8:57 PM Changeset [1491439]release-1.10release-1.8release-1.9 by David Benjamin <davidben@mit.edu>
Don't deliver SIGALRM through the signal thread We don't do anything with it, and code that uses alarm(), of which we have none, wouldn't expect it to be set to something useful anyway.
8:57 PM Changeset [e2cc848]release-1.10release-1.8release-1.9 by David Benjamin <davidben@mit.edu>
Just ignore SIGPIPE altogether There's not much point in switching back and forth from ignoring it and mostly ignoring it. Also, we don't handle SIGCHLD so remove the code for it. (We actually also disable it in the Jabber module because XML::Stream sets $SIG{PIPE}. Meh.)
8:57 PM Changeset [81db142]release-1.10release-1.8release-1.9 by David Benjamin <davidben@mit.edu>
Make owl_signal_init take a signal-thread callback Instead of pushing the work directly the main thread. This will allow us to react to SIGINT earlier.
8:57 PM Changeset [257b9c4]release-1.10release-1.8release-1.9 by David Benjamin <davidben@mit.edu>
Punt pre-select actions The four users are now directly handled with GSources.
8:57 PM Changeset [3535a6e]release-1.10release-1.8release-1.9 by David Benjamin <davidben@mit.edu>
First go at sigwait-based signal handling Instead of relying on pselect and signal masking to listen for signals, which glib doesn't support, we spawn a dedicated signal thread that loops in sigwait. These signals are posted back to the main message loop which may handle them at will. This avoids the need for complex reentrant code and sig_atomic_t. This removes the final pre-select action. SIGINT doesn't quite work right yet because we can no longer take it in the middle of an event loop iteration.
8:57 PM Changeset [959cb85]release-1.10release-1.8release-1.9 by David Benjamin <davidben@mit.edu>
Add a zephyr GSource This may actually have some use as a GSource instead of g_idle_add since we queue messages up and only process so many at a time. The use of ZQLength isn't strictly necessary, but we may as well be fancy and wait for the poll() to tell us if there's any point in reading before doing so. This is the third pre-select action.
8:57 PM Changeset [6b4033f]release-1.10release-1.8release-1.9 by David Benjamin <davidben@mit.edu>
Also make owl_process_messages a GSource This is the second pre-select action.
8:57 PM Changeset [4cc49bc]release-1.10release-1.8release-1.9 by David Benjamin <davidben@mit.edu>
Make the owl_window redraw hook a GSource (Should this be a g_idle_add instead?) This is the first pre-select action to die.
8:57 PM Changeset [2c79eae]release-1.10release-1.8release-1.9 by David Benjamin <davidben@mit.edu>
Start of GMainContext code Add GSources to feed owl_timer and owl_io_dispatch events into the main loop. Also add a hack so pre-select actions run at all. Glib's main loop has a hard priority system, so it prefers that prepare/check hooks return if the event would actually do anything. We probably want to replace every pre-select action with a dedicated GSource (or maybe a bunch of g_idle_add calls). Signals are also racy right now; glib uses select/poll instead of pselect/ppoll, so you can't actually listen for signals on the same thread. (In fact, the single-threaded version of g_child_watch_add doesn't actually work.) That's okay as what we were doing doesn't work when you add a second thread and thread safety is sort of the point of this work. The AIM hack need also be restored. Keep owl_select around for now as reference.
8:57 PM Changeset [1255365]release-1.10release-1.8release-1.9 by David Benjamin <davidben@mit.edu>
Link to gthread-2.0 so we can use glib's threading code
8:57 PM Changeset [ebb8498]release-1.10release-1.8release-1.9 by David Benjamin <davidben@mit.edu>
Mark some functions static They were never called outside select.c
8:20 PM Changeset [57bc141]release-1.10release-1.8release-1.9 by David Benjamin <davidben@mit.edu>
Punt _owl_select_timer_eq It hasn't been used for a long time.
8:20 PM Changeset [feeb835]release-1.10release-1.8release-1.9 by David Benjamin <davidben@mit.edu>
Remove OwlGlobalNotifier typedef Ugh. This is what I get for being sloppy with my experiments.

May 20, 2011:

4:50 PM Changeset [1081d0f] by Jason Gross <jgross@mit.edu>
Remove the length limit on field values in :info
3:59 PM Changeset [4c7c21f]release-1.10release-1.8release-1.9 by David Benjamin <davidben@mit.edu>
owl_dict_create also never fails And like everywhere else, we weren't checking the return values most of the time anyway.
3:59 PM Changeset [351c535]release-1.10release-1.8release-1.9 by David Benjamin <davidben@mit.edu>
owl_dict_get_keys never fails No sense in returning an error code.
3:59 PM Changeset [fda61d3]release-1.10release-1.8release-1.9 by David Benjamin <davidben@mit.edu>
g_strdup and g_new0 never fail Remove pointless failure checks cluttering the code.
3:59 PM Changeset [3b8a563]release-1.10release-1.8release-1.9 by David Benjamin <davidben@mit.edu>
Remove NULL checks before calling g_free g_free handles the NULL check for us.
Note: See TracTimeline for information about the timeline view.