On Thu, Dec 15, 2011 at 4:27 AM, John Cremona <[email protected]> wrote:
> What's the latest line count for Sage, meaning all python & cython
> files (but none of the spgs)?  I'm guessing someone has a script to do
> this count.

I just did the following:

(1) "sudo apt-get install sloccount".
(2) "cp -rv SAGE_ROOT/devel/sage-main  /tmp/x"
(3) Use a script [1] to rename all .pyx and .pxi files to .py.
(4) Ran "sloccount *" in the /tmp/x directory, which ignores
autogenerated .c/.cpp files coming from Cython.

Here's the result for the full Sage library, which does *not*
distinguish between Python and Cython.  Note that sloccount really
*only* counts lines of code -- comments are blank lines are ignored.

-----------
Totals grouped by language (dominant language first):
python:      530370 (96.41%)
ansic:        14538 (2.64%)
cpp:           5188 (0.94%)
--------------

This suggests that the core Sage library is just over a "half million
lines of Python and Cython source code, not counting comments and
whitespace".

Here's the breakdown by module:

SLOC    Directory       SLOC-by-Language (Sorted)
88903   rings           python=87720,cpp=1183
72913   combinat        python=71629,cpp=1284
47747   schemes         python=46255,cpp=1492
39815   graphs          python=28377,ansic=11438
31540   matrix          python=31540
31019   modular         python=31012,ansic=7
24475   libs            python=21171,ansic=2845,cpp=459
20517   misc            python=20383,ansic=134
18006   interfaces      python=18006
17577   geometry        python=16936,cpp=641
12775   categories      python=12775
12093   server          python=12093
11971   groups          python=11971
11961   plot            python=11961
10686   crypto          python=10686
9920    modules         python=9920
8389    symbolic        python=8260,cpp=129
8150    algebras        python=8150
7260    ext             python=7198,ansic=62
7093    structure       python=7093
6364    coding          python=6364
5670    functions       python=5670
5249    homology        python=5249
4798    numerical       python=4798
4323    quadratic_forms python=4323
3919    gsl             python=3919
3911    calculus        python=3911
3879    sandpiles       python=3879
3003    sets            python=3003
2647    databases       python=2647
2074    logic           python=2074
1736    finance         python=1736
1608    games           python=1608
1465    monoids         python=1465
1435    tests           python=1383,ansic=52
1370    stats           python=1370
971     interacts       python=971
959     tensor          python=959
906     lfunctions      python=906
308     parallel        python=308
275     probability     python=275
219     media           python=219
197     top_dir         python=197







[1] Here's the script I wrote:


#!/usr/bin/env python

import os, shutil

for dirpath, dirnames, filenames in os.walk('.'):
    for f in filenames:
        if f.endswith('.pyx') or f.endswith('.pxi'):
            print f
            shutil.move(os.path.join(dirpath, f),
                        os.path.join(dirpath, os.path.splitext(f)[0] + '.py'))

-- 
To post to this group, send an email to [email protected]
To unsubscribe from this group, send an email to 
[email protected]
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to