[comp.lang.icon] gripe

naz@hslrswi.hasler.ascom.ch (Norman Azadian) (01/15/91)

I spent a bunch of time this weekend fiddling with Icon library routines.
Have I overlooked a feature, or is Icon just amazingly deficient in this
department?  Sorely lacking is the ability to make something global at
the module (file) level, without making it public for the whole world.
This lack means that library files have to be very carefully coordinated
indeed, practically precluding the casual sharing of routines that the
net is so good for.

Have I missed something, or is there some good reason that this has
been excluded from the language, or has this subject already been
beaten to death in past net wars?

While I'm at it, I'd like to put in a gripe for the linker under DOS,
or to be more precise, under the MKS Toolkit running under DOS.  The
Toolkit gives me 80% of an unix environment on my measly AT clone, and
with good speed and features.  Best of all I can type paths as God
meant them to be typed, with forward slashes.  But the linker has
problems with this.  Either the files must be in the same directory,
or an absolute path has to be given, or one must do the link under DOS.
All of these options stink, but for now I'm using plan B.  I suspect
the linker considers pathname component separators to always be "\",
and so loses under the MKS Toolkit.  Fixing it is probably simple.

I believe open() has similar difficulties, but I've been able to
get around that without undue strain.
I've written a module, soon to be released at a net node near you,
which solves this problem for Icon programs.  By judicious fiddling
with what DOS calls the "switch character", one can convince programs
to work in both DOS and the MKS Toolkit, without loss of generality.
True it does dive into an undocumented DOS function (ugggh), but it
beats the alternative of running under DOS (yeccch).

NHA
---
-- 
PAPER:  Norman Azadian; Ascom AG; Belpstrasse 23; 3000 Berne 14; Switzerland
INTERNET:  naz%hslrswi.uucp@uunet.uu.net
UUCP:   ...{uunet,ukc,mcvax,...}!chx400!hslrswi!naz
VOICE:  +41 31 63 2178            BITNET: naz%hslrswi.UUCP@cernvax.BITNET