PCOak: A new, better PCElm

PCOak is the user-supported version of PCElm (see What's in a name? below). It is based on Demon Internet's version of PCElm (1.12), and is completely backwards compatible with PCElm; but it is more stable, better featured and is still being maintained and developed.

The latest version of PCOak is 0.2.1 (27 March 2006), which adds assorted new functionality to the last "known to be stable" release, 0.2. Almost all of the new functionality has been in active use for some time without problems, and the changes have been carefully checked; however the cautious PCElm user might wish to stick with 0.2 until such time as 0.2.1 is confirmed stable.

What's new

PCOak 0.2.1 release is finally available!

Development stalled not long after 0.2 was released in late 2003 (due to rather extreme work commitments), but has restarted in 2006. Many things are planned for the fairly near future (including reinstating the file handling rewrite that was abandoned in late 2002), but the first thing intended is to remove the unused ancient baggage of the Internet/uucp modes, dot menu, MMDF mailbox support and the rather poor built-in message editor; removing these (particular removing support for uucp) will considerably simplify future development, as well as making the executable smaller.

With this in mind, 0.2.1 has been produced as a final hurrah for the old "full" version with these ancient artefacts. It is based on an internal version of 0.2 that has been in constant use for over two years, with a few extra modifications added more recently (see the PCOak history file for a list of changes).

One new aspect of 0.2.1 is that it is available in two distinct versions: as well as the regular version, there is a special "long subject" version (0.2.1-L) which stores longer subject lines (thereby generally using more memory than the regular version), and has a subject display length controlled with the left- and right-arrow keys that allows three different subject lengths to be shown (at the expense of other parts of the display). (Pete Disdale created a special version of 0.1.1 featuring this system, which has been in use for around two years and is highly rated by its user; but I didn't want to make it part of the mainstream PCOak until the extra memory usage has been addressed.)

Binary distributions for both regular and long-subject versions are available to download from this site, as is the full source code.


PCOak is fully backwards compatible with PCElm. It uses the same mailbox files and configuration file format, and will continue to do so - a basic tenet of PCOak development is that PCOak should always remain compatible with existing PCElm installations, and that users should, if they wish, be able to revert to PCElm at any time without losing anything except the enhanced reliability and functionality that PCOak provides.

Upgrading to PCOak is simple: rename PCOAK.EXE to PCELM.EXE, copy it over your current Demon PCElm executable and enjoy a more stable, less buggy and enhanced program. (If for some strange reason you want to go back to PCElm, simply copy an original PCELM.EXE back into the directory and carry on as though nothing had happened; upgrading to PCOak is completely reversible.)

If you wish to run PCOak side-by-side with PCElm, don't rename the executable: copy it into the same directory as PCElm and run either PCOAK.EXE or PCELM.EXE, as you see fit. If you want PCOak to be configured differently from PCElm, copy PCELM.RC to PCOAK.RC and edit the latter file; PCOak will read PCOAK.RC in preference to PCELM.RC, if it exists.

Similarly, PCOak will read the PCOAK environment variable if it exists (to find the name of the mail spool directory), but will fall back to PCELM if not (and if that doesn't exist, if will fall back to HOME, just like PCElm does).

PCOak does not change any of the existing RC configuration file entries; any PCOak-specific functionality is implemented using new entries. This means that you can change PCELM.RC to add new PCOak entries without affecting any existing PCElm installation; PCElm will simply ignore any PCOak-specific entries that it finds in the file, and will work in exactly the same way as it did before.

What to do next

If you would like to try PCOak, please download one of the PCOak 0.2.1 binary distributions (either regular or long-subject as you wish), install it (instructions are in a README file in the distribution) and try it out; please report any problems, gotchas, bugs, suggestions etc. to the demon.ip.support.pc newsgroup, or by mail to pcoak at twoplaces.co.uk.

How do I keep informed?

Discussion of PCOak mainly takes place in the demon.ip.support.pc newsgroup. This is a low-traffic newsgroup dedicated to using PCs running DOS to access the Internet (specifically via Demon Internet, but there are many regulars of the group who are no longer Demon customers). Please drop in; we're a friendly bunch (unless you think that "PC" must mean "Windows", and can't be bothered to read the group at all before asking some silly Windows-specific question 8-), and new input is always welcome.

There's also an "announce" mailing list, so that people who don't want to read the newsgroup or poll the web site can be notified of new versions etc. Please sign up if you would like to be added to (or removed from) the list.

Finally, I'm more than happy for people to send me e-mail about PCOak: questions, requests for help, bug reports, suggestions, offers of free beer, anything. Drop me a line at pcoak at twoplaces.co.uk.

PLEASE NOTE! PCOak is NOT in any way supported by Demon Internet; it is an entirely unofficial program based on the Demon Internet version of PCElm, and is being developed by users of PCElm as a more stable, less buggy, and better featured replacement for PCElm.

Demon WILL NOT support this software; indeed, they no longer support any of the old DIS suite of programs at all. However, PCOak is still being developed, and reports of problems, bugs etc. are rather more likely to elicit a timely response than complaints to Demon about their old PCElm software.

PCOak is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, version 1, as published by the Free Software Foundation.

The program 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.

See the file COPYING in the PCOak distribution, which contains a copy of the GNU General Public License.

Available files

The following archives are currently available (most recent first):

Please note that the first version of the PCOak 0.0.9 source files which was made available was withdrawn, as it inadvertently contained a modified copyrighted file which should not have been distributed; the replacement source archive contains a description of how the lack of this file may be worked around in order to compile PCOak 0.0.9. Newer versions of PCOak do not depend on this file.

Further information

The PCOak development history file pcoakhst.txt lists the various changes that have been made so far, in a somewhat terse form.
Last updated: 27 March 2006.

There is a list of known bugs, with who has reported them, and which ones have been fixed to date: if you know of any bugs which aren't mentioned, let me know!
Last updated: 14 November 2003.

There is also a "wish-list" of suggested enhancements, with who has suggested them, which ones have been implemented so far, and some comments on how they might be implemented: if there are any enhancements you would like to see which aren't on the list, please tell me. Obviously there are no guarantees that every suggestion will be implemented, but new ideas are always welcome.
Last updated: 14 November 2003.

The story so far

After Grahame Davies left Demon in 1995, no further development of PCElm (which at that time was at version 1.11) was done by Demon until December 1999, when Richard Clayton released 1.12 as part of his y2k-ready updates of the DIS suite of programs. This new version contained some work that Grahame had done in 1995, and some y2k fixes, but otherwise little of note. Richard indicated at the time that Demon would not be interested in improving PCElm's functionality: fixes to existing bugs would be welcome, but no more.

The source code to PCElm finally became available under the GNU Public License, which meant that we (the users) could at last try to enhance PCElm on our own, in much the way that John Washington has enhanced Snews, and Graham E. Kinns (GremNOS) and Ian Smith (YAN) have enhanced KA9Q: these improved programs are not supplied or supported by Demon, but are nonetheless vastly superior to the "official" Demon versions.

Since Demon's y2k-fixed versions (released in late 1999) have not yet even come out of beta, I think we can safely say that further development by Demon of the original DIS suite of programs is highly unlikely. We, the users, are therefore effectively on our own; this is actually not a bad thing.

When the PCElm source became available, Simon Turner, John Washington and Pete Disdale spent some time discussing how to do this work; starting with Richard Clayton's then current source (beta 4, 10 Jan 2000), it was initially decided to try and fix the main bugs first, so that fixes could be passed back to Richard for inclusion in the Demon version; we could then start to add extra functionality to the program after that.

The first step was to make the source easier to work on (it was in a fairly messy state), but retaining enough compatibility with Richard's version that it produced the same executable: this was done by March 2000. The resulting source produces exactly the same executable as Richard's version, but was changed appreciably from its original state.

However, working on fixing the bugs in PCElm involved making rather more sweeping changes to some of the code than at first thought: trying to retain compatibility with the Demon source code, so that fixes from PCOak (as it would be known) could be implemented in Demon's PCElm, would have considerably added to the time taken to work on PCOak, and probably with little benefit. The decision was eventually taken to forge ahead with PCOak and stop worrying about trying to make bug fixes easy to apply to the Demon version; some of the bug fixes can be easily applied back to the Demon version, but many cannot.

PCOak finally entered an initial beta test stage at version 0.0.9 on 20 October 2000; it was initially hoped that this phase would only last for a few weeks before the first "release" version of PCOak (0.1) was produced, but pressures of work meant that the testing phase lasted rather longer than expected (six months!).

A benefit of this extended beta testing phase is that, after more than six months of full-time use by several people, PCOak 0.0.9 proved to be very stable, and no bugs were reported which were not old PCElm bugs, as yet unfixed in PCOak. We can therefore be confident that 0.0.9 represents a very good, stable base for future work.

With a handful of minor changes (each carefully tested) from 0.0.9, PCOak 0.1 (the first "release" version) was released on 17 May 2001. This version can be recommended to all PCElm users, even the most cautious. It offers many bug fixes and enhancements over PCElm 1.12 beta 4; there is still much to do, and there are some known bugs in PCElm which have not yet been fixed in PCOak, but PCOak 0.1 provides a much more stable, reliable and usable tool than PCElm ever did.

After an exorbitantly long delay, caused mainly by various personal factors affecting the main developer but also by attempting to get too many things done in a single release, PCOak 0.1.1 beta was released on 10 April 2002. This fixed all but three of the bugs known about at the time (the three remaining bugs need fairly substantial changes to be made before they can be fixed) and implemented 30 items from the wishlist; there are 70 distinct changes that affect the user, and numerous programming changes which aren't directly apparent to the user. Due to the nature and scale of the changes, this is definitely a beta version, and may not be suitable for the cautious user.

After an even more exorbitantly long delay 8-( - caused mainly by various personal factors and work commitments affecting the main developer but also, again, by attempting to get too many things done in a single release - work on the next beta release was shelved and a stable release (0.2), based on the 0.1.1 beta, was prepared. This fixes a few minor niggles, and a more serious recently-discovered PCElm bug, but adds no new functionality to 0.1.1; however it is important to produce a stable release, incorporating the goodies in 0.1.1, to enable the more cautious users to use them.

Initially high hopes for the next beta version foundered once again on the rocks of work commitments; the next release did not occur for almost 2.5 years. 8-(

Development eventually restarted in early 2006, and the 0.2.1 release features many of the changes made in 2002 before development became stalled, but does not include the major update to the file handling (that will be revisited in a later version). Work is already underway on the next release, which will finally dispense with a lot of the unused historical baggage (separate Internet/uucp modes, dot menu, MMDF support, dodgy built-in message editor) and will include the long-awaited file handling rewrite.

Future versions are expected to be released more frequently (honest!), with fewer changes between releases; this should help reduce the time taken up by testing and documenting new versions, to say nothing of the obvious benefits of making new features available!

What's in a name?

Since the all-new-and-improved version of PCElm is different to the official Demon version, and will not be supported by Demon, we needed to ensure that this difference is obvious in the program's name.

Variations on the current Demon name (e.g. PCElm 1.12 beta 4 + mods) don't look very good, and they also deny us the chance to use proper version numbering for the new version. There are already many different versions of PCElm in the wild, which already use different version numbering schemes: ours must not clash with them.

After many ideas and suggestions (including PCElm-DU, PCElm/XD, PHXElm and various others), the name "PCOak" was chosen; it retains PCElm's "tree" theme, with an implication of stronger roots and longer life expectancy. (In fact, the denizens of demon.ip.support.pc have invented a meta-name "PCTree" to refer to both PCElm and PCOak!)

Written by Simon Turner (simon at twoplaces.co.uk)
Last updated 28 March 2006