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
