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