From mboxrd@z Thu Jan 1 00:00:00 1970 From: tfb@tfeb.org (Tim Bradshaw) Date: Tue, 3 Jan 2017 23:39:01 +0000 Subject: [TUHS] Mac OS X is Unix In-Reply-To: References: <201701032019.v03KJ8oq028944@tahoe.cs.Dartmouth.EDU> <81B054A7-A361-49F4-B974-51370500D60D@orthanc.ca> Message-ID: <9FC94387-9453-4BCF-8FBE-37193D70E512@tfeb.org> I think you can do so only if every language processor you ever expect to deal with your code is lexically-compatible: you *can't* do so if the lexer will puke: you need some frontend which will prevent the lexer ever seeing the toxin, and that thing is what Lisp would call read-time conditionalization. Plan 9 and Go both avoid this problem by being single-implementation or nearly-single-implementation systems: many things are easier with that assumption. > On 3 Jan 2017, at 22:12, ron minnich wrote: > > > >> On Tue, Jan 3, 2017 at 2:07 PM Lyndon Nerenberg wrote: >> >> >> Plan 9 refreshingly evicted this nonsense from the native compilers (mostly) and the code base.[1] > > Yes, You can write portable code without #ifdef, configure scripts, and libtool. Plan 9 shows how. > > Some people get upset at mentions of Plan 9, however, so for a more current example, the Go source tree is a good reference. There's no cpp in Go, thank goodness, and they've shown superior portability to systems that revolve around #ifdef. > > ron > > -------------- next part -------------- An HTML attachment was scrubbed... URL: