~ubuntu-branches/ubuntu/raring/ess/raring

« back to all changes in this revision

Viewing changes to lisp/ess-jags-d.el

  • Committer: Package Import Robot
  • Author(s): Dirk Eddelbuettel
  • Date: 2012-05-09 08:00:38 UTC
  • mfrom: (1.2.23)
  • Revision ID: package-import@ubuntu.com-20120509080038-7an3nhbtgaj02a17
Tags: 12.04-1-1
New upstream patch version released today

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
;;; ess-jags-d.el -- ESS[JAGS] dialect
 
1
;;; ess-jags-d.el --- ESS[JAGS] dialect
2
2
 
3
3
;; Copyright (C) 2008-2011 Rodney Sparapani
4
4
 
5
 
;; Original Author: Rodney Sparapani
 
5
;; Author: Rodney Sparapani
6
6
;; Created: 13 March 2008
7
 
;; Maintainers: ESS-help <ess-help@r-project.org>
 
7
;; Maintainer: ESS-help <ess-help@r-project.org>
8
8
 
9
9
;; This file is part of ESS
10
10
 
21
21
;; You should have received a copy of the GNU General Public License
22
22
;; along with GNU Emacs; see the file COPYING.  If not, write to
23
23
;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
24
 
;;
25
 
;; In short: you may use this code any way you like, as long as you
26
 
;; don't charge money for it, remove this notice, or hold anyone liable
27
 
;; for its results.
28
24
 
29
 
;; Code:
 
25
;;; Code:
30
26
 
