cloc Changelog

What's new in cloc 1.60

Aug 19, 2013
  • New Languages:
  • LESS
  • Razor
  • JavaServer Faces
  • SASS
  • Apex Trigger
  • Visualforce Component
  • Visualforce Page
  • Verilog-SystemVerilog
  • Pig Latin
  • Updates:
  • Improved handling of UTF-16 (both little and big endian).
  • use Time::HiRes if available.
  • Improved logic that distinguishes between Objective C,
  • MUMPS and MATLAB files.
  • Added information about duplicate files to output created
  • by --ignored.
  • Added support for .tar.xz compressed archives.
  • CMake Added .cmake file extension.
  • MXMLAdded support for Actionscript
  • GroovyAdded .gant file extension.
  • ValaRecognize Vala header files.
  • New options and features:
  • --max-file-size=Skip files larger than megabytes when
  • traversing directories.By default, =100.
  • cloc's memory requirement is roughly twenty times
  • larger than the largest file so running with
  • files larger than 100 MB on a computer with less
  • than 2 GB of memory will cause problems.
  • Note:this check does not apply to files
  • explicitly passed as command line arguments.
  • Bug Fixes:
  • Suppress "Wrote " messages when running with --quiet.
  • Fixed an error that caused cloc to fail with "Can't use an
  • undefined value as an ARRAY reference" when running with
  • Perl 5.16 or newer when it encounters certain file types.

New in cloc 1.58 (Mar 14, 2013)

  • New Languages:
  • Ant
  • Arduino Sketch
  • InstallShield
  • Maven
  • PowerShell
  • Rust
  • Vala
  • New options and features:
  • --diff-timeout NRunning diff on large files with many repeated lines may cause Algorithm::Diff::sdiff() to run for hours. This option sets the upper time limit on the duration of this operation for a single file pair. Default is 10 seconds.
  • --force-lang-def FILESee the section --read-lang-def v. --force-lang-def below.
  • --skip-archive REGEXIgnore files that end with the given Perl regular expression. For example, if given --skip-archive='(zip|tar(.(gz|Z|bz2|xz|7z))?)' the code will skip files that end with .zip, .tar, .tar.gz, .tar.Z, .tar.bz2, .tar.xz, and .tar.7z (feature req. 32).

New in cloc 1.56 (Apr 10, 2012)

  • New Languages:
  • Clojure
  • ClojureScript
  • AutoHotkey
  • QML
  • CFScript
  • OpenCL
  • New options and features:
  • unix
  • Override the operating system autodetection logic and run in
  • UNIX mode.
  • windows:
  • Override the operating system autodetection logic and run in
  • Microsoft Windows mode.
  • show-os:
  • Print the name of the of the operating system mode and exit.
  • csv-delimiter:
  • Use the provided delimiter instead of a comma when generating
  • csv output.
  • stdin-name:
  • On UNIX systems, enables cloc to count code piped in via STDIN.
  • This switch provides a filename for to use to infer the language.
  • .git subdirectories are now ignored.
  • Updated yacc counter to recognize C99 comments.
  • Improved detection and reporting of ignored zero sized files.
  • Removed spurious from YAML output.
  • Fixed handling of multi-line Ruby comments surrounded by =begin/=end.
  • Associated .ctl and .dsr extensions with Visual Basic
  • Bug Fixes:
  • Produce correct diff results when comparing empty files with populated
  • files.
  • Remove temporary directory names from --by-file output when working
  • with archive files.
  • Honor user's requested scratch directory if given --sdir.

New in cloc 1.55 (Oct 14, 2011)

  • New Languages:
  • Dart
  • New options and features:
  • sum-one
  • Force printing of the SUM: line even if only one source
  • file is counted.

