Created on: Thu 10 Dec 2009 10:32:58 PM
Last saved: Mon 03 May 2010 03:30:36 PM 

** This is experimental code so use at your own risk! **

This directory contains on-going development efforts for
getting PDL to work with Padre.   We are starting with
implementing a new, improved perldl shell (e.g. perldl2)
using Devel::REPL as the starting point.  Since that
same Devel::REPL is the basis of the Padre REPL module
Padre::Plugin::REPL, it is hoped that this will simplify
future Padre+PDL development.

You will need to install the version 1.3.9+ of Devel::REPL
in addition to PDL to use this code.  A description of the
files included and how to install and use them follows.



FILES:

 Completion.pm
   Replacement for Devel::REPL::Plugin::Completion to support
   Term::ReadLine::Perl in addition to Term::ReadLine::Gnu.
   This makes completion available for all platforms with
   Term::ReadLine::Perl, including win32.

 NiceSlice.pm
   Implements PDL::NiceSlice preprocessing for the Devel::REPL
   shell (i.e. Devel::REPL::Plugin::NiceSlice) for perldl2.
  
 Perldl2.pm
   The perldl2 profile for use with the Devel::REPL shell.
  
 ReadLineHistory.pm
   Replacement for Devel::REPL::Plugin::ReadLineHistory
   that supports either TR::Perl or TR::Gnu

 TieHash.pm
   A replacement for Term::ReadLine::Perl::Tie to give
   a more complete TIEHASH interface.  To use, just
   modify the Perl.pm in your Term::ReadLine::Perl
   install and add this code replacing the existing
   Term::ReadLine::Perl::Tie stuff and edit the tie
   %attibs to use TieHash instead of Tie.

 README
   This file.

 readline-fix/
   Working directory to get Term::ReadLine::Gnu v1.19 working
   with win32 perls.  See its README if you are interested
   in the progress.  Porting work here has stopped now that
   Term::ReadLine::Perl support is available on win32.


INSTALL:

 The installation is manual at this time.  
 (1) Copy Completion.pm, NiceSlice.pm, and ReadLineHistory
     to Devel/REPL/Plugin/ in your Devel::REPL install
 (2) Copy Perldl2.pm to the Devel/REPL/Profile directory of
     your Devel::REPL install
 

USE:

 To try/use the experimental perldl2 shell, just run the
 following command from the shell prompt:

   re.pl --profile Perldl2   # for unix/linux/mac os x
   re    --profile Perldl2   # for win32 systems

 Set the DEVEL_REPL_PROFILE environment variable to
 Perldl2 and you should just be able to run re.pl or
 re to get going.

 To exit the perldl2 shell, type Ctrl-C, Ctrl-D or exit.



NOTES:

 Supported functionality from Devel::REPL and PDL:
  * Commands (generic command creation)
  * DDS (pretty prints output using Data::Dump::Streamer)
  * History (redo commands with !-1 and !## syntax)
  * Interrupt (Ctrl-C to interrupt a command)
  * LexEnv (e.g., my $a = zeros(10) works)
  * MultiLine::PPI (handles multiline input like perldl)
  * NiceSlice (PDL::NiceSlice works too!)
  * Packages (keeps track of user package)
  * CompletionDrivers
    * Globals  (completion for globals) 
    * INC      (completion for use module::name)
    * Keywords (completion for perl keywords)
    * LexEnv   (completion for lexical vars)
    * Methods  (completion of method names)

Packages

 Default PDL modules loaded:
  * PDL
  * PDL::Dbg
  * PDL::Doc::Perldl
  * PDL::IO::Dumper
  * PDL::IO::FlexRaw
  * PDL::IO::Pic
  * PDL::Image2D
  * PDL::AutoLoader
 
 edit the Perldl2.pm file to add additional default setup
 for the perldl2 shell.  You can $repl->eval() anything
 you want before the shell starts.  The other thing is
 to $repl->load_plugin() if you wish to try additional
 Devel::REPL plugins.

 help, apropos work but
 * ? and ?? aliases don't work
 * you need to quote the arguments

 All results are printed by default so big piddle output
 can be problematic.  Work is underway to fix this.
