[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Implicit Blocks considered harmful
I don't see any motivation for having implicit blocks around functions,
and think they should be eliminated for the following reasons:
1) It is used very infrequently, so there is no reason to pay the overhead
in both the interpreter and when compiling one.
2) It is trivial to put one in yourself if you need it, so code that
uses them now can easily be updated (Automatically even).
3) It's a bad idea to begin with, since it couples the NAME of the
function with how it operates. Thus, if you ever change the name
you must go through and check for any return-froms.
4) Most importantly, it is a problem for parallelism. A Block cannot
return until all of its sub-forms have returned values, since one of them
can do a Return-From. This is only a problem for the interpretor
since the compiler knows if a return-from is used, but now interpreted
code and compiled code will get different behavior.
If people insist on having implicit blocks, I think the name of the
block should be T, instead of the function name.