                Release Notes for cloc version 1.60
                   http://cloc.sourceforge.net
                           August 16, 2013

New Languages:
    o LESS
    o Razor
    o JavaServer Faces
    o SASS
    o Apex Trigger
    o Visualforce Component
    o Visualforce Page
    o Verilog-SystemVerilog
    o Pig Latin

Updates:
    o Improved handling of UTF-16 (both little and big endian).
    o use Time::HiRes if available.
    o Improved logic that distinguishes between Objective C,
      MUMPS and MATLAB files.
    o Added information about duplicate files to output created
      by --ignored.
    o Added support for .tar.xz compressed archives.
    o CMake                Added .cmake file extension.
    o MXML                 Added support for Actionscript
    o Groovy               Added .gant file extension.
    o Vala                 Recognize Vala header files.

New options and features:

   --max-file-size=<MB>      Skip files larger than <MB> megabytes when
                             traversing directories.  By default, <MB>=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 <file>" 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.

============================================================================
                Release Notes for cloc version 1.58
                   http://cloc.sourceforge.net
                           March 3, 2013

Version 1.58 introduces a new version numbering scheme:  odd numbers 
represent development versions while even numbers represent stable,
released versions.  There was no release 1.57 as it was the development
version leading to this release.

New Languages:
    o Ant
    o Arduino Sketch
    o InstallShield
    o Maven
    o PowerShell
    o Rust
    o Vala

Updates:
    o OCaml                Added extensions .mli, .mly, .mll
    o --read-lang-def      See the section --read-lang-def v. 
                           --force-lang-def below.

New options and features:

  --diff-timeout N
      o Running 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 FILE
      o See the section --read-lang-def v. --force-lang-def below.

  --skip-archive REGEX
      o Ignore 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).

    Prevent "defined(@array) is deprecated" warnings with Perl 5.16.1.

    Show an example of alternation in the documentation for the --match-d
    switch.


--read-lang-def v. --force-lang-def
      
    The --read-lang-def option allows one to replace cloc's language
    processing filters with custom settings.  The problem with this
    option is that it overwrites internal logic that handles languages
    which map to the same file extension.  Currently these are
        MATLAB/Objective C/MUMPS   -> .m
        Pascal/PHP                 -> .inc
        Lisp/OpenCL                -> .cl
    The logic needed to handle these extension collisions is not
    easily expressed in an input text file.  In any event, in most
    instances one merely wishes to augment cloc's language definitions
    with entries for new languages rather than replace definitions
    for known languages.

    For this reason, the behavior of --read-lang-def has been changed
    to merge new language definitions found in the given file with
    cloc's existing languages.  Where there are conflicts, cloc's
    built-in definitions take precedence.  This new behavior allows
    one to add new language definitions without sacrificing cloc's
    ability to count files languages ending with .m, .inc, or .cl.

    The new option --force-lang-def behaves exactly like --read-lang-def
    did in cloc versions 1.56 and earlier--it completely ignores
    cloc's internal language definitions and repaces them with definitions
    in the given file.  However, one will no longer be able to count
    files with the extensions .m, .inc, or .cl.

Bug Fixes:

    Suppress "Wrote <file>" messages when running with --quiet.

    Create .file output when running with --sum-reports (id 3571353).

    Correct output for languages starting with a lower case letter when 
    running with --diff --sum-reports.

    Show correct count of files added/deleted with --diff (id 78).

    Handle special case of --diff between one file and a set of files (id 82).

    Prevent cloc from inadvertently counting lines from temporary
    installations of Algorithm::Diff and/or Regexp::Common.  This happens
    on faulty Perl installations (eg. MinGW MSYS Perl) which cause 
    File::Temp::tempdir() to return the current working directory.

============================================================================
                Release Notes for cloc version 1.56
                   http://cloc.sourceforge.net
                           April 3, 2012   

