Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

el-get-update doesn't update .loaddefs.el #1352

Closed
aspiers opened this issue Aug 30, 2013 · 31 comments · Fixed by #2125
Closed

el-get-update doesn't update .loaddefs.el #1352

aspiers opened this issue Aug 30, 2013 · 31 comments · Fixed by #2125
Labels

Comments

@aspiers
Copy link
Contributor

aspiers commented Aug 30, 2013

If I do M-x el-get-update rinari, the rinari components of ~/.emacs.d/el-get/.loaddefs.el don't get updated. #446, #453, and #543 all look like they might be related, but I'm not sure if this is a duplicate or a separate issue.

@yyr
Copy link
Collaborator

yyr commented Oct 6, 2013

Could you try next branch and see whether the problem still exists. thanks

@aspiers
Copy link
Contributor Author

aspiers commented Oct 7, 2013

I switched to next, ran eval-buffer on the changed files, then M-x el-get-update rinari gave:

Debugger entered--Lisp error: (wrong-type-argument listp "2035265dafd02a1223951ec74309537c")
  time-less-p("2035265dafd02a1223951ec74309537c" (21074 46974))
  update-directory-autoloads("/home/adam/.emacs.d/el-get/rinari")
  mapc(update-directory-autoloads ("/home/adam/.emacs.d/el-get/rinari" "/home/adam/.emacs.d/el-get/rinari/util" "/home/adam/.emacs.d/el-get/rinari/util/jump"))
  (progn (mapc (quote update-directory-autoloads) (remove-if-not (function file-directory-p) (el-get-load-path package))))
  (if (el-get-package-is-installed package) (progn (mapc (quote update-directory-autoloads) (remove-if-not (function file-directory-p) (el-get-load-path package)))))
  (when (el-get-package-is-installed package) (mapc (quote update-directory-autoloads) (remove-if-not (function file-directory-p) (el-get-load-path package))))
  (let (fundamental-mode-hook prog-mode-hook emacs-lisp-mode-hook (generated-autoload-file el-get-autoload-file)) (el-get-ensure-byte-compilable-autoload-file generated-autoload-file) (when (el-get-package-is-installed package) (mapc (quote update-directory-autoloads) (remove-if-not (function file-directory-p) (el-get-load-path package)))) (el-get-save-and-kill el-get-autoload-file) (when (file-exists-p el-get-autoload-file) (message "el-get: byte-compiling autoload file") (when el-get-byte-compile (el-get-byte-compile-file el-get-autoload-file)) (el-get-eval-autoloads)))
  (progn (message "el-get: updating autoloads for %s" package) (let (fundamental-mode-hook prog-mode-hook emacs-lisp-mode-hook (generated-autoload-file el-get-autoload-file)) (el-get-ensure-byte-compilable-autoload-file generated-autoload-file) (when (el-get-package-is-installed package) (mapc (quote update-directory-autoloads) (remove-if-not (function file-directory-p) (el-get-load-path package)))) (el-get-save-and-kill el-get-autoload-file) (when (file-exists-p el-get-autoload-file) (message "el-get: byte-compiling autoload file") (when el-get-byte-compile (el-get-byte-compile-file el-get-autoload-file)) (el-get-eval-autoloads))))
  (if (el-get-want-autoloads-p package) (progn (message "el-get: updating autoloads for %s" package) (let (fundamental-mode-hook prog-mode-hook emacs-lisp-mode-hook (generated-autoload-file el-get-autoload-file)) (el-get-ensure-byte-compilable-autoload-file generated-autoload-file) (when (el-get-package-is-installed package) (mapc (quote update-directory-autoloads) (remove-if-not (function file-directory-p) (el-get-load-path package)))) (el-get-save-and-kill el-get-autoload-file) (when (file-exists-p el-get-autoload-file) (message "el-get: byte-compiling autoload file") (when el-get-byte-compile (el-get-byte-compile-file el-get-autoload-file)) (el-get-eval-autoloads)))))
  (when (el-get-want-autoloads-p package) (message "el-get: updating autoloads for %s" package) (let (fundamental-mode-hook prog-mode-hook emacs-lisp-mode-hook (generated-autoload-file el-get-autoload-file)) (el-get-ensure-byte-compilable-autoload-file generated-autoload-file) (when (el-get-package-is-installed package) (mapc (quote update-directory-autoloads) (remove-if-not (function file-directory-p) (el-get-load-path package)))) (el-get-save-and-kill el-get-autoload-file) (when (file-exists-p el-get-autoload-file) (message "el-get: byte-compiling autoload file") (when el-get-byte-compile (el-get-byte-compile-file el-get-autoload-file)) (el-get-eval-autoloads))))
  el-get-update-autoloads(rinari)
  mapc(el-get-update-autoloads (rinari))
  (let ((packages (if package (list package) (el-get-list-package-names-with-status "installed")))) (mapc (quote el-get-update-autoloads) packages))
  el-get-invalidate-autoloads(rinari)
  (lambda (package) "Function to call after building the package while updating it." (when (string= (el-get-read-package-status package) "required") (el-get-save-package-status package "installed")) (el-get-invalidate-autoloads package) (el-get-do-init package) (el-get-reload package) (run-hook-with-args (quote el-get-post-update-hooks) package))(rinari)
  apply((lambda (package) "Function to call after building the package while updating it." (when (string= (el-get-read-package-status package) "required") (el-get-save-package-status package "installed")) (el-get-invalidate-autoloads package) (el-get-do-init package) (el-get-reload package) (run-hook-with-args (quote el-get-post-update-hooks) package)) rinari)
  (lambda (&rest args) (apply (lambda (package) "Function to call after building the package while updating it." (when (string= (el-get-read-package-status package) "required") (el-get-save-package-status package "installed")) (el-get-invalidate-autoloads package) (el-get-do-init package) (el-get-reload package) (run-hook-with-args (quote el-get-post-update-hooks) package)) args))(rinari)
  byte-code("\306�!\307�\310\"\307�\311\"\307�\312\"\307�\313\"\307�\314\"\307�\315\"\307�\316\"\307�\317\"�����������\211��\320=\204M�\321�!\203C�\322\323 ��\"\210\324\325��
#\210\202S�\326\327��\"\210��\203]�\330��!\210\n\203i�\331\f\n�#\202r�\332�!\205r��\f!. \207" [proc el-get-sources next final-f package errorm process-exit-status process-get :command-name :buffer-name :message :error :el-get-package :el-get-final-func :el-get-start-process-list :el-get-sources 0 process-buffer set-window-buffer selected-window error "el-get: %s %s" message "el-get: %s" kill-buffer el-get-start-process-list functionp cbuf cname status] 12)
  el-get-start-process-list-sentinel(#<process byte-compile> "finished\n")

@npostavs
Copy link
Collaborator

npostavs commented Oct 7, 2013

This could be the same issue as #446, it's at least similar; it almost certainly is not related to #453 (which is now fixed in both master and next).

I switched to next, ran eval-buffer on the changed files,

My first instinct is to say you should reload/recompile everything to be safe, but looking at the backtrace it appears the trouble is in your autoload file that apparently contains a hash where a timestamp was expected.

At any rate, I don't think there is any reason to think this is fixed in next, unfortunately.

@npostavs
Copy link
Collaborator

npostavs commented Oct 8, 2013

your autoload file apparently contains a hash where a timestamp was expected.

Emacs' autoload routines insert md5 hashes under some circumstances (emacs/24.3/lisp/emacs-lisp/autoload.el.gz:559):

                     (if secondary-autoloads-file-buf
                         ;; MD5 checksums are much better
...
                         ;; so we use time-stamps for the main autoloads file
                         ;; (loaddefs.el) where we have special ways to
                         ;; circumvent the "random change problem", and MD5
                         ;; checksum in secondary autoload files where we do
                         ;; not need the time-stamp optimization because it is
                         ;; already provided by the primary autoloads file.

@npostavs
Copy link
Collaborator

Having trouble reproducing this, I tried:

;;; https://github.com/dimitri/el-get/issues/1352
;;; el-get-update doesn't update autoloads in .loaddefs

(el-get-register-method-alias :test :builtin)

(setq
 el-get-verbose t
 el-get-default-process-sync t)

(setq
 el-get-sources
 `((:build
    (("sh" "-c"
      ,(format "echo %s > a.el"
               (shell-quote-argument
                (mapconcat (lambda (x) (prin1-to-string x t))
                           `(,(make-symbol ";;;###autoload")
                             (defun a-utoloaded-func () t)
                             (defun a-nother-func () t)
                             (provide 'a))
                           "\n")))))
    :name a :type test :compile "."
    :autoloads t)))

