[M3devel] [M3commit] CVS Update: cm3

Randy Coleburn rcoleburn at scires.com
Wed Dec 31 18:59:03 CET 2008


Hendrik:
 
I agree it is useful for those accustomed to Unix to be able to work in the Cygwin environment on Windows.  I have no issue with supporting this.
 
I assert that it is also very useful for non-Unix, Windows folks to be able to work with Modula-3 in Windows without needing to know anything about Unix, or using any Unix tools to make Modula-3 work.  (BTW, I work in both the Unix and Windows worlds, but primarily in the Windows world lately.)
 
So yes, I suppose we do need both the native Windows and Unix-compatibility implementations for Modula-3 on Windows.  However, I think it important to support Modula-3 natively on all platforms rather than *requiring* a compatibility-implementation.  Thus, I would always vote for having a native implementation first, then add a compatibility one later, if desired.  So, from my vantage point (and others may disagree), the native Windows implementation of Modula-3 is the number one priority on the Windows platform.  Cygwin is a "nice-to-have" for the Unix crowd, but not essential.
 
I don't know much about Wine, so won't comment on it.
 
As for taking your Modula-3 programs that run on one platform, and building and running them on other platforms, I think this is one of the best features of Modula-3.  I routinely do this.  Indeed, I've tried very hard to make it possible for all my programs to be both buildable and runable on both Unix and Windows platforms without the need for source code modification.  I've also tried to make them interoperable across platforms, e.g. clients on one platform type, servers on another, etc.  Network Objects and Pickles have been my friends here.
 
As for the free Visual Studio stuff not working on old versions of Windows, well yes that is a problem for those old platforms, but then, they are old and Microsoft has dropped support for them long ago and continuing to support them both from a hardware and software standpoint is going to get more problematic as time goes on.  It's like my 13-year old car--the last time I had it repaired the shop had to put out a nationwide search for the parts.  At some point, I'll have to give it up.  
 
I believe you can use some old versions of Microsoft Visual C (e.g., v6) for these old platforms, but those were not free.  I recall having to buy Microsoft C v6 when I bought CMass Reactor v4.1 many years ago.  The v6 C was pretty common, so you can probably find it around somewhere today on the used market.  Indeed, I still have my v6 C disks.
 
If you or someone else wants to build a linker for Modula-3 on Windows, that's fine with me.  Until then, we are stuck with what we have--a free download of Visual Studio.
 
As for going forward, I believe we should strive to support current and future platforms more than working to add support for old ones.  Of course, as we move forward, it would be nice to try to maintain support for platforms as they age, but not at the expense of supporting newer stuff.  This reasoning is based on trying to keep the language alive, useful, and attractive to new programmers.  If we live in the past, Modula-3 will wither away as the current crop of enthusiasts age and pass on.
 
All that said, let me ask this question:  Would it be useful to anyone if I tried to put together a binary distribution of Modula-3 for the WindowsNT 4.0 (circa 1996) platform?  
 
I still have one of those old beasts and it does still work.  I suppose I could install my v6 C on it and try to build the current cm3 sources to get a binary distribution I could provide on the website.  If anyone wants this, send me an email.  If I get enough votes, I'll try to do it.  (Of course, you will need a linker on your NT box to be able to build anything new.  Not sure that I would be allowed under the license agreement to distribute the Microsoft linker from the v6 C.)  (Also, my recollection [and I'm stretching to remember] is that back when cm3 v4.1 came out, it was reported to work on NT4.0, but not earlier versions of NT; it also seemed to "mostly work" on Win98 and could sometimes be coaxed into working on Win95 [I think you had to disable the garbage collector for Win95, maybe even Win98].  I know that I successfully used cm3 v4.1 on both WindowsNT 4.0 and HP-UX back then.)
 
Regards,
Randy

>>> <hendrik at topoi.pooq.com> 1/1/2009 5:25 AM >>>
On Wed, Dec 31, 2008 at 10:28:37AM -0500, Randy Coleburn wrote:
>  
> On another note, All this CYGWIN stuff may be a nice way for die-hard 
> Unix fans to run Modula-3 on Windows, and I have no objection to 
> providing it, as long as it does not compromise the native Windows 
> implementation.

It is useful to have a way to take Modula 3 programs from Unix to 
Windows with minimal change.  That said, Modula-3 is a system 
programming language, and it should be possible to program in a 
system-dependent way.  Do we need two Windows platforms, one native and 
one to run on a Unix-compatibility layer?  And while we're at it, do we 
need two Unix platforms, one native and one that runs via Wine?

>  My main concern is the native implementation of 
> Modula-3 on Windows.  My preference would be to keep the NT386 
> implementation's dependencies on other stuff to a bare minimum, i.e., 
> don't introduce anything that would require someone to have to acquire 
> something besides what comes in the standard Windows OS in order to 
> make Modula-3 run.  As it is now, we already have to get a C compiler 
> and linker.  Fortunately, Microsoft has made the Visual Studio Express 
> editions a free download, so this is not too bad.

Except that the free download won't work on old versions of Windows.
This is the  main reason why I have been unable in the past to use 
Modula 3 on Windows.  At the moment, though, an overriding reason is 
that I have no Windows machines available.

> I don't want to have to install CYGWIN either in order to make the 
> native implementation work on Windows.  I also still prefer the 
> CMINSTALL, CMD, or BAT files for install as opposed to having to get 
> Python or something else.  Just my 2 cents.
> 
> Finally, I would go a step further and suggest that the Modula-3 
> implementation on every platform should strive to require minimal 
> dependencies on anything not provided standard with that platform's 
> operating system.
>  
> Call me an idealist, but it just galls me that I have to have a C 
> compiler/linker to build Modula-3.  Modula-3 is a systems programming 
> language.  It should stand on its own.

It is not hard to write a linker in Modula-3.

>  From a purely economical 
> viewpoint, why should I have to buy something I don't want (C language 
> development environment) in order to have the privilege of using what 
> I do want (Modula-3 language development environment).

What's hard is making it compatible with existing proprietary linkers 
and loaders that are poorly documented and subject to change without 
notice.

>  
> Regards,
> Randy

-- hendrik


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20081231/25030c60/attachment-0002.html>


More information about the M3devel mailing list