[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.

Kelly Murray