Subject: [clisp-list] headsup: proposed incompatible change in command-line options

From: Sam Steingold <[email-masked]>
Date: Thu Dec 18 14:52:02 2003

2.31 introduced "-v/--verbose" which is contrary to the CLISP practice
of naming "initial" options in lower case and "persistent" options in
upper case (compare -C/-M/-K with -m).
Also, on some platforms "-s" sets the stack size.
Also, "--silent" has always been a synonym for "-q".

_PROPOSAL_:

1. new option "-S/--silent" to mean
   (setq *load-verbose* nil *compile-verbose* nil)
   incompatibility: "--silent" meant "no banner before".
   probably never used because "-q/--quiet" was the "first choice".

2. change "-v/--verbose" to "-V/--verbose".
   incompatibility: "-v" was used before.

unless there are complaints, this change will go into the CVS soon.

-- 
Sam Steingold (http://www.podval.org/~sds) running w2k
<http://www.camera.org> <http://www.iris.org.il> <http://www.memri.org/>
<http://www.mideasttruth.com/> <http://www.honestreporting.com>
I haven't lost my mind -- it's backed up on tape somewhere.

---

From: Bruno Haible <[email-masked]>
Date: Fri Dec 19 05:44:03 2003

> upper case (compare -C/-M/-K with -m).

There is no such intended borderline between uppercase and lowercase options.
The only differences that I can see between -C/-M/-K and -m are
- -M/-K change the configuration of _which_ clisp is run, whereas -m
  sets _how_ it is run. But the options -L and -C don't follow this philosophy.
- -B/-M are meant to be used less often (more for "expert" users), but
  -C and -K are not.

>    incompatibility: "-v" was used before.

I object against this proposal, for the sake of consistency of command line
options among programs. The first thing a Unix user becomes familiar with
are the coreutils (ls, cp, etc.), and therefore the users will expect the
same meaning and the same abbreviations for the same long options. Now
look at the coreutils manual:
  1. For all programs, --quiet and --silent are equivalent.
  2. In all programs in which --verbose has a short option, this short option
     is '-v'.

What I propose instead is that repeated use of -q/--quiet/--silent sets
*load-verbose* and *compile-verbose* to nil, in addition to suppressing
the banner (single use of -q/--quiet/--silent). Like gcc's or tar's
"--verbose" options, when duplicated, mean "really verbose".

Bruno

---

From: Sam Steingold <[email-masked]>
Date: Fri Dec 19 06:07:02 2003

> * Bruno Haible <[email-masked]> [2003-12-19 14:41:40 +0100]:
>
> Sam wrote:

I thought you told me in early 1998 that there was such a distinction...

>   1. For all programs, --quiet and --silent are equivalent.

only few programs accept --silent, IMO.

> What I propose instead is that repeated use of -q/--quiet/--silent
> sets *load-verbose* and *compile-verbose* to nil, in addition to
> suppressing the banner (single use of -q/--quiet/--silent). Like gcc's
> or tar's "--verbose" options, when duplicated, mean "really verbose".

-q changes only start/end behavior.
-q -q will change the behavior of the lisp world.
this is extremely confusing and inconvenient.

also, setting *load-verbose* &c is an "application" thing, e.g., Rick
Taube wanted to suppress some messages during startup of common music.
suppressing CLISP banner is a "user" thing, an application has no
business passing -q to CLISP.

how about "--no-verbose/-V"?

-- 
Sam Steingold (http://www.podval.org/~sds) running w2k
<http://www.camera.org> <http://www.iris.org.il> <http://www.memri.org/>
<http://www.mideasttruth.com/> <http://www.honestreporting.com>
Diplomacy is the art of saying "nice doggy" until you can find a rock.

---

From: Bruno Haible <[email-masked]>
Date: Fri Dec 19 08:31:04 2003

Sam wrote:
> > Now look at the coreutils manual:

If you can't be convinced by looking at the coreutils alone, look at a
/usr/bin directory:

  chgrp, chmod, chown, cmp, csplit, head, tail, tty (GNU coreutils)
  grep, fgrep, zgrep (GNU grep)
  sed (GNU sed)
  ed (GNU ed)
  gcc, g++, gcj, g77, cpp (GNU gcc)
  gdb (GNU gdb)
  make (GNU make)
  enscript (GNU enscript)
  gzip, gunzip, zcat (GNU gzip)
  iconv (GNU libc)
  msgmerge, msgfilter (GNU gettext)
  libtool (GNU libtool)
  m4 (GNU m4)
  patch (GNU patch)
  recode (Free recode)
  shar (GNU sharutils)
  ipcalc
  less
  mysql, myisamchk, myisampack, mysqladmin, perror, resolveip, ... (MySQL)
  curl
  fetchmail
  texi2dvi
  texlinks
  zgrep
  zipgrep
  mcs (mono)

All these support --silent, and for most of them --quiet is equivalent.

> this is extremely confusing and inconvenient.

Whether an option changes only start/end behaviour or not, is not very
important. From a user's point of view, it's important whether stdout
is cluttered at all or not, not whether the clutter comes from the startup
routines or from the LOAD function.

> business passing -q to CLISP.

Suppressing the banner is both a user and application preference: In my
old Maxima port, the banner was suppressed so that Maxima looked like
as in other Maxima ports. Anyway, global variables are for the application
and command-line switches for the user.

> how about "--no-verbose/-V"?

That would be very confusing, given that it's not the contrary of --verbose.
(One switch affects *load-print*, the other affects *load-verbose*.)

Bruno

---

From: Sam Steingold <[email-masked]>
Date: Fri Dec 19 09:01:09 2003

> * Bruno Haible <[email-masked]> [2003-12-19 17:28:54 +0100]:
OK, you got me here.

> is cluttered at all or not, not whether the clutter comes from the
> startup routines or from the LOAD function.

OK, fine, so "-q" will kill the banner and "-q -q" will set
*.*-VERBOSE* to NIL.
this is compatible with 2.31.
are people happy?

> Suppressing the banner is both a user and application preference: In
> my old Maxima port, the banner was suppressed so that Maxima looked
> like as in other Maxima ports.

IMNSHO this was a wrong thing for Maxima to do.
OTOH, programs compiled with GCC do not start with an announcement to
that effect, so, I guess, I am alone.

-- 
Sam Steingold (http://www.podval.org/~sds) running w2k
<http://www.camera.org> <http://www.iris.org.il> <http://www.memri.org/>
<http://www.mideasttruth.com/> <http://www.honestreporting.com>
Please wait, MS Windows are preparing the blue screen of death.