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.
clean:
- $(RM) -r Joypy.egg-info/ dist/ $(TESTDIR)
+ $(RM) -r Thun.egg-info/ dist/ $(TESTDIR)
find . -name '*.pyc' | xargs $(RM)
sdist:
$(RM) -r $(TESTDIR)
virtualenv --system-site-packages --never-download $(TESTDIR)
. $(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"
--------------------------------------------------
- Joypy
+ Thun
A dialect of Joy in Python.
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
Foundation, either version 3 of the License, or (at your option) any later
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
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
-Joypy. If not see <http://www.gnu.org/licenses/>.
+Thun. If not see <http://www.gnu.org/licenses/>.
--------------------------------------------------
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
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".
As I study Joy I find that it is very aptly named. It is clear, concise,
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:
which is like if..then..else..) Combinators receive the current
expession in addition to the stack and return the next expression.
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.
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
+stack of the implementation language, in this joy 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 Thun are that
of the underlying Python. That means, for example, that integers are
unbounded (whatever your machine can handle), strings cannot be added to
integers but can be multiplied, Boolean True and False are effectively
| `-- README
|
|-- docs - Various Examples and Demos
- | |-- * - Jupyter Notebooks on Joypy and supporting modules
+ | |-- * - Jupyter Notebooks on Thun and supporting modules
| `-- README - Table of Contents
|
|-- joy
#
# 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
# the Free Software Foundation, either version 3 of the License, or
# (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
# MERCHANTABILITY or FITNESS FOR A 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 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 joy.joy import run
#
# 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
# the Free Software Foundation, either version 3 of the License, or
# (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
# MERCHANTABILITY or FITNESS FOR A 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 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.joy import repl
print '''\
-Joypy - Copyright © 2017 Simon Forman
+Thun - Copyright © 2017 Simon Forman
This program comes with ABSOLUTELY NO WARRANTY; for details type "warranty".
This is free software, and you are welcome to redistribute it
under certain conditions; type "sharing" for details.
#
# 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
# the Free Software Foundation, either version 3 of the License, or
# (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
# MERCHANTABILITY or FITNESS FOR A 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 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 .joy import repl
print '''\
-Joypy - Copyright © 2017 Simon Forman
+Thun - Copyright © 2017 Simon Forman
This program comes with ABSOLUTELY NO WARRANTY; for details type "warranty".
This is free software, and you are welcome to redistribute it
under certain conditions; type "sharing" for details.
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
the Free Software Foundation, either version 3 of the License, or
(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
MERCHANTABILITY or FITNESS FOR A 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 Joypy. If not see <http://www.gnu.org/licenses/>.
+ along with Thun. If not see <http://www.gnu.org/licenses/>.
§ joy()
#
# 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
# the Free Software Foundation, either version 3 of the License, or
# (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
# MERCHANTABILITY or FITNESS FOR A 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 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
' warranty; and give all recipients a copy of this License along'
' with the Program.'
' 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
#
# 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
# the Free Software Foundation, either version 3 of the License, or
# (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
# MERCHANTABILITY or FITNESS FOR A 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 Joypy. If not see <http://www.gnu.org/licenses/>.
+# along with Thun. If not see <http://www.gnu.org/licenses/>.
#
'''
#
# 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
# the Free Software Foundation, either version 3 of the License, or
# (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
# MERCHANTABILITY or FITNESS FOR A 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 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
#
# 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
# the Free Software Foundation, either version 3 of the License, or
# (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
# MERCHANTABILITY or FITNESS FOR A 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 Joypy. If not see <http://www.gnu.org/licenses/>.
+# along with Thun. If not see <http://www.gnu.org/licenses/>.
#
'''
Pretty printing support.
#
# 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
# the Free Software Foundation, either version 3 of the License, or
# (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
# MERCHANTABILITY or FITNESS FOR A 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 joy.py. If not see <http://www.gnu.org/licenses/>.
+# along with Thun. If not see <http://www.gnu.org/licenses/>.
#
'''
#
# 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
# the Free Software Foundation, either version 3 of the License, or
# (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
# MERCHANTABILITY or FITNESS FOR A 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 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 textwrap import dedent
setup(
- name='Joypy',
+ name='Thun',
version='0.1.0',
description='Python Implementation of Joy',
long_description=dedent('''\
author='Simon Forman',
author_email='forman.simon@gmail.com',
url='https://osdn.net/projects/joypy',
+ license='GPLv3+',
packages=['joy', 'joy.utils'],
classifiers=[
'Development Status :: 4 - Beta',
'License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)',
'Programming Language :: Python :: 2.7',
+ 'Programming Language :: Other',
+ 'Topic :: Software Development :: Interpreters',
],
)