test/markups/README.pod.html (view raw)
1<!-- INDEX BEGIN -->
2<div name="index">
3<p><a name="__index__"></a></p>
4
5<ul>
6
7 <li><a href="#matrixy">Matrixy</a></li>
8 <ul>
9
10 <li><a href="#introduction">INTRODUCTION</a></li>
11 <li><a href="#about">ABOUT</a></li>
12 <li><a href="#implementation">IMPLEMENTATION</a></li>
13 <li><a href="#dependencies">DEPENDENCIES</a></li>
14 <ul>
15
16 <li><a href="#parrot">Parrot</a></li>
17 <li><a href="#parrot_linear_algebra">Parrot-Linear-Algebra</a></li>
18 </ul>
19
20 <li><a href="#building">BUILDING</a></li>
21 <li><a href="#todo">TODO</a></li>
22 <li><a href="#bugs">BUGS</a></li>
23 <li><a href="#contact">CONTACT</a></li>
24 </ul>
25
26</ul>
27
28<hr name="index" />
29</div>
30<!-- INDEX END -->
31
32<p>
33</p>
34<h1><a name="matrixy">Matrixy</a></h1>
35<p>
36</p>
37<h2><a name="introduction">INTRODUCTION</a></h2>
38<p>This is a port of the MATLAB/Octave programming language to Parrot. See the
39ROADMAP file for more information on the status of this project, and what else
40needs to be done.</p>
41<p>
42</p>
43<h2><a name="about">ABOUT</a></h2>
44<p>Primary goals are:</p>
45<ul>
46<li><strong><a name="create_a_working_compiler_that_understands_the_majority_of_the_matlab_octave_programming_language" class="item">Create a working compiler that understands the majority of the
47MATLAB/Octave programming language.</a></strong>
48
49</ul>
50<p>
51</p>
52<h2><a name="implementation">IMPLEMENTATION</a></h2>
53<p>This project is broken into three primary components:</p>
54<ul>
55<li><strong><a name="the_first_is_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" class="item">The first is the parser, located in the <code>src/parser/</code> directory. The
56parser proper is composed of three source files, <em class="file">grammar.pg</em> which is a
57Perl6Grammar file, and <em class="file">actions.pm</em> which is the associated actions file
58written in NQP, and <em class="file">grammar-oper.pm</em> which is the operator precidence parser.
59In addition, several helper functions used by the parser are located in
60<code>src/internals</code>.</a></strong>
61
62<li><strong><a name="the_second_component_is_the_library_of_builtin_functions_in_the_src_builtins_directory_these_functions_are_currently_written_primarily_in_pir_function_names_prefixed_with_an_underscore_are_private_functions_for_use_with_the_parser_other_functions_should_have_names_which_are_the_same_as_names_for_regular_matlab_or_octave_functions_since_they_will_be_available_to_the_hll_these_are_also_separated_into_different_namespaces_depending_on_visibility_and_utility" class="item">The second component is the library of builtin functions in the
63<code>src/builtins/</code> directory. These functions are, currently, written primarily in
64PIR. Function names prefixed with an underscore are "private" functions for use
65with the parser. Other functions should have names which are the same as names
66for regular MATLAB or Octave functions, since they will be available to the
67HLL. These are also separated into different namespaces depending on visibility
68and utility.</a></strong>
69
70<li><strong><a name="a_number_of_library_functions_are_written_in_m_or_mostly_m_with_some_inline_pir_code_in_toolbox" class="item">A number of library functions are written in M, or mostly M with some
71inline PIR code in <code>toolbox/</code>.</a></strong>
72
73</ul>
74<p>
75</p>
76<h2><a name="dependencies">DEPENDENCIES</a></h2>
77<p>Matrixy depends on these dependencies:</p>
78<p>
79</p>
80<h3><a name="parrot">Parrot</a></h3>
81<p>To get a proper version of Parrot to build Matrixy, you will need to check out
82and build Parrot from source:</p>
83<pre>
84 svn co <a href="http://svn.parrot.org/parrot/trunk">http://svn.parrot.org/parrot/trunk</a> parrot
85 cd parrot
86 perl Configure.pl
87 make && make test && make install-dev</pre>
88<p>
89</p>
90<h3><a name="parrot_linear_algebra">Parrot-Linear-Algebra</a></h3>
91<p>The linear algebra package for Parrot is available separately and provides
92functionality required by Matrixy. This includes matrix data types and matrix
93manipulation libraries</p>
94<p>
95</p>
96<h2><a name="building">BUILDING</a></h2>
97<p>Once all dependencies are in place, you can build Matrixy using this sequence of
98commands:</p>
99<pre>
100 perl Configure.pl
101 nmake test</pre>
102<p>
103</p>
104<h2><a name="todo">TODO</a></h2>
105<pre>
106 * Parser
107 * Standard Builtins
108 * Test against Octave Test Suite.</pre>
109<p>
110</p>
111<h2><a name="bugs">BUGS</a></h2>
112<p>Lots!</p>
113<p>
114</p>
115<h2><a name="contact">CONTACT</a></h2>
116<p>If you need to contact the Matrixy team, go to the project home page at:</p>
117<p>www.github.com\Whiteknight\matrixy</p>
118