I spend too much time writing Emacs Lisp code these days. Unfortunately, the more I do the more I find new useful tools to improve my work-flow and save time for doing more Lisp. D'oh. I did not work on any big thing these last weeks, so I'm thinking it's a good time to talk about the various code and patches I sent to multiple Emacs packages. el-get el-get, a fabulous tool that installs and handles all the external Emacs packages I use. A friendly war started on the development list about autoloads handling. The discussion was overall pointless, since we had a very hard time to communicate our ideas, and we did not understand each others several times. In the end, el-get now supports autoload correctly and do not load automatically all your packages, improving the startup time, and using the Emacs way to do things. Which is always better, obviously. git-commit-mode
I've started to use git-commit-mode some times ago. I usually use git-commit with the -v option to see what I'm committing. I though it would be useful to color the diff with diff-mode, so I wrote a patch just to do that, which was merged today by Florian. magit
Some weeks ago, I decided to give a try to magit, and loved it. I am not always using it, but for basic operations it is very useful. But I really soon found some things I did not like and therefore send patches to enhance it. First, I've added a patch to honor status.showUntrackedFiles which I use in my home directory. In the mean time, I've also added a patch to allow adding an arbitrary file. Yesterday, I sent another pull request, not closed for now, which adds the possibility to visit files in another window from a diff file, and the support for add-change-log-entry directly from the displayed diff. Useful for these old projects still using ChangeLog files but accessible through git (hi Emacs & Gnus!). Gnus
Nothing remarkable, but I write a couple of fixes and enhancements to the Sieve manage mode, to the Gravatar code and cleaned-up some very very old code. Also added the possibility to set list-identifier as a group parameter. Org-mode
I spent most of my time working on my jd/agenda-format branch, which is soon to be merged. I've also just got developer access to the Org-mode patch work and repository, so I'll be able to break things even more! ;-) ERC
I fixed the bug that annoyed me for a long time. Now erc-track does not reset the last channel status on window visibility changes not made by the user.
(require 'git-commit)The last line is handy if you have save-place on by default. When you make a new commit, it would then normally place the cursor where a previously edited commit message was finished, because to the save-place functionality, it looks as though it's the same file.
(add-hook 'git-commit-mode-hook 'turn-on-flyspell)
(add-hook 'git-commit-mode-hook (lambda () (toggle-save-place 0)))
$ xvfb-run -a make testinstead of a plain
make test
. That'll automatically create a fake
xserver, set up DISPLAY
and run make test
in that environment.
That works well for manually installing modules. When installing using
CPAN.pm
you can make things easier by writing a distropref.
First, tell cpan where your distroprefs are. I use ~/.cpan/prefs
:
$ cpan cpan[1]> o conf init prefs_dir [...] <prefs_dir> Directory where to store default options/environment/dialogs for building modules that need some customization? [] /home/rafl/.cpan/prefs cpan[3]> o conf commit commit: wrote '/home/rafl/.cpan/CPAN/MyConfig.pm'Now write a distropref for the modules that need an X server and put it into your prefs dir as
X11.yml
--- match: distribution: /(?x:Wx Gtk2 Gnome2 ... other modules requiring an X server )-\d test: commandline: "xvfb-run -a make test"Now the tests for Wx, Gtk2, Gnome2 and all other distributions you list in that regex will be executed with a fake X server. I have yet to figure out how to write a distropref that just prepends to the test commandline instead of replacing it so I won't need to have another pref for all modules using
Module::Build
.
my
declarations that
includes a type name, like this:
my Str $x = 'foo';However, that didn't do anything useful, until Vincent Pit came along and wrote the excellent Lexical::Types module, which allows you to extend the semantics of typed lexicals and actually make them do something useful. For that, it simply invokes a callback for every
my
declaration with a type in the scopes it is
loaded. Within that callback you get the variable that is being
declared as well as the name of the type used in the declaration.
We also have Moose type constraints and the great
MooseX::Types module,
that allows us to define our own type libraries and import the type
constraints into other modules.
Let's glue those modules together. Consider this code:
use MooseX::Types::Moose qw/Int/; use Lexical::Types; my Int $x = 42;The first problem is that the perl compiler expects a package with the name of the type used in
my
to exist. If there's no such package
compilation will fail.
Creating top-level namespaces for all the types we want to use would
obviously suck. Luckily the compiler will also try to look for a
function with the name of the type in the current scope. If that
exists and is inlineable, it will call that function and use the
return value as a package name.
In the above code snippet an Int
function already exists. We
imported that from MooseX::Types::Moose
. Unfortunately it isn't
inlineable. Even if it were, compilation would still fail, because it
would return a Moose::Meta::TypeConstraint
instead of a valid
package name.
To fix that, let's rewrite the code to this:
use MooseX::Types::Moose qw/Int/; use MooseX::Lexical::Types qw/Int/; my Int $x = 42;Let's also write a MooseX::Lexical::Types module that replaces existing imported type exports with something that can be inlined and returns an existing package name based on the type constraint's name.
package MooseX::Lexical::Types; use Class::MOP; use MooseX::Types::Util qw/has_available_type_export/; use namespace::autoclean; sub import my ($class, @args) = @_; my $caller = caller(); my $meta = Class::MOP::class_of($caller) Class::MOP::Class->initialize($caller); for my $type_name (@args) # get the type constraint by introspecting the caller my $type_constraint = has_available_type_export($caller, $type_name); my $package = 'MooseX::Lexical::Types::TYPE::' . $type_constraint->name; Class::MOP::Class->create($package); $meta->add_package_symbol('&'.$type_name => sub () $package ); Lexical::Types->import; # enable Lexical::Types for the caller 1;With that the example code now compiles. Unfortunately it breaks every other usecase of MooseX::Types. The export will still need to return a
Moose::Meta::TypeConstraint
at run time so this will continue to
work:
has some_attribute => (is => 'ro', isa => Int);So instead of returning a plain package name from our exported function we will return an object that delegates all method calls to the actual type constraint, but evaluates to our special package name when used as a string:
my $decorator = MooseX::Lexical::Types::TypeDecorator->new($type_constraint); $meta->add_package_symbol('&'.$type_name => sub () $decorator );and:
package MooseX::Lexical::Types::TypeDecorator; use Moose; use namespace::autoclean; # MooseX::Types happens to already have a class that doesn't do much # more than delegating to a real type constraint! extends 'MooseX::Types::TypeDecorator'; use overload '""' => sub 'MooseX::Lexical::Types::TYPE::' . $_[0]->__type_constraint->name ; 1;Now we're able to use
Int
as usual and have Lexical::Types invoke
its callback on MooseX::Lexical::Types::TYPE::Int
. Within that
callback we will need the real type constraint again, but as it is
invoked as a class method with no good way to pass in additional
arguments, we will need to store the type constraint somewhere. I
choose to simply add a method to the type class we create when
constructing our export. After that, all we need is to implement our
Lexical::Types callback. We will put that in a class all our type
classes will inherit from:
Class::MOP::Class->create( $package => ( superclasses => ['MooseX::Lexical::Types::TypedScalar'], methods => get_type_constraint => sub $type_constraint , , ), );The Lexical::Types callback will now need to tie things together by modifying the declared variable so it will automatically validate values against the type constraint when being assigned to. There are several ways of doing this. Using
tie
on the declared variable
would probable be the easiest thing to do. However, I decided to use
Variable::Magic
(also written by Vincent Pit - did I mention he's awesome?), because
it's mostly invisible at the perl level and also performs rather well
(not that it'd matter, given that validation itself is relatively
slow):
package MooseX::Lexical::Types::TypedScalar; use Carp qw/confess/; use Variable::Magic qw/wizard cast/; use namespace::autoclean; my $wiz = wizard # store the type constraint in the data attached to the magic data => sub $_[1]->get_type_constraint , # when assigning to the variable, fail if we can't validate the # new value ($_[0]) against the type constraint ($_[1]) set => sub if (defined (my $msg = $_[1]->validate($ $_[0] ))) confess $msg; (); ; sub TYPEDSCALAR # cast $wiz on the variable in $_[1]. pass the type package name # in $_[0] to the wizard's data construction callback. cast $_[1], $wiz, $_[0]; (); 1;With this, our example code now works. If someone wants to assign, say,
'foo'
to the variable declared as my Int $x
our magic
callback will be invoked, try to validate the value against the type
constraint and fail loudly. WIN!
The code for all this is available
github and should also
be on CPAN shortly.
You might notice warnings about mismatching prototypes. Those are
caused by Class::MOP and fixed in the git version of it, so they'll go
away with the next release.
There's still a couple of caveats, but please see the documentation
for that.
sub base : Chained('/') PathPart('') CaptureArgs(0) ... sub index : Chained('base') PathPart('') Args(0) ... sub default : Chained('base') PathPart('') Args ...It's a nice and clean syntax that keeps all important information right next to the method it belongs to. However, attributes in perl have a couple of limitations. For one, the interface the perl core provides to use them is horrible and doesn't provide nearly enough information to do a lot of things, but most importantly attributes are just plain strings. That means you will need to parse something like
"Chained('base')"
into
(Chained => 'base')
yourself to make proper use of them.
While that's easy for the above example, it can be very hard in the
general case because only perl can parse Perl. It's one of the reasons
you can't use Catalyst::Controller::ActionRole to apply
parameterized roles to your action instances, because parsing
parameters out of things like
Does(SomeRole => names => [qw/affe tiger/], answer_re => qr/42/ )
would be awful and wrong.
With Catalyst 5.8 most of the attribute related code has been removed
from the internals. It's now using MooseX::MethodAttributes to do
all the heavy lifting. Also the internals of how actions are
registered have been refactored to make it easier to implement
alternate ways without changing the Catalyst core.
As a proof of concept for this I implemented a new way of declaring
actions that's very similar to how Moose provides it's sugar
functions. You can get it from
github.
With that, the above example looks like this:
action base => (Chained => '/', PathPart => '', CaptureArgs => 0) => sub ... ; action index => (Chained => 'base', PathPart => '', Args => 0 ) => sub ... ; action default => (Chained => 'base', PathPart => '', Args => undef) => sub ... ;It also moves method declaration from compiletime to runtime, making this possible:
for my $action (qw/foo bar baz/) action $action => (Chained => 'somewhere', Args => 0) => sub my ($self, $ctx) = @_; $ctx->stash-> $action = $ctx->model('Foo')->get_stuff($action); ;Admittedly, that's all very ugly, but illustrates well what kind of things we're able to do now. But it doesn't need to be ugly. With Devel::Declare we have a great tool to add our own awesome syntax to perl, similar to how things like MooseX::Method::Signatures, MooseX::MultiMethods and MooseX::Declare do. So how would a declarative syntax for Catalyst controllers look like? I don't know. Ideas include something like this:
under /some/where, action foo ('foo', $id) ...to mean:
sub foo : Chained('/some/where') PathPart('foo') CaptureArgs(1) ...Adding Moose type constraints to this would be interesting, too, and make validation of captures and arguments a lot easier. Multi dispatch similar to MooseX::MultiMethods could be handy as well:
under /some/where action ('foo', Int $id) # find and stash an item by id action ('foo', Str $name) # search items using $name action ('foo', Any $thing) # display error pageSo you see there are a lot of possibilities that should be explored. Unfortunately I have no idea what kind of syntax and features people would like to have, so your feedback on this would be much appreciated. :-)
91 | D63469DF | dnusinow | 1243 |
63 | DEB0EC31 | eloy | |
55 | A965818F | vela | 1243 |
46 | 58510B5A | myon | 2143 |
39 | 9B7C328D | luk | 31-2 |
39 | 1880283C | anibal | 2134 |
37 | 0FE53DD9 | opal | 4213 |
32 | 2B0920C0 | lool | 1342 |
29 | 788A3F4C | joeyh | |
27 | 0F932C9C | doko | |
25 | 8768B1D2 | sjoerd | |
23 | F1BCDB73 | aurel32 | 13-2 |
19 | E02FEF11 | jordens | 1243 |
18 | AB963370 | schizo | 1243 |
18 | 6E74A7D1 | jdassen(Ks) | 1243 |
18 | 68FD549F | tbm | 3142 |
18 | 6783ED5E | fpeters | 1--2 |
17 | 91B0D3B7 | edd | -213 |
16 | E07F1CF9 | rousseau | 321- |
16 | 248AEB73 | rene | 1243 |
15 | 8E635A5E | rafl | |
14 | C0143D2D | bubulle | 4123 |
13 | D87C6781 | krooger(P) | 4213 |
13 | A436AD25 | jfs(P) | |
13 | 3D08B612 | msp | |
13 | 1E880A84 | fjp | 4213 |
13 | 0F7A8D01 | nobse | |
12 | F1968D1B | decklin | 1234 |
12 | E7075A54 | mhatta | |
12 | D75F8533 | joss | 1342 |
12 | BF24424C | srivasta | 1342 |
12 | B8C1FA69 | sto | |
12 | 7F961564 | kobold | |
12 | 2A30D729 | pere | 4213 |
12 | 16D970C6 | eric | 12-- |
11 | 5E0577F2 | mpitt | |
11 | 307D56ED | noel | 3241 |
11 | 2BE16D01 | moray | 1342 |
10 | BC7D020A | formorer | -1-- |
10 | A7D91602 | apollock | 4213 |
10 | A51A4FDD | gcs | |
10 | 917A225E | jordi | |
10 | 4B729625 | pvaneynd | 3123 |
10 | 497A176D | loic | |
9 | 62F1A57F | pa3aba | |
9 | 54FD2A58 | glandium | 1342 |
9 | 4A5D72FE | rafael | |
9 | 13FEFC40 | fenio | -1-- |
9 | 0AFC7476 | rra | 1243 |
8 | 90267086 | duck | 31-2 |
8 | 86A118E6 | ch | 321- |
8 | 801EA932 | joey | 1243 |
8 | 7F4E0E11 | waldi | -123 |
8 | 514B3E7C | florian | 21-- |
8 | 41954920 | fs | 12-- |
8 | 2A385C57 | mckinstry | 21-3 |
8 | 25BFB848 | rleigh | 1243 |
7 | BC70A6FF | pape | 1--- |
7 | B70E403B | ari | 1243 |
7 | 8E2D213A | jochen(Ks) | |
7 | 85FEC17F | kilian | |
7 | 84FB46D6 | lwall | 1342 |
7 | 800969EF | smimram | -1-- |
7 | 79CC6586 | haas | |
7 | 5BFA90EC | kohda | |
7 | 52B7487E | sesse | 2341 |
7 | 29499F61 | sho | 1342 |
7 | 1E161AFB | barbier | 12-- |
6 | FC05DA69 | wildfire(P) | |
6 | EEB6B4C2 | avdyk | -12- |
6 | EDF008C5 | blade | 1243 |
6 | E25F2102 | mejo | 1342 |
6 | D1C41882 | adeodato(Ks) | 3142 |
6 | D0B433DF | ross | 12-3 |
6 | B0EBC777 | piman | 1233 |
6 | 9D309C3B | robert | 4213 |
6 | 882A6C4B | kov | |
6 | 6BBA3C84 | zugschlus | 4213 |
6 | 5662C734 | mvo | |
6 | 554FB4C6 | petere | -1-2 |
6 | 37155778 | stratus | |
6 | 2D9ACC8E | lars | 1243 |
6 | 2809E61A | josem | |
6 | 2252FA1A | frank | 2143 |
6 | 1CF2D62A | micah | |
6 | 10FA4CD1 | cjwatson | 2143 |
5 | EE6DC66A | jaldhar | 2143 |
5 | EA59038E | sgran | 4123 |
5 | E1EE3FB1 | md | 4312 |
5 | E0B8B2DE | jaybonci | |
5 | C9A5B54E | sesse(Ps | ,Gs) 2341 |
5 | C4CF8EC3 | twerner | |
5 | C2FEE5CD | acid | 213- |
5 | C09FD35A | tille | |
5 | C03C56DF | rfrancoise | ---1 |
5 | B7CDA2DC | xam | 213- |
5 | A20EBC50 | cavok | 4214 |
5 | 808D0FD0 | don | 1342 |
5 | 797EBFAB | enrico | 1243 |
5 | 5230514A | sjackman | |
5 | 49A5F855 | otavio | -123 |
5 | 3DC29B41 | pdm | |
5 | 29982E5A | vorlon | 1243 |
5 | 2763483B | mkoch | 213- |
5 | 21DB31C5 | smr | 2143 |
5 | 1BF8DE0F | stigge | 312- |
5 | 12CADFA5 | csmall | 3214 |
5 | 0A0AC927 | lamont | |
4 | F2CF01A8 | bdale | |
4 | F095E5E4 | mnencia | |
4 | E9F2C747 | frankie | |
4 | E9ABFCD2 | devin | 2143 |
4 | E81E55C1 | dancer | 2143 |
4 | E38E7ACF | hmh(Gs) | 1243 |
4 | E298966D | jrv(P) | |
4 | DF5CE2B4 | huggie | 12-3 |
4 | DD982A75 | speedblue | |
4 | C671257D | damog | -1-2 |
4 | C4A3823E | kmr | 4213 |
4 | C0B10A5B | dexter | |
4 | C02440B8 | js | 1342 |
4 | BE9F70EA | tb | 1342 |
4 | B7D2F063 | varenet | -213 |
4 | A3F9E30E | schultmc | 1243 |
4 | A3D7B9BC | lawrencc | 2143 |
4 | A1EE761C | madcoder | 21-- |
4 | 9DE1EEB1 | he | 3142 |
4 | 9D928C9B | guillem | 1--- |
4 | 9B726B71 | racke | |
4 | 90788E11 | jsogo | 2143 |
4 | 864826C3 | gotom | 4321 |
4 | 7244970B | kroeckx | 2143 |
4 | 5B48FFAE | marga | 2143 |
4 | 54E672DE | isaac | 1243 |
4 | 4B3A135C | erich | 1243 |
4 | 4597A593 | agmartin | 4213 |
4 | 3FCC2A90 | amaya | 1243 |
4 | 3F3E6426 | agx | -1-2 |
4 | 3EF23CD6 | sanvila | 1342 |
4 | 32C9C8BD | werner(K) | |
4 | 204DDF1B | aquette | |
4 | 00D8CD16 | tolimar | 12-- |
3 | FEC23FB2 | bap | 34-1 |
3 | F972BE03 | tmancill | 4213 |
3 | F801A743 | nduboc | 1--- |
3 | EBEDB32B | chrsmrtn | 4123 |
3 | EA291785 | taggart | 2314 |
3 | E4D47EC1 | tv(P) | |
3 | E19F188E | troyh | 1244 |
3 | DF6807BE | srk | 4213 |
3 | D2A913A1 | psg(P) | |
3 | D097A261 | chrisb | |
3 | C6CEA0C9 | adconrad | 1243 |
3 | C20DF273 | ondrej | |
3 | B5444815 | ballombe | 1342 |
3 | B1DF9A57 | cate | 2143 |
3 | AFA44BDD | weasel(Ps | ,Gs) 1342 |
3 | AA6541EE | brlink | 1442 |
3 | A824B93F | asac | 3144 |
3 | A71C1E00 | turbo | |
3 | A2D7D292 | seb128 | |
3 | 9ED101BF | mbanck | 3132 |
3 | 969457F0 | joostvb | 2143 |
3 | 89BF7E2B | kobras | 1--2 |
3 | 86946D69 | mooch | 12-3 |
3 | 74886B63 | nathans | |
3 | 6F222F1F | edelhard | |
3 | 6D67F790 | foka | |
3 | 60B6B958 | geiger | |
3 | 607559E6 | mako | |
3 | 5C33C1B8 | dirson | |
3 | 5921B5D8 | ajmitch | |
3 | 4C1A5BE5 | sjq | |
3 | 431B38BA | pxt | 312- |
3 | 3E7B4B73 | lmamane | 2143 |
3 | 27572C47 | ucko | 1342 |
3 | 20021490 | schepler | 1342 |
3 | 1DEB8EAE | goedson | |
3 | 1BF2305A | krala(Gs) | 3142 |
3 | 19A42D19 | dannf | 21-4 |
3 | 174FEE35 | wookey | 3124 |
3 | 124B26F3 | mfurr | 21-3 |
3 | 0A327652 | tschmidt | 312- |
3 | 090DD8D5 | ingo | 3123 |
3 | 0813569F | jeroen | 1141 |
3 | 0644FAB7 | bas | 1332 |
3 | 0123F2F2 | gareuselesinge | 1243 |
3 | 00530C24 | bam | 1234 |
2 | FD6645AB | rmurray | -1-2 |
2 | F95C2F6D | chrism(P) | |
2 | F9138496 | graham(Gs) | 3142 |
2 | F5D65169 | jblache | 1332 |
2 | F28CD102 | absurd | |
2 | F2597E04 | samu | |
2 | F0B27113 | patrick | |
2 | EFA6B9D5 | hamish(P) | 3142 |
2 | EE0A35C7 | risko | 4213 |
2 | E91CD250 | daigo | |
2 | D688E0A7 | qjb | -21- |
2 | D4BE1450 | prudhomm | |
2 | D2A6B810 | joussen | |
2 | CFD42F26 | dilinger | |
2 | CEE44978 | dburrows | 1243 |
2 | CD4C0D9D | skx | 4213 |
2 | BFB880A3 | zeevon | |
2 | BD8B050D | roland | 3214 |
2 | B74952A9 | alee | |
2 | B4D6DE13 | paul | |
2 | B345BDD3 | neilm | 1243 |
2 | B28C5995 | bod | 4213 |
2 | B0FA4F49 | schoepf | |
2 | B0DDAF42 | awoodland | |
2 | A8061F32 | osamu | 4213 |
2 | A21AD4F9 | tviehmann | 1342 |
2 | 99E81DA0 | kaplan | |
2 | 964199E2 | fabbe | 3142 |
2 | 8DBFEC2F | pelle | |
2 | 8B8D7663 | ametzler | 1342 |
2 | 8B143975 | martignlo | |
2 | 88C7C1F7 | 93sam | 2134 |
2 | 83E5110F | ovek | |
2 | 817A996A | tfheen | |
2 | 807CAC25 | abi | 4123 |
2 | 798DD95C | piefel | |
2 | 78D621B4 | uwe | -1-- |
2 | 6FF0ABF2 | rcw | 2143 |
2 | 6E8169D2 | hertzog | 3124 |
2 | 6C0084FC | chrisvdb | |
2 | 6B79D401 | filippo | -1-- |
2 | 67756F5D | frn | 2341 |
2 | 5E2EB5B4 | nveber | 123- |
2 | 5C6153AD | broonie | 1243 |
2 | 5B713DF0 | djpig | 1243 |
2 | 50ECFB98 | ccontavalli(Gs) | |
2 | 50064181 | paulvt | |
2 | 4F71955A | dajobe | 21-3 |
2 | 4E2ECA5A | jmm | 4213 |
2 | 496A1827 | srittau | |
2 | 3E8DCCC0 | maxx | 1342 |
2 | 3D97C149 | mstone(P) | 2143 |
2 | 2DB65596 | dz | 321- |
2 | 29F19BD1 | meskes | |
2 | 1F41B907 | marillat | 1--- |
2 | 1EB2DE66 | boll | |
2 | 1557BC10 | kraai | 1342 |
2 | 144843F5 | lolando | 1243 |
2 | 10656584 | voc | |
2 | 0D7CA701 | steinm | |
2 | 05410E97 | horms | |
1 | FC992520 | tpo | -14- |
1 | FB0DFE9B | gildor | |
1 | FAEEB4A9 | neil | 1342 |
1 | F7E8BC63 | cedric | 21-- |
1 | F2C423BC | zack | 1332 |
1 | F0199162 | kreckel | 4214 |
1 | ECA94FA8 | ishikawa | 2143 |
1 | EAAC62DF | cyb | ---1 |
1 | EA2D2C41 | malattia | -312 |
1 | E77AC835 | bcwhite(P) | |
1 | E66C9BB0 | tach | |
1 | E145F334 | mquinson | 2143 |
1 | E0BA04C1 | treinen | 321- |
1 | DFE80FB2 | tali | |
1 | DE054F69 | azekulic(P) | |
1 | DC814B09 | jfs | |
1 | CB467E27 | kalfa | |
1 | C9132DDB | yoush | -21- |
1 | C87FFC2F | stevenk | -1-- |
1 | C2CE8099 | knok | 321- |
1 | BED37FD2 | henning(Ks) | 1342 |
1 | BA0A7EB5 | treacy(P) | |
1 | B7D86E0F | cmb | 4213 |
1 | B62849B3 | smarenka | 2143 |
1 | B3C281F4 | alain | 2143 |
1 | B25A5CF1 | omote | |
1 | ABA0E8B2 | sasa | |
1 | AB474598 | baruch | 2143 |
1 | AB2A91F5 | troup | 1--2 |
1 | A827CEDE | afayolle(Gs) | |
1 | A6C805B9 | zorglub | 2134 |
1 | A674A359 | maehara | |
1 | A57D8BF7 | drew | 2143 |
1 | A269D927 | sharky | |
1 | A1696D2B | lfousse | 1232 |
1 | 9BF42B07 | zinoviev | --12 |
1 | 9057B5D3 | vanicat | 2143 |
1 | 8E950E00 | mechanix | |
1 | 8BB527AF | gwolf | 1132 |
1 | 8A1D9A1F | jgoerzen | |
1 | 8807529B | ultrotter | 2134 |
1 | 872EB4E5 | rcardenes | |
1 | 85EE3E0E | angdraug | 12-3 |
1 | 835EB2FF | bossekr | |
1 | 80C83E8E | igloo | 1243 |
1 | 7B8357E5 | andreas | 212- |
1 | 7B80220D | sjr(Gs) | 1342 |
1 | 7796A60B | sfllaw | 1342 |
1 | 75CB1AD2 | toni | 1--- |
1 | 746C51F4 | klindsay | |
1 | 72D03CB1 | kmuto | 4231 |
1 | 71473F66 | ttroxell | 13-4 |
1 | 6E76D81D | seanius | 1243 |
1 | 6C63746D | hector | |
1 | 6C5F196B | malex | 4213 |
1 | 6A9F3C38 | rkrishnan | |
1 | 68021CE4 | ron | ---1 |
1 | 66F24521 | pyro | -123 |
1 | 631B4819 | anfra | |
1 | 62EEAD8B | falk | 1342 |
1 | 61326D40 | jamessan | 13-4 |
1 | 609CD2C0 | berin | --1- |
1 | 5D8CDA7B | guus | 1243 |
1 | 5D8C12EA | rganesan | |
1 | 5D64F870 | zobel | |
1 | 59EF5DBC | bs | |
1 | 57F045DC | camm | |
1 | 564EE4B6 | hazelsct | |
1 | 5623FC45 | moronito | 4213 |
1 | 551BE447 | torsten | |
1 | 54AD21B5 | warmenhoven | |
1 | 53BBA490 | sjg | |
1 | 532005DA | seamus | |
1 | 50973B91 | pjb | 2143 |
1 | 4F83C751 | kmccarty | 12-3 |
1 | 4DB97694 | khkim | |
1 | 4CD6E3D2 | wjl | 4213 |
1 | 4A8854E6 | weinholt | 1243 |
1 | 4950EAA6 | ajkessel | |
1 | 4298C761 | robertc(Ks) | |
1 | 42955682 | kamop | |
1 | 3FD29468 | bengen | -213 |
1 | 3FD25C84 | roktas | 3142 |
1 | 3B047084 | madhack | |
1 | 39CCF0C7 | tagoh | 3142 |
1 | 39A8CCE2 | eugen | 31-2 |
1 | 38015E7E | thb | 1234 |
1 | 36B861C1 | bab | 2143 |
1 | 33FC40A4 | mennucc1 | 3214 |
1 | 2C0FCD1A | wdg | 4312 |
1 | 2B05B73A | rjs | |
1 | 258D8781 | grisu | 31-2 |
1 | 206C5AFD | chewie | -1-1 |
1 | 200D1596 | joy | 2143 |
1 | 1C74E0B7 | alfs | |
1 | 19D03486 | francois | 4123 |
1 | 18EA3457 | rvr | |
1 | 176015ED | evo | |
1 | 16BD77C6 | alfie | |
1 | 12AA1DB8 | jh | |
1 | 128287E8 | daf | |
1 | 09FC015C | godisch | |
1 | 06468DEB | fog | --12 |
1 | 05792F34 | rla | -21- |
1 | 028AF63C | forcer | 3142 |
1 | 004DA6B4 | bg66 | |
0 | . | zufus | -1-- |
0 | . | zoso | -123 |
0 | . | ykomatsu | -123 |
0 | . | xtifr | 1243 |
0 | . | xavier | -312 |
0 | . | wouter | 2143 |
0 | . | will | -132 |
0 | . | warp | 1342 |
0 | . | voss | 1342 |
0 | . | vlm | 2314 |
0 | . | vleeuwen | 4312 |
0 | . | vince | 2134 |
0 | . | ukai | 4123 |
0 | . | tytso | -12- |
0 | . | tjrc1 | 4213 |
0 | . | tats | -1-2 |
0 | . | tao | 1--2 |
0 | . | stone | 2134 |
0 | . | stevegr | 1243 |
0 | . | smig | -1-2 |
0 | . | siggi | 1-44 |
0 | . | shaul | 4213 |
0 | . | sharpone | 1243 |
0 | . | sfrost | 1342 |
0 | . | seb | -21- |
0 | . | salve | 4213 |
0 | . | ruoso | 1243 |
0 | . | rover | --12 |
0 | . | rmayr | -213 |
0 | . | riku | 4123 |
0 | . | rdonald | 12-3 |
0 | . | radu | -1-- |
0 | . | pzn | 112- |
0 | . | pronovic | 1243 |
0 | . | profeta | 321- |
0 | . | portnoy | 12-3 |
0 | . | porridge | 1342 |
0 | . | pmhahn | 4123 |
0 | . | pmachard | 1--2 |
0 | . | pkern | 3124 |
0 | . | pik | 1--2 |
0 | . | phil | 4213 |
0 | . | pfrauenf | 4213 |
0 | . | pfaffben | 2143 |
0 | . | p2 | 1243 |
0 | . | ossk | 1243 |
0 | . | oohara | 1234 |
0 | . | ohura | -213 |
0 | . | nwp | 1342 |
0 | . | noshiro | 4312 |
0 | . | noodles | 2134 |
0 | . | nomeata | 2143 |
0 | . | noahm | 3124 |
0 | . | nils | 3132 |
0 | . | nico | -213 |
0 | . | ms | 3124 |
0 | . | mpalmer | 2143 |
0 | . | moth | 3241 |
0 | . | mlang | 2134 |
0 | . | mjr | 1342 |
0 | . | mjg59 | 1342 |
0 | . | merker | 2--1 |
0 | . | mbuck | 2143 |
0 | . | mbrubeck | 1243 |
0 | . | madduck | 4123 |
0 | . | mace | -1-2 |
0 | . | luther | 1243 |
0 | . | luigi | 4213 |
0 | . | lss | -112 |
0 | . | lightsey | 1--2 |
0 | . | ley | -1-2 |
0 | . | ldrolez | --1- |
0 | . | lange | 4124 |
0 | . | kirk | 1342 |
0 | . | killer | 1243 |
0 | . | kelbert | -214 |
0 | . | juanma | 2134 |
0 | . | jtarrio | 1342 |
0 | . | jonas | 4312 |
0 | . | joerg | 1342 |
0 | . | jmintha | -21- |
0 | . | jimmy | 1243 |
0 | . | jerome | 21-- |
0 | . | jaqque | 1342 |
0 | . | jaq | 4123 |
0 | . | jamuraa | 4123 |
0 | . | iwj | 1243 |
0 | . | ivan | 2341 |
0 | . | hsteoh | 3142 |
0 | . | hilliard | 4123 |
0 | . | helen | 1243 |
0 | . | hecker | 3142 |
0 | . | hartmans | 1342 |
0 | . | guterm | 312- |
0 | . | gniibe | 4213 |
0 | . | glaweh | 4213 |
0 | . | gemorin | 4213 |
0 | . | gaudenz | 3142 |
0 | . | fw | 2134 |
0 | . | fmw | 12-3 |
0 | . | evan | 1--2 |
0 | . | ender | 4213 |
0 | . | elonen | 4123 |
0 | . | eevans | 13-4 |
0 | . | ean | -1-- |
0 | . | dwhedon | 4213 |
0 | . | duncf | 2133 |
0 | . | ds | 1342 |
0 | . | dparsons | 1342 |
0 | . | dlehn | 1243 |
0 | . | dfrey | -123 |
0 | . | deek | 1--2 |
0 | . | davidw | 4132 |
0 | . | davidc | 1342 |
0 | . | dave | 4113 |
0 | . | daenzer | 1243 |
0 | . | cupis | 1--- |
0 | . | cts | -213 |
0 | . | cph | 4312 |
0 | . | cmc | 2143 |
0 | . | clebars | 2143 |
0 | . | chaton | -21- |
0 | . | cgb | -12- |
0 | . | calvin | -1-2 |
0 | . | branden | 1342 |
0 | . | brad | 4213 |
0 | . | bnelson | 1342 |
0 | . | blarson | 1342 |
0 | . | benj | 3132 |
0 | . | bayle | -213 |
0 | . | baran | 1342 |
0 | . | az | 2134 |
0 | . | awm | 3124 |
0 | . | atterer | 4132 |
0 | . | andressh | 1--- |
0 | . | amu | 1--2 |
0 | . | akumria | -312 |
0 | . | ajt | 1144 |
0 | . | ajk | 1342 |
0 | . | agi | 2143 |
0 | . | adric | 2143 |
0 | . | adejong | 1243 |
0 | . | adamm | 12-- |
0 | . | aba | 1143 |
libgtklp
convenience library (aka libtool’s noinst_LTLIBRARIES
) into a regular static library, dropping some explicit LDFLAGS, and the result was that I dropped not just only Freetype from the binary’s Depends, but also PNG and zlib. I just hope my sponsor for gktlp will notice this and upload soon