unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#18976: 25.0.50; packages with elisp in subdirectories
@ 2014-11-06 15:15 Tom Tromey
  2014-11-06 23:19 ` Stefan Monnier
  0 siblings, 1 reply; 4+ messages in thread
From: Tom Tromey @ 2014-11-06 15:15 UTC (permalink / raw)
  To: 18976


I'd like to distribute a package that has elisp in a subdirectory of its
top-level directory.  This works reasonably well because
byte-recompile-directory searches subdirectories.

However, autoload cookies aren't extracted from subdirectories, because
update-directory-autoloads doesn't do this same subdir search.

I'd like it if either update-directory-autoloads searched subdirs, or if
package.el did this.




In GNU Emacs 25.0.50.8 (x86_64-unknown-linux-gnu, GTK+ Version 3.10.9)
 of 2014-11-05 on bapiya
Repository revision: 118301 monnier@iro.umontreal.ca-20141106032723-sooywb316jlfcpd9
Windowing system distributor `Fedora Project', version 11.0.11404000
Configured using:
 `configure --prefix=/home/tromey/Emacs/install'

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GCONF GSETTINGS
NOTIFY LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB

Important settings:
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=none
  locale-coding-system: utf-8-unix

Major mode: Emacs-Lisp

Minor modes in effect:
  shell-dirtrack-mode: t
  diff-auto-refine-mode: t
  flyspell-mode: t
  which-function-mode: t
  global-auto-revert-mode: t
  desktop-save-mode: t
  erc-services-mode: t
  erc-list-mode: t
  erc-menu-mode: t
  erc-autojoin-mode: t
  erc-ring-mode: t
  erc-networks-mode: t
  erc-pcomplete-mode: t
  erc-track-mode: t
  erc-match-mode: t
  erc-button-mode: t
  erc-fill-mode: t
  erc-stamp-mode: t
  erc-netsplit-mode: t
  erc-irccontrols-mode: t
  erc-noncommands-mode: t
  erc-move-to-prompt-mode: t
  erc-readonly-mode: t
  savehist-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  auto-fill-function: do-auto-fill

Recent messages:
Quit [2 times]
Composing main Info directory...done
Making completion list...
Found `package' in Index.  (25 total; use `,' for next)
scroll-up-command: End of buffer
Mark saved where search started
Type C-x 1 to delete the help window.
Quit [4 times]
C-h C-g is undefined
Mark saved where search started

Load-path shadows:
/home/tromey/.emacs.d/elpa/css-mode-1.0/css-mode hides /home/tromey/Emacs/install/share/emacs/25.0.50/lisp/textmodes/css-mode
/home/tromey/.emacs.d/elpa/bubbles-0.5/bubbles hides /home/tromey/Emacs/install/share/emacs/25.0.50/lisp/play/bubbles

Features:
(eieio-opt speedbar sb-image ezimage dframe dired-aux log-view pcvs-util
mailalias mail-hist qp gnus-async gnus-ml disp-table gnus-topic nndraft
nnmh nnfolder utf-7 bbdb-gnus bbdb-snarf bbdb-com cl gnutls
network-stream starttls gnus-agent gnus-srvr gnus-score score-mode
nnvirtual gnus-msg nntp gnus-cache gnus-registry registry eieio-base
gnus-art mm-uu mml2015 mm-view mml-smime smime dig mailcap gnus-sum
gnus-group gnus-undo smtpmail gnus-start gnus-cloud nnimap nnmail
mail-source tls utf7 netrc nnoo parse-time gnus-spec gnus-int gnus-range
gnus-win gnus gnus-ems nnheader help-mode shadow sort mail-extr warnings
emacsbug sendmail copyright dabbrev misearch multi-isearch shell message
dired rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse
rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev mail-utils gmm-utils
mailheader make-mode texinfo sh-script smie executable sgml-mode
smerge-mode bug-reference goto-addr add-log cc-mode cc-fonts cc-guess
cc-menus cc-cmds vc-arch vc-mtn vc-hg vc-sccs vc-svn vc-cvs vc-rcs
jka-compr vc-bzr vc-git diff-mode easy-mmode flyspell ispell diminish
projectile edmacro kmacro pkg-info find-func lisp-mnt epl grep compile
dash s appt diary-lib diary-loaddefs cal-menu calendar cal-loaddefs
which-func imenu minimap autorevert filenotify desktop frameset
cus-start cus-load status erc-services erc-list erc-menu erc-join
erc-ring erc-networks erc-pcomplete pcomplete erc-track erc-match
erc-button wid-edit erc-fill erc-stamp erc-netsplit erc-goodies erc
erc-backend erc-compat format-spec auth-source cl-macs gv eieio byte-opt
bytecomp byte-compile cl-extra cconv eieio-core gnus-util mm-util
mail-prsvr password-cache thingatpt pp advice help-fns vc-dir ewoc vc
cl-loaddefs cl-lib vc-dispatcher cc-styles cc-align cc-engine cc-vars
cc-defs bbdb timezone ange-ftp comint ansi-color ring server savehist
dwarf-mode-autoloads gdb-shell-autoloads jabber-autoloads
lisppaste-autoloads pydoc-info-autoloads info-look info easymenu
weblogger-autoloads package epg-config bbdb-autoloads time-date tooltip
eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win
x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list
newcomment elisp-mode lisp-mode prog-mode register page menu-bar
rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax
facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak
czech european ethiopic indian cyrillic chinese case-table epa-hook
jka-cmpr-hook help simple abbrev minibuffer nadvice loaddefs button
faces cus-face macroexp files text-properties overlay sha1 md5 base64
format env code-pages mule custom widget hashtable-print-readable
backquote make-network-process dbusbind gfilenotify dynamic-setting
system-font-setting font-render-setting move-toolbar gtk x-toolkit x
multi-tty emacs)

