cscout

C code refactoring browser

https://github.com/dspinellis/cscout

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.3%) to scientific vocabulary

Keywords

c c-preprocessor call-graph refactoring static-analysis
Last synced: 6 months ago · JSON representation ·

Repository

C code refactoring browser

Basic Info
Statistics
  • Stars: 211
  • Watchers: 13
  • Forks: 38
  • Open Issues: 16
  • Releases: 0
Topics
c c-preprocessor call-graph refactoring static-analysis
Created about 10 years ago · Last pushed 10 months ago
Metadata Files
Readme License Citation

README.md

Build and Test Coverity Scan Build Status

CScout is a source code analyzer and refactoring browser for collections of C programs. It can process workspaces of multiple projects (a project is defined as a collection of C source files that are linked together) mapping the complexity introduced by the C preprocessor back into the original C source code files. CScout takes advantage of modern hardware (fast processors and large memory capacities) to analyze C source code beyond the level of detail and accuracy provided by current compilers and linkers. The analysis CScout performs takes into account the identifier scopes introduced by the C preprocessor and the C language proper scopes and namespaces. CScout has already been applied on projects of tens of thousands of lines to millions of lines, like the Linux, OpenSolaris, and FreeBSD kernels, and the Apache web server.

For more details, examples, and documentation visit the project's web site.

Building, Testing, Installing, Using

CScout has been compiled and tested on GNU/Linux (Debian jessie), Apple OS X (El Capitan), FreeBSD (11.0), and Cygwin. In order to build and use CScout you need a Unix (like) system with a modern C++ compiler, GNU make, and Perl. To test CScout you also need to be able to have SQLite installed. To view CScout's diagrams you must have the GraphViz dot command in your executable file path.

  • To build run make. You can also use the -j make option to increase the build's speed.
  • To build and test, run make test.
  • To install (typically after building and testing), run sudo make install.
  • To see CScout in action run make example.

Under FreeBSD use gmake rather than make.

Testing requires an installed version of SQLite.

Contributing

  • You can contribute to any of the open issues or you can open a new one describing what you want to do.
  • For small-scale improvements and fixes simply submit a GitHub pull request. Each pull request should cover only a single feature or bug fix. The changed code should follow the code style of the rest of the program. If you're contributing a feature don't forget to update the documentation. If you're submitting a bug fix, open a corresponding GitHub issue, and refer to the issue in your commit. Avoid gratuitous code changes. Ensure that the tests continue to pass after your change. If you're fixing a bug or adding a feature related to the language, add a corresponding test case.
  • Before embarking on a large-scale contribution, please open a GitHub issue.

Owner

  • Name: Diomidis Spinellis
  • Login: dspinellis
  • Kind: user
  • Location: Athens, Greece
  • Company: Athens University of Economics and Business & Delft University of Technology

Professor of Software Engineering at AUEB and of Software Analytics at TU Delft, programmer, and technology author.

Citation (CITATION.cff)

cff-version: 1.2.0
title: CScout
message: >-
  If you use this software, please cite, using the metadata from this file,
  both the article from preferred-citation and the software itself.
preferred-citation:
  date-released: "2010-04-01"
  doi: "10.1016/j.scico.2009.09.003"
  title: "CScout: A Refactoring Browser for C"
  authors:
    - family-names: "Spinellis"
      given-names: "Diomidis"
  type: "article"
  volume: 75
  issue: 4
  journal: "Science of Computer Programming"
  start: 216
  end: 231
type: software
authors:
  - given-names: Diomidis
    family-names: Spinellis
    email: dds@aueb.gr
    affiliation: Athens University of Economics and Business
    orcid: 'https://orcid.org/0000-0003-4231-1897'
repository-code: 'https://github.com/dspinellis/cscout'
keywords:
  - refactoring
  - C
  - preprocessor
license: GPL-3.0

GitHub Events

Total
  • Issues event: 3
  • Watch event: 14
  • Issue comment event: 10
  • Push event: 31
  • Fork event: 3
Last Year
  • Issues event: 3
  • Watch event: 14
  • Issue comment event: 10
  • Push event: 31
  • Fork event: 3

Committers

Last synced: 11 months ago

All Time
  • Total Commits: 1,811
  • Total Committers: 11
  • Avg Commits per committer: 164.636
  • Development Distribution Score (DDS): 0.034
Past Year
  • Commits: 171
  • Committers: 1
  • Avg Commits per committer: 171.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Diomidis Spinellis d****s@a****r 1,749
Stefanos Chaliasos s****s@g****m 36
Marios Papachristou p****s@g****m 17
AntonisGkortzis a****s@g****m 2
lokesh prabakaran l****n@g****m 1
Thodoris Sotiropoulos t****r@a****r 1
Ralph Corderoy r****h@i****k 1
Lazarus Lazaridis 9****s 1
Eric Curtin e****7@g****m 1
Andrew Goulas g****d@g****m 1
dds2 d****2 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 9 months ago

All Time
  • Total issues: 39
  • Total pull requests: 38
  • Average time to close issues: 5 months
  • Average time to close pull requests: 4 days
  • Total issue authors: 19
  • Total pull request authors: 11
  • Average comments per issue: 1.95
  • Average comments per pull request: 1.68
  • Merged pull requests: 33
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 3
  • Pull requests: 0
  • Average time to close issues: about 1 month
  • Average time to close pull requests: N/A
  • Issue authors: 2
  • Pull request authors: 0
  • Average comments per issue: 3.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • dspinellis (16)
  • ghost (3)
  • zvr (2)
  • pelrun (2)
  • nado (2)
  • jifffffy (1)
  • int3rsys (1)
  • elfring (1)
  • fkhan75 (1)
  • ph-preux (1)
  • stanman29 (1)
  • hashmap-kz (1)
  • jiayi0118 (1)
  • gbonnema (1)
  • yaaama (1)
Pull Request Authors
  • StefanosChaliasos (20)
  • papachristoumarios (6)
  • AntonisGkortzis (2)
  • lokesh-007 (2)
  • theosotr (1)
  • pmalhaire (1)
  • ericcurtin (1)
  • andreasgoulas (1)
  • iridakos (1)
  • zvr (1)
  • RalphCorderoy (1)
Top Labels
Issue Labels
Pull Request Labels