Change project name to Thun.

I waited too long to upload to PyPI and some other bastard snagged the name.  I originally wanted to call it "Thun" as a tribute to Manfred von Thun, but I was concerned that this might seem to violate the thrid clause in the license of the original Joy code, to wit:

3. The name of the author may not be used to endorse or promote products  derived from this software without specific prior written permission.

Since the author is deceased I don't know of whom to ask permission to call this project Thun, but since I am not trying to "endorse or promote" this project with his name it should be alright.  In any event if anyone complains I can rename the project again.
This commit is contained in:
Simon Forman 2018-04-21 21:26:41 -07:00
parent 92c15a73e3
commit 669c86cbf1
12 changed files with 60 additions and 57 deletions

View File

@ -7,7 +7,7 @@ VERSION = 0.1.0
clean: clean:
$(RM) -r Joypy.egg-info/ dist/ $(TESTDIR) $(RM) -r Thun.egg-info/ dist/ $(TESTDIR)
find . -name '*.pyc' | xargs $(RM) find . -name '*.pyc' | xargs $(RM)
sdist: sdist:
@ -19,7 +19,7 @@ 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-$(VERSION).tar.gz pip install --no-cache-dir --no-index ./dist/Thun-$(VERSION).tar.gz
echo "Type: source $(TESTDIR)/bin/activate" echo "Type: source $(TESTDIR)/bin/activate"

22
README
View File

@ -1,7 +1,7 @@
-------------------------------------------------- --------------------------------------------------
Joypy Thun
A dialect of Joy in Python. A dialect of Joy in Python.
@ -11,19 +11,19 @@
Copyright © 2014, 2015, 2017, 2018 Simon Forman Copyright © 2014, 2015, 2017, 2018 Simon Forman
This file is part of Joypy This file is part of Thun
Joypy is free software: you can redistribute it and/or modify it under the Thun is free software: you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the Free Software terms of the GNU General Public License as published by the Free Software
Foundation, either version 3 of the License, or (at your option) any later Foundation, either version 3 of the License, or (at your option) any later
version. version.
Joypy is distributed in the hope that it will be useful, but WITHOUT ANY Thun is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the GNU General Public License for more details. PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with You should have received a copy of the GNU General Public License along with
Joypy. If not see <http://www.gnu.org/licenses/>. Thun. If not see <http://www.gnu.org/licenses/>.
-------------------------------------------------- --------------------------------------------------
@ -36,7 +36,7 @@ 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. The main difference behaviour of the original version(s) written in C. The main difference
between Joypy and the originals, other than being written in Python, is between Thun and the originals, other than being written in Python, is
that it works by the "Continuation-Passing Style". that it works by the "Continuation-Passing Style".
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,
@ -77,7 +77,7 @@ interesting aspects. It's quite a treasure trove.
From PyPI in the usual way, e.g.: From PyPI in the usual way, e.g.:
pip install joypy pip install Thun
Or if you have downloaded the source, from the joypy directory: Or if you have downloaded the source, from the joypy directory:
@ -112,15 +112,15 @@ 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. expession in addition to the stack and return the next expression.
In Joy control-flow is done by combinators that expect quoted programs 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 on the stack and execute them in various ways. In Thun they work by
changing the pending expression that the interpreter is about to execute. changing the pending expression that the interpreter is about to execute.
In concrete terms, the combinators could work by making recursive calls In concrete terms, the combinators could work by making recursive calls
to the interpreter and all intermediate state would be held in the call to the interpreter and all intermediate state would be held in the call
stack of the implementation language, in this Joypy implementation they stack of the implementation language, in this joy implementation they
work instead by changing the pending expression and intermediate state work instead by changing the pending expression and intermediate state
is put there. is put there.
In general, where otherwise unspecified, the semantics of Joypy are that In general, where otherwise unspecified, the semantics of Thun are that
of the underlying Python. That means, for example, that integers are of the underlying Python. That means, for example, that integers are
unbounded (whatever your machine can handle), strings cannot be added to unbounded (whatever your machine can handle), strings cannot be added to
integers but can be multiplied, Boolean True and False are effectively integers but can be multiplied, Boolean True and False are effectively
@ -188,7 +188,7 @@ joypy
| `-- README | `-- README
| |
|-- docs - Various Examples and Demos |-- docs - Various Examples and Demos
| |-- * - Jupyter Notebooks on Joypy and supporting modules | |-- * - Jupyter Notebooks on Thun and supporting modules
| `-- README - Table of Contents | `-- README - Table of Contents
| |
|-- joy |-- joy

