GNU bug report logs - #20141
25.0.50; Helm is broken after last changes in eieio

Previous Next

Package: emacs;

Reported by: Thierry Volpiatto <thierry.volpiatto <at> gmail.com>

Date: Thu, 19 Mar 2015 05:19:01 UTC

Severity: normal

Done: Stefan Monnier <monnier <at> IRO.UMontreal.CA>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 20141 in the body.
You can then email your comments to 20141 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#20141; Package emacs. (Thu, 19 Mar 2015 05:19:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Thierry Volpiatto <thierry.volpiatto <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Thu, 19 Mar 2015 05:19:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Thierry Volpiatto <thierry.volpiatto <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 24.4.91; Helm is broken after last changes in eieio
Date: Thu, 19 Mar 2015 06:17:42 +0100
Hi,

After commit 50c117f in emacs-25, helm is broken,
works fine otherwise in prior versions and emacs-24 of course.

https://github.com/emacs-helm/helm/issues/930




In GNU Emacs 24.4.91.1 (x86_64-unknown-linux-gnu, X toolkit)
 of 2015-03-12 on dell-14z
Repository revision: b21a56ac91e39e75051ad07bb608c39af057adee
Windowing system distributor `The X.Org Foundation', version 11.0.11501000
System Description:	Ubuntu 14.04.2 LTS

Configured using:
 `configure --with-x-toolkit=lucid --without-toolkit-scroll-bars
 --without-gconf --without-gsettings'

Important settings:
  value of $LANG: fr_FR.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Emacs-Lisp

Minor modes in effect:
  git-gutter-mode: t
  psession-mode: t
  golden-ratio-mode: t
  winner-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: ti
  auto-image-file-mode: t
  eldoc-in-minibuffer-mode: t
  show-paren-mode: t
  display-time-mode: t
  recentf-mode: t
  savehist-mode: t
  eldoc-mode: t
  minibuffer-depth-indicate-mode: t
  helm-descbinds-mode: t
  helm-mode: t
  shell-dirtrack-mode: t
  helm-adaptive-mode: t
  helm-autoresize-mode: t
  tooltip-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
  transient-mark-mode: t

Recent messages:
[mu4e] Found 25 matching messages
(New file)
Mark set [2 times]
Parsing /home/thierry/.mailrc... done
Loading /home/thierry/.emacs.d/.gnus.el (source)...done
Mark set
Auto-saving...done
Buffer Re: [helm] helm broken on E... has shrunk a lot; auto save disabled in that buffer until next real save
Message modified; kill anyway? (y or n) y
user-error: No further undo information

Load-path shadows:
/home/thierry/.emacs.d/elpa/emms-20150316.1858/tq hides /usr/local/share/emacs/24.4.91/lisp/emacs-lisp/tq
~/elisp/auctex/lpath hides ~/elisp/emacs-wget/lpath

