Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ianj-als/pcl.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Johnson <ian.johnson@appliedlanguage.com>2013-07-15 18:45:27 +0400
committerIan Johnson <ian.johnson@appliedlanguage.com>2013-07-15 18:45:27 +0400
commit7b4b59da587ea3e1ad20043a528ae26dd75912e5 (patch)
tree2292e61b6e338fbf53ad1b7a8e4df292f0fafa63
parentba852d156d732bc2cb469f2f03b237eaf3f447d9 (diff)
Added dependency details and instructions to the documentation. Fixed the second pass resolver to use an immutable set.
-rw-r--r--.gitignore12
-rw-r--r--documentation/chapters/introduction/introduction.tex29
-rw-r--r--documentation/pcl-manual.1.0.3-beta.pdf (renamed from documentation/pcl-manual.1.0.2-beta.pdf)bin255778 -> 300115 bytes
-rw-r--r--documentation/pcl-manual.tex2
-rwxr-xr-xsrc/pclc/pclc.py2
-rw-r--r--src/pclc/visitors/second_pass_resolver_visitor.py3
6 files changed, 44 insertions, 4 deletions
diff --git a/.gitignore b/.gitignore
index c2f5b34..d0ed63c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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
index 4ab664b..2c0673d 100644
--- a/documentation/pcl-manual.1.0.2-beta.pdf
+++ b/documentation/pcl-manual.1.0.3-beta.pdf
Binary files differ
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']