View File

@ -2,20 +2,20 @@
# #
# Copyright © 2017 Simon Forman # Copyright © 2017 Simon Forman
# #
# This file is part of Joypy # This file is part of Thun
# #
# Joypy is free software: you can redistribute it and/or modify # Thun is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or # the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version. # (at your option) any later version.
# #
# Joypy is distributed in the hope that it will be useful, # Thun is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details. # GNU General Public License for more details.
# #
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with Joypy. If not see <http://www.gnu.org/licenses/>. # along with Thun. If not see <http://www.gnu.org/licenses/>.
# #
from traceback import print_exc, format_exc from traceback import print_exc, format_exc
from joy.joy import run from joy.joy import run

View File

@ -3,20 +3,20 @@
# #
# Copyright © 2014, 2015, 2017 Simon Forman # Copyright © 2014, 2015, 2017 Simon Forman
# #
# This file is part of joy.py # This file is part of Thun
# #
# joy.py is free software: you can redistribute it and/or modify # Thun is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or # the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version. # (at your option) any later version.
# #
# joy.py is distributed in the hope that it will be useful, # Thun is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details. # GNU General Public License for more details.
# #
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with joy.py. If not see <http://www.gnu.org/licenses/>. # along with Thun. If not see <http://www.gnu.org/licenses/>.
# #
from joy.library import initialize from joy.library import initialize
from joy.joy import repl from joy.joy import repl
@ -85,7 +85,7 @@ G == [first % not] [first /] [rest [not] [popop 0]] [ifte] genrec
print '''\ print '''\
Joypy - Copyright © 2017 Simon Forman Thun - Copyright © 2017 Simon Forman
This program comes with ABSOLUTELY NO WARRANTY; for details type "warranty". This program comes with ABSOLUTELY NO WARRANTY; for details type "warranty".
This is free software, and you are welcome to redistribute it This is free software, and you are welcome to redistribute it
under certain conditions; type "sharing" for details. under certain conditions; type "sharing" for details.

View File

@ -2,26 +2,26 @@
# #
# Copyright © 2014, 2015, 2017 Simon Forman # Copyright © 2014, 2015, 2017 Simon Forman
# #
# This file is part of joy.py # This file is part of Thun
# #
# joy.py is free software: you can redistribute it and/or modify # Thun is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or # the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version. # (at your option) any later version.
# #
# joy.py is distributed in the hope that it will be useful, # Thun is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details. # GNU General Public License for more details.
# #
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with joy.py. If not see <http://www.gnu.org/licenses/>. # along with Thun. If not see <http://www.gnu.org/licenses/>.
# #
from .library import initialize from .library import initialize
from .joy import repl from .joy import repl
print '''\ print '''\
Joypy - Copyright © 2017 Simon Forman Thun - Copyright © 2017 Simon Forman
This program comes with ABSOLUTELY NO WARRANTY; for details type "warranty". This program comes with ABSOLUTELY NO WARRANTY; for details type "warranty".
This is free software, and you are welcome to redistribute it This is free software, and you are welcome to redistribute it
under certain conditions; type "sharing" for details. under certain conditions; type "sharing" for details.

View File

@ -14,20 +14,20 @@ original version(s) written in C. A Tkinter GUI is provided as well.
Copyright © 2014, 2016, 2017 Simon Forman Copyright © 2014, 2016, 2017 Simon Forman
This file is part of Joypy. This file is part of Thun.
Joypy is free software: you can redistribute it and/or modify Thun is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
Joypy is distributed in the hope that it will be useful, Thun is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with Joypy. If not see <http://www.gnu.org/licenses/>. along with Thun. If not see <http://www.gnu.org/licenses/>.
§ joy() § joy()

View File

@ -2,20 +2,20 @@
# #
# Copyright © 2014, 2015, 2017, 2018 Simon Forman # Copyright © 2014, 2015, 2017, 2018 Simon Forman
# #
# This file is part of Joypy # This file is part of Thun
# #
# Joypy is free software: you can redistribute it and/or modify # Thun is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or # the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version. # (at your option) any later version.
# #
# Joypy is distributed in the hope that it will be useful, # Thun is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details. # GNU General Public License for more details.
# #
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with Joypy. If not see <http://www.gnu.org/licenses/>. # along with Thun. If not see <http://www.gnu.org/licenses/>.
# #
''' '''
This module contains the Joy function infrastructure and a library of This module contains the Joy function infrastructure and a library of
@ -780,7 +780,7 @@ def sharing(stack, expression, dictionary):
' warranty; and give all recipients a copy of this License along' ' warranty; and give all recipients a copy of this License along'
' with the Program.' ' with the Program.'
' You should have received a copy of the GNU General Public License' ' You should have received a copy of the GNU General Public License'
' along with Joypy. If not see <http://www.gnu.org/licenses/>.') ' along with Thun. If not see <http://www.gnu.org/licenses/>.')
return stack, expression, dictionary return stack, expression, dictionary

