The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
CURRENT PRIORITIES 
- Please include dates and PDL version numbers on entries!

# = done

-- PDL 2.4.2, 25-Jul-2006 (DJB)

Basic/Gen/PP.pm could do with a good clean out/re-factoring. On the
larger, architectural, scale it would be good to decide how to handle
some of the "families"-related code (i.e. those ideas that were never
quite implemented). There's plenty of ifdef-fed code in Basic/Core/
that could be reviewed/implemented/removed.

-- PDL 2.4.2, 25-Jul-2006 (DJB)

Post 2.4.3, need to look at the "badvalue" code to see how to improve
routines like fibonacci (i.e. those that have no input piddles). At present
the code is doing stuff it needn't. It probably won't save much execution
time, but might reduce code size/build time/...

-- PDL 2.4.2, 25-Jul-2006 (DJB)

It would be great if, post 2.4.3, we could move from using
ExtUtils::MakeMaker to Module::Build (inspired by reading
http://mungus.schwern.org/~schwern/talks/MakeMaker_Is_DOOMED/slides/slide001.html
).

At the very least we could do with an overhaul of the build processr:
 1) there are a number of optional modules that have slightly-different
    ways of determining whether to be built or not. 
 2) there's too much screen output during the 'perl Makefile.PL' phase.
    This info is useful for testing/debugginh/developing but:
    a) should be made optional
    b) could be output at the end of the run rather than during it, to
       make it easier to track down what has/has not been decided

-- PDL 2.4.1, 25-Oct-2004 (CED) 
Think about subclassed PDLs and how to stop them from breaking
indexing operations.  For example, PDL::Char types can't be diced
properly with dice() because the input variables seem to be promoted
to PDL::Char.  (workaround: use niceslice instead).  Myriad other
problems with complex numbers and quaternions.
This relates to bug #974581.

-- PDL 2.4.1, 25-Oct-2004 (CED) 
Issues with pointer casting (bug 1051810) in some of the redodims
code.  The "uninitialized memory read errors" mentioned in that bug
are especially troubling, and indicate some fallacious logic in the
deep guts of PP-generated code. (They're part of the generated
_redodims code; see the bug).  There are other hints of trouble in PP,
notably the need in some of the trans code to inspect the PDL
"signature" at the beginning of a block of memory to see if it has been
initialized already.  Such signatures of course become more common in 
random bits of memory as a process runs.  That stuff needs looking into.



===============
Older stuff (probably still needs work)

- add GLOBALLIBS modifier to perldl.conf and
  PDLWriteMakefile routine to Dev.pm that will
  honour it. Then change WriteMakfile calls in
  all Makefile>PLs in the dist into PDLWriteMakefile
- better docs -> doc roadmap
   'sever' additional docs
- fix some of the inaccuracies in PDL::Internals
- PDL::Doc : 	learn to cope with duplicate function names (e.g.
		PDL::min and PDL::GSL::RNG::min)
		install scanpdldocs script to make it easier to
			add user docs to the online docs database
		postamble code: standard postamble for docscanning
			of user modules (to be used in Makefile.PL)
# - perldl docs on builtin niceslicing
# - nslice docs
# - more Inline::Pdlpp docs
- AutoLoader import hash => can wait

- Overarching graphics object -- would be nice to have high level 
	functionality in PLPLOT.

lower priorities

- get rid of 'swap' parameter when calling bifuncs explicitly
- overhaul core interfaces, move drepecated interfaces into own module
# - improve OpenGL detection ## seems more or less done (trylink)
# sort out interface to different interpolation codes (PDL::Func
  and the old PDL::Interpolate/PDL::Interpolate::Slatec modules which are
  included in the distribution but are not installed)
- make more routines 'bad value' aware
- tests for new features of at, set, getdim
# - tests for PDL::Matrix
# implement the new NiceSlice ideas (trailing modifiers, '/' diag,
		'<-> xchg', etc)
# PDL::PP::Inline !!!


OLDER STUFF (still valid?):

                 perlDL TODO list
                 ================

   'This world, where much is to be done and little to be known.' 
      - Samuel Johnson. Prayers and Meditations. Against inquisitive 
                        and perplexing Thoughts.

   Karl Glazebrook, AAO, 2/Oct/1996. [kgb@aaoepp.aao.gov.au]

-- update the TODO list

SuperHyperCritical:
----
# * foo(zeroes(float,3))) and foo is defined only for byte doesn't work.
??? Doesn't it?o

* Dependencies on pdl.h everywhere

Reorganize Demos/TriD.

* Transcendential functions should always return at least floats

Missing Features:
-----------------
 - [xvyz]rvals now act like zeroes - but they now act like
    constructos so $derived->xvals does not give you what
    you expect. Need to think about this some more.

* PDL::IO::Pic should barf when converter not available

"#" = should work now.

# **** Quick: SV * must be allowed for OtherPars.

Building:
--------

TidBits
----
* clean Dev.pm (perl is clever enough to know if it's in the build tree
  or outside)


Tidbits
----

* PThread: if multithreading is turned on on a pdl after it has
  been incorporated into a transformation, there will probably
  be trouble worth of a coredump at some point. Watch out.

* PP: fix phys pointers!!

* PP: OtherTypes

* PP: Input pars => dims (generalize "where")

* clean .pd -> .c files

* ->setdims followed by ->set_datatype crashes

* PDL::Trans objects, getting parents, etc.

* Perl-level threading, use subs with indices etc.


Critical
----

* document ->thread & no null. Document limitations and undefined
  things about the trans system.

* Make PDL::PP and other documentation up to date.

* DProf doesn't work with pdl for some reason.. check.

Reorganization
------

* Remove the 'pdl' prefix from PDL/Core/*.c
 
System
------

* local $epsilon used for 

* Dataflow + persistence

* ***************** COMPLEX NUMBERS ******************

* Improve pdl_whichdatatype and PDL::PP so we don't need to do
  stupid interconversions.

* Clean up pdl_converttype and SvPDLV: we could do with a lot less
  pdl_mallocs.

IO
---

* DSA writer/header handling

Functions
----------

* sort ($x,$y,$z...) - 1D only
   -along some dimensions, by some rules.

* Grow list -> (N+1) Dim

* Matrix inverse (via following:)

* linear system solver

* Interpolation - 2D and 3D

Graphics
--------

* Improve 3D

* Nd plots

FFT
--------

* Fix FFT test number 2.(Commented out for now) Robin Williams notes:
	...this appears to be an
	oddity with PP's promotion of byte data for GenericTypes => [F,D]
	routines.