Thursday, October 6, 2011

Open Watcom 2.0?

I see that it has been almost exactly one year since I last posted to this blog. That is far too long to go without some sort of update. So what is happening in the world of Open Watcom? There actually isn't much to report. The project has been almost as quiet as my blog. There have been a number of minor improvements added to the code base, however, and thus I'm planning to organize a release of Open Watcom 2.0 in a few months. I want to get the changes into the general distribution. I also, quite frankly, want to let the world know that Open Watcom is still alive.

Tuesday, October 5, 2010

Code Generation for x86-64

Currently Open Watcom officially provides code generators for two architectures: 16-bit and 32-bit x86 systems. Although the 16-bit x86 architecture is old, there are people still using it. Open Watcom is one of the few actively developed compiler suites that supports it. We consider this a feature.

However, the world is moving forward and many systems in use today are now 64-bit systems using the x86-64 architecture. These systems can normally run 32-bit x86 programs without any problems so such programs generated by Open Watcom continue to work on them. In fact, the Open Watcom tools themselves, all compiled with Open Watcom, run fine on my 64-bit Windows 7 system. However, many people have asked what plans we have for supporting true 64-bit code generation.

The short answer is, "We don't have any plans." It's not because we think it's a bad idea to support x86-64. On the contrary adding such support would be a wonderful addition to Open Watcom. The problem is a lack of developer resources. Adding support for a new architecture is far from trivial. It requires a new (or updated) code generator, of course, but also support in the debugger, the assembler, and various other tools. Right now the active contributors to Open Watcom all have other projects that consume their limited available time.

Interestingly the Open Watcom project does have a 64-bit code generator for the Alpha architecture. In fact a fairly functional set of Open Watcom tools can be compiled for the Alpha version of Windows NT. At least that was true at one point in time. The Alpha support was never officially released, but it shows that there is a history of 64-bit support, in some form, in Open Watcom.

One interesting approach for adding x86-64 support to Open Watcom might be to connect the Open Watcom front end to LLVM. I blogged about this last year. Doing that would be a major piece of work as well, but it might have much greater long term pay off than adding support for just a single new target. Of course it's all just talk until someone comes along who takes concrete steps toward implementing something.

Friday, August 13, 2010

What's in a Version Number?

The current official release of Open Watcom is version 1.9. This leads one to wonder if the next release will be version 1.10 or version 2.0. The choice is important since many people assume that a 2.x version will be significantly different than previous 1.x releases.

In fact, the step to the next release of Open Watcom will probably not be much greater than the step between any of our other releases. There will be enhancements and bug fixes, of course, but not significantly more than between version 1.8 and 1.9 (for example). This suggests that the new release should be version 1.10 and that we should save the 2.0 moniker for some future and more special version.

However, I have a general dislike for version numbers like 1.10... particularly given that we have been using only two digit version numbers so far. For one thing it is ambiguous. Is that version "one point ten" or version "one point one, subversion zero?" Also when file names are sorted 1.10 appears after 1.1 and before 1.2, suggesting the wrong interpretation of the ambiguity. It would be different if we had been using 1.0x for the releases all along.

Thus it is my intention to number the next release of Open Watcom as 2.0 despite the fact that there will be nothing "special" about the release. It will just be another step in the sequence from 1.8 through 1.9. Will we be misleading the public who might expect something significant from a 2.0 release? I don't think so. Compared to Open Watcom 1.0, the 2.0 release will be a significant enhancement. Someone who has not been following the project might be tempted to take another look, and that's entirely reasonable. Open Watcom 2.0 will be a big step from Open Watcom 1.0 and it would be good to attract the attention of those who have not looked at Open Watcom since the early days.

On a more technical note, the value of the __WATCOM__ macro in Open Watcom 2.0 will be 2000. So far all the Open Watcom 1.x releases have used a value of 12x0, reflective of the fact that Open Watcom is essentially Watcom v12. Since the last commercial release of the Watcom compiler suite was version 11, this is entirely reasonable. However, setting __WATCOM__ in Open Watcom 2.0 to 1300 seems rather counter intuitive. Thus we are taking this opportunity to jump to a more direct numbering scheme for the __WATCOM__ macro. We don't anticipate this causing any problems since the value is still monotonically increasing and thus will work properly in relational tests.

Wednesday, June 2, 2010

Open Watcom 1.9 Released!

Today I finalized the 1.9 release of Open Watcom. It is equivalent to Release Candidate 6 (I haven't been good about keeping this blog updated regarding release candidates). Some of the new features include support for RDOS, support for Windows 7 development in the Win32 API, IDEAL mode support in WASM, our own documentation compiler for OS/2, and the usual collection of fixes and minor enhancements. The release notes contain more details.

This has been another long release cycle... longer than expected or desired. We've been averaging over a year between releases but I would prefer a six to eight month pace instead. Open source development is supposed to be agile, but so far the Open Watcom project has not had that characteristic. Users who want to only work with official releases currently have to wait a rather long time to pick up new features and fixes.

The next release will be, of course, version 2.0. That's a significant milestone and it is natural for people to wonder what we have planned for it. I think, however, I will post separately about that issue. Stay tuned!

Tuesday, April 20, 2010

Open Watcom 1.9, Release Candidate 4

Release candidate 4 of Open Watcom 1.9 is now ready to download and test. We are converging on a full release and it is my hope that this release candidate will be the last one before 1.9 is final. This RC contains some fixes to the Win32 API support and a number of other minor fixes.

Tuesday, April 6, 2010

Open Watcom 1.9, Release Candidate 3

I posted Open Watcom 1.9 release candidate 3 today. This release candidate contains quite a few corrections to the distributed documentation, particularly in connection with the new HTML help documents that we are now supporting. A number of other (mostly minor) fixes are also included. As always, please direct any questions or comments about this release candidate to either myself or to the Open Watcom contributor's news group.

Friday, March 26, 2010

Open Watcom 1.9, Release Candidate 2

As I write this I am uploading the next release candidate of Open Watcom v1.9. This release candidate fixes about a dozen issues that were identified with RC1. Please direct any questions or comments about this release candidate to either myself or to the Open Watcom contributor's news group.