PLA has several dependencies (see below). Once you have those installed properly, you can obtain and install PLA using Plumage, the Parrot package manager:
plumage install parrot-linear-algebra
Or, if you prefer to do things the hard way, you can use this series of commands to obtain and build PLA like this:
git clone git://github.com/Whiteknight/parrot-linear-algebra.git pla cd pla parrot-nqp setup.nqp build parrot-nqp setup.nqp test parrot-nqp setup.nqp install
Before you get started with PLA, you must install some dependencies.
You must have an installed copy of the Parrot Virtual Machine, version 2.8.0 or later.
PLA links to the BLAS library. You can use either the standard reference BLAS library from netlib.org, or you can use one of the ATLAS or CBLAS variants. There are other implementations of BLAS, though PLA may not currently be compatible with all of them (patches and error reports welcomed!)
Kakapo is a development framework for the NQP language. It provides a unit testing library which PLA uses to implement its test suite. A special version of Kakapo is required for PLA release 1. You can use this sequence of commands to get and install that version:
git clone git://github.com/Whiteknight/kakapo.git kakapo cd kakapo checkout tag PLA-version-1 parrot-nqp setup.nqp build parrot-nqp setup.nqp install
Sorry Windows guys! At the moment PLA only runs on Linux and other Unixy systems. Windows support is planned for future releases, but didn't make it into this one.
PLA releases are not on a regular schedule. A new release might not come out again until new features are added or until something in the toolchain becomes incompatible.
Here are a list of TO-DO features that will eventually make it into future releases:
- Bindings to the LAPACK library, to add more linear algebra utilities
- Windows support, including a Windows installer
- Writing bindings for other programming languages which run on Parrot, including Rakudo Perl 6.
- Adding additional types, including special vector types and multi-dimensional tensor types.
New Participants Welcome!
Interested in PLA or linear algebra in general? You can fork a copy of PLA and start contributing right now! I'm happy to talk to interested contributors, and to add patches for bugfixes and new features into the core repository. Please let me know if you're interested in helping out.
If you have specific feature requests that you would like to see added to PLA, but aren't able to implement them yourself, please let me know.
I want to offer a big thanks to the greater Parrot community for helping in various ways. PLA relies on several tools and libraries, the result of many man-hours of work by Parrot community contributors.