Patent classifications
G06F9/45
Automatic developer behavior classification
Methods, systems, and apparatus, including computer programs encoded on computer storage media, for designating developers as having a particular skill. One of the methods includes obtaining a reference collection of snapshots for a code base, wherein each snapshot comprises a representation of source code of the code base at a particular time, each snapshot being associated with a particular developer of a plurality of developers of the code base. A plurality of metrics for each developer that committed at least one snapshot to the reference collection of snapshots is computed. Respective values of the plurality of metrics are partitioned into a plurality of respective partitions, and each of the plurality of developers are assigned to one of the plurality of partitions for each of the plurality of metrics. Developers in one or more top-ranked partitions are designated as developers having a particular skill.
Applying multiple rewriting without collision for semi-automatic program rewriting system
A system and method for applying multiple rewritings without contention in a semi-automatic program rewriting system. The method includes: finding dependent ranges of a variable and a modification affecting range of the variable in a target program; determining at least two solutions for target program modification; detecting whether a collision condition exists amongst the one or more solutions; and modifying the program with said one or more solutions if no collision condition exists, while disabling the other solution if a collision condition is detected. A solution includes a rewriting of a segment of a target program code, and there is performed applying one or both of: multiple rewritings in a single solution and multiple rewritings in multiple regions of the target program. When multiple solutions are applied, the second and later solutions are applied to the already rewritten program. The correct application regions of the second and later solutions are identified.
External dependency attribution
Methods, systems, and apparatus, including computer programs encoded on computer storage media, for attributing external dependencies in a software project. One of the methods includes receiving data representing a child snapshot and a parent snapshot in a revision graph of a software project. One or more pairs of matching source code files is identified, and for each pair having a first file and second file, a first count of external dependencies on an external dependency target in the first file and a second count of external dependencies on the external dependency target in the second file are computed. If the first count is different than the second count, an introduction or a removal of one or more external dependencies on the external dependency target in the second file of the pair of matching source code files is attributed to an author of the child snapshot.
SYSTEMS AND METHODS FOR DYNAMIC ALLOCATION OF COMPILATION MACHINES
Systems and methods for dynamic allocation of compilation machines are disclosed. A method includes: initiating and storing a task to be compiled and marking the task in a waiting state to wait for compilation of a compilation machine; fetching a compile command, and analyzing a current compile state of the compilation machine and further determining based on the current compile state whether to set the task to be compiled to continue waiting for compilation or enter a compile stage, wherein if to continue waiting for compilation, then the task to be compiled may be further held in storage; otherwise if to enter the compile stage, then the task may be transmitted to the compilation machine for compilation. Thus, the tasks can be automatically assigned to the compilation machines to achieve efficient use of the compilation machines and reduce the otherwise potential error rate due to human intervention.
PROJECTION OF BUILD AND DESIGN-TIME INPUTS AND OUTPUTS BETWEEN DIFFERENT BUILD ENVIRONMENTS
Methods, systems, apparatuses, and computer program products are described that enable local builds to be substantially equivalent with remote builds. In embodiments, local build and design-time inputs and/or outputs of a local build environment hosted on a local computing device are projected to remote build and design-time inputs and/or outputs of a remote build environment hosted on a remote computing device. In further embodiments, remote build and design-time inputs and/or outputs of the remote build environment are projected to local build and design time inputs and/or outputs of the local build environment. In still further embodiments, first build and design-time inputs and/or outputs of a first build environment hosted on a computing device are projected to second build and design-time inputs and/or outputs of a second build environment hosted on the same computing device.
LLVM-Based System C Compiler for Architecture Synthesis
A low level virtual machine (LLVM)-based system C compiler for architecture synthesis is provided. In one aspect, a method for translating a system C model to hardware description language (HDL) is provided. The method includes the steps of: generating a hardware connection model (HCM) from the system C model, wherein the HCM defines modules and interconnects in a hardware system; parsing the system C model into a LLVM intermediate representation (IR); converting the LLVM IR to a system LLVM IR which records correspondence information between the LLVM IR and the HCM; and generating the HDL based on direct mapping of processes from the system LLVM IR and the HCM.
INTERFACE DEFINITION LANGUAGE COMPILER WITH VERSION RECONCILIATION
An interface definition language compiler can be designed to generate different versions of stubs or library files from a same IDL source code. A developer can maintain a single IDL file with code for various versions by using version directives. As part of front end compiling, the IDL compiler will determine which sections of IDL code are compatible with a specified version and compile those determined sections of IDL code. When performing semantic analysis, the IDL compiler will determine whether changes across versions create semantic issues that can be resolved in the target program language by the backend of the compiler. For those changes that cannot be resolved in the target program language, the IDL compiler can generate error notifications.
RELAXING USER-SPECIFIED REGISTER CONSTRAINTS FOR IMPROVING REGISTER ALLOCATION
A method is provided for relaxing register constraints in a computer program. The method includes identifying, by a processor enabled compiler, unrequired register constraints imposed by a user on the computer program. The unrequired register constraints are unrequired for a proper operation of the computer program. The method further includes automatically relaxing, by the processor enabled compiler, the identified unrequired register constraints to optimize register allocation for the computer program.
COMPLEMENTARY MODEL-DRIVEN AND TEXTUAL DEVELOPMENT USING ENFORCED FORMATTING CONSTRAINTS
A complementary editor opens a plurality of views. Changes are received in a particular view of the plurality of views. The received changes are propagated to other views of the plurality of views other than the particular view and received by each particular view. The propagated changes are transformed in each particular view by a computer based on formatting constraints associated with each particular view and display of the transformed propagated changes is initiated in each particular view.
Electronic Device and Method for Multiple Compiling Platforms
Embodiments of the present disclosure relate to the field of compiling technologies for multiple compiling platforms and disclose a compiling method and electronic device for multiple compiling platforms. The method includes: detecting a compiling environment needed by a compiled object; performing mapping by a mapping table according to the compiling environment to obtain a corresponding compilation path; and obtaining a corresponding configuration element according to the compilation path, and executing compiling by using the configuration element. In the embodiments of the present disclosure, configuration elements of multiple compiling platforms are integrated together, and a compilation path of each compiling platform is obtained by a mapping table, allowing one handheld device to compile applications produced by multiple vendors.