The uploaded file

    Devel-TypeCheck-0.01.tar.gz

has entered CPAN as

  file: $CPAN/authors/id/B/BA/BARGLE/Devel-TypeCheck-0.01.tar.gz
  size: 17824 bytes
   md5: 08c34f17ac3ba314a5e8e2a828e2b037

TypeCheck does basic type inference on Perl programs and reports if types are used inconsistently. For instance, when run against the following program, it identifies that $foo takes on the integer type as well as the reference to integer type:

if (int(rand(2)) % 2) {
     $foo = 1;
} else {
     $foo = \1;
}

Notably, there are some things that it does not do (yet):

1.  No interprocedural analysis - functions do not get types.
2. No aggregate data types (hashes and arrays lose type information when written to).
3.  No objects (it treats them as plain references to hashes).

I will address 2 (and hopefully 1 as well) by September 1.

The type system is a model of the type information available at compile time. I have written a paper (not intended for a Perl community audience) that explains motivation, mechanism, performance, and future direction for Devel::Typecheck:

http://www.umiacs.umd.edu/~bargle/project2.pdf

Notably, it discusses the obscure type notation that I've used.

--
                    Gary Jackson
                    [EMAIL PROTECTED]

Reply via email to