unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Re: VC-SVN problem
  2004-05-08  1:31 VC-SVN problem Shawn Boyette
@ 2004-05-07 19:58 ` Karl Fogel
  2004-05-08  2:26   ` Shawn Boyette
                     ` (2 more replies)
  0 siblings, 3 replies; 18+ messages in thread
From: Karl Fogel @ 2004-05-07 19:58 UTC (permalink / raw)
  Cc: Stefan Monnier, emacs-devel

Shawn Boyette <mdxi@collapsar.net> writes:
> Sorry if this should have gone to bug-gnu-emacs; I use CVS builds and
> thus figured that devel would be more appropriate.
> 
> Short and sweet problem: for roughly the past 1.5 weeks, attempting to
> commit any file under subversion control results in failure. The
> messages are as follows:
> 
>   Wrote /home/mdxi/web/dict/kdict/edit/edit.xi [2 times]
>   Loading log-edit...
>   Loading easy-mmode...done
>   Loading easymenu...done
>   Loading log-edit...done
>   Mark set
>   Press C-c C-c when you are done editing.
>   Enter a change comment.  Type C-c C-c when done
>   Checking in /home/mdxi/web/dict/kdict/edit/edit.xi...
>   vc-svn-checkin: Symbol's function definition is void: list*
> 
> The check-in is not successful, and the *VC-log* window is not
> removed. This isn't a killer, obviously, but it's pretty dang annoying. 
> 
> I hate to just complain about things, but I've just started studying
> my copy of the elisp intro book, so this one's pretty much over my
> head.

I believe the problem is that 'list*' is in the 'cl' package, but
vc-svn.el doesn't have

   (require 'cl)

anywhere.  For some people it won't be an error, because they already
have 'cl' loaded for some other reason; but in a pristine Emacs like
yours, it fails.

Stefan, would you rather require 'cl', or just rewrite
'vc-svn-checkin' to not use 'list*'?

Shawn, in the meantime, see if putting 

   (require 'cl)

in your .emacs fixes the problem.

-Karl

^ permalink raw reply	[flat|nested] 18+ messages in thread

* VC-SVN problem
@ 2004-05-08  1:31 Shawn Boyette
  2004-05-07 19:58 ` Karl Fogel
  0 siblings, 1 reply; 18+ messages in thread
From: Shawn Boyette @ 2004-05-08  1:31 UTC (permalink / raw)


Sorry if this should have gone to bug-gnu-emacs; I use CVS builds and
thus figured that devel would be more appropriate.

Short and sweet problem: for roughly the past 1.5 weeks, attempting to
commit any file under subversion control results in failure. The
messages are as follows:

  Wrote /home/mdxi/web/dict/kdict/edit/edit.xi [2 times]
  Loading log-edit...
  Loading easy-mmode...done
  Loading easymenu...done
  Loading log-edit...done
  Mark set
  Press C-c C-c when you are done editing.
  Enter a change comment.  Type C-c C-c when done
  Checking in /home/mdxi/web/dict/kdict/edit/edit.xi...
  vc-svn-checkin: Symbol's function definition is void: list*

The check-in is not successful, and the *VC-log* window is not
removed. This isn't a killer, obviously, but it's pretty dang annoying. 

I hate to just complain about things, but I've just started studying
my copy of the elisp intro book, so this one's pretty much over my
head.

-- 
Shawn Boyette
mdxi@collapsar.net

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: VC-SVN problem
  2004-05-07 19:58 ` Karl Fogel
@ 2004-05-08  2:26   ` Shawn Boyette
  2004-05-09  0:16     ` Karl Fogel
  2004-05-09 10:38   ` Richard Stallman
  2004-05-10 18:22   ` Kevin Rodgers
  2 siblings, 1 reply; 18+ messages in thread
From: Shawn Boyette @ 2004-05-08  2:26 UTC (permalink / raw)
  Cc: emacs-devel

On Fri, May 07, 2004 at 02:58:17PM -0500, Karl Fogel wrote:

> Shawn, in the meantime, see if putting 
> 
>    (require 'cl)
> 
> in your .emacs fixes the problem.

Indeed it does; many thanks.

-- 
Shawn Boyette
mdxi@collapsar.net

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: VC-SVN problem
  2004-05-08  2:26   ` Shawn Boyette