New in cloc 1.54 (Oct 3, 2011)

  • New Languages:
  • CMake, Cython, Objective C++, Ocaml, Smarty
  • New options and features:
  • autoconf:
  • Count files of recognized languages that end with ".in" (for example, code.h.in, Makefile.in) as used by GNU automake/autoconf.
  • match-d, --not-match-d:
  • Include, or skip over, directories whose names match provided regular expressions.
  • follow-links:
  • Follow symbolic links (on Unix-like OS's).
  • YAML and XML output: header lines now include the cloc URL, version, # lines and files counted, etc.
  • YAML and XML output: if writing to a file (rather than STDOUT), save the file name as an element inside the file.
  • Include support for languages with double extensions. First implementation of these uses .spc.sql for SQL Stored Procedures and .data.sql as SQL Data as distinct from just SQL.
  • Handle archive files (tar files, zip files, etc) with spaces in their names.
  • Bug Fixes:
  • Lisp: Include .lisp as a valid file extension.
  • Correctly identify operating system as Windows if MKS Toolkit is installed.
  • Fix incorrectly handled .inc files (could be PHP or Pascal).
  • counted:
  • Correct output to show only files which were actually used to produce the code count. Also show the output by language rather than by filename.
  • diff:
  • Fixed null output when one input has a single file while the comparison input has multiple files.
  • Fixed null output when no lines of code are modified in common files (only entire files were added or removed).
  • Handle cases where one of the two inputs is an empty file or directory.
  • diff + --exclude-file-list:
  • --diff now skips files defined by --exclude-file-list
  • diff + --exclude-lang:
  • --diff now skips languages defined by --exclude-lang
  • diff + --xml:
  • Include user-provided xsl file name in XML --diff output.
  • XML output for --by-file and --by-file-by-lang.
  • diff + --csv:
  • Added comma separated value output for --diff.
  • diff + --sum-reports:
  • Can now use the --sum-reports option with --diff.
  • exclude-dir:
  • Quote metacharacters when comparing directory names against --exclude-dir value.
  • strip-comments:
  • Do not remove blank lines if they follow lines with (language-dependent) continuation markers.
  • sum-reports + --list-file:
  • Allow the --sum-reports option to take its inputs from files defined by --list-file
  • Outstanding issues:
  • sql output formats remain unimplemented for --diff.

New in cloc 1.53 (Dec 3, 2010)

  • New Languages:
  • MXML
  • New options:
  • lang-no-ext
  • Alternate method to count files without file
  • extension.
  • ignore-case
  • Works with --diff; treat uppercase and lowercase text
  • as equivalent.
  • Bug Fixes:
  • Pascal:Add // as a comment marker.
  • IDL: Include .pro as a recognized file extension.
  • Correct XSLT syle when running with --3.
  • diff:
  • Implemented YAML output option.
  • Implemented XML output option.Includes an optional
  • default XSLT style file.
  • Include code/comment/blank counts of added files to
  • total added material and include code/comment/blank
  • counts of removed files to total removed material.
  • Ignore unrecognized languages.
  • exclude-ext
  • Was inadvertently disabled in v1.52; works now.
  • Outstanding issues:
  • csv, --sql output formats remain unimplemented for --diff.

New in cloc 1.52 (Sep 11, 2010)

  • New Languages:
  • Groovy
  • Scala
  • XAML
  • New options:
  • --exclude-ext
  • Ignore files with the given file extension.
  • --ignore-whitespace
  • Works with --diff; ignore whitespace in code and comments
  • when computing differences.
  • Bug Fixes:
  • Fortran:Treat line starting with an exclamation mark as a comment.
  • Cobol:Treat page eject directive and any line with characters
  • in columns 1-6 as a blank line.
  • --diff:
  • Fix negative value of removed blank lines.
  • Better output column alignment when running with --by-file.
  • Bug fixes when dealing with fully qualified Windows paths.
  • --exclude-list-file
  • Can now also include directories to ignore in the supplied
  • input file.
  • Other Improvements:
  • Better logic to select the file whose name identifies it as
  • containing source code when the file is one of several having
  • identical contents (for example, if main.c and main.c.bak have
  • identical contents, choose main.c for counting instead of
  • main.c.bak, which would be rejected because the filename
  • does not match any recognized language).
  • Contents of .hg/ (Mercurial) directories are ignored.
  • On Windows: Ignore case in file name extensions.

New in cloc 1.51 (May 12, 2010)

  • This is a bugfix release for the Windows platform only.
  • It contains a fix for a problem with output filename
  • handling. Without this fix, output files requested with
  • the switches --report-file, --out, --categorized, and
  • --ignored might not be created if the parent directory
  • or file name have spaces or are located in different
  • directories.

New in cloc 1.50 (Apr 30, 2010)

  • New option, --skip-win-hidden, to skip MS/Windows hidden files
  • New option, --read-binary-files, to force reading files Perl's -b
  • operator thinks are binary (could be text with unicode comments)
  • Improve the MUMPS/MATLAB/Objective C filter
  • Fixed bugs 2787984 (--report-file doesn't handle shell expansions)

New in cloc 1.09 (Mar 16, 2010)

  • New options, --sql, --sql-project, --sql-append to produce output
  • in the form of SQL table create and insert statements
  • Display code counts when producing YAML output with --by-file
  • Added support for counting Ruby HTML, Kermit
  • New option, --skip-win-hidden, to skip MS/Windows hidden files
  • New option, --read-binary-files, to force reading files Perl's -b
  • operator thinks are binary (could be text with unicode comments)
  • Improve the MUMPS/MATLAB/Objective C filter
  • Fixed bugs 2787984 (--report-file doesn't handle shell expansions)
  • and 2783289 (--sum-reports produces empty results)
  • Fix a variable reference that triggers an error with Perl 5.10

New in cloc 1.08 (Apr 23, 2009)

  • New options:
  • --help
  • --xls To improve viewing XML output
  • --exclude-list-file To exclude files that appear in a list file
  • --by-file-by-lang To produce output grouped both by files and by language
  • Bug fixes:
  • Set previously uninialized variable when #! shell scripts have just one line
  • Improvements:
  • Always ignore .svn/ and .cvs/ subdirectories.
  • Treat Perl POD as comments.

New in cloc 1.07 (Jan 14, 2009)

  • Add support for VHDL language.
  • Count source code within archive files such as .tar.gz, .zip, without supplying extra options.
  • Improve filter that distinguishes between MATLAB, MUMPS, and Objective C.

New in cloc 1.05 (Oct 2, 2008)

  • New languages: ActionScript, D. New options: --skip-uniqueness, --original-dir, --match-f, --not-match-f Python triple quoted strings now treated as comments.
  • JSP is now also processed with C/C++ filters. Exit (instead of warn and continue) if incorrect options are given.
  • Fixed a bug in the duplicate file identifying code. Previous versions counted duplicate files twice.
  • Fix output column alignment when working with long file names or languages.

New in cloc 1.04 (Jul 2, 2008)

  • New option, --unicode, for counting code in files saved with UTF-8 encoding. Allow a value of 0 for --progress-rate to suppress progress output.

New in cloc 1.03 (Feb 16, 2008)

  • fix bug 1888765 (incorrect XML output)
  • line for scripting languages now counted as code, not comment
  • force-lang's argument is now optional
  • new option --script-lang to allow script language executables to be defined from the command line