~ubuntu-branches/ubuntu/intrepid/slime/intrepid

« back to all changes in this revision

Viewing changes to swank-loader.lisp

  • Committer: Bazaar Package Importer
  • Author(s): Peter Van Eynde
  • Date: 2007-10-04 09:09:47 UTC
  • mfrom: (1.1.4 upstream)
  • Revision ID: james.westby@ubuntu.com-20071004090947-8oy7djtx8no3erxy
Tags: 1:20070927-2
Readded tree-widget to the sources. emacs21 on
debian does _not_ have that file. emacs22 and xemacs do.
(Closes: #445174)

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
;;   (defparameter swank-loader::*fasl-directory* "/tmp/fasl/")
19
19
;;   (load ".../swank-loader.lisp")
20
20
 
21
 
 
22
21
(cl:defpackage :swank-loader
23
22
  (:use :cl)
24
23
  (:export :load-swank
144
143
    (ignore-errors (delete-file binary-pathname)))
145
144
  (abort))
146
145
 
147
 
(defun compile-files-if-needed-serially (files fasl-directory)
 
146
(defun compile-files-if-needed-serially (files fasl-directory load)
148
147
  "Compile each file in FILES if the source is newer than
149
148
its corresponding binary, or the file preceding it was
150
149
recompiled."
164
163
                (compile-file source-pathname :output-file binary-pathname
165
164
                              :print nil
166
165
                              :verbose t))
167
 
              (load binary-pathname :verbose t))
 
166
              (when load
 
167
                (load binary-pathname :verbose t)))
168
168
          ;; Fail as early as possible
169
169
          (serious-condition (c)
170
170
            (handle-loadtime-error c binary-pathname)))))))
188
188
                       :defaults directory)
189
189
        :if-does-not-exist nil))
190
190
 
191
 
(defun swank-source-files (source-directory)
 
191
(defun source-files (names src-dir)
192
192
  (mapcar (lambda (name)
193
 
            (make-pathname :name name :type "lisp"
194
 
                           :defaults source-directory))
195
 
          `("swank-backend" ,@*sysdep-files* "swank")))
 
193
            (make-pathname :name (string-downcase name) :type "lisp"
 
194
                           :defaults src-dir))
 
195
          names))
 
196
 
 
197
(defun swank-source-files (src-dir)
 
198
  (source-files `("swank-backend" ,@*sysdep-files* "swank") 
 
199
                src-dir))
196
200
 
197
201
(defvar *fasl-directory* (default-fasl-directory)
198
202
  "The directory where fasl files should be placed.")
199
203
 
 
204
(defvar *contribs* '(swank-c-p-c swank-arglists swank-fuzzy
 
205
                     swank-fancy-inspector
 
206
                     swank-presentations swank-presentation-streams
 
207
                     #+(or asdf sbcl) swank-asdf
 
208
                     )
 
209
  "List of names for contrib modules.")
 
210
 
 
211
(defun append-dir (absolute name)
 
212
  (merge-pathnames 
 
213
   (make-pathname :directory `(:relative ,name) :defaults absolute)
 
214
   absolute))
 
215
 
 
216
(defun contrib-src-dir (src-dir)
 
217
  (append-dir src-dir "contrib"))
 
218
 
 
219
(defun contrib-source-files (src-dir)
 
220
  (source-files *contribs* (contrib-src-dir src-dir)))
 
221
 
200
222
(defun load-swank (&key
201
223
                   (source-directory *source-directory*)
202
 
                   (fasl-directory *fasl-directory*))
 
224
                   (fasl-directory *fasl-directory*)
 
225
                   (contrib-fasl-directory 
 
226
                    (append-dir fasl-directory "contrib")))
203
227
  (compile-files-if-needed-serially (swank-source-files source-directory)
204
 
                                    fasl-directory)
205
 
  (set (read-from-string "swank::*swank-wire-protocol-version*")
206
 
       (slime-version-string))
207
 
  (funcall (intern (string :warn-unimplemented-interfaces) :swank-backend))
208
 
  (load-site-init-file source-directory)
209
 
  (load-user-init-file)
210
 
  (funcall (intern (string :run-after-init-hook) :swank)))
 
228
                                    fasl-directory t)
 
229
  (compile-files-if-needed-serially (contrib-source-files source-directory)
 
230
                                    contrib-fasl-directory nil))
211
231
 
212
232
(load-swank)
 
233
 
 
234
(setq swank::*swank-wire-protocol-version* (slime-version-string))
 
235
(setq swank::*load-path* 
 
236
      (append swank::*load-path* (list (contrib-src-dir *source-directory*))))
 
237
(swank-backend::warn-unimplemented-interfaces)
 
238
(load-site-init-file *source-directory*)
 
239
(load-user-init-file)
 
240
(swank:run-after-init-hook)