@ 2004-05-09  0:16     ` Karl Fogel
  2004-05-09  7:28       ` John Paul Wallington
                         ` (3 more replies)
  0 siblings, 4 replies; 18+ messages in thread
From: Karl Fogel @ 2004-05-09  0:16 UTC (permalink / raw)


Shawn Boyette <mdxi@collapsar.net> wrote regarding vc-svn.el:
> > Shawn, in the meantime, see if putting 
> > 
> >    (require 'cl)
> > 
> > in your .emacs fixes the problem.
> 
> Indeed it does; many thanks.

So, I'd like to fix this in vc-svn.el, in the simplest way: by adding
(require 'cl) so that 'list*' is available.

But that brings me to a larger question, which is, what *are* the
criteria for committing to files in Emacs?  I've been trying to grok
the answer by watching this list, but that's not working as well as
I'd hoped.

I'm not talking about controversial new features here.  Clearly, those
need to be discussed on the list, and a consensus should emerge,
before they are checked in.  I'm just talking about bugfixes (like
this one to vc-svn.el) and minor enhancements.

In some other projects, a committer can commit anywhere, according to
their judgement.  If a change is wrong, or non-optimal, this can be
brought up on the list later and the problem can be resolved with a
new change, or an explanation of why the old change really is okay, or
whatever.  In other projects, voting is required; in still other
projects, approvial by an area maintainer is required.

These policies are usually spelled out in some file called HACKING or
DEVEL or MAINTENANCE, in the top level of the project.  There are no
such written guidelines for Emacs, as far as I can tell (?).  The only
thing I've been able to glean from lurking is that

   a) RMS seems to have the final say
   b) certain area maintainers commit without discussion

I haven't rethreaded this message, because it might be that the answer
is simple and doesn't need to happen in a new thread.  (Maybe there's
a written guideline, and I just missed it somehow?)

Anyway, to return to my original question: is it okay to commit this
change to vc-svn.el?

Thanks,
-Karl

P.S. Is emacs-commit unused now?  It appears to be all spam since the
     beginning of this year, according to the archives, though there
     were real commit mails before then.  The exact same situation
     seems to hold for emacs-diffs, which makes me wonder if they're
     not two names for the same list...

     http://mail.gnu.org/archive/html/emacs-commit/
     http://mail.gnu.org/archive/html/emacs-diffs/

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: VC-SVN problem
  2004-05-09  0:16     ` Karl Fogel
@ 2004-05-09  7:28       ` John Paul Wallington
  2004-05-10 21:33         ` Jim Blandy
  2004-05-09  8:10       ` Miles Bader
                         ` (2 subsequent siblings)
  3 siblings, 1 reply; 18+ messages in thread
From: John Paul Wallington @ 2004-05-09  7:28 UTC (permalink / raw)
  Cc: emacs-devel

