Changeset 14614
- Timestamp:
- 01/26/14 11:25:50 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abcl/src/org/armedbear/lisp/abcl-contrib.lisp
r14610 r14614 3 3 (require :asdf) 4 4 5 (defconstant +get-classloader+ (java:jmethod "java.lang.Class" "getClassLoader")) 5 (defconstant +get-classloader+ 6 (java:jmethod "java.lang.Class" "getClassLoader")) 7 6 8 (defun boot-classloader () 7 9 (let ((boot-class (java:jclass "org.armedbear.lisp.Main"))) 8 10 (java:jcall +get-classloader+ boot-class))) 9 11 10 12 (defun system-jar-p (p) … … 17 19 (and (pathnamep p) 18 20 (equal (pathname-type p) "jar") 19 20 21 22 23 24 25 26 27 28 21 (or 22 (java:jstatic "matches" 23 "java.util.regex.Pattern" 24 (concatenate 'string name "(-[0-9]\\.[0-9]\\.[0-9]([+~-].+)?)?") 25 (pathname-name p)) 26 (java:jstatic "matches" 27 "java.util.regex.Pattern" 28 (concatenate 'string name "(-[0-9]\\.[0-9]\\.[0-9]\\.[0-9]([+~-]+)?)?") 29 (pathname-name p))) 30 (make-pathname :defaults p :name name))) 29 31 30 32 (defun find-system () … … 34 36 (or 35 37 (ignore-errors 36 38 (find-system-jar)) 37 39 (ignore-errors 38 39 40 41 42 43 40 (some 41 (lambda (u) 42 (probe-file (make-pathname 43 :defaults (java:jcall "toString" u) 44 :name "abcl"))) 45 (java:jcall "getURLs" (boot-classloader)))) 44 46 (ignore-errors 45 47 #p"http://abcl.org/releases/current/abcl.jar"))) 46 48 47 49 (defun find-system-jar () … … 54 56 (defvar *abcl-contrib* nil 55 57 "Pathname of the ABCL contrib. 56 Initialized via SYSTEM:FIND-CONTRIB ")58 Initialized via SYSTEM:FIND-CONTRIB.") 57 59 58 60 (defparameter *verbose* t) … … 61 63 "Introspects ABCL-CONTRIB-JAR for asdf systems to add to ASDF:*CENTRAL-REGISTRY*" 62 64 (when abcl-contrib-jar 63 64 65 66 67 68 69 70 71 65 (dolist (asdf-file 66 (directory (make-pathname :device (list abcl-contrib-jar) 67 :directory '(:absolute :wild) 68 :name :wild 69 :type "asd"))) 70 (let ((asdf-directory (make-pathname :defaults asdf-file :name nil :type nil))) 71 (unless (find asdf-directory asdf:*central-registry* :test #'equal) 72 (push asdf-directory asdf:*central-registry*) 73 (format *verbose* "~&Added ~A to ASDF.~&" asdf-directory)))))) 72 74 73 75 … … 76 78 Returns the pathname of the contrib if it can be found." 77 79 (if *abcl-contrib* 78 79 80 81 82 83 80 (format verbose "~&Using already initialized value of abcl-contrib:~&'~A'.~%" 81 *abcl-contrib*) 82 (progn 83 (setf *abcl-contrib* (find-contrib)) 84 (format verbose "~&Using probed value of abcl-contrib:~&'~A'.~%" 85 *abcl-contrib*))) 84 86 (add-contrib *abcl-contrib*)) 85 87 86 88 (defun find-contrib () 87 89 "Introspect runtime classpaths to find a loadable ABCL-CONTRIB." 88 (or 89 (ignore-errors(when (find-system-jar)90 91 92 93 94 (lambda (u)95 96 97 98 (java:jcall "getURLs" (boot-classloader)))))90 (or (ignore-errors 91 (when (find-system-jar) 92 (probe-file 93 (make-pathname :defaults (find-system-jar) 94 :name "abcl-contrib")))) 95 (some 96 (lambda (u) 97 (probe-file (make-pathname 98 :defaults (java:jcall "toString" u) 99 :name "abcl-contrib"))) 100 (java:jcall "getURLs" (boot-classloader))))) 99 101 100 102 (export `(find-system 101 102 103 find-contrib 104 *abcl-contrib*)) 103 105 (when (find-and-add-contrib :verbose t) 104 106 (provide :abcl-contrib)) … … 110 112 111 113 112 114 113 115
Note: See TracChangeset
for help on using the changeset viewer.