Path: utzoo!attcan!uunet!tut.cis.ohio-state.edu!ucbvax!MITCH.ENG.SUN.COM!wmb From: wmb@MITCH.ENG.SUN.COM (Mitch Bradley) Newsgroups: comp.lang.forth Subject: ANS Forth Message-ID: <9006051307.AA07733@ucbvax.Berkeley.EDU> Date: 5 Jun 90 07:18:40 GMT Sender: daemon@ucbvax.BERKELEY.EDU Reply-To: Mitch Bradley Organization: The Internet Lines: 54 > > So, "NOT" is no longer a standard word (and in actual fact, > > "NOT" has not been portable since 1983). > > This is not the case. The Forth-83 Standard was quite specific. ... > There is no ambiguity on this point -- all standard systems behaved > in the same way. Oops, I should have made my point more explicitly. It is true that the Forth-83 Standard is explicit about how NOT behaves, however !!! Several important vendors, representing a significant fraction of all Forth systems, DID NOT IMPLEMENT FORTH 83 AND STILL HAVE NOT DONE SO. So, NOT has been quite portable among Forth-83 systems, but not across the board. I still see a lot of code published for FIG-Forth, MVP-Forth, MMS-Forth, and Mac Forth, and that code is probably closer to Forth-79 than to Forth-83. The ANS committee apparently wishes to avoid that splintering effect this time around, and thus has bent over backwards to accomodate factions with strongly-held opinions, such as how divide works and what NOT does. We may hope (perhaps over-optimistically) that conversion to ANS Forth will be more-or-less universal in the medium term. > the code will not run -- IT IS BROKEN. Moreover, it is broken in a > serious way -- it can only be fixed by rewriting code. This conclusion is incorrect, because the assumption stated in the following paragraph is incorrect. > The original code used NOT (as was the Forth-83 Team's intent) to > function in both a boolean and bitwise sense. For this to be possible on > the new system, standard words leaving a true flag would have to leave a > number with all bits set. I would assume that those dissenting members > of the ANSI team object to this stipulation (since most Forth-79 and > FIG-Forth used 1 for true). ANS Forth "true" flags DO have all the bits set. I am not aware of any controversy on this issue. Perhaps it died out before I joined the committee, but there has been no evidence of any lately. I reiterate: : NOT INVERT ; added to the start of the application does the right thing for a Forth-83 program. > Current code *will* be broken by the proposed Standard. Undoubtedly, but not by NOT . Mitch Bradley