Lukas, The changes I propose would be almost trivial for them to adopt, and might actually make their lives easier in targeting Dolphin, should they wish to do so. The current semantics are <candidMode>watered-down to the point of being pointless, all in the name of being backwardly compatible with something that was questionable even before the existence of tools for exceptions and handling of same</candidMode>. All arguments in favor of preserving current behavior have been based on backward compatibility - nothing on merits.
It will be interesting to see what happens when it comes time to de-cruft morphic - *that* will break external code. I will grant you one thing though: if I were to choose between breaking old morphic code or Seaside, I would certainly keep Seaside going, though I suspect the Seaside developers would accomodate us in trying to align the dialects. All they would need to do is use a selector to match the semantics they have learned to accept. It is the first disk pack I would burn - well, maybe just after underscore assignment has been scorched down to the sub-atomic level :) I will probably end up taking some of my own advice. Once my code can move to Pharo[*], I will probably load it into a throw-away image, using the RB therein to rename selectors. The first step would be to get #next and #next: "out of the way," by naming them #nextOrNil and #nextAvailable: - that's what they do. Load my code, and then rename #next to #nextOne and #next: to #nextMany:. These methods would signal EndOfStreamError (new name) to steer clear of default actions. Filing out and loading the resulting code should allow me to safely avoid the (to me deprecated) #next and #next:. It is a shame though, as they are the natural selectors one would want to use. Some slips detection based on packages and/or developer name would help me catch myself should I revert. It is precisely the risk of using the simpler/misleading selectors that has me convinced the breaking change is needed. Failing that, I need to at least solve it for my own code, and I will of course make that available to all. [*] I assume that I will write Dolphin code to export something that Pharo can load. If any of you know of a good solution to that problem, please let me know. In case you are wondering why the renaming is all done in Pharo, it is because it hopefully does a better job of leaving formatting in tact - D5's version of the RB is fairly hostile in that regard. Bill Wilhelm K. Schwab, Ph.D. University of Florida Department of Anesthesiology PO Box 100254 Gainesville, FL 32610-0254 Email: [EMAIL PROTECTED] Tel: (352) 846-1285 FAX: (352) 392-7029 >>> [EMAIL PROTECTED] 6/5/2008 11:10:07 AM >>> > ANSI is a standard and there are cases where it is wrong (commitee decisions > = compromise) I agree, however changing the behavior of #next means that we will not be able to develop Seaside on Pharo. Seaside takes great advantage that Squeak is ANSI compatible. Lukas > > On Jun 5, 2008, at 3:27 PM, Bill Schwab wrote: > > > > Lukas, > > > > I have blind copied someone who can comment, or not at his discretion, > > on Cincom's view on this; he never said he was commenting off the > > record, but I try to err toward assuming that. I got the distinct sense > > that they are contemplating a change of some type and are also > > struggling with backward compatibility. > > > > You are correct about ANSI; I was shocked to see what they did. > > Without reservation, I assert the standard is wrong. Exception handling > > was created to allow the widespread elimination of precisely the > > condition that arises when #next reads off the end of a stream. I can > > always (and probably will if we do not fix this) deprecate #next and > > #next: in my own work, but that still leaves inconsistencies between and > > within dialects. > > > > Bill > > > > > > > > > > > > Wilhelm K. Schwab, Ph.D. > > University of Florida > > Department of Anesthesiology > > PO Box 100254 > > Gainesville, FL 32610-0254 > > > > Email: [EMAIL PROTECTED] > > Tel: (352) 846-1285 > > FAX: (352) 392-7029 > > > > > > > > > > > > > > > > > > [EMAIL PROTECTED] 6/5/2008 7:18 AM >>> > > > > > > > > > Yes, but it is not consistent, and they are apparently not happy > > > > > > > > > with it. > > > > Why? Can you give any pointers? > > > > > > > Object Arts' solution is consistent both with itself and with yoga of > > > > > structured exception handling. However, at this point, it appears that > > you do not want to make the change, so I will stop pressing. > > > > As far as I see this is inconsistent with the ANSI standard. > > > > Cheers, > > Lukas > > > > -- > > Lukas Renggli > > http://www.lukas-renggli.ch > > > > _______________________________________________ > > Pharo-project mailing list > > [email protected] > > > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > > > > _______________________________________________ > > Pharo-project mailing list > > [email protected] > > > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > > > > > > > _______________________________________________ > Pharo-project mailing list > [email protected] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > -- Lukas Renggli http://www.lukas-renggli.ch _______________________________________________ Pharo-project mailing list [email protected] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project _______________________________________________ Pharo-project mailing list [email protected] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