View File

@ -2,20 +2,20 @@
# #
# Copyright © 2014, 2015, 2016, 2017 Simon Forman # Copyright © 2014, 2015, 2016, 2017 Simon Forman
# #
# This file is part of Joypy. # This file is part of Thun.
# #
# Joypy is free software: you can redistribute it and/or modify # Thun is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or # the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version. # (at your option) any later version.
# #
# Joypy is distributed in the hope that it will be useful, # Thun is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details. # GNU General Public License for more details.
# #
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with Joypy. If not see <http://www.gnu.org/licenses/>. # along with Thun. If not see <http://www.gnu.org/licenses/>.
# #
''' '''

View File

@ -2,20 +2,20 @@
# #
# Copyright © 2018 Simon Forman # Copyright © 2018 Simon Forman
# #
# This file is part of Joypy # This file is part of Thun
# #
# Joypy is free software: you can redistribute it and/or modify # Thun is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or # the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version. # (at your option) any later version.
# #
# Joypy is distributed in the hope that it will be useful, # Thun is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details. # GNU General Public License for more details.
# #
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with Joypy. If not see <http://www.gnu.org/licenses/>. # along with Thun. If not see <http://www.gnu.org/licenses/>.
# #
''' '''
I really want tracebacks to show which function was being executed when I really want tracebacks to show which function was being executed when

View File

@ -2,20 +2,20 @@
# #
# Copyright © 2016 Simon Forman # Copyright © 2016 Simon Forman
# #
# This file is part of Joypy. # This file is part of Thun.
# #
# Joypy is free software: you can redistribute it and/or modify # Thun is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or # the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version. # (at your option) any later version.
# #
# Joypy is distributed in the hope that it will be useful, # Thun is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details. # GNU General Public License for more details.
# #
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with Joypy. If not see <http://www.gnu.org/licenses/>. # along with Thun. If not see <http://www.gnu.org/licenses/>.
# #
''' '''
Pretty printing support. Pretty printing support.

View File

@ -2,20 +2,20 @@
# #
# Copyright © 2014, 2015, 2017 Simon Forman # Copyright © 2014, 2015, 2017 Simon Forman
# #
# This file is part of joy.py # This file is part of Thun
# #
# joy.py is free software: you can redistribute it and/or modify # Thun is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or # the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version. # (at your option) any later version.
# #
# joy.py is distributed in the hope that it will be useful, # Thun is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details. # GNU General Public License for more details.
# #
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with joy.py. If not see <http://www.gnu.org/licenses/>. # along with Thun. If not see <http://www.gnu.org/licenses/>.
# #
''' '''

View File

@ -3,27 +3,27 @@
# #
# Copyright © 2014, 2015, 2017 Simon Forman # Copyright © 2014, 2015, 2017 Simon Forman
# #
# This file is part of joy.py # This file is part of Thun
# #
# joy.py is free software: you can redistribute it and/or modify # Thun is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or # the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version. # (at your option) any later version.
# #
# joy.py is distributed in the hope that it will be useful, # Thun is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details. # GNU General Public License for more details.
# #
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with joy.py. If not see <http://www.gnu.org/licenses/>. # along with Thun. If not see <http://www.gnu.org/licenses/>.
# #
from distutils.core import setup from distutils.core import setup
from textwrap import dedent from textwrap import dedent
setup( setup(
name='Joypy', name='Thun',
version='0.1.0', version='0.1.0',
description='Python Implementation of Joy', description='Python Implementation of Joy',
long_description=dedent('''\ long_description=dedent('''\
@ -35,10 +35,13 @@ setup(
author='Simon Forman', author='Simon Forman',
author_email='forman.simon@gmail.com', author_email='forman.simon@gmail.com',
url='https://osdn.net/projects/joypy', url='https://osdn.net/projects/joypy',
license='GPLv3+',
packages=['joy', 'joy.utils'], packages=['joy', 'joy.utils'],
classifiers=[ classifiers=[
'Development Status :: 4 - Beta', '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',
'Programming Language :: Other',
'Topic :: Software Development :: Interpreters',
], ],
) )