all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Stefan Monnier <monnier@iro.umontreal.ca>
To: Daniel Hackney <dan@haxney.org>
Cc: Chong Yidong <cyd@gnu.org>, emacs-devel@gnu.org
Subject: Re: [PATCH] Re: package.el changes before the feature freeze
Date: Fri, 05 Oct 2012 21:38:47 -0400	[thread overview]
Message-ID: <jwvzk401jk4.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <CAMqXDZsRuoJmKveAaE2K0szntaNDyOEjDves7Te-vSj-iRBB9A@mail.gmail.com> (Daniel Hackney's message of "Fri, 5 Oct 2012 19:13:31 -0400")

I haven't read the whole patch, but here are some nitpicks.
The general idea looks fine, tho.  We'd need a ChangeLog with that,
it should describe the changes that are neither cosmetic nor simple
adjustments to the use of defstruct.


        Stefan


> +Slots:
> +
> +`:name'
> +Name of the package, as a symbol.
> +
> +`:version'
> +Version of the package, as a version list.
> +
> +`:summary'
> +Short description of the package, typically taken from the first
> +line of the file.
> +
> +`:reqs'
> +Requirements of the package. A list of (PACKAGE VERSION-LIST)
> +naming the dependent package and the minimum required version.
> +
> +`:kind'
> +The distribution format of the package. Currently, it is either
> +`single' or `tar'.
> +
> +`:archive'
> +The name of the archive (as a string) whence this package came."
> +
> +	      name
> +	      version
> +	      (summary "No description available.")
> +	      reqs
> +	      kind
> +	      archive)

Nitpick: the fields of the struct (which you can call "slots" if you
prefer, of course) don't have a ":" in front of their name.
[ I'd also prefer using fewer lines in the docstring, so the whole
  definition can hopefully fit within a tall-but-split frame.  ]

> -(defun package-activate-1 (package pkg-vec)
> -  (let* ((name (symbol-name package))
> -	 (version-str (package-version-join (package-desc-vers pkg-vec)))
> +(defun package-activate-1 (pkg-desc)
> +  (let* ((name (package-desc-name pkg-desc))
> +	 (version-str (package-version-join (package-desc-version pkg-desc)))
>  	 (pkg-dir (package--dir name version-str)))

Hmm... `name' in the new code is now a symbol whereas it was a string in
the old code.  Is that right?

> -    (load (expand-file-name (concat name "-autoloads") pkg-dir) nil t)
> +    (load (expand-file-name (concat (symbol-name name) "-autoloads")
> pkg-dir) nil t)

You can use (format "%s-autoloads" name) to make it work equally with
strings and symbols.

> +		(apply 'define-package-desc

BTW,please stick to the "package-" prefix.

> +		       name-string
> +		       version-string
> +		       summary
> +		       requirements
> +		       _extra-properties)))

Obviously you haven't played with lexical-binding yet, but the "leading
underscore" is used to denote variables/arguments that are not used, so
the above use of _extra-properties indicates that it should be named
`extra-properties' instead.

> -      (package-unpack name version))))
> +      (package-unpack (symbol-name name) version))))

All those make me wonder: do we need the `name' slot to be symbol?
Why not let it be a string?

> +	  (make-package-desc :name name

I know it's the default, but I also prefer not to use the "make-" prefix
and use "package-" as the prefix instead.



  reply	other threads:[~2012-10-06  1:38 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-30 16:58 package.el changes before the feature freeze Daniel Hackney
2012-09-30 20:21 ` Stefan Monnier
2012-09-30 23:50   ` Daniel Hackney
2012-10-01  1:21     ` Stefan Monnier
2012-10-01  3:11 ` Chong Yidong
2012-10-03  0:33   ` Daniel Hackney
2012-10-03 22:41   ` [PATCH] " Daniel Hackney
2012-10-04  8:16     ` Chong Yidong
2012-10-05 23:13       ` Daniel Hackney
2012-10-06  1:38         ` Stefan Monnier [this message]
2012-10-08  2:32           ` Chong Yidong
2012-10-08 19:16           ` Daniel Hackney
2012-10-08 19:50             ` Stefan Monnier
2012-10-09  1:11               ` Daniel Hackney
2012-10-09  6:48                 ` Stefan Monnier
2012-10-09 17:07                   ` Daniel Hackney
2012-10-09 17:39                     ` Stefan Monnier
2012-10-09 21:39                       ` Daniel Hackney
2012-10-09 22:25                         ` Glenn Morris
2012-10-12  3:58                         ` Chong Yidong

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=jwvzk401jk4.fsf-monnier+emacs@gnu.org \
    --to=monnier@iro.umontreal.ca \
    --cc=cyd@gnu.org \
    --cc=dan@haxney.org \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.