|
From: | Vincent Manis |
Subject: | Re: [Chicken-users] macro systems and chicken (long) |
Date: | Sun, 6 Apr 2008 23:19:11 -0700 |
On 2008 Apr 06, at 22:59, Elf wrote:
And as I believe I heard someone say on #scheme the other day, if your program involves EVAL, it's probably broken. Even if the EVAL is hidden behind something else.This sentence makes no sense to me, as this would imply that all programs are always broken.eval running within the program, not the eval being used to run the program.so, like, what lambda internals do within a program, or what internal let forms do, or like what happens to arguments before being passed to procedures, or ....
None of those involves an explicit or implicit call to EVAL, they all involve variations on application. An interpreter likely implements them as calls to EVAL, but a compiler almost certainly doesn't. I'm glad Scheme has EVAL, it lets us write the REPL and various tools inScheme, but, if Scheme (or Lisp in general) were widely used, EVAL- injection
attacts would be very popular among crackers. It's a wonderful feature, but must be used with great caution. -- vincent
[Prev in Thread] | Current Thread | [Next in Thread] |