Memory information:
((conses 16 846607 9297)
 (symbols 48 93597 0)
 (miscs 40 41431 58)
 (strings 32 282218 83799)
 (string-bytes 1 6190492)
 (vectors 16 87065)
 (vector-slots 8 1953907 12954)
 (floats 8 328 389)
 (intervals 56 52032 149)
 (buffers 976 190)
 (heap 1024 100672 2629))

Tom





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

* bug#18976: 25.0.50; packages with elisp in subdirectories
  2014-11-06 15:15 bug#18976: 25.0.50; packages with elisp in subdirectories Tom Tromey
@ 2014-11-06 23:19 ` Stefan Monnier
  2014-11-07 16:32   ` Tom Tromey
  0 siblings, 1 reply; 4+ messages in thread
From: Stefan Monnier @ 2014-11-06 23:19 UTC (permalink / raw)
  To: Tom Tromey; +Cc: 18976

> I'd like to distribute a package that has elisp in a subdirectory of its
> top-level directory.

Why?


        Stefan





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

* bug#18976: 25.0.50; packages with elisp in subdirectories
  2014-11-06 23:19 ` Stefan Monnier
@ 2014-11-07 16:32   ` Tom Tromey
  2014-11-07 19:20     ` Stefan Monnier
  0 siblings, 1 reply; 4+ messages in thread
From: Tom Tromey @ 2014-11-07 16:32 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: Tom Tromey, 18976

>>>>> "Stefan" == Stefan Monnier <monnier@IRO.UMontreal.CA> writes:

>> I'd like to distribute a package that has elisp in a subdirectory of its
>> top-level directory.

Stefan> Why?

I want to have a bunch of sub-features without mangling the names of
every file.  Like (require 'something/sub-feature).

Tom





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

* bug#18976: 25.0.50; packages with elisp in subdirectories
  2014-11-07 16:32   ` Tom Tromey
@ 2014-11-07 19:20     ` Stefan Monnier
  0 siblings, 0 replies; 4+ messages in thread
From: Stefan Monnier @ 2014-11-07 19:20 UTC (permalink / raw)
  To: Tom Tromey; +Cc: 18976

>>> I'd like to distribute a package that has elisp in a subdirectory of its
>>> top-level directory.
Stefan> Why?
> I want to have a bunch of sub-features without mangling the names of
> every file.  Like (require 'something/sub-feature).

Hmm... clearly we could change package.el to search subdirs.  Maybe his
original author could come up with a patch (potentially by changing
update-directory-autoloads, tho such a change should be careful not to
affect existing behavior).

In the mean time, the best I can offer is to use something like

   ;;;###autoload (load "blabla" 'noerror t)
   (eval-when-compile
     (let ((generated-autoload-file "blabla"))
       (update-directory-autoloads "foo")))

in one of the top-level files.  It does have the disadvantage that these
autoloads aren't available during byte-compilation of the files.


        Stefan





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

end of thread, other threads:[~2014-11-07 19:20 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-11-06 15:15 bug#18976: 25.0.50; packages with elisp in subdirectories Tom Tromey
2014-11-06 23:19 ` Stefan Monnier
2014-11-07 16:32   ` Tom Tromey
2014-11-07 19:20     ` Stefan Monnier

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).