Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sun-barr!olivea!samsung!usc!zaphod.mps.ohio-state.edu!pacific.mps.ohio-state.edu!linac!att!pacbell.com!ucsd!ucbvax!MITCH.ENG.SUN.COM!wmb From: wmb@MITCH.ENG.SUN.COM Newsgroups: comp.lang.forth Subject: ALIGN Message-ID: <9101282317.AA21457@ucbvax.Berkeley.EDU> Date: 28 Jan 91 22:32:29 GMT Sender: daemon@ucbvax.BERKELEY.EDU Reply-To: wmb%MITCH.ENG.SUN.COM@SCFVM.GSFC.NASA.GOV Organization: The Internet Lines: 34 > >ALIGN etc > Again I have no strong feeling here, so I give my default advice, although >weakly: take it out of the standard if possible; at least take it out of the >core. There are machines in the world besides PC's. Some of use those machines. Many of those machines have hardware alignment restrictions. ANS Forth intends to allow you to write portable programs, not just PC programs. If ALIGN is optional, I can't write a portable program, unless all Forth data access operators are guaranteed to work on any alignment. The effect of such a guarantee would be to at least double the execution time of words like @ and ! on many processors. If your machine doesn't need ALIGN, either define it as an immediate no-op, (at a memory cost of 12 bytes), or supply it in source form (at a memory cost of 0 bytes). The CORE wordset is not the set of words that you must have present in the dictionary at all times; instead, it the set of words that you are expected to either have present, OR to show the user how to implement on your system by providing source code for that word. I have tons of portable source code that works in quite a few different environments, with different alignment restrictions. The word ALIGN appears all over the place. The "I don't need it in my environment, so you can't have it" attitude is pretty parochial, in my (not at all humble) opinion. Mitch Bradley, wmb@Eng.Sun.COM