Feeds

Boffins untangle why your software builds fail

Dependency hell by-the-numbers

Beginner's guide to SSL certificates

Dependency errors aren't just the bane of Linux users living the configure-make-install life: they also have a significant impact on developer productivity that could be dealt with in the tools developers use.

That's one of the conclusions arising out of a new analysis, carried out by researchers from Hong Kong, the University of Nebraska, and Google (which contributed nine months' of build data from thousands of developers to the study).

With 26 million builds as a dataset, Google is in a better position than most to help work out what lies beneath a failed job, and in this analysis, lead author Hyunmin Seo of the Hong Kong University of Science and Technology and his co-authors conclude that the same dependency hell that any Linux user will know well drives build fails all over the world.

The paper states that in Java builds, dependency errors accounted for about 65 per cent of build failures, and a little over half of C++ builds; type mismatches (“a variable is assigned to an incompatible type or when a function is called with wrong argument types”) caused more than 25 per cent of failed C++ builds and nearly 20 per cent of failed Java builds; with syntax, semantic, and other errors making up the rest of the failed builds.

Most of the time – Vulture South would guess this party depends on a developer's experience – build errors can be resolved fairly quickly, with the paper finding that the median resolution times were 5 minutes (C++) and 12 minutes (Java). However, the resolution time “can vary by an order of magnitude across error kinds”, which has important implications for developer productivity.

Discussing the impact of the kind of error on the fix-time, the authors note: “some compiler errors show a higher median resolution time as they are more difficult to puzzle out (non_virtual_dtor, ovl_no_viable_function_in_init, typecheck_nonviable_condition, or typename_nested_not_found), or else may take time to track down the missing dependency (pp_file_not_found).”

Fixing errors – and improving developer productivity – isn't too steep a demand, the paper finds, since no matter the language, around 10 per cent of error types accounted for 90 per cent of build fails. Hence, “better tools to resolve de-pendency errors have the greatest potential payoff”, the paper states, noting that Google is already briefing its infrastructure organisation on the subject. ®

Internet Security Threat Report 2014

More from The Register

next story
Download alert: Nearly ALL top 100 Android, iOS paid apps hacked
Attack of the Clones? Yeah, but much, much scarier – report
NSA SOURCE CODE LEAK: Information slurp tools to appear online
Now you can run your own intelligence agency
Microsoft: Your Linux Docker containers are now OURS to command
New tool lets admins wrangle Linux apps from Windows
Microsoft adds video offering to Office 365. Oh NOES, you'll need Adobe Flash
Lovely presentations... but not on your Flash-hating mobe
You stupid BRICK! PCs running Avast AV can't handle Windows fixes
Fix issued, fingers pointed, forums in flames
HTML5 vs native: Harry Coder and the mudblood mobile app princes
Developers just want their ideas to generate money
prev story

Whitepapers

Driving business with continuous operational intelligence
Introducing an innovative approach offered by ExtraHop for producing continuous operational intelligence.
Why CIOs should rethink endpoint data protection in the age of mobility
Assessing trends in data protection, specifically with respect to mobile devices, BYOD, and remote employees.
A strategic approach to identity relationship management
ForgeRock commissioned Forrester to evaluate companies’ IAM practices and requirements when it comes to customer-facing scenarios versus employee-facing ones.
High Performance for All
While HPC is not new, it has traditionally been seen as a specialist area – is it now geared up to meet more mainstream requirements?
Protecting against web application threats using SSL
SSL encryption can protect server‐to‐server communications, client devices, cloud resources, and other endpoints in order to help prevent the risk of data loss and losing customer trust.