Thanks!  That figure will be in the talk.  And keep that script!  (Is
there a place for such miscellaneous scripts in the source
distribution?)

John

On Dec 15, 10:40 pm, William Stein <[email protected]> wrote:
> 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