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]

