Subject: Re: Legal ANSI comment form?
From: Erik Naggum <erik@naggum.no>
Date: 24 Aug 2002 05:03:27 +0000
Newsgroups: comp.lang.lisp
Message-ID: <3239154207275829@naggum.no>

* Duane Rettig
| The most commonly used (though not foolproof) method of such commenting is
| to use a feature that you don't expect to be defined in your lisp.

  Argh!  This is so dumb.  Think about it.  You remove a truly large fraction
  of your vocabulary from possible feature names.  Think of all the synonyms
  that various programmers will use for this out of the misguided notion that
  feature names "mean" something.  They should have the meaning that the thing
  they /name/ have.  If you want to exclude something, you should do so based
  on something you /can/ know, not something you /hope/ you may know, but are
  only guessing about.  In this age of multiculturalism and such, consider the
  mess if you run the whole gamut of Roget's-equivalents in all languages
  where people use Common Lisp, and you find that there is a significant risk
  of naming your feature something that "means" something in some other
  language, and obvious words can no longer be used for features because some
  idiot may have used it for a conditional.  That is just /wrong/.  Let me put
  this intensely: Never say #+never!

  I think Franz Inc code should use #-franz or something, and portable code
  should use #-common-lisp to exclude code that is never going to be parsed.
  This if fool-proof.  If someone steals your code and they do not define the
  franz feature in time, you also get the extra benefit of taking revenge.

  If your application includes a feature symbol on `*features*´, then you can
  use that symbol to exclude code, too.  E.g., if you write an application
  that pushes the (legal) feature lex-nemini-facit-injuriam on `*features*´,
  you actually /know/ that this feature will be there in your application, and
  since you control this yourself, you can use #-lex-nemini-facit-injuriam to
  argue that some code violates this feature, i.e., it would do injury if that
  feature was absent.

-- 
Erik Naggum, Oslo, Norway

Act from reason, and failure makes you rethink and study harder.
Act from faith, and failure makes you blame someone and push harder.