Re: CML2 with python1

Eric S. Raymond
2001-12-12T07:28:21Z

Jan Harkes <jaharkes@cs.cmu.edu>:
> But it _is_ entirely practical to run CML2 with a bog-standard python
> 1.5 interpreter. I just did a search/replace for the python2-ism's like
>
> <x> += <y> => <x> = <x> + <y>, and
> <string>.<op>(<arg>) => string.<op>(<string>, <arg>)
>
> Worked around some missing functionality in the older shlex and curses
> modules and I can now use oldconfig, menuconfig, xconfig, and cmladvent
> with CML2 and a python1 interpreter. It also still works fine with
> python2 as well.
>
> http://ravel.coda.cs.cmu.edu/cml2-1.9.4-python1.patch (36K)
>
> 36K might sound like a lot, but given the fact that the CML python
> sources totals about 280KB, it is a pretty small diff, and the whole
> "but python2 isn't standard in distributions and the license is bad"
> argument can be dropped and we can get on with life.

It's a good try. But there are some important things missing from
this patch -- notably the Textpad class, which is needed for doing
popup queries correctly.

Also, arrow keys don't work under the curses implementation linked
with in Red Hat's python1.5. This is a symptom of a deeper problem,
which is that older Pythons link the Berkeley curses library rather
than ncurses.

Clicking on a URL link with bomb xconfig with this patch under 1.5. You
didn't handle `import webbrowser' failure. Easy thing to miss.

I personally added the ncurses/Textpad/ascii features to the Python
libraries shipped in 2.0, and I did it for a reason -- to support what
`make menuconfig' needs. Backporting to 1.5.2 is only going to give a
partial, ugly subset of menuconfig. I don't think it's good enough.
--
Eric S. Raymond

"This country, with its institutions, belongs to the people who inhabit it.
Whenever they shall grow weary of the existing government, they can exercise
their constitutional right of amending it or their revolutionary right to
dismember it or overthrow it." -- Abraham Lincoln, 4 April 1861