Features:
(shadow emacsbug helm-command helm-elisp helm-eval epa-mail smiley
gnus-art mm-uu mml2015 mm-view mml-smime smime dig w3m-form mule-util
conf-mode vc-rcs sh-script smie executable sgml-mode markdown-mode
vc-git naquadah-theme em-unix em-script em-prompt em-ls em-hist em-pred
em-glob em-dirs em-cmpl em-basic em-banner em-alias align-let git-gutter
server psession golden-ratio winner undo-tree diff slime-xref-browser
slime-banner slime-tramp slime-asdf slime-fancy slime-trace-dialog
slime-fontifying-fu slime-package-fu slime-references
slime-compiler-notes-tree slime-scratch slime-presentations bridge
slime-fuzzy slime-fancy-trace slime-fancy-inspector slime-c-p-c
slime-editing-commands slime-autodoc slime-repl slime-parse slime etags
arc-mode archive-mode image-file xdvi-search preview-latex tex-site
auto-loads pcomplete-extension pcmpl-unix pcmpl-gnu em-term term
disp-table ehelp python eldoc-eval warnings whitespace paren time
recentf tree-widget savehist mu4e-config org-mu4e helm-mu mu4e-contrib
mu4e mu4e-speedbar speedbar sb-image ezimage dframe mu4e-main mu4e-view
mu4e-headers mu4e-compose mu4e-draft mu4e-actions ido rfc2368 mu4e-mark
mu4e-message html2text mu4e-proc mu4e-utils mu4e-lists mu4e-about
mu4e-vars hl-line mu4e-meta gnus-dired nnir gnus-sum gnus-group
gnus-undo nnmail mail-source gnus-start gnus-spec gnus-int gnus-range
gnus-win nnoo config-w3m w3m-search w3m doc-view jka-compr image-mode
timezone w3m-hist w3m-fb bookmark-w3m w3m-ems w3m-ccl ccl w3m-favicon
w3m-image w3m-proc w3m-util smtpmail-async smtpmail sendmail dired-async
iterator lacarte iedit-rect iedit iedit-lib smallurl mm-url gnus
gnus-ems nnheader wid-edit rectangle-utils rect ledger-config ledger
esh-var esh-io esh-cmd esh-opt esh-ext esh-proc eldoc esh-groups eshell
esh-module esh-mode esh-arg esh-util tv-utils pcvs vc-cvs pcvs-parse
pcvs-info pcvs-defs pcvs-util ewoc mb-depth cl-info hyperspec esh-toggle
flymake no-word htmlize cl dired-extension emms-vlc-config
emms-librefm-stream emms-librefm-scrobbler emms-playlist-limit
emms-volume emms-volume-amixer emms-i18n emms-history emms-score
emms-stream-info emms-metaplaylist-mode emms-bookmarks emms-cue
emms-mode-line-icon emms-browser sort emms-playlist-sort
emms-last-played emms-player-xine emms-player-mpd tq emms-playing-time
emms-lyrics emms-url emms-tag-editor emms-mark emms-mode-line emms-cache
emms-info-ogginfo emms-info-mp3info emms-playlist-mode emms-player-vlc
emms-player-mplayer emms-info emms-streams later-do emms-source-playlist
emms-source-file locate emms-player-simple emms-setup emms emms-compat
org-config-thierry ob-sh org-crypt appt diary-lib diary-loaddefs
org-annotation-helper addressbook-bookmark message rfc822 mml mml-sec
mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045
ietf-drums mailabbrev mail-utils gmm-utils mailheader
bookmark-firefox-handler bookmark-extensions init-helm-thierry
helm-descbinds helm-extensions-autoloads helm-mode helm-files
image-dired tramp tramp-compat tramp-loaddefs trampver shell dired-x
dired-aux ffap thingatpt helm-buffers helm-elscreen helm-tags
helm-bookmark helm-adaptive helm-info bookmark pp helm-locate helm-help
helm-org org-location-google-maps org-agenda google-maps
google-maps-static google-maps-geocode google-maps-base json org
org-macro org-footnote org-pcomplete pcomplete org-list org-faces
org-entities noutline outline org-version ob-emacs-lisp ob ob-tangle
ob-ref ob-lob ob-table ob-exp org-src ob-keys ob-comint ob-core ob-eval
org-compat org-macs org-loaddefs format-spec find-func cal-menu calendar
cal-loaddefs helm-match-plugin helm-grep wgrep-helm wgrep helm-regexp
helm-plugin grep helm-external helm-net browse-url xml url url-proxy
url-privacy url-expand url-methods url-history url-cookie url-domsuf
url-util url-parse url-vars mailcap helm-utils dired compile comint
ansi-color ring helm easy-mmode helm-source helm-config helm-autoloads
async-bytecomp async helm-aliases epa-file epa derived epg auth-source
eieio byte-opt bytecomp byte-compile cl-extra cconv eieio-core gnus-util
mm-util mail-prsvr password-cache cl-macs gv slime-autoloads package
epg-config time-date avoid cus-start cus-load w3m-wget info easymenu
edmacro kmacro advice help-fns net-utils cl-loaddefs cl-lib tooltip
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
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 font-render-setting x-toolkit x
multi-tty emacs)

Memory information:
((conses 16 517106 41396)
 (symbols 48 59342 0)
 (miscs 40 490 829)
 (strings 32 151152 16093)
 (string-bytes 1 4431487)
 (vectors 16 59814)
 (vector-slots 8 1657069 16924)
 (floats 8 1713 370)
 (intervals 56 3220 71)
 (buffers 960 124)
 (heap 1024 57235 3437))
-- 
Thierry
Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997 




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#20141; Package emacs. (Thu, 19 Mar 2015 06:06:02 GMT) Full text and rfc822 format available.

Message #8 received at 20141 <at> debbugs.gnu.org (full text, mbox):

