Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!uwm.edu!uakari.primate.wisc.edu!aplcen!haven!adm!smoke!gwyn From: gwyn@smoke.BRL.MIL (Doug Gwyn) Newsgroups: comp.lang.c Subject: Re: evaluating math w/o recompile Message-ID: <11093@smoke.BRL.MIL> Date: 17 Sep 89 00:58:32 GMT References: <11068@smoke.BRL.MIL> <225800223@uxe.cso.uiuc.edu> Reply-To: gwyn@brl.arpa (Doug Gwyn) Organization: Ballistic Research Lab (BRL), APG, MD. Lines: 23 In article <225800223@uxe.cso.uiuc.edu> mcdonald@uxe.cso.uiuc.edu writes: -due apparently to X3J11 bowing to the concerns of manufacturers -of brain-dead computers and operating systems, there is absolutely -no guarantee that you can EXECUTE that code. I consider that an implementation that lets you set the PC to data space is brain dead. -Actually the situation is not too bad on most computers - for -example, on MS-DOS or VMS there is no problem at all. There you -can just cast a pointer to the data array to a code pointer and -go to town. My opinion of VMS just dropped another notch. The VAX architecture permits enforcement of code/data separation, and one would think it would be used for tasks resulting from compilation of C source code. Certainly there are uses for the facility of executing instructions out of data space. The bit-blit code for some of the Blit family of terminals works like that, for example. But for most applications, the added safety check is much more useful than the ability to execute out of data space. And as we've pointed out before, some environments require the separation.