Version 1.56 introduces an additional documentation file, cloc.1.pod, which
can be used to produce cloc's documentation in the style of a Unix man page,
plain text, HTML, or LaTeX.

New Languages:
    o Clojure
    o ClojureScript
    o AutoHotkey
    o QML
    o CFScript
    o OpenCL

New options and features:

  --unix
      o Override the operating system autodetection logic and run in 
        UNIX mode.

  --windows
      o Override the operating system autodetection logic and run in 
        Microsoft Windows mode.

  --show-os
      o Print the name of the of the operating system mode and exit.

  --csv-delimiter
      o Use the provided delimiter instead of a comma when generating 
        csv output.

  --stdin-name
      o 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 <languages> 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.

============================================================================
                Release Notes for cloc version 1.55
                   http://cloc.sourceforge.net
                          October 14, 2011

Version 1.55 is a bugfix release to correct malformed XML output 
that was introduced in the 1.54 release.  Two minor enhancements
were added:

New Languages:
    o Dart

New options and features:

  --sum-one
      o Force printing of the SUM: line even if only one source
        file is counted.

============================================================================
                Release Notes for cloc version 1.54
                   http://cloc.sourceforge.net
                          October 1, 2011


New Languages:
    o CMake
    o Cython
    o Objective C++
    o Ocaml
    o Smarty

New options and features:

  --autoconf
      o 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
      o Include, or skip over, directories whose names match
        provided regular expressions.

  --follow-links
      o 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
      o 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
      o Fixed null output when one input has a single file while
        the comparison input has multiple files.
      o Fixed null output when no lines of code are modified in
        common files (only entire files were added or removed).
      o Handle cases where one of the two inputs is an empty
        file or directory.

  --diff + --exclude-file-list
      o --diff now skips files defined by --exclude-file-list

  --diff + --exclude-lang
      o --diff now skips languages defined by --exclude-lang

  --diff + --xml   
      o Include user-provided xsl file name in XML --diff output.
      o XML output for --by-file and --by-file-by-lang.
  
  --diff + --csv
      o Added comma separated value output for --diff.
  
  --diff + --sum-reports
      o Can now use the --sum-reports option with --diff.

  --exclude-dir
      o Quote metacharacters when comparing directory names against 
      --exclude-dir value.

  --strip-comments
      o Do not remove blank lines if they follow lines with
        (language-dependent) continuation markers.

  --sum-reports + --list-file
      o Allow the --sum-reports option to take its inputs from
        files defined by --list-file

Outstanding issues:
  --sql output formats remain unimplemented for --diff.

============================================================================
                Release Notes for cloc version 1.53
                   http://cloc.sourceforge.net

New Languages:
    o Go
    o MXML

New options:

  --lang-no-ext
      o Alternate method to count files without file
        extension.
  --ignore-case  
      o 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.

  --3:   
      o Correct XSLT syle when running with --3.
  
  --diff:   
      o Implemented YAML output option.
      o Implemented XML output option.  Includes an optional
        default XSLT style file.
      o 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.
      o Ignore unrecognized languages.
  
  --exclude-ext
      o Was inadvertently disabled in v1.52; works now.

Outstanding issues:
  --csv, --sql output formats remain unimplemented for --diff.

============================================================================
                Release Notes for cloc version 1.52
                   http://cloc.sourceforge.net

New Languages:
    o Groovy
    o Scala
    o XAML

New options:

  --exclude-ext 
      o Ignore files with the given file extension.
  
  --ignore-whitespace  
      o 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:   
      o Fix negative value of removed blank lines.
      o Better output column alignment when running with --by-file.
      o Bug fixes when dealing with fully qualified Windows paths.
  
  --exclude-list-file  
      o Can now also include directories to ignore in the supplied 
        input file.

Other Improvements:
    o 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).
    o Contents of .hg/ (Mercurial) directories are ignored.
    o On Windows: Ignore case in file name extensions.
