Gentoo Archives: gentoo-python

From: "Michał Górny" <mgorny@g.o>
To: gentoo-python <gentoo-python@l.g.o>
Subject: [gentoo-python] [RFC] Including (some) support for Tauthon
Date: Fri, 19 May 2017 19:23:19
Message-Id: 1495221776.1965.5.camel@gentoo.org
1 Hi, everyone.
2
3 I've noticed yesterday that one of our users is forking python-utils-r1
4 [1] to include support for Tauthon. I kinda feel bad about our users
5 having to fork the eclass, so I started wondering about adding
6 the support officially. However, since it's a relatively controversial
7 topic, I'd like to gather the opinion of the community at large.
8
9
10 What Tauthon is?
11 ================
12
13 Tauthon [2] (formerly called 'Python 2.8') is a 'fork of Python 2.7 with
14 new syntax, builtins, and libraries backported from Python 3'. I haven't
15 taken it seriously as long as it was pretending to be a continuation of
16 CPython but since upstream grew up to use its own name and the project
17 didn't seem to die, it might be worth thinking of for a few minutes.
18
19 Technically, it's simply a fork of CPython with modifications. I haven't
20 tested it myself but I've heard opinions that some stuff written for 2.7
21 works. I haven't verified that either but FWICS its sys.version states
22 2.8.0a0 or sth like that. I am not aware if it's possible to clearly
23 distinguish it using some other characteristics.
24
25 The project seems to be maintained by a single person, Naftali Harris,
26 who seems to have a clear goal. It seems to have gathered a small
27 community around it.
28
29
30 What implementations we support currently?
31 ==========================================
32
33 Right now, we support three families of Python interpreters: CPython,
34 PyPy and Jython.
35
36 CPython is the reference C implementation of Python. We slot it per
37 minor version which matches the way it is installed, its ABI stability
38 and feature changes. This is the default interpreter, and the only
39 implementation available for stable.
40
41 PyPy is the fancy implementation which is written in Python. That Python
42 is magically converted into C, and compiled. PyPy has been steadily
43 gaining popularity due to its supposed performance benefits
44 and extraordinary features. We support PyPy on ~arch.
45
46 Historically, we have been slotting PyPy per version. However,
47 the 'original' PyPy has been based on Python 2.7 for as long as I can
48 remember, so I eventually dropped the slotting and just combined it into
49 'pypy'. Afterwards, upstream has released PyPy 3* variants that I've
50 also combined into 'pypy3'.
51
52 Jython is the half-dead implementation in Java. We have been
53 historically somewhat supporting Jython 2.5 (versions matching CPython)
54 but we removed it after Python 2.5 was removed. Then Jython 2.7 was in
55 a very long, half-dead alpha stage and we never actually went beyond
56 having a Jython package and 'experimental' support in eclass that is not
57 really used by any packages.
58
59
60 What levels of support can we provide?
61 ======================================
62
63 For Tauthon, I would consider one of the following levels of support:
64
65 A. provide low-level eclass support only, without USE flags or even
66 a Tauthon package -- i.e. make it easier for others to play with it but
67 not support it in any degree,
68
69 B. eclass support + package -- make it experimental like jython2.7; let
70 people play with it but do not add its support to packages;
71
72 C. full ~arch -- let people actually use it on ~arch, and add it to
73 PYTHON_COMPAT.
74
75 As for PYTHON_COMPAT values, we could either use a versioned form, i.e.
76 'tauthon2_8' or just 'tauthon'. I would lean towards the latter since
77 I don't expect us to put much effort into that project.
78
79
80 Subjective view on Tauthon
81 ==========================
82
83 Now that all technicalities have been covered, few words of my opinion.
84
85 As I said, I find the topic controversial. I wouldn't mind that much
86 providing people ability to play with Tauthon but I wouldn't put any
87 real effort on supporting it beyond the absolute minimum. In my opinion,
88 this project has a number of issues and no future.
89
90 1. Python version mayhem.
91
92 The idea of 'old Python with new features' has already been tested and
93 proven wrong a lot. dev-python/future is one example where it failed --
94 it installs some stuff that makes Python 2 look more like Python 3 which
95 simply breaks random assumptions in packages.
96
97 Tauthon just seems like a reiteration of that, with some extra syntax
98 and a version that pretends to be neither 2.7 nor 3.x. I can imagine
99 this is going to cause a lot of fun results for people playing with
100 versions, or modules, or anything in particular
101
102 Plus, it's not Python 3. Even if it would be able to run some pure
103 Python 3 code (which I don't think it can), random Python 3-only
104 packages will still refuse to run because the version says 2.
105
106 2. No real innovation.
107
108 Think of PyPy. It had to introduce a lot of fancy to actually get
109 noticed. Tauthon just doesn't have it. Some people will use it as
110 an excuse not to use Python 3 but that's all.
111
112 If someone was to consider adding Python 3 features to a semi-serious
113 project that needs Python 2, it is far more likely that he will use one
114 of the backport modules -- that work with pure CPython which he has
115 already installed, and which are easy to install e.g. in virtualenv. It
116 is highly unlikely that someone will consider building a custom Python
117 interpreter just to have a few syntax extras.
118
119 3. Bus factor.
120
121 As I said, the project is developed by a single person. While it has a
122 community, the problem is that it runs on quite a fragile equilibrium.
123 If the community takes over, it is quite likely that the project will
124 trip over with additional features that make it a moving target that
125 breaks more stuff than it fixes.
126
127
128 Your thoughts?
129
130
131 [1]:https://github.com/stefantalpalaru/gentoo-overlay/blob/master/eclass/python-utils-r1.eclass
132 [2]:https://github.com/naftaliharris/tauthon
133
134 --
135 Best regards,
136 Michał Górny

Attachments

File name MIME type
signature.asc application/pgp-signature

Replies

Subject Author
Re: [gentoo-python] [RFC] Including (some) support for Tauthon Dirkjan Ochtman <djc@g.o>