Forums before death by AOL, social media and spammers... "We can't have nice things"
|    comp.lang.forth    |    Forth programmers eat a lot of Bratwurst    |    117,927 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 117,221 of 117,927    |
|    albert@spenarnc.xs4all.nl to All    |
|    Re: Why dial-a-standard is not a thing i    |
|    18 Apr 25 13:40:57    |
      In article <2025Apr18.082817@mips.complang.tuwien.ac.at>,       >One way to keep backwards compatibility with the current common       >practice would be to require having a word FORTH-2030-FP-SYNTAX (or       >maybe just FORTH-2030) in every file that uses the new FP syntax       >before the use of that syntax. If that word does not appear in that       >file, "1.0" would still be non-standardized.              This would be easy enough       The file        dbase_FORTH-2xxxx.frt       contains       "       ALSO FORTH-2xxxx \ A named vocabulary        do        your        thing       PREVIOUS       "       wordlist are underused. You could have two independant random       number generators, by loading the source twice.              Because ciforth uses prefixes 0 1 2 .. 9 parse a number I can redefine       (in a separate wordlist or just in FORTH)              : 7        -1 PP +! (NUMBER) POSTPONE SDLITERAL       IMMEDIATE PREFIX              It is sufficient to revector SDLITERAL              Now SDLITERAL is       (DPL is the position of the decimal point, initialised at NULL)       : SDLITERAL DPL @ IF POSTPONE DLITERAL ELSE DROP POSTPONE LITERAL THEN       IMMEDIATE              I could revector it with       : SDLITERAL DPL @ 0<> 10 ?ERROR DROP POSTPONE LITERAL ;              (With 10 meaning "not a valid digit")              By the way. Do you really need numbers like       340282366920938463463374607431764264639              Maybe it is time to ditch double integers, the decimal point is a       seventy's kludge. The most characteristic feature of integers is ...       that they don't contain a decimal point, embedded or trailing.       Simply put, it is time to reserve the decimal point for floats.              If you really are into number theory, primes whatnot,       you could think of a proposed prefix (recognizer)              \ DMAXUINT in decimal:       ##340282366920938463463374607431764264639              and maybe       $$FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF              I see Marcel Hendrix programs and there constant integers have       a $ or a # prefix anyway.              Groetjes Albert                                   >       >Next: "1.". If we had such declarations, we could even support "1."       >(standardized as double-cell in Forth-94 and Forth-2012) as FP number.       >The alternative would be to treat "1." as double-cell and 1.0 as FP       >value, which IMO is even worse than requiring an "e" in every FP       >value.       >       >But back to the dial-a-standard things: I have never seen such a       >proposal that limits the dialing to one file. Instead, the proposals       >and existing practice is to dial for the rest of text interpretation       >(or until somthing else is dialed). That would mean that previously       >working files might no longer work when included after dialing the new       >FP syntax. E.g., all versions of the recognizer proposal have been       >along these lines, and Bernd Paysan has actually proposed allowing to       >treat "1." as FP value by swapping the integer and FP recognizer in       >the recognizer order, which would have exactly this effect. And Bernd       >Paysan is not the only one: Among other dialing features that all are       >not limited to the file, VFX supports disabling the recognition of       >"1." as double, which then leads to its recognition as FP number; but       >that disabling is not limited to a file, but extends to the rest of       >the text interpretation.       >       >Here's the example for VFX:       >       >',' dp-char 1+ c! ok       >1. ok F:-1       >f. 1. ok       >       >So you could try to propose a word like FORTH-2030-FP-SYNTAX, but I       >expect that the reactions would be along the following lines (in the       >community and in the standardization committee):       >       >1) A number of people consider this completely unnecessary, and       > actually heretical, because Chuck Moore came down from the mountain       > with doubles, not floats, so that's the way it was always meant to       > be. Some would argue that treating "1.0" or "1." as FP number is       > proposed just to cater to C programmers, and that Forthers should       > take pride in deviating from the beaten path.       >       >2) A number of people would argue against the limitation to a specific       > file because of "complexity" (meaning implementation complexity),       > "WIBNI", or because Chuck Moore came down from the mountain without       > that idea, and that Chuck Moore has argued against libraries, that       > he has argued against saving and restoring state, and instead has       > argued for always setting it. And that the common practice (e.g.,       > in VFX) is to just set the state, and never       >       >3) And if you changed your proposal to just affect the rest of text       > interpretation (and include another word FORTH-2012-FP-SYNTAX or       > somesuch to switch back), some people (including me) would argue       > that this variant of FORTH-2030-FP-SYNTAX would break existing       > code, and that introducing FORTH-2012-FP-SYNTAX is a poor and       > error-prone substitute for defining FORTH-2030-FP-SYNTAX properly.       > Word counters would dislike this variant because it introduces an       > additional word, and the people who argue 1) would also dislike the       > proposal.       >       >The bottom line is that the proposal would probably not find a       >consensus and would not be accepted by the committee. The bottom line       >is:       >       >>> One could dream up ways to deal with that problem, but given past       >>> experience, I doubt such ideas would find enough support       >       >And the bottom line of that is that proposals for incompatible changes       >have little chance of being accepted.       >       >>There could be special words like [FORTH78], [ANSFORTH] - which would no       >>nothing but:       >>- Either hiding words in the dictionary that should be disabled;       >>- Activating words that are part of this standard;       >       >Interestingly, Forth-79 includes a word 79-STANDARD, and Forth-83       >includes a word FORTH-83, but Forth-94 and Forth-2012 do not include       >such words. We had a discussion whether we should have Forth-94 and       >Forth-2012 versions of environmental queries for wordsets in       >Forth-2012, but the committee decided against that.       >       >In any case, if you want to support including libraries written for a       >different standard, the effect of such words should be limited to a       >specific file. If the standards are incompatible and you want       >libraries, and you do not provide this kind of dialing, you can take a       >look at the Python 3 transition pain (or worse, what happened with       >Perl6) to see what happens. The Python community has learned from       >that experience not to introduce such incompatible changes again.       >       >>- Assigning the proper "version" words to trampolines or DEFERs.       >       >That's exactly the wrong thing to do. You want to statically bind the       >name to the word with the right version. E.g. if you have a Forth-83 program       >       > forth-83       > 100 load ( includes a library written in Forth-79)       >       > : foo ( ... -- ... )       > ... not ... ;       >       >and the library contains       >       > 79-standard       > : bar ( ... -- ... )       > ... not ... ;       >       >you want the use of NOT in FOO to be statically bound to (what       >Forth-94 calls) INVERT and the NOT in BAR to be statically bound to       >0=; you usually don't want BAR or FOO to change its behaviour       >depending on which standard is selected.       >       >>But I think maybe, just maybe the same effect could be achieved by using       >>wordsets.       >              [continued in next message]              --- SoupGate-DOS v1.05        * Origin: you cannot sedate... all the things you hate (1:229/2)    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca