Getting ready for PyPI.
This commit is contained in:
parent
b2a4c0e1f8
commit
92c15a73e3
1
MANIFEST
1
MANIFEST
|
|
@ -10,5 +10,6 @@ joy/joy.py
|
||||||
joy/library.py
|
joy/library.py
|
||||||
joy/parser.py
|
joy/parser.py
|
||||||
joy/utils/__init__.py
|
joy/utils/__init__.py
|
||||||
|
joy/utils/brutal_hackery.py
|
||||||
joy/utils/pretty_print.py
|
joy/utils/pretty_print.py
|
||||||
joy/utils/stack.py
|
joy/utils/stack.py
|
||||||
|
|
|
||||||
5
Makefile
5
Makefile
|
|
@ -1,6 +1,7 @@
|
||||||
# My make-fu style is old and tired. I just want to have a few helper commands.
|
# My make-fu style is old and tired. I just want to have a few helper commands.
|
||||||
|
|
||||||
TESTDIR = ./test00
|
TESTDIR = ./test00
|
||||||
|
VERSION = 0.1.0
|
||||||
|
|
||||||
.PHONY: clean sdist test docs
|
.PHONY: clean sdist test docs
|
||||||
|
|
||||||
|
|
@ -12,11 +13,13 @@ clean:
|
||||||
sdist:
|
sdist:
|
||||||
python ./setup.py sdist
|
python ./setup.py sdist
|
||||||
|
|
||||||
|
# In order to support testing the code as installed
|
||||||
|
# create a virtualenv and install the source dist zip there.
|
||||||
test: sdist
|
test: sdist
|
||||||
$(RM) -r $(TESTDIR)
|
$(RM) -r $(TESTDIR)
|
||||||
virtualenv --system-site-packages --never-download $(TESTDIR)
|
virtualenv --system-site-packages --never-download $(TESTDIR)
|
||||||
. $(TESTDIR)/bin/activate && \
|
. $(TESTDIR)/bin/activate && \
|
||||||
pip install --no-cache-dir --no-index ./dist/Joypy-0.1.tar.gz
|
pip install --no-cache-dir --no-index ./dist/Joypy-$(VERSION).tar.gz
|
||||||
echo "Type: source $(TESTDIR)/bin/activate"
|
echo "Type: source $(TESTDIR)/bin/activate"
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
37
README
37
README
|
|
@ -1,10 +1,4 @@
|
||||||
____ ____ _ _____ _____
|
--------------------------------------------------
|
||||||
| _ \| _ \ / \ | ___|_ _|
|
|
||||||
| | | | |_) | / A \ | |_ | |
|
|
||||||
| |_| | _ < / ___ \| _| | |
|
|
||||||
|____/|_| \_\_/ \_\_| |_|
|
|
||||||
|
|
||||||
--------------------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
Joypy
|
Joypy
|
||||||
|
|
@ -15,7 +9,7 @@
|
||||||
--------------------------------------------------
|
--------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
Copyright © 2014, 2015, 2017 Simon Forman
|
Copyright © 2014, 2015, 2017, 2018 Simon Forman
|
||||||
|
|
||||||
This file is part of Joypy
|
This file is part of Joypy
|
||||||
|
|
||||||
|
|
@ -41,18 +35,9 @@ Joy is a programming language created by Manfred von Thun that is easy to
|
||||||
use and understand and has many other nice properties. This Python
|
use and understand and has many other nice properties. This Python
|
||||||
package implements an interpreter for a dialect of Joy that attempts to
|
package implements an interpreter for a dialect of Joy that attempts to
|
||||||
stay very close to the spirit of Joy but does not precisely match the
|
stay very close to the spirit of Joy but does not precisely match the
|
||||||
behaviour of the original version(s) written in C.
|
behaviour of the original version(s) written in C. The main difference
|
||||||
|
between Joypy and the originals, other than being written in Python, is
|
||||||
The main difference between Joypy and the originals, other than being
|
that it works by the "Continuation-Passing Style".
|
||||||
written in Python, is that it works by the "Continuation-Passing Style".
|
|
||||||
In Joy, control-flow is done by combinators that expect quoted programs
|
|
||||||
on the stack and execute them in various ways. In Joypy they work by
|
|
||||||
changing the pending expression that the interpreter is about to execute.
|
|
||||||
In concrete terms, the combinators could work by making recursive calls
|
|
||||||
to the interpreter and all intermediate state would be held in the call
|
|
||||||
stack of the implementation language, in this Joypy implementation they
|
|
||||||
work instead by changing the pending expression and intermediate state
|
|
||||||
is put there.
|
|
||||||
|
|
||||||
As I study Joy I find that it is very aptly named. It is clear, concise,
|
As I study Joy I find that it is very aptly named. It is clear, concise,
|
||||||
and ameniable to advanced techniques for constructing bug-free software.
|
and ameniable to advanced techniques for constructing bug-free software.
|
||||||
|
|
@ -125,9 +110,15 @@ are called "combinators", which accept quoted programs on the stack and
|
||||||
run them in various ways. These combinators factor specific patterns
|
run them in various ways. These combinators factor specific patterns
|
||||||
that provide the effect of control-flow in other languages (such as ifte
|
that provide the effect of control-flow in other languages (such as ifte
|
||||||
which is like if..then..else..) Combinators receive the current
|
which is like if..then..else..) Combinators receive the current
|
||||||
expession in addition to the stack and return the next expression. As
|
expession in addition to the stack and return the next expression.
|
||||||
mentioned above, the combinators in Joypy work by changing the pending
|
In Joy control-flow is done by combinators that expect quoted programs
|
||||||
expression before returning it.
|
on the stack and execute them in various ways. In Joypy they work by
|
||||||
|
changing the pending expression that the interpreter is about to execute.
|
||||||
|
In concrete terms, the combinators could work by making recursive calls
|
||||||
|
to the interpreter and all intermediate state would be held in the call
|
||||||
|
stack of the implementation language, in this Joypy implementation they
|
||||||
|
work instead by changing the pending expression and intermediate state
|
||||||
|
is put there.
|
||||||
|
|
||||||
In general, where otherwise unspecified, the semantics of Joypy are that
|
In general, where otherwise unspecified, the semantics of Joypy are that
|
||||||
of the underlying Python. That means, for example, that integers are
|
of the underlying Python. That means, for example, that integers are
|
||||||
|
|
|
||||||
4
setup.py
4
setup.py
|
|
@ -24,7 +24,7 @@ from textwrap import dedent
|
||||||
|
|
||||||
setup(
|
setup(
|
||||||
name='Joypy',
|
name='Joypy',
|
||||||
version='0.1',
|
version='0.1.0',
|
||||||
description='Python Implementation of Joy',
|
description='Python Implementation of Joy',
|
||||||
long_description=dedent('''\
|
long_description=dedent('''\
|
||||||
Joy is a programming language created by Manfred von Thun that is easy to
|
Joy is a programming language created by Manfred von Thun that is easy to
|
||||||
|
|
@ -37,7 +37,7 @@ setup(
|
||||||
url='https://osdn.net/projects/joypy',
|
url='https://osdn.net/projects/joypy',
|
||||||
packages=['joy', 'joy.utils'],
|
packages=['joy', 'joy.utils'],
|
||||||
classifiers=[
|
classifiers=[
|
||||||
'Development Status :: 3 - Alpha',
|
'Development Status :: 4 - Beta',
|
||||||
'License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)',
|
'License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)',
|
||||||
'Programming Language :: Python :: 2.7',
|
'Programming Language :: Python :: 2.7',
|
||||||
],
|
],
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue