Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

M Language Compiler for Parrot

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 config
Octocat-spinner-32 examples
Octocat-spinner-32 src
Octocat-spinner-32 t
Octocat-spinner-32 toolbox
Octocat-spinner-32 .gitignore
Octocat-spinner-32 CREDITS
Octocat-spinner-32 Configure.nqp
Octocat-spinner-32 LICENSE
Octocat-spinner-32 README.pod
Octocat-spinner-32 ROADMAP.pod
Octocat-spinner-32 matrixy.cmd
Octocat-spinner-32 matrixy.pir
README.pod

Matrixy

INTRODUCTION

This is a port of the MATLAB/Octave programming language to Parrot. It will not be a 100% perfect clone, instead aiming to recreate a majority of the common syntax and semantics of the M language, and integrating some of the powerful numerical analysis and linear algebra tools.

PRIMARY GOALS

=item* Create a working compiler

We want to support the majority of the MATLAB/Octave programming language, but at the same time provide features and interface capabilities as provided by Parrot

=item* Build a Mathematics Library

We want to produce a large library of routines that can be used for mathematical analysis and linear algebra

=item* Be Interoperable

M is a very natural choice for performaing mathematics and linear algebra computations. We want developers of other compilers and projects to be able to use Matrixy seemlessly for all their specialized mathematics needs.

IMPLEMENTATION

This project is broken into these primary components:

=item* The Parser

Located in the src/parser/ directory. The parser proper is composed of three source files, grammar.pg which is a Perl6Grammar file, and actions.pm which is the associated actions file written in NQP, and grammar-oper.pm which is the operator precidence parser. In addition, several helper functions used by the parser are located in src/internals.

=item* Function Library

Located in the /toolbox and src/builtins/ directories. These functions are written in a mixture of PIR and M. Functions will attempt to have names, behavior, and calling semantics which are the same as those found in MATLAB and Octave. Additional functions may be added as well.

DEPENDENCIES

Matrixy depends on these dependencies:

Parrot

To get a proper version of Parrot to build Matrixy, you will need to check out and build Parrot from source:

    svn co http://svn.parrot.org/parrot/trunk parrot
    cd parrot
    perl Configure.pl
    make && make test && make install-dev

NOTE: Must be Parrot 1.8.0 or higher. This requirement is subject to change.

Parrot-Linear-Algebra

The linear algebra package for Parrot is available separately and provides functionality required by Matrixy. This includes matrix data types and matrix manipulation libraries.

parrot-linear-algebra can be obtained from:

http://github.com/Whiteknight/parrot-linear-algebra

The build process will fail with an error message if the parrot-linear-algebra package is not properly installed and available on your system.

BUILDING

Once all dependencies are in place, you can build Matrixy using this sequence of commands:

    parrot setup.pir
    parrot setup.pir test
    parrot setup.pir install

Notice that Parrot must be properly installed on your system for this to work. To install, you may need to run the last command with elevated privileges.

CONTACT

If you need to contact the Matrixy team, go to the project home page at:

http://www.github.com\Whiteknight\matrixy

POD ERRORS

Hey! The above document had some coding errors, which are explained below:

Around line 82:

Unterminated L<...> sequence

Something went wrong with that request. Please try again.