|
|
1.1 ! root 1: \chapter{Compatibility} ! 2: The language definition has changed a bit over the past year ! 3: (1986--87), particularly in the area of exception syntax. Some ! 4: attempt has been made to allow old programs to continue running. ! 5: \section{Exceptions} ! 6: Three keywords: \verb"exceptionx", \verb"raisex", and \verb"handlex" ! 7: are provided. They implement the old-style exception mechanism, and ! 8: are treated as derived forms. ! 9: \begin{tabular}{@{}l l} ! 10: \multicolumn{1}{c}{\bf Derived Form}& ! 11: \multicolumn{1}{c}{\bf Equivalent Form} \\ \hline ! 12: \verb"exceptionx" identifier & \verb"exception" Identifier \\ ! 13: \verb"exceptionx" identifier \verb":" ty & \verb"exception" Identifier \verb"of" ty \\ ! 14: ! 15: \verb"raisex" identifier & \verb"raise" Identifier \\ ! 16: \verb"raisex" identifier \verb"with" exp& \verb"raise" Identifier \verb"(" exp \verb")" \\ ! 17: ! 18: \verb"handlex" ident \verb"=>" exp & \verb"handle" Ident \verb"=>" exp \\ ! 19: \verb"handlex" ident \verb"=>" exp & \verb"handle" Ident () \verb"=>" exp \\ ! 20: ! 21: \verb"handlex" ident \verb"with" pat \verb"=>" exp & \verb"handle" Ident pat \verb"=>" exp \\ ! 22: \hline ! 23: \end{tabular} ! 24: ! 25: The derivations for \verb"handlex" are a bit more intricate than ! 26: shown above. The intent is that any program that works under the old ! 27: scheme will continue to work if all instances of \verb"exception", ! 28: \verb"handle", and \verb"raise" are changed to ! 29: \verb"exceptionx", \verb"handlex", and \verb"raisex" respectively. ! 30: ! 31: Note that the derived forms change the exception identifier in ! 32: converting to the standard forms; they capitalize the first letter. ! 33: This is to simulate the old scheme, in which exception names lived in ! 34: a different space from value names. This will cause problems in any ! 35: programs with a capitalized value-name that happens to conflict with ! 36: a (capitalized or uncapitalized) exception name.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.