Browse thread
Question on language design (keywords vs Pervasives)
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | John Max Skaller <skaller@m...> |
| Subject: | Re: Question on language design (keywords vs Pervasives) |
Pierre wrote: > I'm sure that there is no ``more primitive function'' than raise to > raise an exception. So sorry, you cannot define raise ``in terms of a > more primitive function'' in Caml. Perhaps my intent was not understood. The idea is to provide a primitive '_raise' construction, but provide a wrapper function 'raise' in the standard library which does nothing but call _raise: let raise ex = _raise ex which allows the raise function to be rebound by the client, catching all exceptions raised using the 'raise' function in those sources where the client has in fact rebound 'raise' before use. Naturally, this will not affect (compiled) library code unless it, too, is recompiled, so not all exceptions are trapped this way. This can be done right now by the client, simply defining let raise' ex = raise ex even if raise is a primitive construction, provided that the source module uses raise' everywhere, rather than raise. So it can be done now, by search and replace of raise by raise', which is not really much harder than rebinding. -- John (Max) Skaller, mailto:skaller@maxtal.com.au 10/1 Toxteth Rd Glebe NSW 2037 Australia voice: 61-2-9660-0850 checkout Vyper http://Vyper.sourceforge.net download Interscript http://Interscript.sourceforge.net