Subject: bug#12604: closed (Re: bug#12604: 24.2.50; No error when setting read-only defstruct slot)

From: [email-masked] (GNU bug Tracking System)
Date: Tue, 09 Oct 2012 03:17:02 +0000

Your bug report

#12604: 24.2.50; No error when setting read-only defstruct slot

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
12604: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=12604
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#12604: 24.2.50; No error when setting read-only defstruct slot
From: Stefan Monnier <[email-masked]>
To: Ivan Andrus <[email-masked]>
Cc: [email-masked]
Date: Mon, 08 Oct 2012 23:15:30 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

> The following Elisp does not raise an error, but it should (and did
> e.g. in 24.1).
[...]
>   (predicate nil :read-only t)
[...]
> (setf (emacs-achievement-predicate bob) t)

Very good point, indeed.
I installed the patch below which should fix this,

        Stefan

=== modified file 'lisp/emacs-lisp/cl-macs.el'
--- lisp/emacs-lisp/cl-macs.el	2012-10-06 17:34:57 +0000
+++ lisp/emacs-lisp/cl-macs.el	2012-10-08 20:44:22 +0000
@@ -2324,26 +2324,29 @@
                           (if (= pos 0) '(car cl-x)
                             `(nth ,pos cl-x)))) forms)
 	      (push (cons accessor t) side-eff)
-              ;; Don't bother defining a setf-expander, since gv-get can use
-              ;; the compiler macro to get the same result.
-              ;;(push `(gv-define-setter ,accessor (cl-val cl-x)
-              ;;         ,(if (cadr (memq :read-only (cddr desc)))
-              ;;              `(progn (ignore cl-x cl-val)
-              ;;                      (error "%s is a read-only slot"
-              ;;                             ',accessor))
+              (if (cadr (memq :read-only (cddr desc)))
+                  (push `(gv-define-expander ,accessor
+                           (lambda (_cl-do _cl-x)
+                             (error "%s is a read-only slot" ',accessor)))
+                        forms)
+                ;; For normal slots, we don't need to define a setf-expander,
+                ;; since gv-get can use the compiler macro to get the
+                ;; same result.
+                ;; (push `(gv-define-setter ,accessor (cl-val cl-x)
               ;;            ;; If cl is loaded only for compilation,
               ;;            ;; the call to cl--struct-setf-expander would
               ;;            ;; cause a warning because it may not be
               ;;            ;; defined at run time.  Suppress that warning.
-              ;;            `(progn
+                ;;          (progn
               ;;               (declare-function
               ;;                cl--struct-setf-expander "cl-macs"
               ;;                (x name accessor pred-form pos))
               ;;               (cl--struct-setf-expander
               ;;                cl-val cl-x ',name ',accessor
               ;;                ,(and pred-check `',pred-check)
-              ;;                ,pos))))
+                ;;             ,pos)))
               ;;      forms)
+                )
 	      (if print-auto
 		  (nconc print-func
 			 (list `(princ ,(format " %s" slot) cl-s)

Subject: 24.2.50; No error when setting read-only defstruct slot
From: Ivan Andrus <[email-masked]>
To: [email-masked]
Date: Mon, 8 Oct 2012 18:54:05 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

The following elisp does not raise an error, but it should (and did e.g. in 24.1).

(require 'cl)
(defstruct emacs-achievement
  name
  (predicate nil :read-only t)
  transient)

(setq bob
      (make-emacs-achievement
       :name "bob"
       :predicate nil
       :transient nil))

(setf (emacs-achievement-predicate bob) t)

Thanks,
Ivan

In GNU Emacs 24.2.50.1 (i386-apple-darwin10.8.0, NS apple-appkit-1038.36)
of 2012-10-05 on oroszlan.local
Bzr revision: 110351 [email-masked]
Windowing system distributor `Apple', version 10.3.1038
Configured using:
`configure '--with-ns''

Important settings:
  locale-coding-system: nil
  default enable-multibyte-characters: t

Major mode: Emacs-Lisp

Minor modes in effect:
  gd-enabled: t
  fold-mode-active: t
  TeX-PDF-mode: t
  diff-auto-refine-mode: t
  eldoc-mode: t
  highlight-parentheses-mode: t
  hl-sexp-mode: t
  highlight-symbol-mode: t
  hi-lock-mode: t
  which-function-mode: t
  show-paren-mode: t
  recentf-mode: t
  msb-mode: t
  minibuffer-depth-indicate-mode: t
  global-hl-line-mode: t
  delete-selection-mode: t
  auto-image-file-mode: t
  auto-insert-mode: t
  yas/global-mode: t
  shell-dirtrack-mode: t
  ido-everywhere: t
  global-visible-mark-mode: t
  visible-mark-mode: t
  gvol-mode: t
  desktop-save-mode: t
  drag-stuff-global-mode: t
  drag-stuff-mode: t
  command-frequency-autosave-mode: t
  command-frequency-mode: t
  itunes-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-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 input:
a m e SPC C-l b o b C-l SPC C-e C-x C-e C-j C-M-j <C-backspace>
C-SPC C-M-l C-e C-x C-e C-j C-M-j : n a m e SPC C-M-j
<return> C-M-l C-M-l <return> : p r e d i c a t e SPC
n i l <return> : t r a n s i e n t SPC n i l <backspace>
<backspace> <backspace> t C-e C-x C-e C-M-j C-M-k C-y
C-M-j C-1 M-( s e t q SPC b o b <return> C-M-SPC C-M-l
<tab> C-e C-x C-e <return> <return> , , s e t f SPC
, , b o b C-u <C-tab> C-s t r a n s C-w C-s C-s C-a
C-M-k C-/ <C-tab> C-a C-y C-M-k C-M-SPC C-M-j <tab>
C-k C-e C-u C-u C-M-k b o b TAB C-M-j C-M-k b o b C-k
C-e C-x C-e TAB TAB C-M-j C-M-k C-y <return> C-y TAB
C-k C-e C-SPC n i l C-k C-M-l C-x C-e TAB C-x C-e TAB
TAB C-x C-e C-k C-k C-e C-x C-e C-k C-x C-e C-e C-x
C-e TAB C-j C-x C-e TAB TAB TAB TAB TAB TAB TAB TAB
TAB TAB TAB TAB C-M-k C-k C-k C-k C-k C-k C-k C-k C-k
C-M-k TAB TAB C-y C-M-k <tab> C-a <return> TAB TAB
TAB C-k C-k C-k C-k <return> b o b C-x C-e C-a <return>
C-x C-e C-M-j C-M-j C-M-j C-M-j C-x C-s C-g <C-tab>
C-x v = y n <C-tab> C-x v v p r e d i c a t e SPC s
h o u l d n ' t SPC b e SPC r e a d - o n l y SPC <backspace>
SPC <backspace> C-c C-c <help-echo> <help-echo> <down-mouse-1>
<vc-log-out> <help-echo> <down-mouse-1> <drag-mouse-1>
M-x r e p o r t <return>

Recent messages:
t
Quit
Buffer achievements.el modified; save it? (y or n)  y
Saving file /Users/gvol/vcs/emacs-achievements/achievements.el...
Wrote /Users/gvol/vcs/emacs-achievements/achievements.el
Finding changes in /Users/gvol/vcs/emacs-achievements/achievements.el...done
Mark set
Press C-c C-c when you are done editing.
Enter a change comment.  Type C-c C-c when done
Checking in /Users/gvol/vcs/emacs-achievements/achievements.el...done

Load-path shadows:
/Users/gvol/vcs/gap-mode/gap-process hides /Users/gvol/.emacs.d/elpa/gap-mode-20120912.2301/gap-process
/Users/gvol/vcs/gap-mode/gap-mode hides /Users/gvol/.emacs.d/elpa/gap-mode-20120912.2301/gap-mode
/Users/gvol/.emacs.d/elpa/parenface-20091203.1917/parenface hides ~/.emacs.d/local/parenface
/Users/gvol/.emacs.d/elpa/linum-relative-20120905.1503/linum-relative hides ~/.emacs.d/local/linum-relative
/Users/gvol/.emacs.d/elpa/hl-sexp-20101130.1343/hl-sexp hides ~/.emacs.d/local/hl-sexp
/Users/gvol/.emacs.d/elpa/highlight-indentation-20120129.357/highlight-indentation hides ~/.emacs.d/local/highlight-indentation
/Users/gvol/.emacs.d/elpa/command-frequency-1.1/command-frequency hides ~/.emacs.d/local/command-frequency
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-xoxo hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-xoxo
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-wl hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-wl
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-w3m hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-w3m
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-vm hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-vm
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-version hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-version
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-timer hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-timer
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-taskjuggler hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-taskjuggler
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-table hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-table
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-src hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-src
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-special-blocks hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-special-blocks
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-rmail hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-rmail
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-remember hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-remember
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-publish hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-publish
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-protocol hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-protocol
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-plot hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-plot
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-pcomplete hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-pcomplete
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-odt hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-odt
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-mouse hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-mouse
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-mobile hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-mobile
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-mks hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-mks
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-mhe hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-mhe
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-mew hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-mew
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-macs hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-macs
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-mac-message hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-mac-message
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-lparse hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-lparse
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-list hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-list
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-latex hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-latex
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-jsinfo hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-jsinfo
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-irc hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-irc
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-install hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-install
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-inlinetask hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-inlinetask
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-info hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-info
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-indent hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-indent
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-id hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-id
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-icalendar hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-icalendar
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-html hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-html
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-habit hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-habit
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-gnus hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-gnus
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-freemind hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-freemind
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-footnote hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-footnote
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-feed hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-feed
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-faces hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-faces
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-exp hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-exp
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-exp-blocks hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-exp-blocks
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-eshell hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-eshell
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-entities hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-entities
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-element hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-element
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-docview hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-docview
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-docbook hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-docbook
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-datetree hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-datetree
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-ctags hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-ctags
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-crypt hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-crypt
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-compat hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-compat
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-colview hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-colview
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-clock hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-clock
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-capture hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-capture
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-bibtex hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-bibtex
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-beamer hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-beamer
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-bbdb hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-bbdb
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-attach hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-attach
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-ascii hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-ascii
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-archive hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-archive
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/org-agenda hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/org-agenda
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-tangle hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-tangle
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-table hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-table
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-sqlite hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-sqlite
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-sql hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-sql
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-shen hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-shen
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-sh hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-sh
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-screen hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-screen
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-scheme hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-scheme
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-scala hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-scala
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-sass hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-sass
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-ruby hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-ruby
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-ref hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-ref
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-R hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-R
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-python hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-python
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-plantuml hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-plantuml
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-picolisp hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-picolisp
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-perl hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-perl
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-org hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-org
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-octave hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-octave
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-ocaml hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-ocaml
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-mscgen hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-mscgen
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-maxima hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-maxima
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-matlab hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-matlab
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-lob hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-lob
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-lisp hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-lisp
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-lilypond hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-lilypond
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-ledger hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-ledger
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-latex hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-latex
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-keys hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-keys
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-js hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-js
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-java hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-java
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-io hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-io
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-haskell hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-haskell
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-gnuplot hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-gnuplot
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-fortran hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-fortran
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-exp hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-exp
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-eval hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-eval
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-emacs-lisp hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-emacs-lisp
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-dot hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-dot
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-ditaa hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-ditaa
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-css hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-css
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-comint hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-comint
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-clojure hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-clojure
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-calc hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-calc
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-C hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-C
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-awk hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-awk
/Users/gvol/.emacs.d/elpa/org-plus-contrib-20121001/ob-asymptote hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-asymptote
/Users/gvol/vcs/sage-mode/emacs/.dir-locals hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/gnus/.dir-locals
~/.emacs.d/local/lisp-mnt hides /Users/gvol/vcs/emacs/local/nextstep/Emacs.app/Contents/Resources/lisp/emacs-lisp/lisp-mnt

Features:
(shadow mail-extr emacsbug message rfc822 mml mml-sec mm-decode
mm-bodies mm-encode mailabbrev gmm-utils mailheader sendmail log-view
smerge-mode shell-toggle sh-script smie applescript-mode browse-url
url-handlers mpuz achievements basic-achievements vc-git vc-svn vc-cvs
novice emstar blackbox landmark gomoku dissociate hanoi calc-alg
calc-menu calc-ext calc calc-loaddefs calc-macs preview prv-emacs
adaptive-wrap tex-fold reftex-dcr reftex-auc reftex reftex-vars tex-bar
tex-buf toolbar-x font-latex latex tex-style sage-auctex tex latexenc
help-at-pt mule-diag org-colview two-column iso-transl cus-edit tutorial
vc-dir goto-addr view org-element fliptext quail animate misc 5x5
epa-file epa epg epg-config pong master vcursor disp-table snake
solitaire yow cookie1 zone diff-mode inline-string-rectangle sort
descr-text handwrite grep smartrep ein-multilang-fontify
ein-notebooklist rst markdown-mode ein-dev ein-notebook ein-pytools
ein-pager ein-completer ein-subpackages ein-notification
ein-scratchsheet ein-worksheet ein-kill-ring ein-cell ein-output-area
ein-kernelinfo ein-kernel ein-query ein-events ein-websocket websocket
bindat ein-node ein-log ein-core ein-utils json ewoc ein ein-loaddefs
rectangular-region-mode mc-mark-more mc-cycle-cursors mc-edit-lines
multiple-cursors-core rect tar-mode arc-mode archive-mode etags
clojure-mode inf-lisp diff autoload finder bubbles gamegrid proced
chistory timezone mark-multiple lisp-mnt mule-util mail-utils parse-time
network-stream starttls url-http tls mail-parse rfc2231 rfc2047 rfc2045
ietf-drums url-gw url-cache url-auth url url-proxy url-privacy
url-expand url-methods url-history url-cookie url-domsuf url-util
mailcap edebug elide-head vc-bzr debug goto-last-change misearch
multi-isearch dabbrev ffap url-parse url-vars image-mode sage-mode
apropos sage-compat hideshow python dired+ dired-x ediff-merg ediff-diff
ediff-wind ediff-mult ediff-help ediff-init ediff-util dired-aux dired
ibuf-macs ibuf-ext ibuffer executable subword tabify cal-iso org-mobile
reveal org-habit org-wl org-w3m org-vm org-rmail org-mhe org-mew org-irc
org-jsinfo org-infojs org-html org-exp ob-exp org-exp-blocks org-agenda
org-info org-gnus org-docview org-bibtex bibtex org-bbdb org-archive
org-id org-crypt ob-python org ob-tangle ob-ref ob-lob ob-table
org-footnote org-src ob-comint ob-keys org-pcomplete org-list org-faces
org-entities noutline outline org-version ob-emacs-lisp ob org-compat
org-macs ob-eval find-func gvol-light-theme eldoc highlight-parentheses
vc-hg greedy-delete hl-sexp highlight-symbol hi-lock thingatpt gap-mode
gap-process time jka-compr saveplace uniquify which-func imenu paren
recentf tree-widget wid-edit msb mb-depth icomplete hl-line delsel
image-file cus-start cus-load diary-lib diary-loaddefs cal-menu calendar
cal-loaddefs warnings autoinsert yasnippet dropdown-list derived
help-mode tramp tramp-compat auth-source eieio byte-opt bytecomp
byte-compile cconv gnus-util mm-util mail-prsvr password-cache
tramp-loaddefs cl-macs gv shell pcomplete format-spec edmacro kmacro
smex ido visible-mark parenface fold cl cl-lib commit-patch-buffer
log-edit pcvs-util add-log vc vc-dispatcher sage rx sage-load xml
flymake compile comint ansi-color ring desktop drag-stuff
browse-kill-ring backtr command-frequency uptimes pp server easy-mmode
assoc windmove ac-slime-autoloads ace-jump-mode-autoloads
ack-and-a-half-autoloads adaptive-wrap-autoloads
applescript-mode-autoloads auctex-autoloads tex-site
browse-kill-ring-autoloads buffer-move-autoloads c-eldoc-autoloads
columnify-autoloads command-frequency-autoloads company-autoloads
debbugs-autoloads diff-hl-autoloads dired+-autoloads
drag-stuff-autoloads durendal-autoloads ein-autoloads emstar-autoloads
feature-mode-autoloads gap-mode-autoloads goto-last-change-autoloads
graphviz-dot-mode-autoloads highlight-indentation-autoloads
highlight-parentheses-autoloads highlight-symbol-autoloads
hl-sexp-autoloads info+-autoloads jump-char-autoloads keyfreq-autoloads
linum-relative-autoloads mark-multiple-autoloads
markdown-mode+-autoloads markdown-mode-autoloads
multiple-cursors-autoloads nrepl-autoloads num3-mode-autoloads
org-plus-contrib-autoloads info easymenu paredit-autoloads
parenface-autoloads python-mode-autoloads rainbow-delimiters-autoloads
redo+-autoloads rw-hunspell-autoloads scpaste-autoloads
htmlize-autoloads scss-mode-autoloads slime-clj-autoloads
slime-fuzzy-autoloads slime-ritz-autoloads smarter-compile-autoloads
smartrep-autoloads smex-autoloads speck-autoloads
swank-clojure-autoloads advice help-fns advice-preload
clojure-mode-autoloads slime-repl-autoloads slime-autoloads
undo-tree-autoloads unicode-whitespace-autoloads ucs-utils-autoloads
persistent-soft-autoloads pcache-autoloads finder-inf
vala-mode-autoloads websocket-autoloads wgrep-autoloads
xml-rpc-autoloads package time-date tooltip ediff-hook vc-hooks
lisp-float-type mwheel ns-win tool-bar dnd fontset image regexp-opt
fringe tabulated-list newcomment lisp-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 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 ns multi-tty emacs)

-Ivan