Well gentlemen, it's a revolution in working, no doubt about it. Something that
would be thought impossible for one person was done in less than a week;
reviving 4 defunct ports. What was it like and what did I learn and where does
all this go?
Well before we get into that you can get the gen on the project from
hereand from the
download page which gives the S-series revival downloads for
Python, Javascript, Java and Ruby ports for Shen. All of the ports have
passed the 134 tests that constitute certification.
What was it Like?
Not like programming for sure. Compared to the belly crawl over every
square metre that is programming, this was more like flying in Concorde
at 40,000 feet. Being served canapes and champagne in first class.
Did I understand what was going on?
Not really. And yet to undermine my analogy, I was not a passenger.
Several times human intuition from my side pointed a way forward
because architectual understanding can be language independent.
But most of my time was spent unzipping downloads, relaying errors
and recounting timings. Our first Python revival took 750 sec to
complete the test suite. The final version 111 sec.
How do humans compare?
Interesting question. I was left with a high degree of respect for
what the human porters had done. They had done the heavy lifting.
In the Python case ChatGPT got creative and this resulted in
mysterious call stack overflows until I told it to stop buggering
around and follow Matthieu Lagacherie and Yannick Drant, who
did the original work. After that things went fine.
It was clear that ChatGPT understood very quickly that the
S kernel made porting much easier than the pre-S kernels and
that a lot of cruft wrt partial applications could be thrown away.
Hence the work really consisted of throwing away this cruft and
dropping obsolete tooling from Python et al. So there was a clear
pattern, and the more ports we revived, the better ChatGPT got at doing it.
How easy is it to maintain the revived ports?
This is another fascinating question. Very easy in a sense and very
hard in another. Very easy because I insisted on a uniform approach
to rebuilding the ports. Each port builds from the KLambda directory
and so swapping this out for an upgrade is no harder than replacing the
batteries in your torch. But the price is that I do not understand what
is under the hood and correctness has to be maintained by testing.
Are humans obsolete?
No. A certain way of doing things is obsolete. But ChatGPT is a
short range weapon that likes highly structured tasks. Point it at
a well defined problem with plenty of previous work and its like a
buzz saw. Ask too much and it circles needing guidance. For example,
ChatGPT said that Tatsuya Tsuda's C port was an interpreter (I guess
rather like Trealla Prolog). So I asked 'Could you build a compiled
version'. It said it could but could not. Large unguided projects are too
much for it.
Where do we go from here?
Well I have a cunning plan, Baldrick style. But I'm not reviving projects
which are active in Github. I see just now that the list of active projects
me and Bruno to a whole list and that has to be good. I'll come back
to those projects some other time.
So basically, to all those who built those ports; nothing is lost.
Your work will continue to carry significance and you will live on through
it, and that is as much as one could wish for.
Mark