February 18th, 2004

  • evan

weak-linking

More demands for weak linking.
I'm thinking this could be made into a utility and set of associated autoconf scripts. I want to be able to say in some central place "I want to weak-link against libfoo.so" and have it generate headers like this:
#ifdef LINK_WITH_LIBFOO

#define weaklink_libfoo_init() 1

#elif defined(WEAKLINK_WITH_LIBFOO)

/* generated from void foo_bar(int) */
extern void (*foo_bar)(int);  /* initialize it to NULL in the .c file. */

void weaklink_libfoo_init(void);
/* body of that function is {
  dlinit ...;
  foo_bar = dlsym ...;
} */

#else  /* they don't want to link with libfoo at all.  */

#error Don't include this header unless HAVE_LIBFOO is defined.

#endif
And then do the appropriate configure-time trickery.
  • evan

things to do

LogJam release is out. I can let that idle for another six months or so.

So now I want to work on:
  • Implement this algorithm [pretty pictures] and apply it to my LJ friendset. I already started it but I got mired in writing it functionally (still working on that!). I'm also a little confused about some of the details they skipped over (when I merge groups A and B, do I add row B to column A and column B to row A? that seems to doublecount B-A links?).
  • Finish my C bindings for memcached.
  • Make my language detector use trigrams. See how much better the results are. Train it on more data, etc. etc.
    Someone recently told me that the cool kids use something called "support vector machines" to do this sort of thing these days, but I still haven't looked in to it.
  • And the normal pile of things always on the back burner: Pango + Arabic support, multilanguage GtkSpell support (btw, 2.0.5 is actually nice enough that I started using it again)...
Never enough time.
  • evan

things to read

Recently I liked:
Memory Safety Without Runtime Checks or Garbage Collection. They sorta cheat, but you sorta have to.
Adaptive Functional Programming. Basically, a relatively non-invasive transformation on an algorithm (sorta reminds me of CPS) lets you tweak its inputs and have it automatically only update the parts that changed. I think their example was taking quicksort, adding one number to the input, and having it resort in log n. Long, but the second half goes into proofs and my eyes glaze over.
And, um, drawing a blank.