A (build) target specifies the information that is needed to automatically build a software artifact. Managing the de-pendencies between the targets of a large code base is chal-lenging. This paper focuses on underutilized targets—an im-portant dependency problem that we identified at Google. An underutilized target is one with files not needed by some of its dependents. Underutilized targets result in less mod-ular code, overly large artifacts, slow builds, and unneces-sary build and test triggers. To mitigate these problems, programmers decompose underutilized targets into smaller targets. However, manually decomposing a target is tedious and error-prone. Although we prove that finding the best target decomposition is NP-hard, we introduc...
Automated build systems are routinely used by software engineers to minimize the number of objects t...
Abstract. The possible applications of Java range from small applets to large, data-intensive scient...
Modern software is bloated. Demand for new functionality has led developers to include more and more...
A (build) target specifies the information that is needed to automatically build a software artifact...
A large number of open source projects are hosted on the Internet by popular repository sites like G...
Many opportunities for easy, big-win, program optimizations are missed by compilers. This is especia...
Slow builds remain a plague for software developers. The fre-quency with which code can be built (co...
This paper describes a software-build tool named Amake, an extension of GNU Make. Its additional fea...
Most Java programmers would agree that Java is a language that promotes a philosophy of “create and ...
Java developers often use decompilers to aid reverse engineering and obfuscators to prevent it. Deco...
Abstract. Analysis or verification of low-level code is useful for min-imizing the disconnect betwee...
We present Build Analyzer, a tool that helps developers optimize the build performance of huge syste...
International audienceMicrobenchmarking consists of evaluating, in isolation, the performance of sma...
Along with new artifact development, software engineering also includes other tasks. One of these ta...
Dependency management is an important task in software maintenance. However, identifying and removin...
Automated build systems are routinely used by software engineers to minimize the number of objects t...
Abstract. The possible applications of Java range from small applets to large, data-intensive scient...
Modern software is bloated. Demand for new functionality has led developers to include more and more...
A (build) target specifies the information that is needed to automatically build a software artifact...
A large number of open source projects are hosted on the Internet by popular repository sites like G...
Many opportunities for easy, big-win, program optimizations are missed by compilers. This is especia...
Slow builds remain a plague for software developers. The fre-quency with which code can be built (co...
This paper describes a software-build tool named Amake, an extension of GNU Make. Its additional fea...
Most Java programmers would agree that Java is a language that promotes a philosophy of “create and ...
Java developers often use decompilers to aid reverse engineering and obfuscators to prevent it. Deco...
Abstract. Analysis or verification of low-level code is useful for min-imizing the disconnect betwee...
We present Build Analyzer, a tool that helps developers optimize the build performance of huge syste...
International audienceMicrobenchmarking consists of evaluating, in isolation, the performance of sma...
Along with new artifact development, software engineering also includes other tasks. One of these ta...
Dependency management is an important task in software maintenance. However, identifying and removin...
Automated build systems are routinely used by software engineers to minimize the number of objects t...
Abstract. The possible applications of Java range from small applets to large, data-intensive scient...
Modern software is bloated. Demand for new functionality has led developers to include more and more...