From ... Path: archiver1.google.com!newsfeed.google.com!newsfeed.stanford.edu!news.tele.dk!small.news.tele.dk!134.222.94.5!npeer.kpnqwest.net!nreader1.kpnqwest.net.POSTED!not-for-mail Newsgroups: comp.lang.lisp Subject: Re: Common Lisp, the one true religion! References: <9nc1vu$6a2ng$1@ID-60069.news.dfncis.de> <3B9A68B6.4AF52FE0@isomedia.com> <3208966756647218@naggum.net> <3B9BF281.BB7A9D73@mediaone.net> <3209070617000512@naggum.net> Mail-Copies-To: never From: Erik Naggum Message-ID: <3209072908163468@naggum.net> Organization: Naggum Software, Oslo, Norway Lines: 19 User-Agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/20.7 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Mon, 10 Sep 2001 01:08:31 GMT X-Complaints-To: newsmaster@Norway.EU.net X-Trace: nreader1.kpnqwest.net 1000084111 193.90.207.113 (Mon, 10 Sep 2001 03:08:31 MET DST) NNTP-Posting-Date: Mon, 10 Sep 2001 03:08:31 MET DST Xref: archiver1.google.com comp.lang.lisp:16023 * tfb@famine.OCF.Berkeley.EDU (Thomas F. Burdick) > And yet they feel perfectly comfortable breaking their previous > promises to the compiler, comfortable in the knowledge that they > remember the actual memory layout of the object pointed to, whatever > the compiler might think. But that is so different! A cast says "now I want this to be of type X", not "tell me if this is not used consistently with its declared type", which all the type checking is about. Ironically, a cast is like a type declaration in Common Lisp, which says "you may assume this is of type X". > There are plenty of casts in my C code, but for those people who really > *can't* be trusted to remember the types of their variables, they are > sometimes a source of remarkably difficult to find and fix bugs. I believe the same is true for highly optimized, e.g., (safety 0), Common Lisp code with declarations that are lies. ///