Created on: Thu 10 Dec 2009 10:32:58 PM
Last saved: Tue 01 Jun 2010 02:28:18 PM 


+-----------------------------------------------------------+
|                OS/Platforms supported: ALL                |
+-----------------------------------------------------------+

This directory contains development efforts for a new and
improved perldl shell (Perldl2) that can integrate with
the Padre IDE to support PDL development.

You need to install the version 1.003010 of Devel::REPL
in order to build/use the Perldl2 shell. A description
of the files in this directory and how to install and
use the Perldl2 shell follows.


+-----------------------------------------------------------+
|                          FILES                            |
+-----------------------------------------------------------+

 README
   This file.

 pdl2
   This is a perl script for starting the Perldl2 shell.


+-----------------------------------------------------------+
|                      INSTALLATION                         |
+-----------------------------------------------------------+

  Install Devel::REPL version 1.003010 or greater.

  Then configure and build PDL as usual.  The presence
  of Devel::REPL should be detected and the Perldl2
  support built and installed.
 

+-----------------------------------------------------------+
|                           USE                             |
+-----------------------------------------------------------+

  To use the Perldl2 shell, from the PDL build directory
  run the following:

    perl -Mblib Perldl2/pdl2

  If you have installed the just built PDL, you should
  be able to run:

    pdl2

 To exit the Perldl2 shell from the PDL> prompt, type Ctrl-D
 or quit.

 WARNING: Typing exit will also quit the shell but do so by
 terminating the perl interpreter. Probably not what you
 want to do---especially if you want to keep command history.


+-----------------------------------------------------------+
|                          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 !<num> syntax)
  * Interrupt (interrupt with Ctrl-C; not on MSWin32)
  * LexEnv (e.g., my $a = zeros(10) works)
  * MultiLine::PPI (handles multiline input like perldl)
  * NiceSlice (PDL::NiceSlice works too!)
  * Packages (keeps track of current user package)
  * ReadLineHistory
    * Save and restore command history to file
  * 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)

 Default PDL modules loaded:
  * PDL
  * PDL::Dbg
  * PDL::Doc::Perldl
  * PDL::IO::Dumper
  * PDL::IO::FlexRaw
  * PDL::IO::Pic
  * PDL::Image2D
  * PDL::AutoLoader

 help, apropos work but
 * ? and ?? aliases don't work (use help or apropos words)
 * you need to quote the arguments (e.g.,  help 'sumover')

 l <num> prints the last num lines of history, default 20.

 p is an alias for print.

 demo works but you'll need to quote the demo name argument
 and, at the end of the demo, you may need to type Ctrl-D
 if it hangs after the final (press enter).

 The Perldl2 shell, pdl2, now loads/saves from the same
 history file as perldl.  This is a new feature so, as
 always, feedback welcome.


+-----------------------------------------------------------+
|                        ADVANCED                           |
+-----------------------------------------------------------+

 Work is underway to enable the use of the $HOME/.perldlrc
 and local.perldlrc startup files with the Perldl2 shell.

 If you can't wait and wish to customize your pdl2 startup
 further, you can edit the Perldl2.pm file following the
 documentation for Devel::REPL::Profile.

 It is probably simpler to put your customizations in a
 file and just do the filename.