(el-get 'sync 'a)

;; sanity check
(assert (and (fboundp 'a-utoloaded-func)
             (autoloadp (symbol-function 'a-utoloaded-func))))

;; make a-nother-func also autoloaded
(setq
 el-get-sources
 `((:build
    (("sh" "-c"
      ,(format "echo %s > a.el"
               (shell-quote-argument
                (mapconcat (lambda (x) (prin1-to-string x t))
                           `(,(make-symbol ";;;###autoload")
                             (defun a-utoloaded-func () t)
                             ,(make-symbol ";;;###autoload")
                             (defun a-nother-func () t)
                             (provide 'a))
                           "\n")))))
    :name a :type test :compile "."
    :autoloads t)))

(el-get-update "a")

(assert (and (fboundp 'a-nother-func)
             (autoloadp (symbol-function 'a-nother-func)))
        nil
        "autoloads of `a' didn't get updated")

./run-test.sh 1352 passes.

I also tried

(el-get-register-method-alias :test :builtin)

(setq
 el-get-verbose t
 el-get-default-process-sync t)

(setq el-get-sources
      '((:name rinari :checkout "6e4ed82632fb469a356fcabdd6c980d95c78e545")))

(el-get 'sync 'rinari)

(find-file el-get-autoload-file)
(debug nil "autoloads before rinari update")

(setq el-get-sources
      '((:name rinari :checkout "5dd57827fcb0b1cd456f7f89da281097e9bc6004")))

(el-get-update "rinari")

(find-file el-get-autoload-file)
(debug nil "autoloads after rinari update")

But rinari fails to install, Bundler::GemfileNotFound.

@aspiers
Copy link
Contributor Author

aspiers commented Nov 27, 2013

I can reproduce this via el-get-install of smooth-scrolling (N.B. not smooth-scroll, which is a totally different package), and then el-get-remove of the same package. After removal, .loaddefs.el still contains a load of stuff from the package.

@npostavs
Copy link
Collaborator

After removal, .loaddefs.el still contains a load of stuff from the package.

This sounds like #446 after all, which should now be fixed in master; what's does M-x el-get-version say?

@aspiers
Copy link
Contributor Author

aspiers commented Dec 5, 2013

It says 4.0.7.807a0ca, which already contains the fix for #446.

@npostavs
Copy link
Collaborator

npostavs commented Dec 6, 2013

I can reproduce this via el-get-install of smooth-scrolling (N.B. not smooth-scroll, which is a totally different package), and then el-get-remove of the same package. After removal, .loaddefs.el still contains a load of stuff from the package.

I can't reproduce this. Can you reproduce starting from a fresh installation?

@aspiers
Copy link
Contributor Author

aspiers commented Dec 7, 2013

Yes, I can reproduce this in a fresh user account:

  1. Install el-get via:
(unless (require 'el-get nil 'noerror)
  (with-current-buffer
      (url-retrieve-synchronously
       "https://raw.github.com/dimitri/el-get/master/el-get-install.el")
    (let (el-get-master-branch) ;; ditch this `let' to get stable branch
      (goto-char (point-max))
      (eval-print-last-sexp))))
  1. M-x el-get-install smooth-scrolling <RET>
  2. Note that ~/.emacs.d/el-get/.loaddefs.el has a bunch of smooth-scroll stuff.
  3. M-x el-get-remove smooth-scrolling <RET>
  4. Note that ~/.emacs.d/el-get/.loaddefs.el still has the same smooth-scroll stuff.

@npostavs
Copy link
Collaborator

npostavs commented Dec 8, 2013

Doesn't happen here (using Emacs 24.3), I put the contents of .loaddefs.el at each step in a gist.

What's your Emacs version? (I really should have asked this sooner).

@aspiers
Copy link
Contributor Author

aspiers commented Dec 8, 2013

Hmm, odd. I'm on 24.2.1.

@npostavs
Copy link
Collaborator

Right, #446 is still broken on 24.2, it seems autoload-find-destination decides the section is up to date (related to a change in file-attributes) and doesn't remove it.

@npostavs
Copy link
Collaborator

Having trouble reproducing this, I tried:
./run-test.sh 1352 passes.

It fails with emacs 24.2. This is separate from #446 which should be fixed by #1469.

@npostavs
Copy link
Collaborator

It fails with emacs 24.2.

Oh, it only failed because autoloadp isn't defined in 24.2.

@npostavs
Copy link
Collaborator

The following test fails about 50% of the time for me with 24.2, I think it depends on how fast the code runs. It seems unlikely that this failure could be triggered when running M-x el-get-update "by hand" unless you are using a FAT filesystem where the timestamp resolution is 1 day.

;;; https://github.com/dimitri/el-get/issues/1352
;;; el-get-update doesn't update autoloads in .loaddefs

(require 'autoload)
(unless (fboundp 'autoloadp)
  (defsubst autoloadp (object)
    "Non-nil if OBJECT is an autoload."
    (eq 'autoload (car-safe object))))

(defvar el-get-issue1352-time nil)

(defun el-get-test-install (package url post-install-fun)
  (let ((pdir (el-get-package-directory package)))
    (unless (file-directory-p pdir)
      (make-directory pdir))
    (let ((default-directory pdir))
      (write-region "
;;;###autoload
\(defun a-utoloaded-func () t)
\(defun a-nother-func () t)
\(provide 'a)
" nil "a.el"))
    (funcall post-install-fun package)))

(defun el-get-test-update (package url post-install-fun)
  (let ((pdir (el-get-package-directory package)))
    (unless (file-directory-p pdir)
      (make-directory pdir))
    (let ((default-directory pdir))
      (write-region "
;;;###autoload
\(defun a-utoloaded-func () t)
;;;###autoload
\(defun a-nother-func () t)
\(provide 'a)
" nil "a.el"))
    (funcall post-install-fun package)))

(el-get-register-method :test
  :install #'el-get-test-install
  :update #'el-get-test-update
  :remove #'el-get-rmdir
  :install-hook #'el-get-builtin-install-hook)


(setq
 el-get-sources
 `((:name a :type test :compile "." :autoloads t))
 el-get-default-process-sync t)

(el-get 'sync 'a)

;; sanity check
(assert (and (fboundp 'a-utoloaded-func)
             (autoloadp (symbol-function 'a-utoloaded-func))))
(assert (not (fboundp 'a-nother-func)))

;; make a-nother-func also autoloaded
(el-get-update "a")

(assert (and (fboundp 'a-nother-func)
             (autoloadp (symbol-function 'a-nother-func)))
        nil
        "autoloads of `a' didn't get updated")

@shedatc
Copy link

shedatc commented Mar 8, 2015

It looks like I face this issue with el-get 5.1.9e4f1fa on Emacs 24.4.1. My .loaddefs.el contains MD5 hashes where time structures seems to be expected by update-directory-autoloads. Here is a snippet of my .loaddefs.el:

;;;### (autoloads nil "el-get/el-get-bundle" "../../../../../.emacs.d/el-get/el-get/el-get-bundle.el"
;;;;;;  "5d60bc715094fdbf95965c40aebf6111")
;;; Generated autoloads from ../../../../../.emacs.d/el-get/el-get/el-get-bundle.el

Any hint on what can be done do fix or workaround this?

@npostavs
Copy link
Collaborator

npostavs commented Mar 9, 2015

You can try M-: (el-get-invalidate-autoloads) which will totally regenerate all the autoloads from scratch.

Have you put things in non-standard places? It looks like more than the normal amount of ../

@shedatc
Copy link

shedatc commented Mar 9, 2015 via email

@npostavs
Copy link
Collaborator

~/.emacs.d being a symlink to somewhere else.

Aha. It seems having .loaddefs.el opened via the true name during autoload generation causes the md5 stuff.

$ ls -l .emacs.d
lrwxrwxrwx 1 etest etest 8 Mar  9 20:03 .emacs.d -> emacs-d/
$ emacs -batch -Q -L emacs-d/el-get/el-get/ -l el-get --visit=emacs-d/el-get/.loaddefs.el -f el-get-invalidate-autoloads
el-get: updating autoloads for el-get
Wrote /home/etest/.emacs.d/el-get/.loaddefs.el
~/.emacs.d/el-get/.loaddefs.el and /home/etest/emacs-d/el-get/.loaddefs.el are the same file
File .loaddefs.el changed on disk.  Reread from disk? (yes or no) yes
Generating autoloads for ../../.emacs.d/el-get/el-get/el-get-autoloading.el...
...
~/.emacs.d/el-get/.loaddefs.el and /home/etest/emacs-d/el-get/.loaddefs.el are the same file
Generating autoloads for ../../.emacs.d/el-get/el-get/el-get-bundle.el...done
...
Generating autoloads for ../../.emacs.d/el-get/el-get/el-get-list-packages.el...
~/.emacs.d/el-get/.loaddefs.el and /home/etest/emacs-d/el-get/.loaddefs.el are the same file
Generating autoloads for ../../.emacs.d/el-get/el-get/el-get-list-packages.el...done
...
Generating autoloads for ../../.emacs.d/el-get/el-get/el-get.el...
~/.emacs.d/el-get/.loaddefs.el and /home/etest/emacs-d/el-get/.loaddefs.el are the same file
Generating autoloads for ../../.emacs.d/el-get/el-get/el-get.el...done
Saving file /home/etest/emacs-d/el-get/.loaddefs.el...
Wrote /home/etest/emacs-d/el-get/.loaddefs.el
(No changes need to be saved)
el-get: byte-compiling autoload file
Wrote /home/etest/.emacs.d/el-get/.loaddefs.elc
$ grep -E '[0-9a-f]{32}' emacs-d/el-get/.loaddefs.el
;;;;;;  "08fc70d24fc2dffafa39bf9f7869ccb5")
;;;;;;  "5d60bc715094fdbf95965c40aebf6111")
;;;;;;  "07f410ec5bb8851a065841ab0d1b9875")
$ emacs -batch -Q -L emacs-d/el-get/el-get/ -l el-get -f el-get-invalidate-autoloads
el-get: updating autoloads for el-get
Wrote /home/etest/.emacs.d/el-get/.loaddefs.el
Generating autoloads for el-get/el-get-autoloading.el...
...
Generating autoloads for el-get/el-get.el...done
Saving file /home/etest/.emacs.d/el-get/.loaddefs.el...
Wrote /home/etest/.emacs.d/el-get/.loaddefs.el
(No changes need to be saved)
el-get: byte-compiling autoload file
Wrote /home/etest/.emacs.d/el-get/.loaddefs.elc
$ grep -E '[0-9a-f]{32}' emacs-d/el-get/.loaddefs.el

@shedatc
Copy link

shedatc commented Mar 10, 2015

$ ls -ld .emacs.d
lrwxrwxrwx 1 stephaner stephaner 43 Feb 18 17:04 .emacs.d ->
/home/stephaner/ens/files/emacs/dot.emacs.d
$ emacs -batch -Q -L ens/files/emacs/dot.emacs.d/el-get/el-get -l el-get --visit=ens/files/emacs/dot.emacs.d/el-get/.loaddefs.el -f el-get-invalidate-autoloads; grep -E '[0-9a-f]{32}' ens/files/emacs/dot.emacs.d/el-get/.loaddefs.el | wc -l
...
Wrote /home/stephaner/.emacs.d/el-get/.loaddefs.elc
46
$ emacs -batch -Q -L ens/files/emacs/dot.emacs.d/el-get/el-get -l el-get -f el-get-invalidate-autoloads; grep -E '[0-9a-f]{32}' ens/files/emacs/dot.emacs.d/el-get/.loaddefs.el | wc -l
...
Wrote /home/stephaner/.emacs.d/el-get/.loaddefs.elc
46

And when I run el-get-invalidate-autoloads from my standard session (i.e.,
not with -batch), it automatically visit the .loaddefs.el buffer (this
behaviour seems to comes from el-get-update-autoloads).

What did I miss?

@npostavs
Copy link
Collaborator

What did I miss?

Dang, thought we'd found it. The only remaining difference I can see is packages installed. Can you try that test again with a fresh doc.emacs.d, installing only el-get?

@shedatc
Copy link

shedatc commented Mar 12, 2015

​Here is what I've done:​

$ ls -ld .t_-emacs_
-rw------- 1 stephaner stephaner 0 Mar 12 17:54 .t-emacs.orig
lrwxrwxrwx 1 stephaner stephaner 10 Mar 12 17:59 .t2-emacs.d -> .t-emacs.d
-rw------- 1 stephaner stephaner 44 Mar 12 17:59 .t-emacs
drwx------ 2 stephaner stephaner 4.0K Mar 12 17:59 .t-emacs.d
$ cat .t-emacs
(setq user-emacs-directory "~/.t2-emacs.d")
$ emacs -Q -l ~/.t-emacs

​Then, from emacs, evaluated the elisp necessary to install el-get:

(url-retrieve
"https://raw.githubusercontent.com/dimitri/el-get/master/el-get-install.el"
(lambda (s)
(goto-char (point-max))
(eval-print-last-sexp)))

​And (el-get-invalidate-autoloads). ​The resulting .loaddefs.el do not
contains MD5 checksums:

​$ grep -E '[0-9a-f]{32}' ~/.t-emacs.d/el-get/.loaddefs.el
$ echo $?
1
$ head -n 20 ~/.t-emacs.d/el-get/.loaddefs.el
;;; .loaddefs.el --- automatically extracted autoloads
;;
;;; Code:

;;;### (autoloads (el-get el-get-self-checksum el-get-checksum
el-get-make-recipes
;;;;;; el-get-cd el-get-reinstall el-get-remove el-get-self-update
;;;;;; el-get-update-packages-of-type el-get-update-all el-get-update
;;;;;; el-get-install el-get-version) "el-get/el-get" "el-get/el-get.el"
;;;;;; (21761 50780 371864 505000))
;;; Generated autoloads from el-get/el-get.el

(autoload 'el-get-version "el-get/el-get" "
Message the current el-get version

(fn)" t nil)

(autoload 'el-get-install "el-get/el-get" "
Cause the named PACKAGE to be installed after all of its
dependencies (if any).

​So, in itself, the use of symlinks don't seems to trigger the use of MD5
checksums.​

Sheda

@npostavs
Copy link
Collaborator

​So, in itself, the use of symlinks don't seems to trigger the use of MD5 checksums.​

Hmm, I tried also with a more deeply nested emacs-d, but that doesn't seem to trigger it either. Can you post your .status.el?

@shedatc
Copy link

shedatc commented Mar 13, 2015 via email

@npostavs
Copy link
Collaborator

Here it is.

It doesn't seem to have shown up.

@shedatc
Copy link

shedatc commented Mar 14, 2015

The attachment was probably stripped. Here it is (inline):

((apel status "installed" recipe
(:name apel :website "
http://www.kanji.zinbun.kyoto-u.ac.jp/~tomo/elisp/APEL/" :description "APEL
(A Portable Emacs Library) is a library to support to write portable Emacs
Lisp programs." :type github :pkgname "wanderlust/apel" :build
(mapcar
(lambda
(target)
(list el-get-emacs
(split-string "-batch -q
-no-site-file -l APEL-MK -f")
target "prefix" "site-lisp"
"site-lisp"))
'("compile-apel" "install-apel"))
:load-path
("site-lisp/apel" "site-lisp/emu")))
(bbdb status "installed" recipe
(:name bbdb :website "http://bbdb.sourceforge.net/"
:description "The Insidious Big Brother Database (BBDB) is a contact
management utility." :type git :url "git://git.savannah.nongnu.org/bbdb.git"
:load-path
("./lisp")
:build
`("./autogen.sh" "./configure" "make")
:features bbdb-loaddefs :autoloads nil :info
"doc"))
(bm status "installed" recipe
(:name bm :pkgname "joodland/bm" :website "
http://joodland.github.com/bm/" :type github :description "Visible,
persistent, buffer local, bookmarks"))
(el-get status "installed" recipe
(:name el-get :website "
https://github.com/dimitri/el-get#readme" :description "Manage the external
elisp bits and pieces you depend upon." :type github :branch "master"
:pkgname "dimitri/el-get" :info "." :compile
("el-get.*.el$" "methods/")
:features el-get :post-init
(when
(memq 'el-get
(bound-and-true-p
package-activated-list))
(message "Deleting melpa bootstrap
el-get")
(unless package--initialized
(package-initialize t))
(when
(package-installed-p 'el-get)
(let
((feats
(delete-dups

(el-get-package-features

(el-get-elpa-package-directory 'el-get)))))
(el-get-elpa-delete-package
'el-get)
(dolist
(feat feats)
(unload-feature feat t))))
(require 'el-get))))
(emacs-w3m status "installed" recipe
(:name emacs-w3m :description "A simple Emacs
interface to w3m" :type cvs :website "http://emacs-w3m.namazu.org/" :module
"emacs-w3m" :url ":pserver:anonymous@cvs.namazu.org:/storage/cvsroot" :build
("autoconf" ("./configure" ,(format "--with-emacs=%s" el-get-emacs)) "make") :build/windows-nt (("sh" "./autogen.sh") ("sh" "./configure") "make") :info "doc")) (flim status "installed" recipe (:name flim :description "A library to provide basic features about message representation or encoding" :depends apel :type github :branch "flim-1_14-wl" :pkgname "wanderlust/flim" :build (mapcar (lambda (target) (list el-get-emacs (mapcar (lambda (pkg) (mapcar (lambda (d) ("-L" ,d))
(el-get-load-path
pkg)))
'("apel"))
(split-string "-batch -q
-no-site-file -l FLIM-MK -f")
target "prefix" "site-lisp"
"site-lisp"))
'("compile-flim" "install-flim"))
:load-path
("site-lisp/flim")))
(markdown-mode status "installed" recipe
(:name markdown-mode :description "Major
mode to edit Markdown files in Emacs" :website "
http://jblevins.org/projects/markdown-mode/" :type git :url "git://
jblevins.org/git/markdown-mode.git" :prepare
(add-to-list 'auto-mode-alist

'(".(md|mdown|markdown)'" . markdown-mode))))
(pretty-mode status "installed" recipe
(:name pretty-mode :description "Redisplay
parts of the buffer as pretty symbols" :type emacswiki :features
"pretty-mode"))
(semi status "installed" recipe
(:name semi :description "SEMI is a library to provide MIME
feature for GNU Emacs." :depends flim :type github :branch "semi-1_14-wl"
:pkgname "wanderlust/semi" :build
(mapcar
(lambda
(target)
(list el-get-emacs
(mapcar
(lambda
(pkg)
(mapcar
(lambda
(d)
("-L" ,d)) (el-get-load-path pkg))) '("apel" "flim")) (split-string "-batch -q -no-site-file -l SEMI-MK -f") target "prefix" "site-lisp" "site-lisp")) '("compile-semi" "install-semi")) :load-path ("site-lisp/semi/"))) (wanderlust status "installed" recipe (:name wanderlust :description "Wanderlust bootstrap." :depends semi :type github :pkgname "wanderlust/wanderlust" :build (mapcar (lambda (target-and-dirs) (list el-get-emacs (mapcar (lambda (pkg) (mapcar (lambda (d) ("-L"
,d))

(el-get-load-path pkg)))
(append
'("apel"
"flim" "semi")
(when

(el-get-package-exists-p "bbdb")
(list
"bbdb"))))
"--eval"

(el-get-print-to-string
'(progn
(setq
wl-install-utils t)
(setq
wl-info-lang "en")
(setq
wl-news-lang "en")))
(split-string
"-batch -q -no-site-file -l WL-MK -f")
target-and-dirs))
'(("wl-texinfo-format" "doc")
("compile-wl-package"
"site-lisp" "icons")
("install-wl-package"
"site-lisp" "icons")))
:info "doc/wl.info" :load-path
("site-lisp/wl" "utils")
:post-init
(progn
(setq wl-icon-directory
(expand-file-name
"etc/icons" default-directory))))))

On Fri, Mar 13, 2015 at 2:35 PM, Noam Postavsky notifications@github.com
wrote:

Here it is.

It doesn't seem to have shown up.


Reply to this email directly or view it on GitHub
#1352 (comment).

@npostavs
Copy link
Collaborator

So I'm still not able to reproduce your results. #2125 should fix the visited-via-truename-problem I found earlier. If that doesn't also solve your problem, post the *trace-output* buffer after evaluating:

(require 'trace)
(mapc #'trace-function-background
      '( ;;make-autoload
        autoload-find-generated-file
        autoload-generated-file
        autoload-read-section-header
        ;;autoload-print-form
        autoload-rubric
        autoload-ensure-default-file
        autoload-insert-section-header
        autoload-find-file
        autoload-file-load-name
        generate-file-autoloads
        autoload--setup-output
        autoload--print-cookie-text
        autoload-generate-file-autoloads
        autoload-save-buffers
        update-file-autoloads
        autoload-find-destination
        autoload-remove-section
        update-directory-autoloads
        update-autoloads-from-directories
        batch-update-autoloads))
(el-get-invalidate-autoloads)

@shedatc
Copy link

shedatc commented Mar 17, 2015

I replaced el-get-autoloading.el with the on found here: https://raw.githubusercontent.com/npostavs/el-get/a9ad872de9218d02a4d56970eea11b14ab4368c1/el-get-autoloading.el

It doesn't solve my problem. Here is the requested trace output: http://s000.tinyupload.com/?file_id=90641875488802788668

@npostavs
Copy link
Collaborator

Here is the requested trace output

Thanks, I think can see the problem. Do you have find-file-visit-truename set to t in your config? I've added another commit to #2125 to deal with this.

Although, maybe there's also something else because you reported problems even with emacs -batch -Q...

I replaced el-get-autoloading.el

Did you also take care of the stale elc?


$ emacs -batch -Q -L a/b/c/emacs-d/el-get/el-get/ -l el-get --eval '(setq find-file-visit-truename t)'  -f el-get-invalidate-autoloads
el-get: updating autoloads for apel
...
~/.emacs.d/el-get/.loaddefs.el and /home/etest/a/b/c/emacs-d/el-get/.loaddefs.el are the same file
Wrong type argument: listp, "8e5644b079ecfef02aa1caf5969e29f8"

@npostavs
Copy link
Collaborator

I've merge #2125, hopefully this fixes all problems, please report if otherwise.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants