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.
next prev parent 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.