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.