From: Sam S. <sd...@gn...> - 2008-02-21 18:50:41
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Kaz Kylheku wrote: | On Thu, Feb 21, 2008 at 8:19 AM, Sam Steingold <sd...@gn...> wrote: |> When (foo) and (funcall (compile 'foo)) return visibly different |> objects, people stop trusting the compiler. | | [1]> (defun foo () (lambda ())) | FOO | [2]> (foo) | #<FUNCTION :LAMBDA NIL> | | [3]> (compile 'foo) | FOO ; | NIL ; | NIL | [4]> (foo) | #<COMPILED-FUNCTION FOO-1> yes, but these objects are "functionally identical" even though they print somewhat differently. the only way to distinguish between them is with a specific predicate like compiled-function-p, they are the same too all other functions, including, say, disassemble. what you are proposing is that the return values are substantially different lists, and the difference is observable via simple introspection like cadadr. Based on this discussion, I think that the improvement is marginal at best, but potential pitfalls are huge (to say nothing about the maintenance burden). -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFHvcf5Pp1Qsf2qnMcRAvNVAJ0RHztG2WQsZ28iZ+l5pRZeAYzQwQCfVmd0 /s1Ocx9oiD/6a5IUPOPyies= =bh8a -----END PGP SIGNATURE----- |