Tag Info

Vala is just using C's fprintf underneath, which displays these semantics. Have a look at Why does printf not flush after the call unless a newline is in the format string?
You can call stdout.flush() if you want.

You need the development package for atspi-2.
apt-get install libatspi2.0-dev
In the future, you can find out which packages contain a file by searching on the packages.ubuntu.com site (or, if Elementary OS provides something, you could use that instead). There is also Debian's package search, or the apt-file command line tool.
And, in case anyone from ...

It's hard to figure out what is going on based on the information you've provided—you're probably going to have to figure it out yourself. I'll try to include some pointers here. A good place to start would be to set the PKG_CONFIG_DEBUG_SPEW environment variable…
The most likely cause is that some environment variables and/or the pkg-config being invoked ...

Have you tried the Vala example included in libappindicator?
http://bazaar.launchpad.net/~indicator-applet-developers/libappindicator/trunk.15.10/view/head:/bindings/vala/examples/indicator-example.vala
/*
* Copyright 2011 Canonical Ltd.
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General ...

Your code will return an owned string, so the caller is responsible for the memory deallocation.
If you call this library function from vala the compiler will make sure that it is deallocated.
If you call it from C you should read the GLib documentation for g_strconcat:
Concatenates all of the given strings into one long string. The
returned string ...

This isn't possible at the moment:
https://bugzilla.gnome.org/show_bug.cgi?id=746704
Currently Genie only support the deprecated lambda syntax for signals
(+=). This patch provides lambda support in most constructs, the only
requirement is that braces and parens need to be indent-balanced on
multiple line constructs.

return a.str will make a copy of the string using g_strdup, because by default the function result and the StringBuilder will both own a separate copy of the string after the (implicit) assignment.
Since the StringBuilder stored in a will go out of scope and it's copy will thus never be used again this is not desireable / efficient in this case.
Hence the ...

There are several things wrong with this code.
[indent=4]
init
var carray = repeatc ('A', 3)
for i in carray do stdout.printf ("%c, ", i)
// A, A, A
Actually, it prints "A, A, A, " (note the trailing comma and space). There are lots of ways to fix this, the easiest would just be to do something like stdout.puts (string.joinv (", ", sarray)).
...

Not directly, but you can set a break point on the appropriate reference function for you object. Each object has foo_ref and foo_unref that are called to change the reference count. If you set break points on these, you can trace the reference counting.

Assuming you want to see the string as a list of Unicode codepoints, you can use string.get_next_char to iterate over the string one codepoint at a time. An example is in the reference.
If you want graphemes, I do not know of a way to do this using GLib/Vala.