
***
*** WARNING:
***   v0.20 adds support for the Perl Data Language (aka PDL)
***   but it has highlighted a couple of issues that need to be
***   thought about/worked out. Hence you may not see the
***   rock-solid, high-quality, well-designed code that's
***   been present in previous releases ...
***   ... back in the real world, the PDL issues are:
***   - 1D piddles/arrays can be used (at least on 32-bit machines)
***   - support for other numbers of dimensions is "in a state of flux"
***     [it does work but you might be surprised at what you get and
***      there's no guarantee that it will remain like this].
***   - the current system also requires that PDL (well PDL::Lite)
***     be loaded every time Inline::SLang is loaded. This may
***     be changed.
***

INTRODUCTION

Inline::SLang -- Write Perl subroutines in S-Lang.

Inline::SLang lets you write Perl subroutines in S-Lang. It dynamically 
translates the parameters and return values into native data types for 
both languages (or into Perl classes that are used to represent
S-Lang types with no direct translation to Perl).

From the S-Lang library home page at http://www.s-lang.org/

S-Lang is a multi-platform programmer's library designed to allow a
developer to create robust multi-platform software. It provides
facilities required by interactive applications such as display/screen
management, keyboard input, keymaps, and so on. The most exciting
feature of the library is the slang interpreter that may be easily
embedded into a program to make it extensible. 

Example:

   use Inline SLang => <<'END';
   define JAxH(x) {
     return sprintf( "Just Another %S Hacker!", x );
   }
   END
   print JAxH('Inline'), "\n";

When run, this complete program prints:

   Just Another Inline Hacker!

==============================================================================

INSTALLATION

Perl requirements (see CPAN at http://search.cpan.org/):
  Perl v5.6.0 or higher.
  Test::More module (comes with perl 5.8.0)
  Inline module version 0.42 or higher.
  PDL v2.4.0 or higher will be used if installed

S-Lang requirements:
  Version 1.4.7 or higher of the S-Lang library.
  The code requires that S-Lang has been compiled with support for
  floating-point and complex numbers.

The module has only been tested on Solaris and Linux machines.

To install Inline::SLang do this:

  $ perl Makefile.PL
  $ make
  $ make test
  $ make install

For configuration options, enter

  $ perl Makefile.PL -help

The main options of interest are -slangdir or -slanglib/inc to specify
the location of the library and its include file. The program looks in
/usr, /usr/local, and - if installed - the ots directory within the
CIAO directory structure (http:://cxc.harvard.edu/ciao/).

Note that you have to 'make install' before you can run it successfully.

==============================================================================

INFORMATION

- For more information on Inline::SLang see 'perldoc Inline::SLang'
- For more information about Inline.pm, see 'perldoc Inline'
- For information on SLang visit http://www.s-lang.org/

Please send questions and comments to "Doug Burke" <djburke@cpan.org>

COPYRIGHT AND LICENSE

This software is Copyright (C) 2003, 2004 Smithsonian Astrophysical
Observatory. All rights are reserved.

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA

Or, surf on over to

  http://www.fsf.org/copyleft/gpl.html