> So, I'd like to fix this in vc-svn.el, in the simplest way: by adding
> (require 'cl) so that 'list*' is available.

Just checking: do you mean (eval-when-compile (require 'cl)) ?

(The cl package defines a compiler macro for `list*', and the elisp
manual's coding conventions say not to load cl at runtime.)

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: VC-SVN problem
  2004-05-09  0:16     ` Karl Fogel
  2004-05-09  7:28       ` John Paul Wallington
@ 2004-05-09  8:10       ` Miles Bader
  2004-05-09 13:16       ` Thien-Thi Nguyen
  2004-05-09 18:47       ` Richard Stallman
  3 siblings, 0 replies; 18+ messages in thread
From: Miles Bader @ 2004-05-09  8:10 UTC (permalink / raw)
  Cc: emacs-devel

On Sat, May 08, 2004 at 07:16:30PM -0500, Karl Fogel wrote:
> But that brings me to a larger question, which is, what *are* the
> criteria for committing to files in Emacs?  I've been trying to grok
> the answer by watching this list, but that's not working as well as
> I'd hoped.

I think it's generally `If you're not sure, ask.'

Luckily there seem to be no bozos with commit access, so this seems to work
pretty well.  Everybody starts out feeling nervous about what's OK to commit,
and so ask about everything, and then gradually become more confident and
start committing without asking -- and by that time their judgement has
become good enough that they don't screw things up.

[Sort of like `If you have to ask the price, you can't afford it.' :-]

-Miles
-- 
Saa, shall we dance?  (from a dance-class advertisement)

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: VC-SVN problem
  2004-05-07 19:58 ` Karl Fogel
  2004-05-08  2:26   ` Shawn Boyette
@ 2004-05-09 10:38   ` Richard Stallman
  2004-05-10 18:22   ` Kevin Rodgers
  2 siblings, 0 replies; 18+ messages in thread
From: Richard Stallman @ 2004-05-09 10:38 UTC (permalink / raw)
  Cc: mdxi, monnier, emacs-devel

    Stefan, would you rather require 'cl', or just rewrite
    'vc-svn-checkin' to not use 'list*'?

Packages in Emacs are not supposed to require cl at run time.
Users can have their own definitions for the function names
that CL defines, and they won't want CL to be loaded.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: VC-SVN problem
  2004-05-09  0:16     ` Karl Fogel
  2004-05-09  7:28       ` John Paul Wallington
  2004-05-09  8:10       ` Miles Bader
@ 2004-05-09 13:16       ` Thien-Thi Nguyen
  2004-05-09 18:47       ` Richard Stallman
  3 siblings, 0 replies; 18+ messages in thread
From: Thien-Thi Nguyen @ 2004-05-09 13:16 UTC (permalink / raw)
  Cc: emacs-devel

Karl Fogel <kfogel@floss.red-bean.com> writes:

   I haven't rethreaded this message, because it might be that the
   answer is simple and doesn't need to happen in a new thread.

"the answer is simple: there is no simple answer!"

(basically, if you were to write a HACKING file, it would
eventually boil down to this, after first starting as a general
policy, then over time being revised to add exception upon ever
higher-ordered exception. :-)

thi

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: VC-SVN problem
  2004-05-09 18:47       ` Richard Stallman
@ 2004-05-09 18:25         ` Karl Fogel
  2004-05-09 19:01         ` David Kastrup
  1 sibling, 0 replies; 18+ messages in thread
From: Karl Fogel @ 2004-05-09 18:25 UTC (permalink / raw)


Richard Stallman <rms@gnu.org> writes:
>     So, I'd like to fix this in vc-svn.el, in the simplest way: by adding
>     (require 'cl) so that 'list*' is available.
> 
> Please don't do that.  It's not acceptable for any package in Emacs to
> do that.  The CL functions are not standard parts of the Emacs Lisp
> language, and the user may have defined the same names in some other
> way.

Thanks, I'll remember that.  John Paul Wallington's suggestion was to
use use (eval-when-compile (require 'cl)) instead.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: VC-SVN problem
  2004-05-09  0:16     ` Karl Fogel
                         ` (2 preceding siblings ...)
  2004-05-09 13:16       ` Thien-Thi Nguyen
@ 2004-05-09 18:47       ` Richard Stallman
  2004-05-09 18:25         ` Karl Fogel
  2004-05-09 19:01         ` David Kastrup
  3 siblings, 2 replies; 18+ messages in thread
From: Richard Stallman @ 2004-05-09 18:47 UTC (permalink / raw)
  Cc: emacs-devel

    So, I'd like to fix this in vc-svn.el, in the simplest way: by adding
    (require 'cl) so that 'list*' is available.

Please don't do that.  It's not acceptable for any package in Emacs to
do that.  The CL functions are not standard parts of the Emacs Lisp
language, and the user may have defined the same names in some other
way.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: VC-SVN problem
  2004-05-09 18:47       ` Richard Stallman
  2004-05-09 18:25         ` Karl Fogel
@ 2004-05-09 19:01         ` David Kastrup
  2004-05-09 19:11           ` David Kastrup
  1 sibling, 1 reply; 18+ messages in thread
From: David Kastrup @ 2004-05-09 19:01 UTC (permalink / raw)
  Cc: kfogel, emacs-devel

Richard Stallman <rms@gnu.org> writes:

>     So, I'd like to fix this in vc-svn.el, in the simplest way: by adding
>     (require 'cl) so that 'list*' is available.
> 
> Please don't do that.  It's not acceptable for any package in Emacs to
> do that.  The CL functions are not standard parts of the Emacs Lisp
> language, and the user may have defined the same names in some other
> way.

Usually
(eval-when-compile '(require 'cl))

should be sufficient, and it is what is recommended for that
functionality in the Elisp manual.

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: VC-SVN problem
  2004-05-09 19:01         ` David Kastrup
@ 2004-05-09 19:11           ` David Kastrup
  0 siblings, 0 replies; 18+ messages in thread
From: David Kastrup @ 2004-05-09 19:11 UTC (permalink / raw)
  Cc: kfogel, emacs-devel

David Kastrup <dak@gnu.org> writes:

> Richard Stallman <rms@gnu.org> writes:
> 
> >     So, I'd like to fix this in vc-svn.el, in the simplest way: by adding
> >     (require 'cl) so that 'list*' is available.
> > 
> > Please don't do that.  It's not acceptable for any package in Emacs to
> > do that.  The CL functions are not standard parts of the Emacs Lisp
> > language, and the user may have defined the same names in some other
> > way.
> 
> Usually
> (eval-when-compile '(require 'cl))
> 
> should be sufficient, and it is what is recommended for that
> functionality in the Elisp manual.

Ok, I goofed.  Spurious quoting.  Here is the original passage from
the manual:

   * Please don't require the `cl' package of Common Lisp extensions at
     run time.  Use of this package is optional, and it is not part of
     the standard Emacs namespace.  If your package loads `cl' at run
     time, that could cause name clashes for users who don't use that
     package.

     However, there is no problem with using the `cl' package at compile
     time, for the sake of macros.  You do that like this:

          (eval-when-compile (require 'cl))



-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: VC-SVN problem
  2004-05-07 19:58 ` Karl Fogel
  2004-05-08  2:26   ` Shawn Boyette
  2004-05-09 10:38   ` Richard Stallman
@ 2004-05-10 18:22   ` Kevin Rodgers
  2004-05-10 19:16     ` Stefan Monnier
  2 siblings, 1 reply; 18+ messages in thread
From: Kevin Rodgers @ 2004-05-10 18:22 UTC (permalink / raw)


Karl Fogel wrote:
 > Stefan, would you rather require 'cl', or just rewrite
 > 'vc-svn-checkin' to not use 'list*'?

Wouldn't the second option be better?

| list* is a compiled Lisp function in `cl'.
| (list* ARG &rest REST)
|
| Return a new list with specified args as elements, cons'd to last arg.
| Thus, `(list* A B C D)' is equivalent to `(nconc (list A B C) D)', or to
| `(cons A (cons B (cons C D)))'.

-- 
Kevin Rodgers

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: VC-SVN problem
  2004-05-10 18:22   ` Kevin Rodgers
@ 2004-05-10 19:16     ` Stefan Monnier
  2004-05-10 21:56       ` Miles Bader
  0 siblings, 1 reply; 18+ messages in thread
From: Stefan Monnier @ 2004-05-10 19:16 UTC (permalink / raw)
  Cc: emacs-devel

>> Stefan, would you rather require 'cl', or just rewrite
>> 'vc-svn-checkin' to not use 'list*'?
> Wouldn't the second option be better?

Why?  The byte-compiler will turn it into the equivalent calls to `cons'.
`list*' is a pretty simple a common list operation.  Actually it's
predefined in Emacs Lisp, once under the name backquote-list*-function
and once under the name backquote-list*-macro.


        Stefan

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: VC-SVN problem
  2004-05-09  7:28       ` John Paul Wallington
@ 2004-05-10 21:33         ` Jim Blandy
  2004-05-11  7:50           ` John Paul Wallington
  2004-05-11 12:23           ` Richard Stallman
  0 siblings, 2 replies; 18+ messages in thread
From: Jim Blandy @ 2004-05-10 21:33 UTC (permalink / raw)
  Cc: kfogel, emacs-devel

John Paul Wallington <jpw@gnu.org> writes:

> > So, I'd like to fix this in vc-svn.el, in the simplest way: by adding
> > (require 'cl) so that 'list*' is available.
> 
> Just checking: do you mean (eval-when-compile (require 'cl)) ?
> 
> (The cl package defines a compiler macro for `list*', and the elisp
> manual's coding conventions say not to load cl at runtime.)

I've gotta be missing something obvious:

What do you do if your package actually uses functions from CL, not
just macros?  Then CL must be loaded at runtime.  Are such packages
simply unsuitable for inclusion in the Emacs distribution?

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: VC-SVN problem
  2004-05-10 19:16     ` Stefan Monnier
@ 2004-05-10 21:56       ` Miles Bader
  0 siblings, 0 replies; 18+ messages in thread
From: Miles Bader @ 2004-05-10 21:56 UTC (permalink / raw)
  Cc: Kevin Rodgers, emacs-devel

On Mon, May 10, 2004 at 03:16:04PM -0400, Stefan Monnier wrote:
> `list*' is a pretty simple a common list operation.  Actually it's
> predefined in Emacs Lisp, once under the name backquote-list*-function
> and once under the name backquote-list*-macro.

Actually this is one of those functions I've wished for a long time was in
the emacs core.

Any reason why not?  It's a very simple function, has no `issues' that I can
see, and quite useful...

Since as you say it's _already_ being defined under a different name in
backquote, it might even same some space.

-Miles
-- 
Ich bin ein Virus. Mach' mit und kopiere mich in Deine .signature.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: VC-SVN problem
  2004-05-10 21:33         ` Jim Blandy
@ 2004-05-11  7:50           ` John Paul Wallington
  2004-05-11 12:23           ` Richard Stallman
  1 sibling, 0 replies; 18+ messages in thread
From: John Paul Wallington @ 2004-05-11  7:50 UTC (permalink / raw)
  Cc: kfogel, emacs-devel

> > Just checking: do you mean (eval-when-compile (require 'cl)) ?
> > 
> > (The cl package defines a compiler macro for `list*', and the elisp
> > manual's coding conventions say not to load cl at runtime.)
> 
> I've gotta be missing something obvious:

I don't think so.

> What do you do if your package actually uses functions from CL, not
> just macros?  Then CL must be loaded at runtime.

Well, some functions in the cl library have corresponding compiler
macros and you can use those without loading cl at runtime in addition
to its normal macros.  Also, by default the byte compiler issues
"function from cl package called at runtime" warnings now so
inadvertent use at runtime is easy to detect.

I guess whether to rewrite an existing package to avoid runtime use of
cl or to follow those conventions when developing a new package is up
to the maintainers of that package.

> Are such packages simply unsuitable for inclusion in the Emacs
> distribution?

Yes, I believe so.

Earlier in this thread RMS said that it's not acceptable for any
package in Emacs to require cl at runtime:
http://mail.gnu.org/archive/html/emacs-devel/2004-05/msg00506.html

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: VC-SVN problem
  2004-05-10 21:33         ` Jim Blandy
  2004-05-11  7:50           ` John Paul Wallington
@ 2004-05-11 12:23           ` Richard Stallman
  1 sibling, 0 replies; 18+ messages in thread
From: Richard Stallman @ 2004-05-11 12:23 UTC (permalink / raw)
  Cc: kfogel, jpw, emacs-devel

    What do you do if your package actually uses functions from CL, not
    just macros?  Then CL must be loaded at runtime.  Are such packages
    simply unsuitable for inclusion in the Emacs distribution?

They are unsuitable unless they are changed not to use those functions.

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2004-05-11 12:23 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-05-08  1:31 VC-SVN problem Shawn Boyette
2004-05-07 19:58 ` Karl Fogel
2004-05-08  2:26   ` Shawn Boyette
2004-05-09  0:16     ` Karl Fogel
2004-05-09  7:28       ` John Paul Wallington
2004-05-10 21:33         ` Jim Blandy
2004-05-11  7:50           ` John Paul Wallington
2004-05-11 12:23           ` Richard Stallman
2004-05-09  8:10       ` Miles Bader
2004-05-09 13:16       ` Thien-Thi Nguyen
2004-05-09 18:47       ` Richard Stallman
2004-05-09 18:25         ` Karl Fogel
2004-05-09 19:01         ` David Kastrup
2004-05-09 19:11           ` David Kastrup
2004-05-09 10:38   ` Richard Stallman
2004-05-10 18:22   ` Kevin Rodgers
2004-05-10 19:16     ` Stefan Monnier
2004-05-10 21:56       ` Miles Bader

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).