31
27
(require 'ess-bugs-l)
32
28
(require 'ess-utils)
33
29
(require 'ess-inf)
34
30
 
35
31
(setq auto-mode-alist
36
 
    (append '(("\\.[jJ][aA][gG]\\'" . ess-jags-mode)) auto-mode-alist))
 
32
      (append '(("\\.[jJ][aA][gG]\\'" . ess-jags-mode)) auto-mode-alist))
37
33
 
38
34
(defvar ess-jags-command "jags" "Default JAGS program in PATH.")
39
35
(make-local-variable 'ess-jags-command)
56
52
(defvar ess-jags-system t "Default whether JAGS recognizes the system command.")
57
53
 
58
54
(defvar ess-jags-font-lock-keywords
59
 
    (list
60
 
        ;; .jag files
61
 
        (cons "#.*\n"                   font-lock-comment-face)
62
 
 
63
 
        (cons "^[ \t]*\\(model\\|var\\)\\>"
64
 
                                        font-lock-keyword-face)
65
 
 
66
 
        (cons (concat "\\<d\\(bern\\|beta\\|bin\\|cat\\|chisq\\|"
67
 
                "dexp\\|dirch\\|exp\\|\\(gen[.]\\)?gamma\\|hyper\\|"
68
 
                "interval\\|lnorm\\|logis\\|mnorm\\|mt\\|multi\\|"
69
 
                "negbin\\|norm\\(mix\\)?\\|par\\|pois\\|sum\\|t\\|"
70
 
                "unif\\|weib\\|wish\\)[ \t\n]*(")
71
 
                                        font-lock-constant-face)
72
 
 
73
 
        (cons (concat "\\<\\(abs\\|cos\\|dim\\|\\(i\\)?cloglog\\|equals\\|"
74
 
                "exp\\|for\\|inprod\\|interp[.]line\\|inverse\\|length\\|"
75
 
                "\\(i\\)?logit\\|logdet\\|logfact\\|loggam\\|max\\|mean\\|"
76
 
                "mexp\\|min\\|phi\\|pow\\|probit\\|prod\\|rank\\|round\\|"
77
 
                "sd\\|sin\\|sort\\|sqrt\\|step\\|sum\\|t\\|trunc\\|T\\)[ \t\n]*(")
78
 
                                        font-lock-function-name-face)
79
 
 
80
 
        ;; .jmd files
81
 
        (cons (concat "\\<\\(adapt\\|cd\\|clear\\|coda\\|data\\|dir\\|"
82
 
                "exit\\|in\\(itialize\\)?\\|load\\|model\\|monitors\\|parameters\\|"
83
 
                "pwd\\|run\\|s\\(amplers\\|ystem\\)\\|to\\|update\\)[ \t\n]")
84
 
                                        font-lock-keyword-face)
85
 
 
86
 
        (cons "\\<\\(compile\\|monitor\\)[, \t\n]"
87
 
                                        font-lock-keyword-face)
88
 
 
89
 
        (cons "[, \t\n]\\(by\\|chain\\|nchains\\|stem\\|thin\\|type\\)[ \t\n]*("
90
 
                                        font-lock-function-name-face)
91
 
    )
92
 
    "ESS[JAGS]: Font lock keywords."
93
 
)
 
55
  (list
 
56
   ;; .jag files
 
57
   (cons "#.*\n"                        font-lock-comment-face)
 
58
 
 
59
   (cons "^[ \t]*\\(model\\|var\\)\\>"
 
60
         font-lock-keyword-face)
 
61
 
 
62
   (cons (concat "\\<d\\(bern\\|beta\\|bin\\|cat\\|chisq\\|"
 
63
                 "dexp\\|dirch\\|exp\\|\\(gen[.]\\)?gamma\\|hyper\\|"
 
64
                 "interval\\|lnorm\\|logis\\|mnorm\\|mt\\|multi\\|"
 
65
                 "negbin\\|norm\\(mix\\)?\\|par\\|pois\\|sum\\|t\\|"
 
66
                 "unif\\|weib\\|wish\\)[ \t\n]*(")
 
67
         font-lock-constant-face)
 
68
 
 
69
   (cons (concat "\\<\\(abs\\|cos\\|dim\\|\\(i\\)?cloglog\\|equals\\|"
 
70
                 "exp\\|for\\|inprod\\|interp[.]line\\|inverse\\|length\\|"
 
71
                 "\\(i\\)?logit\\|logdet\\|logfact\\|loggam\\|max\\|mean\\|"
 
72
                 "mexp\\|min\\|phi\\|pow\\|probit\\|prod\\|rank\\|round\\|"
 
73
                 "sd\\|sin\\|sort\\|sqrt\\|step\\|sum\\|t\\|trunc\\|T\\)[ \t\n]*(")
 
74
         font-lock-function-name-face)
 
75
 
 
76
   ;; .jmd files
 
77
   (cons (concat "\\<\\(adapt\\|cd\\|clear\\|coda\\|data\\|dir\\|"
 
78
                 "exit\\|in\\(itialize\\)?\\|load\\|model\\|monitors\\|parameters\\|"
 
79
                 "pwd\\|run\\|s\\(amplers\\|ystem\\)\\|to\\|update\\)[ \t\n]")
 
80
         font-lock-keyword-face)
 
81
 
 
82
   (cons "\\<\\(compile\\|monitor\\)[, \t\n]"
 
83
         font-lock-keyword-face)
 
84
 
 
85
   (cons "[, \t\n]\\(by\\|chain\\|nchains\\|stem\\|thin\\|type\\)[ \t\n]*("
 
86
         font-lock-function-name-face)
 
87
   )
 
88
  "ESS[JAGS]: Font lock keywords."
 
89
  )
94
90
 
95
91
(defun ess-jags-switch-to-suffix (suffix &optional jags-chains jags-monitor jags-thin
96
 
   jags-burnin jags-update)
97
 
   "ESS[JAGS]: Switch to file with suffix."
98
 
   (find-file (concat ess-bugs-file-dir ess-bugs-file-root suffix))
99
 
 
100
 
   (if (equal 0 (buffer-size)) (progn
101
 
        (if (equal ".jag" suffix) (progn
102
 
            (insert "var ;\n")
103
 
            (insert "model {\n")
104
 
            (insert "    for (i in 1:N) {\n    \n")
105
 
            (insert "    }\n")
106
 
            (insert "}\n")
107
 
            (insert "#Local Variables" ":\n")
108
 
            (insert "#ess-jags-chains:1\n")
109
 
            (insert "#ess-jags-monitor:(\"\")\n")
110
 
            (insert "#ess-jags-thin:1\n")
111
 
            (insert "#ess-jags-burnin:10000\n")
112
 
            (insert "#ess-jags-update:10000\n")
113
 
            (insert "#End:\n")
114
 
        ))
115
 
 
116
 
        (if (equal ".jmd" suffix) (let
117
 
            ((ess-jags-temp-chains "") (ess-jags-temp-monitor "") (ess-jags-temp-chain ""))
118
 
 
119
 
            (if jags-chains (setq ess-jags-chains jags-chains))
120
 
            (if jags-monitor (setq ess-jags-monitor jags-monitor))
121
 
            (if jags-thin (setq ess-jags-thin jags-thin))
122
 
 
123
 
            (setq ess-jags-temp-chains
124
 
                (concat "compile, nchains(" (format "%d" ess-jags-chains) ")\n"))
125
 
 
126
 
            (setq jags-chains ess-jags-chains)
127
 
 
128
 
            (while (< 0 jags-chains)
129
 
                (setq ess-jags-temp-chains
130
 
                    (concat ess-jags-temp-chains
131
 
                        "parameters ## \"" ess-bugs-file-root
132
 
                        ".##" (format "%d" jags-chains) "\", chain("
133
 
                        (format "%d" jags-chains) ")\n"))
134
 
                (setq jags-chains (- jags-chains 1)))
135
 
 
136
 
            (setq ess-jags-temp-monitor "")
137
 
 
138
 
                (while (and (listp ess-jags-monitor) (consp ess-jags-monitor))
139
 
                    (if (not (string-equal "" (car ess-jags-monitor)))
140
 
                        (setq ess-jags-temp-monitor
141
 
                            (concat ess-jags-temp-monitor "monitor "
142
 
                                (car ess-jags-monitor) ", thin(" (format "%d" ess-jags-thin) ")\n")))
143
 
                    (setq ess-jags-monitor (cdr ess-jags-monitor)))
144
 
 
145
 
            (insert "model in \"" ess-bugs-file-root ".jag\"\n")
146
 
            (insert "data in \"" ess-bugs-file-root ".jdt\"\n")
147
 
            (insert (ess-replace-in-string ess-jags-temp-chains "##" "in"))
148
 
            (insert "initialize\n")
149
 
            (insert "update " (format "%d" (* jags-thin jags-burnin)) "\n")
150
 
            (insert ess-jags-temp-monitor)
151
 
            (insert "update " (format "%d" (* jags-thin jags-update)) "\n")
152
 
            (insert (ess-replace-in-string
153
 
                (ess-replace-in-string ess-jags-temp-chains
154
 
                    "compile, nchains([0-9]+)" "#") "##" "to"))
155
 
            (insert "coda "
156
 
                (if ess-microsoft-p (if (w32-shell-dos-semantics) "*" "\\*") "\\*")
157
 
                ", stem(\"" ess-bugs-file-root "\")\n")
158
 
 
159
 
            (if ess-jags-system (progn
160
 
                (insert "system rm -f " ess-bugs-file-root ".ind\n")
161
 
                (insert "system ln -s " ess-bugs-file-root "index.txt " ess-bugs-file-root ".ind\n")
162
 
 
163
 
                (setq jags-chains ess-jags-chains)
164
 
 
165
 
                (while (< 0 jags-chains)
166
 
                    (setq ess-jags-temp-chain (format "%d" jags-chains))
167
 
 
168
 
                    ;.txt not recognized by BOA and impractical to over-ride
169
 
                    (insert "system rm -f " ess-bugs-file-root ess-jags-temp-chain ".out\n")
170
 
                    (insert "system ln -s " ess-bugs-file-root "chain" ess-jags-temp-chain ".txt "
171
 
                        ess-bugs-file-root ess-jags-temp-chain ".out\n")
172
 
                    (setq jags-chains (- jags-chains 1)))))
173
 
 
174
 
            (insert "exit\n")
175
 
            (insert "Local Variables" ":\n")
176
 
            (insert "ess-jags-chains:" (format "%d" ess-jags-chains) "\n")
177
 
            (insert "ess-jags-command:\"jags\"\n")
178
 
            (insert "End:\n")
179
 
        ))
180
 
    ))
181
 
)
 
92
                                         jags-burnin jags-update)
 
93
  "ESS[JAGS]: Switch to file with suffix."
 
94
  (find-file (concat ess-bugs-file-dir ess-bugs-file-root suffix))
 
95
 
 
96
  (if (equal 0 (buffer-size)) (progn
 
97
                                (if (equal ".jag" suffix) (progn
 
98
                                                            (insert "var ;\n")
 
99
                                                            (insert "model {\n")
 
100
                                                            (insert "    for (i in 1:N) {\n    \n")
 
101
                                                            (insert "    }\n")
 
102
                                                            (insert "}\n")
 
103
                                                            (insert "#Local Variables" ":\n")
 
104
                                                            (insert "#ess-jags-chains:1\n")
 
105
                                                            (insert "#ess-jags-monitor:(\"\")\n")
 
106
                                                            (insert "#ess-jags-thin:1\n")
 
107
                                                            (insert "#ess-jags-burnin:10000\n")
 
108
                                                            (insert "#ess-jags-update:10000\n")
 
109
                                                            (insert "#End:\n")
 
110
                                                            ))
 
111
 
 
112
                                (if (equal ".jmd" suffix) (let
 
113
                                                              ((ess-jags-temp-chains "") (ess-jags-temp-monitor "") (ess-jags-temp-chain ""))
 
114
 
 
115
                                                            (if jags-chains (setq ess-jags-chains jags-chains))
 
116
                                                            (if jags-monitor (setq ess-jags-monitor jags-monitor))
 
117
                                                            (if jags-thin (setq ess-jags-thin jags-thin))
 
118
 
 
119
                                                            (setq ess-jags-temp-chains
 
120
                                                                  (concat "compile, nchains(" (format "%d" ess-jags-chains) ")\n"))
 
121
 
 
122
                                                            (setq jags-chains ess-jags-chains)
 
123
 
 
124
                                                            (while (< 0 jags-chains)
 
125
                                                              (setq ess-jags-temp-chains
 
126
                                                                    (concat ess-jags-temp-chains
 
127
                                                                            "parameters ## \"" ess-bugs-file-root
 
128
                                                                            ".##" (format "%d" jags-chains) "\", chain("
 
129
                                                                            (format "%d" jags-chains) ")\n"))
 
130
                                                              (setq jags-chains (- jags-chains 1)))
 
131
 
 
132
                                                            (setq ess-jags-temp-monitor "")
 
133
 
 
134
                                                            (while (and (listp ess-jags-monitor) (consp ess-jags-monitor))
 
135
                                                              (if (not (string-equal "" (car ess-jags-monitor)))
 
136
                                                                  (setq ess-jags-temp-monitor
 
137
                                                                        (concat ess-jags-temp-monitor "monitor "
 
138
                                                                                (car ess-jags-monitor) ", thin(" (format "%d" ess-jags-thin) ")\n")))
 
139
                                                              (setq ess-jags-monitor (cdr ess-jags-monitor)))
 
140
 
 
141
                                                            (insert "model in \"" ess-bugs-file-root ".jag\"\n")
 
142
                                                            (insert "data in \"" ess-bugs-file-root ".jdt\"\n")
 
143
                                                            (insert (ess-replace-in-string ess-jags-temp-chains "##" "in"))
 
144
                                                            (insert "initialize\n")
 
145
                                                            (insert "update " (format "%d" (* jags-thin jags-burnin)) "\n")
 
146
                                                            (insert ess-jags-temp-monitor)
 
147
                                                            (insert "update " (format "%d" (* jags-thin jags-update)) "\n")
 
148
                                                            (insert (ess-replace-in-string
 
149
                                                                     (ess-replace-in-string ess-jags-temp-chains
 
150
                                                                                            "compile, nchains([0-9]+)" "#") "##" "to"))
 
151
                                                            (insert "coda "
 
152
                                                                    (if ess-microsoft-p (if (w32-shell-dos-semantics) "*" "\\*") "\\*")
 
153
                                                                    ", stem(\"" ess-bugs-file-root "\")\n")
 
154
 
 
155
                                                            (if ess-jags-system (progn
 
156
                                                                                  (insert "system rm -f " ess-bugs-file-root ".ind\n")
 
157
                                                                                  (insert "system ln -s " ess-bugs-file-root "index.txt " ess-bugs-file-root ".ind\n")
 
158
 
 
159
                                                                                  (setq jags-chains ess-jags-chains)
 
160
 
 
161
                                                                                  (while (< 0 jags-chains)
 
162
                                                                                    (setq ess-jags-temp-chain (format "%d" jags-chains))
 
163
 
 
164
                                        ;.txt not recognized by BOA and impractical to over-ride
 
165
                                                                                    (insert "system rm -f " ess-bugs-file-root ess-jags-temp-chain ".out\n")
 
166
                                                                                    (insert "system ln -s " ess-bugs-file-root "chain" ess-jags-temp-chain ".txt "
 
167
                                                                                            ess-bugs-file-root ess-jags-temp-chain ".out\n")
 
168
                                                                                    (setq jags-chains (- jags-chains 1)))))
 
169
 
 
170
                                                            (insert "exit\n")
 
171
                                                            (insert "Local Variables" ":\n")
 
172
                                                            (insert "ess-jags-chains:" (format "%d" ess-jags-chains) "\n")
 
173
                                                            (insert "ess-jags-command:\"jags\"\n")
 
174
                                                            (insert "End:\n")
 
175
                                                            ))
 
176
                                ))
 
177
  )
182
178
 
183
179
(defun ess-jags-na-jmd (jags-command jags-chains)
184
 
    "ESS[JAGS]: Perform the Next-Action for .jmd."
185
 
    ;(ess-save-and-set-local-variables)
186
 
(if (equal 0 (buffer-size)) (ess-jags-switch-to-suffix ".jmd")
187
 
;else
 
180
  "ESS[JAGS]: Perform the Next-Action for .jmd."
 
181
                                        ;(ess-save-and-set-local-variables)
 
182
  (if (equal 0 (buffer-size)) (ess-jags-switch-to-suffix ".jmd")
 
183
                                        ;else
188
184
    (shell)
189
185
    (ess-sleep)
190
186
 
191
187
    (if (w32-shell-dos-semantics)
192
 
        (if (string-equal ":" (substring ess-bugs-file 1 2))
193
 
            (progn
194
 
                (insert (substring ess-bugs-file 0 2))
195
 
                (comint-send-input)
196
 
            )
197
 
        )
198
 
    )
199
 
 
200
 
        (insert "cd \"" ess-bugs-file-dir "\"")
201
 
        (comint-send-input)
202
 
 
203
 
;    (let ((ess-jags-temp-chains ""))
204
 
;
205
 
;       (while (< 0 jags-chains)
206
 
;           (setq ess-jags-temp-chains
207
 
;               (concat (format "%d " jags-chains) ess-jags-temp-chains))
208
 
;           (setq jags-chains (- jags-chains 1)))
209
 
 
210
 
        (insert ess-bugs-batch-pre-command " " jags-command " "
211
 
                ess-bugs-file-root ".jmd "
212
 
 
213
 
                (if (or (equal shell-file-name "/bin/csh")
214
 
                        (equal shell-file-name "/bin/tcsh")
215
 
                        (equal shell-file-name "/bin/zsh")
216
 
                        (equal shell-file-name "/bin/bash"))
217
 
                            (concat ">& " ess-bugs-file-root ".jog ")
218
 
                ;else
219
 
                            "> " ess-bugs-file-root ".jog 2>&1 ")
220
 
 
221
 
;               ;.txt not recognized by BOA and impractical to over-ride
222
 
;               "&& (rm -f " ess-bugs-file-root ".ind; "
223
 
;               "ln -s " ess-bugs-file-root "index.txt " ess-bugs-file-root ".ind; "
224
 
;               "for i in " ess-jags-temp-chains "; do; "
225
 
;               "rm -f " ess-bugs-file-root "$i.out; "
226
 
;               "ln -s " ess-bugs-file-root "chain$i.txt " ess-bugs-file-root "$i.out; done) "
227
 
 
228
 
                ess-bugs-batch-post-command)
229
 
 
230
 
        (comint-send-input)
231
 
))
 
188
        (if (string-equal ":" (substring ess-bugs-file 1 2))
 
189
            (progn
 
190
              (insert (substring ess-bugs-file 0 2))
 
191
              (comint-send-input)
 
192
              )
 
193
          )
 
194
      )
 
195
 
 
196
    (insert "cd \"" ess-bugs-file-dir "\"")
 
197
    (comint-send-input)
 
198
 
 
199
                                        ;    (let ((ess-jags-temp-chains ""))
 
200
                                        ;
 
201
                                        ;       (while (< 0 jags-chains)
 
202
                                        ;           (setq ess-jags-temp-chains
 
203
                                        ;               (concat (format "%d " jags-chains) ess-jags-temp-chains))
 
204
                                        ;           (setq jags-chains (- jags-chains 1)))
 
205
 
 
206
    (insert ess-bugs-batch-pre-command " " jags-command " "
 
207
            ess-bugs-file-root ".jmd "
 
208
 
 
209
            (if (or (equal shell-file-name "/bin/csh")
 
210
                    (equal shell-file-name "/bin/tcsh")
 
211
                    (equal shell-file-name "/bin/zsh")
 
212
                    (equal shell-file-name "/bin/bash"))
 
213
                (concat ">& " ess-bugs-file-root ".jog ")
 
214
                                        ;else
 
215
              "> " ess-bugs-file-root ".jog 2>&1 ")
 
216
 
 
217
                                        ;               ;.txt not recognized by BOA and impractical to over-ride
 
218
                                        ;               "&& (rm -f " ess-bugs-file-root ".ind; "
 
219
                                        ;               "ln -s " ess-bugs-file-root "index.txt " ess-bugs-file-root ".ind; "
 
220
                                        ;               "for i in " ess-jags-temp-chains "; do; "
 
221
                                        ;               "rm -f " ess-bugs-file-root "$i.out; "
 
222
                                        ;               "ln -s " ess-bugs-file-root "chain$i.txt " ess-bugs-file-root "$i.out; done) "
 
223
 
 
224
            ess-bugs-batch-post-command)
 
225
 
 
226
    (comint-send-input)
 
227
    ))
232
228
 
233
229
(defun ess-jags-na-bug ()
234
 
    "ESS[JAGS]: Perform Next-Action for .jag"
 
230
  "ESS[JAGS]: Perform Next-Action for .jag"
235
231
 
236
 
        (if (equal 0 (buffer-size)) (ess-jags-switch-to-suffix ".jag")
237
 
        ;else
238
 
            (ess-save-and-set-local-variables)
239
 
            (ess-jags-switch-to-suffix ".jmd"
240
 
                ess-jags-chains ess-jags-monitor ess-jags-thin ess-jags-burnin ess-jags-update))
241
 
)
 
232
  (if (equal 0 (buffer-size)) (ess-jags-switch-to-suffix ".jag")
 
233
                                        ;else
 
234
    (ess-save-and-set-local-variables)
 
235
    (ess-jags-switch-to-suffix ".jmd"
 
236
                               ess-jags-chains ess-jags-monitor ess-jags-thin ess-jags-burnin ess-jags-update))
 
237
  )
242
238
 
243
239
(defun ess-jags-mode ()
244
 
   "ESS[JAGS]: Major mode for JAGS."
245
 
   (interactive)
246
 
   (kill-all-local-variables)
247
 
   (ess-setq-vars-local '((comment-start . "#")))
248
 
   (setq major-mode 'ess-jags-mode)
249
 
   (setq mode-name "ESS[JAGS]")
250
 
   (use-local-map ess-bugs-mode-map)
251
 
   (setq font-lock-auto-fontify t)
252
 
   (make-local-variable 'font-lock-defaults)
253
 
   (setq font-lock-defaults '(ess-jags-font-lock-keywords nil t))
254
 
   (run-hooks 'ess-bugs-mode-hook)
 
240
  "ESS[JAGS]: Major mode for JAGS."
 
241
  (interactive)
 
242
  (kill-all-local-variables)
 
243
  (ess-setq-vars-local '((comment-start . "#")))
 
244
  (setq major-mode 'ess-jags-mode)
 
245
  (setq mode-name "ESS[JAGS]")
 
246
  (use-local-map ess-bugs-mode-map)
 
247
  (setq font-lock-auto-fontify t)
 
248
  (make-local-variable 'font-lock-defaults)
 
249
  (setq font-lock-defaults '(ess-jags-font-lock-keywords nil t))
 
250
  (setq ess-language "S") ; mimic S for ess-smart-underscore
 
251
  (run-hooks 'ess-bugs-mode-hook)
255
252
 
256
 
   (if (not (w32-shell-dos-semantics))
257
 
        (add-hook 'comint-output-filter-functions 'ess-bugs-exit-notify-sh))
258
 
)
 
253
  (if (not (w32-shell-dos-semantics))
 
254
      (add-hook 'comint-output-filter-functions 'ess-bugs-exit-notify-sh))
 
255
  )
259
256
 
260
257
(setq features (delete 'ess-bugs-d features))
261
258
(provide 'ess-jags-d)
 
259
 
 
260
;;; ess-jags-d.el ends here