diff options
author | Ian Johnson <ian.johnson@appliedlanguage.com> | 2013-07-15 18:45:27 +0400 |
---|---|---|
committer | Ian Johnson <ian.johnson@appliedlanguage.com> | 2013-07-15 18:45:27 +0400 |
commit | 7b4b59da587ea3e1ad20043a528ae26dd75912e5 (patch) | |
tree | 2292e61b6e338fbf53ad1b7a8e4df292f0fafa63 | |
parent | ba852d156d732bc2cb469f2f03b237eaf3f447d9 (diff) |
Added dependency details and instructions to the documentation. Fixed the second pass resolver to use an immutable set.
-rw-r--r-- | .gitignore | 12 | ||||
-rw-r--r-- | documentation/chapters/introduction/introduction.tex | 29 | ||||
-rw-r--r-- | documentation/pcl-manual.1.0.3-beta.pdf (renamed from documentation/pcl-manual.1.0.2-beta.pdf) | bin | 255778 -> 300115 bytes | |||
-rw-r--r-- | documentation/pcl-manual.tex | 2 | ||||
-rwxr-xr-x | src/pclc/pclc.py | 2 | ||||
-rw-r--r-- | src/pclc/visitors/second_pass_resolver_visitor.py | 3 |
6 files changed, 44 insertions, 4 deletions
@@ -36,3 +36,15 @@ nosetests.xml # Vim .*.swp + +# LaTeX +*.aux +*.tex~ +*.bbl +*.blg +*.lof +*.log +*.lot +*.out +*.toc + diff --git a/documentation/chapters/introduction/introduction.tex b/documentation/chapters/introduction/introduction.tex index 6a74b55..a861a5b 100644 --- a/documentation/chapters/introduction/introduction.tex +++ b/documentation/chapters/introduction/introduction.tex @@ -1,5 +1,5 @@ \chapter{Introduction} -Pipeline Creation Language (PCL) is a general purpose language for creating non-recurrent software pipelines. PCL is a small grammar for combining computation using re-usable components which can be shared or distributed. A number of combinator operators are defined which execute components sequentially or in parallel. Also, a number of pre-defined components can be used to ``glue'' components together, merge parallel outputs, or conditional execute components. +Pipeline Creation Language (PCL) is a general purpose language for creating non-recurrent software pipelines. PCL is a small grammar for combining computation using re-usable components which can be shared or distributed. A number of combinator operators are defined which execute components sequentially or in parallel. Also, a number of pre-defined components can be used to ``glue'' components together, merge parallel outputs, or conditionally execute components. PCL was developed as part of the MosesCore project sponsored by the European Commission's Seventh Framework Programme (Grant Number 288487) \url{http://www.statmt.org/mosescore/}. For more information on the Seventh Framework Programme please see \url{http://cordis.europa.eu/fp7/home_en.html}. @@ -8,3 +8,30 @@ PCL compiler and runtime has been released under a LGPL v3.0\footnote{See the GN \begin{verbatim} git clone https://github.com/ianj-als/pcl.git \end{verbatim} + +\section{Dependencies} +Today the PCL compiler and runtime scripts require two dependencies that should be installed manually. The first dependency is PLY: a parser library. PCL requires version 3.4 of PLY which can be found at \url{http://www.dabeaz.com/ply/ply-3.4.tar.gz}. Follow the instructions on how to build and install PLY v3.4. Addtionally, if you have Pyhton's \texttt{easy\_install} you can issue the command: +\begin{center} +\texttt{sudo easy\_install ply} +\end{center} + +The second dependency is Pypeline, the Python pipelining library that underpins PCL. Pypeline is a submodule of your PCL git clone. If you haven't already initialised the submodule, use the following command now to do so: +\begin{center} +\texttt{git submodule update --init} +\end{center} +Pypeline can be installed using the instructions in the \texttt{README.md} in the directory \texttt{libs/pypeline}, or by setting your \texttt{PYTHONPATH} environment variable to: +\begin{center} +\texttt{<git clone root>/pcl/libs/pypeline/src} +\end{center} + +Running the Python REPL you should now be able to import the PLY and Pypeline packages using the following Python commands: +\begin{verbatim} +$ python +Python 2.7.3 (default, Apr 10 2013, 06:20:15) +[GCC 4.6.3] on linux2 +Type "help", "copyright", "credits" or "license" for more +information. +>>> import ply +>>> import pypeline +>>> +\end{verbatim} diff --git a/documentation/pcl-manual.1.0.2-beta.pdf b/documentation/pcl-manual.1.0.3-beta.pdf Binary files differindex 4ab664b..2c0673d 100644 --- a/documentation/pcl-manual.1.0.2-beta.pdf +++ b/documentation/pcl-manual.1.0.3-beta.pdf diff --git a/documentation/pcl-manual.tex b/documentation/pcl-manual.tex index 4009e24..c4810a1 100644 --- a/documentation/pcl-manual.tex +++ b/documentation/pcl-manual.tex @@ -51,7 +51,7 @@ %%% Macro definitions for Commonly used symbols -\newcommand{\ReleaseVersion}{1.0.2-beta} +\newcommand{\ReleaseVersion}{1.0.3-beta} \begin{document} \title{\huge{Pipeline Creation Language (PCL)}\\ diff --git a/src/pclc/pclc.py b/src/pclc/pclc.py index ed047fd..fffcd4d 100755 --- a/src/pclc/pclc.py +++ b/src/pclc/pclc.py @@ -27,7 +27,7 @@ from parser.resolver import Resolver from visitors.executor_visitor import ExecutorVisitor -__VERSION = "1.1.7" +__VERSION = "1.1.8" if __name__ == '__main__': diff --git a/src/pclc/visitors/second_pass_resolver_visitor.py b/src/pclc/visitors/second_pass_resolver_visitor.py index a470e0b..00bde81 100644 --- a/src/pclc/visitors/second_pass_resolver_visitor.py +++ b/src/pclc/visitors/second_pass_resolver_visitor.py @@ -104,7 +104,8 @@ class SecondPassResolverVisitor(FirstPassResolverVisitor): def visit(self, second_expr): # Derive the top inputs inputs = self.__derive_inputs(second_expr) - top_inputs = inputs >= (lambda ins: Just(set(ins[0])) if isinstance(ins, tuple) else Just(set(ins))) + top_inputs = inputs >= (lambda ins: Just(frozenset(ins[0])) if isinstance(ins, tuple) \ + else Just(frozenset(ins))) bottom_inputs = second_expr.expression.resolution_symbols['inputs'] bottom_outputs = second_expr.expression.resolution_symbols['outputs'] |