Coder Social home page Coder Social logo

code-sleuth's Introduction

code-sleuth

ci

Current status: prototype


Actively discover the primary coding languages of projects via deep introspection where necessary. First, Code Sleuth looks at known metadata such as codemeta.json to determine primary project languages. This approach scales to millions of projects.

Next, lightweight heuristics are considers such as presence of language-specific configuration files. It is thought that Makefiles might lend themselves to passive heuristics.

If metadata is not usable and lightweight heuristics are indeterminate, Code Sleuth enters deep introspection by configuring the project build system. Currently, deep introspection only occurs for CMake-based projects. The introspection method extends in a straightforward way to Meson in the future.

Introspection is not safe for the running computer, because executing build scripts can (over)write arbitrary files and Windows Registry. This script is meant to be run on "known safe" projects or as a cloud instance that is OK with the risk of running scripts from any project on the Internet.

The purpose of the deep introspection method is to acquire language standard data on thousands of scientific computing projects, where a throwaway cloud image would be used for the scanning. The deep introspection would take place infrequently after the first project scan, and could take a minute or more of single-CPU time per project.

We provide initial implementation of a tool code-sleuth that actively introspects projects, using a variety of heuristics and direct action. A key design factor of code-sleuth is to introspect languages using specific techniques such as invoking CMake or Meson to introspect the project developers intended languages. The goal is not to detect every language in a project, but instead to detect the primary languages of a project. Also, we desire to resolve the language standards required, for example:

  • Python 2.6..2.7
  • Python > 3.6
  • C++14
  • C11
  • Fortran 2008

This detection will allow a user to know what compiler or environment is needed in automated fashion.

code-sleuth's People

Contributors

scivision avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.