On 16/07/2015 22:53, walt wrote:
> I don't understand 'introspection' enough to know why we need it, but
> apparently we do, so don't use the -introspection useflag like I did.
> 
> The trouble I introduced a few weeks ago when I disabled introspection
> was subtle enough that I didn't realize until yesterday that I even had
> a problem.
> 
> Portage had been doing mildly insane things that other people were not
> seeing, so as a test I removed the -introspection useflag and spent the
> entire day rebuilding packages.  My portage problem appears to be
> fixed.  I hope.
> 
> If anyone can splain what introspection does I'd be grateful.

It's a tricky concept if you haven't worked with Object Oriented
Programming, so lt's look at the USE description:

introspection - Add support for GObject based introspection

Doesn't say much, right?

Object Oriented languages tend to compile to byte-code, just like Java
does, and so does Python. It's so the run-time interpreter can look up
at run-time which function exactly needs to be run (this can't be
determined statically). A really neat trick is to "look inside" objects
not just to see what it has, but also how the innards work, what
properties an object has, and other neat stuff. That's what introspect
means - to "look inside". This magic is what makes dynamic IDEs
possible, where they prompt you for all manner of stuff while typing
code, and even generate boiler-plate code that it hasn't been hard-coded
to deal with.

All sounds very fancy and theoretical. I know what introspection does,
but I can't know if I need this type of it or not. Apparently (because
stuff breaks horribly when it's off), packages that use GObject seem to
rely on this feature.

Therefore, switch it on and let portage get on with it.
That's the best answer I can come up with.


-- 
Alan McKinnon
[email protected]


Reply via email to