From: Ivan Shmakov <ivan <at> siamics.net>
To: 20141 <at> debbugs.gnu.org
Subject: Re: bug#20141: 24.4.91; Helm is broken after last changes in eieio 
Date: Thu, 19 Mar 2015 06:05:32 +0000
[Message part 1 (text/plain, inline)]
>>>>> Thierry Volpiatto <thierry.volpiatto <at> gmail.com> writes:
>>>>> "mh" == michael-heerdegen opened this Issue Mar 19, 2015

 > After commit 50c117f in emacs-25, helm is broken, works fine
 > otherwise in prior versions and emacs-24 of course.

 > https://github.com/emacs-helm/helm/issues/930

 mh> emacs -Q -batch -L . -f batch-byte-compile helm-adaptive.el
 mh> helm-aliases.el helm-apt.el helm-autoloads.el helm-bookmark.el
 mh> helm-buffers.el helm-color.el helm-command.el helm-config.el
 mh> helm-dabbrev.el helm-elisp-package.el helm-elisp.el
 mh> helm-elscreen.el helm-eshell.el helm-eval.el helm-external.el
 mh> helm-files.el helm-font.el helm-grep.el helm-help.el helm-imenu.el
 mh> helm-info.el helm-locate.el helm-man.el helm-match-plugin.el
 mh> helm-misc.el helm-mode.el helm-net.el helm-org.el helm-pkg.el
 mh> helm-plugin.el helm-regexp.el helm-ring.el helm-semantic.el
 mh> helm-source.el helm-sys.el helm-tags.el helm-utils.el helm.el

 mh> In toplevel form:

 mh> helm-bookmark.el:23:1:Error: Wrong type argument: symbol,
 mh> [cl-struct-cl-slot-descriptor name nil t ((:documentation . "  The
 mh> name of the source.

	Frankly, I wasn’t even able to build Emacs as of 8dfff871bdf0
	(2015-03-18 14:49:55Z), although the error for me is different
	(MIMEd.  Please note that I do not bootstrap – I /always/ build
	in a freshly created build directory; lndir-ed.)  Going two
	commits back (to fd93edbb1cab) resolved the issue.

-- 
FSF associate member #7257  http://boycottsystemd.org/  … 3013 B6A0 230E 334A
[Message part 2 (text/plain, inline)]
make -C ../admin/grammars all EMACS="../../src/emacs"
make[2]: Entering directory '/home/private/users/ivan/devel/emacs-2015-03-18-build/admin/grammars'
[ ! -f "../../lisp/cedet/semantic/bovine/c-by.el" ] || chmod +w "../../lisp/cedet/semantic/bovine/c-by.el"
EMACSLOADPATH= "../../src/emacs" -batch --no-site-file --no-site-lisp -l semantic/bovine/grammar -f bovine-batch-make-parser -o "../../lisp/cedet/semantic/bovine/c-by.el" c.by
../../lisp/emacs-lisp/eieio.el: `eieio-object-name-string' is an obsolete generic function (as of 25.1); use `eieio-named' instead.
Attempt to modify read-only object: []
Makefile:84: recipe for target '../../lisp/cedet/semantic/bovine/c-by.el' failed
make[2]: *** [../../lisp/cedet/semantic/bovine/c-by.el] Error 255
make[2]: Leaving directory '/home/private/users/ivan/devel/emacs-2015-03-18-build/admin/grammars'
Makefile:338: recipe for target 'semantic' failed

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#20141; Package emacs. (Thu, 19 Mar 2015 06:12:02 GMT) Full text and rfc822 format available.

Message #11 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Thierry Volpiatto <thierry.volpiatto <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: Re: bug#20141: 24.4.91; Helm is broken after last changes in eieio
Date: Thu, 19 Mar 2015 07:11:08 +0100
Thierry Volpiatto <thierry.volpiatto <at> gmail.com> writes:

> Hi,
>
> After commit 50c117f in emacs-25, helm is broken,
> works fine otherwise in prior versions and emacs-24 of course.
>
> https://github.com/emacs-helm/helm/issues/930

The issue is now fixed by using `set-slot-value' instead of `oset', so I
guess `oset' is broken.

-- 
Thierry
Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997 





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#20141; Package emacs. (Thu, 19 Mar 2015 06:16:01 GMT) Full text and rfc822 format available.

Message #14 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Thierry Volpiatto <thierry.volpiatto <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: Re: bug#20141: 24.4.91; Helm is broken after last changes in eieio
Date: Thu, 19 Mar 2015 07:12:14 +0100
Ivan Shmakov <ivan <at> siamics.net> writes:

>
> 	Frankly, I wasn’t even able to build Emacs as of 8dfff871bdf0
> 	(2015-03-18 14:49:55Z), although the error for me is different
> 	(MIMEd.  Please note that I do not bootstrap – I /always/ build
> 	in a freshly created build directory; lndir-ed.)  Going two
> 	commits back (to fd93edbb1cab) resolved the issue.

Building fine for me even without bootstrapping.

-- 
Thierry
Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997 





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#20141; Package emacs. (Thu, 19 Mar 2015 06:54:01 GMT) Full text and rfc822 format available.

Message #17 received at 20141 <at> debbugs.gnu.org (full text, mbox):

From: Tassilo Horn <tsdh <at> gnu.org>
To: Thierry Volpiatto <thierry.volpiatto <at> gmail.com>
Cc: 20141 <at> debbugs.gnu.org
Subject: Re: bug#20141: 24.4.91; Helm is broken after last changes in eieio
Date: Thu, 19 Mar 2015 07:53:21 +0100
Thierry Volpiatto <thierry.volpiatto <at> gmail.com> writes:

Hi Tierry,

>> After commit 50c117f in emacs-25, helm is broken,
>> works fine otherwise in prior versions and emacs-24 of course.
>>
>> https://github.com/emacs-helm/helm/issues/930
>
> The issue is now fixed by using `set-slot-value' instead of `oset', so
> I guess `oset' is broken.

No, that doesn't help neither me nor Michael Heerdegen.

Bye,
Tassilo




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#20141; Package emacs. (Thu, 19 Mar 2015 06:56:01 GMT) Full text and rfc822 format available.

Message #20 received at 20141 <at> debbugs.gnu.org (full text, mbox):

From: Tassilo Horn <tsdh <at> gnu.org>
To: Thierry Volpiatto <thierry.volpiatto <at> gmail.com>
Cc: 20141 <at> debbugs.gnu.org
Subject: Re: bug#20141: 24.4.91; Helm is broken after last changes in eieio
Date: Thu, 19 Mar 2015 07:55:21 +0100
Hi all,

Helm is not the only package that's broken by the latest eieio changes.
Another one is yasnippet.  Here I get this error:

--8<---------------cut here---------------start------------->8---
Debugger entered--Lisp error: (wrong-type-argument integerp nil)
  yas--populate-template([cl-struct-yas--template nil nil nil nil nil nil nil nil nil nil nil nil] :table [cl-struct-yas--table "haskell-mode" #s(hash-table size 65 test equal rehash-size 1.5 rehash-threshold 0.8 data ( ...)) #s(hash-table size 65 test equal rehash-size 1.5 rehash-threshold 0.8 data ( ...)) nil (keymap)] :key "new" :content "newtype ${1:Type} = $1 { un$1 :: ${2:a} } ${3:deriving (${4:Show, Eq})}" :name "newtype" :group nil :condition (= (length "new") (current-column)) :expand-env nil :file "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/newtype" :keybinding nil :uuid "newtype")
  yas--define-snippets-1(("new" "newtype ${1:Type} = $1 { un$1 :: ${2:a} } ${3:deriving (${4:Show, Eq})}" "newtype" (= (length "new") (current-column)) nil nil "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/newtype" nil nil) [cl-struct-yas--table "haskell-mode" #s(hash-table size 65 test equal rehash-size 1.5 rehash-threshold 0.8 data ( ...)) #s(hash-table size 65 test equal rehash-size 1.5 rehash-threshold 0.8 data ( ...)) nil (keymap)])
  yas-define-snippets(haskell-mode (("new" "newtype ${1:Type} = $1 { un$1 :: ${2:a} } ${3:deriving (${4:Show, Eq})}" "newtype" (= (length "new") (current-column)) nil nil "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/newtype" nil nil) ("mod" "module ${1:`(if (not buffer-file-name) \"Module\"\n                (let ((name (file-name-sans-extension (buffer-file-name))))\n                     (if (search \"src/\" name)\n                         (replace-regexp-in-string \"/\" \".\" (car (last (split-string name \"src/\"))))\n                         (file-name-nondirectory name))))`}\n    ( ${3:export}\n    ${4:, ${5:export}}\n    ) where\n\n$0" "exports module" (= (length "mod") (current-column)) nil ((yas-indent-line (quote fixed))) "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/module.exports" nil nil) ("mod" "module ${1:`(if (not buffer-file-name) \"Module\"\n                (let ((name (file-name-sans-extension (buffer-file-name))))\n                     (if (search \"src/\" name)\n                         (replace-regexp-in-string \"/\" \".\" (car (last (split-string name \"src/\"))))\n                         (file-name-nondirectory name))))`} where\n\n$0" "simple module" (= (length "mod") (current-column)) nil ((yas-indent-line (quote fixed))) "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/module" nil nil) ("main" "module Main where\n\nmain :: IO ()\nmain = do\n  ${1:undefined}$0\n  return ()" "main module" (= (length "main") (current-column)) nil ((yas-indent-line (quote fixed))) "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/main" nil nil) ("let" "let ${1:x} = ${2:undefined}$0" "let" nil nil nil "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/let" nil nil) ("lang" "{-# LANGUAGE `(progn (require 'haskell-yas) (haskell-yas-complete \"Extension: \" haskell-yas-ghc-language-pragmas))` #-}" "language pragma" (= (length "lang") (current-column)) nil nil "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/lang-pragma" nil nil) ("\\" "\\\\${1:x} -> ${2:undefined}$0" "lambda" nil nil nil "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/lambda" nil nil) ("inst" "instance ${1:Class} ${2:Data} where\n    ${3:f} = ${4:undefined}$0" "instance" (= (length "inst") (current-column)) nil nil "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/instance" nil nil) ("imp" "import qualified ${1:Module} as ${2:${1:$(let ((name (car (last (split-string yas-text \"\\\\\\.\")))))\n                                              (if (= 0 (length name)) \"\"\n                                                  (subseq name 0 1)))}}$0" "qualified import" (= (length "imp") (current-column)) nil nil "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/import.qualified" nil nil) ("imp" "import           ${1:Module} ${2:(${3:f})}" "simple import" (= (length "imp") (current-column)) nil nil "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/import" nil nil) ("if" "if ${1:condition} then ${2:undefined} else ${3:undefined}$0" "inline if" nil nil nil "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/if.inline" nil nil) ("if" "if ${1:condition}\n    then ${2:undefined}\n    else ${3:undefined}$0" "block if" nil nil nil "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/if.block" nil nil) ("<-" "${1:x} <- ${2:undefined}$0" "monadic get" nil nil nil "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/get" nil nil) ("fn" "${1:f} :: ${2:a} ${3:-> ${4:b}}\n$1 ${5:x}\n    | ${6:conditional} = ${8:undefined}\n    | ${7:conditional} = ${9:undefined}$0" "guarded function" (= (length "fn") (current-column)) nil ((yas-indent-line (quote fixed))) "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/fn.guarded" nil nil) ("fn" "${1:f} :: ${2:a} ${3:-> ${4:b}}\n$1 ${5:pattern} = ${7:undefined}\n$1 ${6:pattern} = ${8:undefined}$0" "clause function" (= (length "fn") (current-column)) nil ((yas-indent-line (quote fixed))) "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/fn.clause" nil nil) ("fn" "${1:f} :: ${2:a} ${3:-> ${4:b}}\n$1 ${5:x} = ${6:undefined}$0" "simple function" (= (length "fn") (current-column)) nil ((yas-indent-line (quote fixed))) "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/fn" nil nil) ("data" "data ${1:Type} = $1\n    { ${2:field} :: ${3:Type}\n    , ${4:field} :: ${5:Type}$0\n    } ${6:deriving (${7:Show, Eq})}" "record data" (= (length "data") (current-column)) nil nil "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/data.record" nil nil) ("data" "data ${1:Type} = ${2:Data}$0 ${3:deriving (${4:Show, Eq})}" "inline data" (= (length "data") (current-column)) nil nil "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/data.inline" nil nil) ("=>" "(${1:Class} ${2:m}) => $0" "Type constraint" nil nil nil "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/constraint" nil nil) ("{-" "{- $0 -}" "block comment" nil nil nil "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/comment.block" nil nil) ("case" "case ${1:x} of\n    ${2:Data} -> ${4:undefined}\n    ${3:Data} -> ${5:undefined}$0" "case" nil nil ((yas-indent-line (quote fixed))) "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/case" nil nil)))
  yas--load-directory-2("/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode" haskell-mode)
  yas--load-directory-1("/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode" haskell-mode)
  (lambda nil (yas--load-directory-1 (quote "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode") (quote haskell-mode)))()
  yas-load-directory("/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets")
  haskell-snippets-initialize()
  (lambda nil (haskell-snippets-initialize))()
  eval-after-load(yasnippet (lambda nil (haskell-snippets-initialize)))
  eval-buffer(#<buffer  *load*-512321> nil "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/haskell-yas.el" nil t)  ; Reading at buffer position 2269
  load-with-code-conversion("/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/haskell-yas.el" "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/haskell-yas.el" nil t)
  (haskell-snippets-initialize)
  (lambda nil (haskell-snippets-initialize))()
  #:eval-after-load-helper("/home/horn/.emacs.d/elpa/yasnippet-20150318.348/yasnippet.elc")
  run-hook-with-args(#:eval-after-load-helper "/home/horn/.emacs.d/elpa/yasnippet-20150318.348/yasnippet.elc")
  do-after-load-evaluation("/home/horn/.emacs.d/elpa/yasnippet-20150318.348/yasnippet.elc")
  require(yasnippet)
  eval-buffer(#<buffer  *load*> nil "/home/horn/.emacs" nil t)  ; Reading at buffer position 33559
  load-with-code-conversion("/home/horn/.emacs" "/home/horn/.emacs" t t)
  load("~/.emacs" t t)
--8<---------------cut here---------------end--------------->8---

Bye,
Tassilo




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#20141; Package emacs. (Thu, 19 Mar 2015 07:20:02 GMT) Full text and rfc822 format available.

Message #23 received at 20141 <at> debbugs.gnu.org (full text, mbox):

From: Michael Heerdegen <michael_heerdegen <at> web.de>
To: Tassilo Horn <tsdh <at> gnu.org>
Cc: 20141 <at> debbugs.gnu.org, Thierry Volpiatto <thierry.volpiatto <at> gmail.com>
Subject: Re: bug#20141: 24.4.91; Helm is broken after last changes in eieio
Date: Thu, 19 Mar 2015 08:19:08 +0100
Tassilo Horn <tsdh <at> gnu.org> writes:

> No, that doesn't help neither me nor Michael Heerdegen.

It seems that `eieio-class-slots' (and thus `object-slots') is broken.

Try

--8<---------------cut here---------------start------------->8---
(defclass helm-source ()
  ((name
    :initarg :name
    :initform nil
   (header-name
    :initarg :header-name)))
   
  "Main interface to define helm sources."
  :abstract t)

(eieio-class-slots 'helm-source)
--8<---------------cut here---------------end--------------->8---

Until today it returned (name), now, you get

([cl-struct-cl-slot-descriptor name nil t nil])


Michael.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#20141; Package emacs. (Thu, 19 Mar 2015 07:21:02 GMT) Full text and rfc822 format available.

Message #26 received at 20141 <at> debbugs.gnu.org (full text, mbox):

From: Ivan Shmakov <ivan <at> siamics.net>
To: 20141 <at> debbugs.gnu.org
Subject: Re: bug#20141: 24.4.91; Helm is broken after last changes in eieio 
Date: Thu, 19 Mar 2015 07:20:20 +0000
>>>>> Thierry Volpiatto <thierry.volpiatto <at> gmail.com> writes:
>>>>> Ivan Shmakov <ivan <at> siamics.net> writes:

 >> Frankly, I wasn’t even able to build Emacs as of 8dfff871bdf0
 >> (2015-03-18 14:49:55Z), although the error for me is different
 >> (MIMEd.  Please note that I do not bootstrap – I /always/ build in a
 >> freshly created build directory; lndir-ed.)  Going two commits back
 >> (to fd93edbb1cab) resolved the issue.

 > Building fine for me

	As of 8dfff871bdf0 or (the more recent) 50c117fe86d9?

 > even without bootstrapping.

	That’s the point: the build procedure I follow effectively does
	‘bootstrap’ for each and every build; that is: no .elc of one
	build is available for use to another.  Think of, say:

$ git clone emacs emacs-build \
      && cd emacs-build \
      && autoreconf -v -i -I m4 \
      && ./configure --prefix="$HOME" --disable-silent-rules … \
      && LC_ALL=C nice -n+19 ionice -c 3 nohup /usr/bin/time \
             make -j 2 -- lib lib-src src lisp & 

-- 
FSF associate member #7257  np. One Leaf — Elk          … 3013 B6A0 230E 334A




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#20141; Package emacs. (Thu, 19 Mar 2015 08:11:02 GMT) Full text and rfc822 format available.

Message #29 received at 20141 <at> debbugs.gnu.org (full text, mbox):

From: Michael Heerdegen <michael_heerdegen <at> web.de>
To: Tassilo Horn <tsdh <at> gnu.org>
Cc: 20141 <at> debbugs.gnu.org, Thierry Volpiatto <thierry.volpiatto <at> gmail.com>
Subject: Re: bug#20141: 24.4.91; Helm is broken after last changes in eieio
Date: Thu, 19 Mar 2015 09:10:22 +0100
Michael Heerdegen <michael_heerdegen <at> web.de> writes:

> (defclass helm-source ()
>   ((name
>     :initarg :name
>     :initform nil
>    (header-name
>     :initarg :header-name)))
>    
>   "Main interface to define helm sources."
>   :abstract t)
>
> (eieio-class-slots 'helm-source)
>
> Until today it returned (name)

Why is there "header-name" missing in the return value, btw?  Sorry if
this is a dumb question, I don't know eieio much.

> , now, you get
>
> ([cl-struct-cl-slot-descriptor name nil t nil])

Let me add that it breaks this code in helm:

--8<---------------cut here---------------start------------->8---
(defun helm--create-source (object)
  "[INTERNAL] Build a helm source from OBJECT.
Where OBJECT is an instance of an eieio class."
  (cl-loop for s in (object-slots object)
           for slot-val = (slot-value object s)
           when slot-val
           collect (cons s (unless (eq t slot-val) slot-val))))
--8<---------------cut here---------------end--------------->8---

`slot-value' barks that the second arg is not a symbol.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#20141; Package emacs. (Thu, 19 Mar 2015 14:21:01 GMT) Full text and rfc822 format available.

Message #32 received at 20141 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Monnier <monnier <at> IRO.UMontreal.CA>
To: Michael Heerdegen <michael_heerdegen <at> web.de>
Cc: 20141 <at> debbugs.gnu.org, Thierry Volpiatto <thierry.volpiatto <at> gmail.com>,
 Tassilo Horn <tsdh <at> gnu.org>
Subject: Re: bug#20141: 24.4.91; Helm is broken after last changes in eieio
Date: Thu, 19 Mar 2015 10:20:26 -0400
> (eieio-class-slots 'helm-source)
[...]
> Until today it returned (name), now, you get
> ([cl-struct-cl-slot-descriptor name nil t nil])

eieio-class-slots is new in Emacs-25, so it's OK if it's different
from yesterday.  But indeed, it looks I failed to adapt object-slots.
Does the patch below fix the problems people are seeing?


        Stefan


diff --git a/lisp/emacs-lisp/eieio.el b/lisp/emacs-lisp/eieio.el
index 4ba6769..8d76df8 100644
--- a/lisp/emacs-lisp/eieio.el
+++ b/lisp/emacs-lisp/eieio.el
@@ -453,10 +453,11 @@ The CLOS function `class-direct-subclasses' is aliased to this function."
   (mapcar #'identity (eieio--class-slots class)))
 
 (defun object-slots (obj)
-  "Return list of slots available in OBJ."
+  "Return list of slot names available in OBJ."
   (declare (obsolete eieio-class-slots "25.1"))
   (cl-check-type obj eieio-object)
-  (eieio-class-slots (eieio--object-class obj)))
+  (mapcar #'cl--slot-descriptor-name
+	  (eieio-class-slots (eieio--object-class obj))))
 
 (defun eieio--class-slot-initarg (class slot)
   "Fetch from CLASS, SLOT's :initarg."




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#20141; Package emacs. (Thu, 19 Mar 2015 15:47:03 GMT) Full text and rfc822 format available.

Message #35 received at 20141 <at> debbugs.gnu.org (full text, mbox):

From: Tassilo Horn <tsdh <at> gnu.org>
To: Stefan Monnier <monnier <at> IRO.UMontreal.CA>
Cc: Michael Heerdegen <michael_heerdegen <at> web.de>, 20141 <at> debbugs.gnu.org,
 Thierry Volpiatto <thierry.volpiatto <at> gmail.com>
Subject: Re: bug#20141: 24.4.91; Helm is broken after last changes in eieio
Date: Thu, 19 Mar 2015 16:46:36 +0100
Stefan Monnier <monnier <at> IRO.UMontreal.CA> writes:

>> (eieio-class-slots 'helm-source)
> [...]
>> Until today it returned (name), now, you get
>> ([cl-struct-cl-slot-descriptor name nil t nil])
>
> eieio-class-slots is new in Emacs-25, so it's OK if it's different
> from yesterday.  But indeed, it looks I failed to adapt object-slots.
> Does the patch below fix the problems people are seeing?

Yes, it seems so.  However, I still get the error from yasnippet.

--8<---------------cut here---------------start------------->8---
Debugger entered--Lisp error: (wrong-type-argument integerp nil)
  yas--populate-template([cl-struct-yas--template nil nil nil nil nil nil nil nil nil nil nil nil] :table [cl-struct-yas--table "haskell-mode" #s(hash-table size 65 test equal rehash-size 1.5 rehash-threshold 0.8 data ( ...)) #s(hash-table size 65 test equal rehash-size 1.5 rehash-threshold 0.8 data ( ...)) nil (keymap)] :key "new" :content "newtype ${1:Type} = $1 { un$1 :: ${2:a} } ${3:deriving (${4:Show, Eq})}" :name "newtype" :group nil :condition (= (length "new") (current-column)) :expand-env nil :file "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/newtype" :keybinding nil :uuid "newtype")
  yas--define-snippets-1(("new" "newtype ${1:Type} = $1 { un$1 :: ${2:a} } ${3:deriving (${4:Show, Eq})}" "newtype" (= (length "new") (current-column)) nil nil "/home/horn/.emacs.d/elpa/haskell-mode-20150317.204/snippets/haskell-mode/newtype" nil nil) [cl-struct-yas--table "haskell-mode" #s(hash-table size 65 test equal rehash-size 1.5 rehash-threshold 0.8 data ( ...)) #s(hash-table size 65 test equal rehash-size 1.5 rehash-threshold 0.8 data ( ...)) nil (keymap)])
--8<---------------cut here---------------end--------------->8---

But I think the code that throws is probably too fragile anyway:

--8<---------------cut here---------------start------------->8---
(defun yas--populate-template (template &rest args)
  "Helper function to populate TEMPLATE with properties."
  (while args
    (aset template
          (position (intern (substring (symbol-name (car args)) 1))
                    (mapcar #'car (get 'yas--template 'cl-struct-slots)))
          (second args))
    (setq args (cddr args)))
  template)

;; the yas--template struct is defined like this
(defstruct (yas--template (:constructor yas--make-blank-template))
  "A template for a snippet."
  key
  content
  name
  condition
  expand-env
  file
  keybinding
  uuid
  menu-binding-pair
  group      ;; as dictated by the #group: directive or .yas-make-groups
  perm-group ;; as dictated by `yas-define-menu'
  table
  )
--8<---------------cut here---------------end--------------->8---

Bye,
Tassilo




bug No longer marked as found in versions 24.4.91. Request was from Glenn Morris <rgm <at> gnu.org> to control <at> debbugs.gnu.org. (Thu, 19 Mar 2015 16:59:02 GMT) Full text and rfc822 format available.

Changed bug title to '25.0.50; Helm is broken after last changes in eieio' from '24.4.91; Helm is broken after last changes in eieio' Request was from Glenn Morris <rgm <at> gnu.org> to control <at> debbugs.gnu.org. (Thu, 19 Mar 2015 16:59:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#20141; Package emacs. (Thu, 19 Mar 2015 18:38:02 GMT) Full text and rfc822 format available.

Message #42 received at 20141 <at> debbugs.gnu.org (full text, mbox):

From: Thierry Volpiatto <thierry.volpiatto <at> gmail.com>
To: Stefan Monnier <monnier <at> IRO.UMontreal.CA>
Cc: Michael Heerdegen <michael_heerdegen <at> web.de>, 20141 <at> debbugs.gnu.org,
 Tassilo Horn <tsdh <at> gnu.org>
Subject: Re: bug#20141: 24.4.91; Helm is broken after last changes in eieio
Date: Thu, 19 Mar 2015 19:37:03 +0100
Stefan Monnier <monnier <at> IRO.UMontreal.CA> writes:

>> (eieio-class-slots 'helm-source)
> [...]
>> Until today it returned (name), now, you get
>> ([cl-struct-cl-slot-descriptor name nil t nil])
>
> eieio-class-slots is new in Emacs-25, so it's OK if it's different
> from yesterday.  But indeed, it looks I failed to adapt object-slots.
> Does the patch below fix the problems people are seeing?

Yes I confirm it does.

-- 
Thierry
Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997 




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#20141; Package emacs. (Thu, 19 Mar 2015 19:23:02 GMT) Full text and rfc822 format available.

Message #45 received at 20141 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Monnier <monnier <at> IRO.UMontreal.CA>
To: Tassilo Horn <tsdh <at> gnu.org>
Cc: Michael Heerdegen <michael_heerdegen <at> web.de>, 20141 <at> debbugs.gnu.org,
 Thierry Volpiatto <thierry.volpiatto <at> gmail.com>
Subject: Re: bug#20141: 24.4.91; Helm is broken after last changes in eieio
Date: Thu, 19 Mar 2015 15:22:36 -0400
>                     (mapcar #'car (get 'yas--template 'cl-struct-slots)))

Right, this is linked to the cl-preloaded.el change rather than to the
eieio change.

cl-structs now come with a proper class object (itself a struct),
whereas they used to store their run-time description using a set of
symbol properties (such as cl-struct-slots).

I'll have to document this change, indeed.
And for backward compatibility's sake, it looks like we're going to
have to provide the old symbol properties.


        Stefan




Reply sent to Stefan Monnier <monnier <at> IRO.UMontreal.CA>:
You have taken responsibility. (Thu, 19 Mar 2015 20:01:02 GMT) Full text and rfc822 format available.

Notification sent to Thierry Volpiatto <thierry.volpiatto <at> gmail.com>:
bug acknowledged by developer. (Thu, 19 Mar 2015 20:01:03 GMT) Full text and rfc822 format available.

Message #50 received at 20141-done <at> debbugs.gnu.org (full text, mbox):

From: Stefan Monnier <monnier <at> IRO.UMontreal.CA>
To: Thierry Volpiatto <thierry.volpiatto <at> gmail.com>
Cc: 20141-done <at> debbugs.gnu.org
Subject: Re: bug#20141: 24.4.91; Helm is broken after last changes in eieio
Date: Thu, 19 Mar 2015 16:00:05 -0400
>>> (eieio-class-slots 'helm-source)
>> [...]
>>> Until today it returned (name), now, you get
>>> ([cl-struct-cl-slot-descriptor name nil t nil])
>> 
>> eieio-class-slots is new in Emacs-25, so it's OK if it's different
>> from yesterday.  But indeed, it looks I failed to adapt object-slots.
>> Does the patch below fix the problems people are seeing?

> Yes I confirm it does.

Thanks,


        Stefan




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Fri, 17 Apr 2015 11:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 10 years and 63 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.