Simon McVittie [Wed, 27 Mar 2013 16:20:55 +0000 (16:20 +0000)]
IndividualAggregator: use a GHashTable<string,GPtrArray> for the link map
The link map is a hot path, particularly when matching multiple copies
of the same contact. Speed this up.
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=687161
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
Inaki Larranaga Murgoitio [Tue, 2 Apr 2013 08:40:38 +0000 (10:40 +0200)]
Added Basque language\nAdded 'eu' (Basque) to LINGUAS
Simon McVittie [Tue, 26 Mar 2013 19:13:46 +0000 (19:13 +0000)]
Edsf.PersonaStore: defer contacts-complete like contacts-added
Otherwise, we signal quiescence while not actually quiescent: our
initial batch of contacts could still be coming in.
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=696659
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
Simon McVittie [Mon, 25 Mar 2013 17:28:44 +0000 (17:28 +0000)]
Remove a remnant of the avatar coming from the environment
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=690830
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
Simon McVittie [Tue, 26 Mar 2013 18:15:00 +0000 (18:15 +0000)]
Set up tests' backend paths in Vala code
One less thing in TESTS_ENVIRONMENT.
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=690830
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
Patrick Ohly [Tue, 26 Mar 2013 15:53:02 +0000 (16:53 +0100)]
NEWS: updated to include eds non-blocking change processing
Patrick Ohly [Thu, 21 Feb 2013 18:31:38 +0000 (19:31 +0100)]
eds: avoid blocking event processing
When there are many incoming D-Bus change notifications, processing of
other D-Bus messages can be delayed considerably. This commit is a
first step towards solving this by caching the change notifications
and processing them with lower priority in a glib idle callback.
Ordering of the changes relative to each other is preserved, so
semantically this is the same as immediate processing.
The worst-case scenario is when contacts get added one-by-one to EDS
address books while folks is running, because then each change
triggers one D-Bus signal. With 2000 contacts and four address books
on a fast laptop, the process hosting folks became unresponsive for
137s. The patch reduced that to 0.1s. The downside is an increase of
total test runtime of 4%.
In the scenario where data is already in EDS when folks starts, the
patch reduced response time from 2.3s to 0.2s.
See https://bugs.freedesktop.org/show_bug.cgi?id=60851#c6 for details.
Patrick Ohly [Mon, 25 Mar 2013 14:39:33 +0000 (15:39 +0100)]
EDS testing: allow EDS to add additional phone parameters
When EDS is compiled with libphonenumber support, it automatically
computes a normalized E.164 representation of each phone number and
returns it as an additional X-EVOLUTION-E164 parameter.
This broke the strict phone_fd.equals check in set-phones, because it
compared against a PhoneFieldDetails without that parameter. Now the
test only looks for a phone number with "1234" as value and checks for
the expected type after returning from the event loop.
Patrick Ohly [Mon, 25 Mar 2013 13:37:26 +0000 (14:37 +0100)]
testing: avoid false warning
When FOLKS_BACKEND_PATH is set to the build dirs during testing, the
"content type of '%s' appears to be '%s' which looks suspicious. Have
you installed shared-mime-info?" warning gets triggered repeatedly,
because these dirs contain all kinds of files (executables, compiler
dependency files, etc.) which are not expected in the normal install
location.
This is annoying when running a test with "make <test>.gdb" because
gdb stops on a glib trace point for each warning. Therefore disable
the warning when FOLKS_BACKEND_PATH is set. Extending the whitelist
has the drawback that it might not catch all files that can appear
there in the future.
Patrick Ohly [Mon, 25 Mar 2013 13:30:48 +0000 (14:30 +0100)]
testing: do not require telepathy
Previously, all testing was disabled when the Telepathy backend was
disabled. That is too strict. For example, the EDS backend tests can
work without it.
Only the core folks tests and of course the Telepathy tests depend on
the Telepathy backend and thus must be disabled when that backend is
disabled.
Adding the TP backend path to the FOLKS_BACKEND_PATH env variable
must be conditional, otherwise there are errors about not finding that
.so file when running the other tests.
Shankar Prasad [Mon, 25 Mar 2013 17:44:36 +0000 (23:14 +0530)]
Updated kn translations
Simon McVittie [Wed, 20 Mar 2013 18:54:51 +0000 (18:54 +0000)]
Fix comment for get_built_test_data()
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=696104
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
Krishnababu Krothapalli [Mon, 25 Mar 2013 09:43:40 +0000 (15:13 +0530)]
Updated Telugu Translations
Ani Peter [Mon, 25 Mar 2013 05:28:42 +0000 (10:58 +0530)]
Completed for Malayalam
Arash Mousavi [Sat, 23 Mar 2013 15:22:34 +0000 (19:52 +0430)]
L10N: Updated Persian Translation
Yuri Myasoedov [Sat, 23 Mar 2013 13:22:57 +0000 (17:22 +0400)]
Updated Russian translation
ManojKumar Giri [Fri, 22 Mar 2013 13:42:47 +0000 (19:12 +0530)]
Updated Odia Language along with FUEL implementation
Sandeep Sheshrao Shedmake [Fri, 22 Mar 2013 10:34:09 +0000 (16:04 +0530)]
Updated Marathi Translations
Shantha kumar [Fri, 22 Mar 2013 09:16:26 +0000 (14:46 +0530)]
Tamil Translations Updated
Rajesh Ranjan [Thu, 21 Mar 2013 07:52:03 +0000 (13:22 +0530)]
hindi translation
Simon McVittie [Wed, 20 Mar 2013 18:37:54 +0000 (18:37 +0000)]
Add missing setlocale calls to helper binaries
Simon McVittie [Mon, 18 Mar 2013 20:28:20 +0000 (20:28 +0000)]
Add a performance test for contacts in e-d-s
Simon McVittie [Wed, 20 Mar 2013 16:42:35 +0000 (16:42 +0000)]
eds test: add some helper programs for performance testing
Simon McVittie [Wed, 20 Mar 2013 16:03:14 +0000 (16:03 +0000)]
Simplify tests that can time out
There are basically two patterns:
* something should stop the main loop within n seconds; if not, that's
failure (this is now loop_run_with_timeout)
* run the main loop for n seconds, then check whether things we wanted
to happen happened (this is now loop_run_with_non_fatal_timeout)
The latter is basically a bug in itself; I'm not going to fix that
right now, but I did mark it as deprecated.
In both cases, we want to adjust the timeout for running under Valgrind
or Callgrind, which makes everything slow.
Travis Reitter [Wed, 20 Mar 2013 19:43:23 +0000 (12:43 -0700)]
build: ensure libtp-test-contactlist is built before its dependents
Autotools somehow wasn't picking up the dependencies correctly, so this
forces it to build the support library first.
As the comment says, there's probably a better fix but time is precious.
Simon McVittie [Wed, 20 Mar 2013 16:59:03 +0000 (16:59 +0000)]
NEWS for locale bits
Simon McVittie [Wed, 20 Mar 2013 11:34:37 +0000 (11:34 +0000)]
TestCase: set locale from the environment
This fixes an annoyance I'd had for a while: UTF-8 arrows etc.
in debug messages came out as "?", because until we call setlocale()
we're in the C locale, whose character set is ASCII (and some layer
of library responds by transcoding our strings into ASCII).
With this change, running the tests in en_GB.UTF-8 results in
Unicode arrows and more comprehensible output.
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=696179
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
Simon McVittie [Wed, 20 Mar 2013 11:27:21 +0000 (11:27 +0000)]
folks-inspect, folks-import: initialize localization from the environment
Otherwise, $LANG etc. are ignored and we stay in the C locale.
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=696179
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
Seong-ho Cho [Wed, 20 Mar 2013 15:02:03 +0000 (00:02 +0900)]
Updated Korean translation
Simon McVittie [Wed, 20 Mar 2013 13:41:23 +0000 (13:41 +0000)]
Add support for running tests under callgrind as well as memcheck
Bug https://bugzilla.gnome.org/show_bug.cgi?id=696104
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
[... and document it in HACKING in response to review -smcv]
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Simon McVittie [Fri, 15 Mar 2013 18:22:38 +0000 (18:22 +0000)]
EdsTest.Backend: add contacts as a batch, not one at a time
This should make it much quicker to add contacts in bulk.
Bug https://bugzilla.gnome.org/show_bug.cgi?id=696104
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
Simon McVittie [Fri, 15 Mar 2013 18:15:59 +0000 (18:15 +0000)]
EdsTest.Backend: use an array for contacts
This means we don't have to worry about whether prepending is faster
than appending, or about Vala getting confused about ownership in
linked lists.
Bug https://bugzilla.gnome.org/show_bug.cgi?id=696104
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
Simon McVittie [Tue, 19 Mar 2013 14:22:04 +0000 (14:22 +0000)]
EdsTest.Backend: clear up more thoroughly after tests
Bug https://bugzilla.gnome.org/show_bug.cgi?id=690830
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
[redundant line removed in response to review -smcv]
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Simon McVittie [Tue, 19 Mar 2013 17:06:03 +0000 (17:06 +0000)]
Add infrastructure for finding test data files, and use it for avatars
Again, I've speculatively added support for a FOLKS_TESTS_INSTALLED
variable, because one day I'd like "make installcheck" to work.
Bug https://bugzilla.gnome.org/show_bug.cgi?id=690830
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
Simon McVittie [Tue, 19 Mar 2013 16:55:44 +0000 (16:55 +0000)]
Simplify how we get PACKAGE_DATADIR
DATA_DIR and PACKAGE_DATADIR appear to have been intended to both be
${prefix}/share/folks, but due to a typo (sharedir vs. shareddir)
DATA_DIR was actually defined to an empty string. Neither is actually
used anywhere at the moment.
Bug https://bugzilla.gnome.org/show_bug.cgi?id=690830
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
Simon McVittie [Wed, 20 Mar 2013 10:51:08 +0000 (10:51 +0000)]
NEWS: describe the change to tools' locale search path
Simon McVittie [Tue, 19 Mar 2013 16:53:36 +0000 (16:53 +0000)]
tools: use the right locale directory
I happened to notice that they're misusing $(pkgdatadir) - $(pkgdatadir)
is $(datadir)/$(PACKAGE), i.e. typically /usr/share/folks, but
localization is installed to $(localedir), typically /usr/share/locale.
This resulted in the tools looking in /opt/gnome-3.8/share/folks/locale
in my installation, instead of the correct /opt/gnome-3.8/share/locale.
Simon McVittie [Mon, 18 Mar 2013 19:34:17 +0000 (19:34 +0000)]
Add infrastructure to run helper test binaries
I've included basic infrastructure to run them from an installed
path instead of the builddir, because there seems to be considerable
interest in that at the moment.
Bug https://bugzilla.gnome.org/show_bug.cgi?id=690830
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
[document capture_stdout in response to review -smcv]
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Simon McVittie [Tue, 19 Mar 2013 12:43:21 +0000 (12:43 +0000)]
In tests that do not rely on with-session-bus*.sh, use a transient $HOME
This is one more way in which we can avoid touching the user's
real files.
Bug https://bugzilla.gnome.org/show_bug.cgi?id=690830
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
[use "this." in response to review -smcv]
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Simon McVittie [Tue, 19 Mar 2013 12:25:42 +0000 (12:25 +0000)]
Run Telepathy test cases under GTestDBus instead of with-session-bus.sh
Bug https://bugzilla.gnome.org/show_bug.cgi?id=690830
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
Simon McVittie [Tue, 19 Mar 2013 12:23:34 +0000 (12:23 +0000)]
Run libsocialweb tests under GTestDBus instead of with-session-bus.sh
Bug https://bugzilla.gnome.org/show_bug.cgi?id=690830
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
Simon McVittie [Tue, 19 Mar 2013 12:03:57 +0000 (12:03 +0000)]
LibsocialwebTest.Backend: clean up object registrations in tear_down()
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=690830
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
[more comments in response to review -smcv]
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Simon McVittie [Fri, 15 Mar 2013 15:35:51 +0000 (15:35 +0000)]
LibsocialwebTest: don't try to keep ownership of name through tear_down()
This is a step towards replacing with-session-bus*.sh with GTestDBus,
which cleans up our D-Bus connection while the test is still running.
If we do that without this change, then the NameLost callback is triggered
when we get disconnected from D-Bus, causing an assertion failure.
This also should reduce circular references, by making sure closures
that contain "this" get cleaned up.
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=690830
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
Simon McVittie [Wed, 20 Mar 2013 10:36:26 +0000 (10:36 +0000)]
Add infrastructure to run tests under GTestDBus
For now, all library TestCase subclasses except the one for key-files
override this back to "do nothing" and rely on being run under
with-session-bus.sh, because I haven't checked whether they survive
having the D-Bus session bus disconnected from under them.
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=690830
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
[added comments about the undesirable dbus-1 dependency -smcv]
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Gianvito Cavasoli [Tue, 19 Mar 2013 21:58:10 +0000 (22:58 +0100)]
[l10n] Updated Italian translation.
Victor Ibragimov [Tue, 19 Mar 2013 21:33:55 +0000 (22:33 +0100)]
[l10n] Added Tadjik translation
Simon McVittie [Mon, 18 Mar 2013 19:01:59 +0000 (19:01 +0000)]
all Makefiles: don't ignore or clean .c files not corresponding to Vala
This will become more important if we use C to implement fast-paths
and faster data structures.
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=695381
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
Simon McVittie [Mon, 18 Mar 2013 19:00:43 +0000 (19:00 +0000)]
TestCase: avoid circular refs between GTest and this
Instead of running tests via the Adaptor inner class, run them via
a C helper that takes a weak ref to the TestCase. This relies on the
caller keeping a ref to the TestCase until after Test.run() - but I
recently converted the tests to do exactly that, so that's OK.
Adding a debug message which prints this.ref_count to final_tear_down()
reveals that some of our regression tests still leak the TestCase, but
many don't now.
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=695381
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
Simon McVittie [Mon, 18 Mar 2013 12:52:40 +0000 (12:52 +0000)]
All tests: switch to a calling convention that does not rely on leaking
The standard main() used in each test relied on the fact that
get_suite() kept a ref to the TestCase subclass instance, which would
be stored in the global variables of the GTest infrastructure,
resulting in the TestCase never being freed and its final_teardown()
never being executed.
That's undesirable if final_teardown() is going to do something
significant, like terminating a temporary session bus. As a first
step towards that, run the tests with the TestCase subclass instance
globally referenced (so that the version passed to GTest can eventually
be a weak reference), and explicitly run final_tear_down() so that
even if there is a ref leak (as there is now), it gets executed.
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=695381
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
Simon McVittie [Mon, 18 Mar 2013 12:36:18 +0000 (12:36 +0000)]
For symmetry, nullify sets in tear_down() if created in set_up()
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=695381
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
Simon McVittie [Mon, 18 Mar 2013 19:10:57 +0000 (19:10 +0000)]
Assert that each D-Bus test case is run in its intended environment
This is a safety check so we don't trash the user's real home directory.
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=695381
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
[added a comment as per pwithnall's review -smcv]
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Simon McVittie [Mon, 18 Mar 2013 12:06:00 +0000 (12:06 +0000)]
Document recently-added TestCase subclasses
They currently assume that they will be wrapped in with-session-bus*.sh.
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=695381
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
Simon McVittie [Thu, 14 Mar 2013 15:50:06 +0000 (15:50 +0000)]
LibsocialwebTest.TestCase: defer creation of lsw_backend until set_up()
Also destroy it in tear_down(), for symmetry. Since there are only two
LSW test cases and neither of them has more than one test, we don't
need to worry much about compatibility - it's easy to check.
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=695381
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
Simon McVittie [Thu, 14 Mar 2013 15:48:26 +0000 (15:48 +0000)]
tests: limit backends via the environment a bit more directly
This makes it more obvious what's enabled and what isn't. We want to
make sure that only the intended backends are enabled, because those
are the ones for which we've done enough environmental setup
(D-Bus, etc.) to make sure they don't "leak out" into the user's
real data.
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=695381
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
Simon McVittie [Thu, 14 Mar 2013 14:53:13 +0000 (14:53 +0000)]
Make EdsTest.TestCase.eds_backend nullable
It's null outside the period from set_up() to tear_down().
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=695381
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
Simon McVittie [Thu, 14 Mar 2013 14:40:14 +0000 (14:40 +0000)]
Reduce hard-coding of e-d-s address book names
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=695381
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
Simon McVittie [Mon, 18 Mar 2013 11:53:21 +0000 (11:53 +0000)]
Add subclasses for each category of TestCase
Move small amounts of initialization (just the low-hanging fruit)
into each subclass. Folks.TestCase is now reserved for tests that
don't need any backends or additional services at all.
In the process, make TpTestsBackend.tear_down() idempotent, so it's OK
if we call it repeatedly.
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=695381
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
Rūdolfs Mazurs [Sun, 17 Mar 2013 18:26:33 +0000 (20:26 +0200)]
Updated Latvian translation
Ask H. Larsen [Sun, 17 Mar 2013 07:26:21 +0000 (08:26 +0100)]
Updated Danish translation
Balázs Úr [Fri, 15 Mar 2013 10:51:40 +0000 (11:51 +0100)]
Updated Hungarian translation
Duarte Loreto [Fri, 15 Mar 2013 01:27:32 +0000 (01:27 +0000)]
Updated Portuguese translation and converted to New Spelling (Novo AO)
Carles Ferrando [Thu, 14 Mar 2013 23:24:19 +0000 (00:24 +0100)]
[l10n] Updated Catalan (Valencian) translation
Gil Forcada [Thu, 14 Mar 2013 23:24:17 +0000 (00:24 +0100)]
[l10n] Updated Catalan translation
Sweta Kothari [Thu, 14 Mar 2013 06:09:57 +0000 (11:39 +0530)]
Updated gujarati file
Simon McVittie [Wed, 13 Mar 2013 12:30:35 +0000 (12:30 +0000)]
update NEWS
Simon McVittie [Fri, 8 Mar 2013 15:02:25 +0000 (15:02 +0000)]
BackendStore: provide an easier way to limit backends via environment
If FOLKS_BACKENDS_ALLOWED is set, it's a space-, comma- or
colon-separated list of backends to allow, or "all". If unset, the
default is "all". Backends not in the list are disabled, even if the
keyfile says they ought to be enabled.
If FOLKS_BACKENDS_DISABLED is set, it's a space-, comma- or
colon-separated list of additional backends to disable.
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=695381
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
Simon McVittie [Tue, 12 Mar 2013 14:33:06 +0000 (14:33 +0000)]
TestCase: fix indentation
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
Simon McVittie [Tue, 12 Mar 2013 15:27:32 +0000 (15:27 +0000)]
collection comparators: optimize the case of empty collections
Comparing integers is a lot faster than constructing one or more
GObjects to iterate over the hash table. This saves about 3% of the
user CPU time needed to deal with 2049 simple e-d-s Google contacts,
each with one email address and no phone numbers etc.
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=695648
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
Simon McVittie [Tue, 12 Mar 2013 17:06:31 +0000 (17:06 +0000)]
Don't do manual memory management for libsocialweb Contact structs
GObject (and hence Vala) already knows how to memory-manage a Contact,
because it's a boxed type. Trying to do our own memory-management
anyway results in an occasional (50%?) double-free and crash.
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=695719
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
Simon McVittie [Tue, 12 Mar 2013 17:16:18 +0000 (17:16 +0000)]
update NEWS
Simon McVittie [Tue, 12 Mar 2013 13:50:56 +0000 (13:50 +0000)]
Always append to AM_VALAFLAGS, don't replace
This avoids losing --target-glib=2.24 (from configure.ac) in certain
test modules.
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=695628
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
Simon McVittie [Mon, 11 Mar 2013 13:12:02 +0000 (13:12 +0000)]
Do not assign to VALAFLAGS
Users should be able to do "make VALAFLAGS=--enable-experimental-non-null"
without overriding necessary flags like --target-glib=2.24. The variable
for use by package maintainers is AM_VALAFLAGS.
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=695628
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
Nilamdyuti Goswami [Tue, 12 Mar 2013 13:16:16 +0000 (18:46 +0530)]
Assamese translation updated for gnome 3.8
Philip Withnall [Mon, 11 Mar 2013 20:16:02 +0000 (20:16 +0000)]
HACKING: Update documentation for strict-non-null mode
Mention how to compile with --enable-experimental-non-null.
See: https://bugzilla.gnome.org/show_bug.cgi?id=695628
Andika Triwidada [Mon, 11 Mar 2013 05:49:22 +0000 (12:49 +0700)]
Updated Indonesian translation
Dimitris Spingos [Sat, 9 Mar 2013 13:28:42 +0000 (15:28 +0200)]
Updated Greek translation
Simon McVittie [Fri, 8 Mar 2013 14:02:39 +0000 (14:02 +0000)]
Update NEWS with recent changes
Simon McVittie [Fri, 8 Mar 2013 13:55:29 +0000 (13:55 +0000)]
Mostly avoid an expensive multi-map iteration pattern
If you have a MultiMap with, say, 100 keys each with 1 value, and you
iterate over it like this (pseudocode):
for key in keys():
values = get(key)
for value in values:
do something(key, value)
then you have constructed one GObject for the result of keys(), and
100 GObjects for the results of get() (because it returns a read-only
view). If you iterate it like this:
iter = map_iterator()
while iter.next():
do something(iter.key(), iter.value())
there's only one extraneous GObject, the iterator itself.
When there are thousands of contacts, as in add-contacts-stress-test,
this really starts to matter.
This patch doesn't fix every use of get_keys() - some of them do
non-trivial work per key as well as per value, making it awkward to
convert to map_iterator() - but it's a start. It cuts 'user' CPU time
for IndividualAggregator quiescence for an e-d-s Google account with
2049 contacts (reading from cache) by around 3%.
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=682903
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
[note added to HACKING as per Philip's review]
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Matej Urbančič [Thu, 7 Mar 2013 15:59:54 +0000 (16:59 +0100)]
Updated Slovenian translation
Ihar Hrachyshka [Thu, 7 Mar 2013 14:15:19 +0000 (17:15 +0300)]
Updated Belarusian translation.
Enrico Nicoletto [Thu, 7 Mar 2013 03:14:36 +0000 (00:14 -0300)]
Updated Brazilian Portuguese translation
Simon McVittie [Thu, 28 Feb 2013 16:50:08 +0000 (16:50 +0000)]
Use absolute paths for --vapidir
In the rules currently generated by Automake, valac currently runs
cd'd into the ${srcdir}. It seems unwise to rely on that, and the
only thing that will work regardless of whether ${srcdir} is ".",
relative or absolute is its "absolutized" version.
Similarly, look in both the ${srcdir} and the ${builddir} for Vala
bindings we generate: the ${srcdir} because that's where valac currently
puts them, and the ${builddir} because that's where they ought to go
in principle.
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=694883
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
Simon McVittie [Thu, 28 Feb 2013 16:33:08 +0000 (16:33 +0000)]
Add -I$(top_srcdir) throughout
Automake adds (the equivalent of) -I$(top_builddir) to our CPPFLAGS
automatically, so we can #include "config.h". It does not add
-I$(top_srcdir). Many things in folks want to #include <folks/folks.h>,
so we should always have -I$(top_srcdir) so we can pick that up.
Out-of-tree builds previously either didn't work, or relied on having
installed folks headers (I'm not sure which).
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=694883
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
[amended to do the same for tracker- and libsocialweb-specifics too -smcv]
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Kjartan Maraas [Mon, 4 Mar 2013 14:00:39 +0000 (15:00 +0100)]
Updated Norwegian bokmål translation
Mario Blättermann [Sun, 3 Mar 2013 21:00:57 +0000 (22:00 +0100)]
[l10n] Updated German translation
Aurimas Černius [Sat, 2 Mar 2013 21:28:03 +0000 (23:28 +0200)]
Updated Lithuanian translation
Chao-Hsiung Liao [Fri, 1 Mar 2013 14:14:46 +0000 (22:14 +0800)]
Updated Traditional Chinese translation(Hong Kong and Taiwan)
Мирослав Николић [Fri, 1 Mar 2013 10:17:19 +0000 (11:17 +0100)]
Updated Serbian translation
Fran Diéguez [Mon, 25 Feb 2013 23:25:30 +0000 (00:25 +0100)]
Updated Galician translations
Piotr Drąg [Sun, 24 Feb 2013 01:39:27 +0000 (02:39 +0100)]
Updated Polish translation
Travis Reitter [Fri, 22 Feb 2013 17:10:35 +0000 (09:10 -0800)]
build: Include location-details.c in POTFILES.skip
This fixes a break in distcheck
Travis Reitter [Fri, 22 Feb 2013 16:59:26 +0000 (08:59 -0800)]
build: Use @return instead of unsupported @returns valadoc
This was breaking the build when making docs
Gheyret Kenji [Fri, 22 Feb 2013 13:22:06 +0000 (22:22 +0900)]
Updated Uyghur translation
Signed-off-by: Gheyret Kenji <gheyret@gmail.com>
Gheyret Kenji [Fri, 22 Feb 2013 13:19:56 +0000 (22:19 +0900)]
Updated Uyghur translation
Signed-off-by: Gheyret Kenji <gheyret@gmail.com>
Gheyret Kenji [Fri, 22 Feb 2013 13:09:51 +0000 (22:09 +0900)]
Updated Uyghur translation
Signed-off-by: Gheyret Kenji <gheyret@gmail.com>
Marek Černocký [Fri, 22 Feb 2013 09:43:48 +0000 (10:43 +0100)]
Updated Czech translation
A S Alam [Fri, 22 Feb 2013 01:38:16 +0000 (01:38 +0000)]
Punjabi: Translation updated (aalam)
Daniel Mustieles [Thu, 21 Feb 2013 15:54:25 +0000 (16:54 +0100)]
Updated Spanish translation
Alexandre Franke [Wed, 20 Feb 2013 19:19:11 +0000 (20:19 +0100)]
Update French translation
Alexandre Franke [Wed, 20 Feb 2013 19:18:37 +0000 (20:18 +0100)]
Update French translation