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]