Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
abcl
abcl
Commits
37d3a6bd
Commit
37d3a6bd
authored
Jan 26, 2014
by
mevenson@1c010e3e-69d0-11dd-93a8-456734b0d56f
Browse files
abcl-contrib: Fix whitespace.
parent
bf90b9ca
Changes
1
Hide whitespace changes
Inline
Side-by-side
src/org/armedbear/lisp/abcl-contrib.lisp
View file @
37d3a6bd
...
...
@@ -2,10 +2,12 @@
(
require
:asdf
)
(
defconstant
+get-classloader+
(
java:jmethod
"java.lang.Class"
"getClassLoader"
))
(
defconstant
+get-classloader+
(
java:jmethod
"java.lang.Class"
"getClassLoader"
))
(
defun
boot-classloader
()
(
let
((
boot-class
(
java:jclass
"org.armedbear.lisp.Main"
)))
(
java:jcall
+get-classloader+
boot-class
)))
(
java:jcall
+get-classloader+
boot-class
)))
(
defun
system-jar-p
(
p
)
(
named-jar-p
"abcl"
p
))
...
...
@@ -16,16 +18,16 @@
(
defun
named-jar-p
(
name
p
)
(
and
(
pathnamep
p
)
(
equal
(
pathname-type
p
)
"jar"
)
(
or
(
java:jstatic
"matches"
"java.util.regex.Pattern"
(
concatenate
'string
name
"(-[0-9]\\.[0-9]\\.[0-9]([+~-].+)?)?"
)
(
pathname-name
p
))
(
java:jstatic
"matches"
"java.util.regex.Pattern"
(
concatenate
'string
name
"(-[0-9]\\.[0-9]\\.[0-9]\\.[0-9]([+~-]+)?)?"
)
(
pathname-name
p
)))
(
make-pathname
:defaults
p
:name
name
)))
(
or
(
java:jstatic
"matches"
"java.util.regex.Pattern"
(
concatenate
'string
name
"(-[0-9]\\.[0-9]\\.[0-9]([+~-].+)?)?"
)
(
pathname-name
p
))
(
java:jstatic
"matches"
"java.util.regex.Pattern"
(
concatenate
'string
name
"(-[0-9]\\.[0-9]\\.[0-9]\\.[0-9]([+~-]+)?)?"
)
(
pathname-name
p
)))
(
make-pathname
:defaults
p
:name
name
)))
(
defun
find-system
()
"Find the location of the system.
...
...
@@ -33,16 +35,16 @@
Used to determine relative pathname to find 'abcl-contrib.jar'."
(
or
(
ignore-errors
(
find-system-jar
))
(
find-system-jar
))
(
ignore-errors
(
some
(
lambda
(
u
)
(
probe-file
(
make-pathname
:defaults
(
java:jcall
"toString"
u
)
:name
"abcl"
)))
(
java:jcall
"getURLs"
(
boot-classloader
))))
(
some
(
lambda
(
u
)
(
probe-file
(
make-pathname
:defaults
(
java:jcall
"toString"
u
)
:name
"abcl"
)))
(
java:jcall
"getURLs"
(
boot-classloader
))))
(
ignore-errors
#p"http://abcl.org/releases/current/abcl.jar"
)))
#p"http://abcl.org/releases/current/abcl.jar"
)))
(
defun
find-system-jar
()
"Return the pathname of the system jar, one of `abcl.jar` or `abcl-m.n.p.jar` or `abcl-m.n.p[.~-]something.jar`."
...
...
@@ -53,53 +55,53 @@ Used to determine relative pathname to find 'abcl-contrib.jar'."
(
defvar
*abcl-contrib*
nil
"Pathname of the ABCL contrib.
Initialized via SYSTEM:FIND-CONTRIB"
)
Initialized via SYSTEM:FIND-CONTRIB
.
"
)
(
defparameter
*verbose*
t
)
(
defun
add-contrib
(
abcl-contrib-jar
)
"Introspects ABCL-CONTRIB-JAR for asdf systems to add to ASDF:*CENTRAL-REGISTRY*"
(
when
abcl-contrib-jar
(
dolist
(
asdf-file
(
directory
(
make-pathname
:device
(
list
abcl-contrib-jar
)
:directory
'
(
:absolute
:wild
)
:name
:wild
:type
"asd"
)))
(
let
((
asdf-directory
(
make-pathname
:defaults
asdf-file
:name
nil
:type
nil
)))
(
unless
(
find
asdf-directory
asdf:*central-registry*
:test
#'
equal
)
(
push
asdf-directory
asdf:*central-registry*
)
(
format
*verbose*
"~&Added ~A to ASDF.~&"
asdf-directory
))))))
(
dolist
(
asdf-file
(
directory
(
make-pathname
:device
(
list
abcl-contrib-jar
)
:directory
'
(
:absolute
:wild
)
:name
:wild
:type
"asd"
)))
(
let
((
asdf-directory
(
make-pathname
:defaults
asdf-file
:name
nil
:type
nil
)))
(
unless
(
find
asdf-directory
asdf:*central-registry*
:test
#'
equal
)
(
push
asdf-directory
asdf:*central-registry*
)
(
format
*verbose*
"~&Added ~A to ASDF.~&"
asdf-directory
))))))
(
defun
find-and-add-contrib
(
&key
(
verbose
nil
))
"Attempt to find the ABCL contrib jar and add its contents to ASDF.
Returns the pathname of the contrib if it can be found."
(
if
*abcl-contrib*
(
format
verbose
"~&Using already initialized value of abcl-contrib:~&'~A'.~%"
*abcl-contrib*
)
(
progn
(
setf
*abcl-contrib*
(
find-contrib
))
(
format
verbose
"~&Using probed value of abcl-contrib:~&'~A'.~%"
*abcl-contrib*
)))
(
format
verbose
"~&Using already initialized value of abcl-contrib:~&'~A'.~%"
*abcl-contrib*
)
(
progn
(
setf
*abcl-contrib*
(
find-contrib
))
(
format
verbose
"~&Using probed value of abcl-contrib:~&'~A'.~%"
*abcl-contrib*
)))
(
add-contrib
*abcl-contrib*
))
(
defun
find-contrib
()
"Introspect runtime classpaths to find a loadable ABCL-CONTRIB."
(
or
(
ignore-errors
(
when
(
find-system-jar
)
(
probe-file
(
make-pathname
:defaults
(
find-system-jar
)
:name
"abcl-contrib"
))))
(
some
(
lambda
(
u
)
(
probe-file
(
make-pathname
:defaults
(
java:jcall
"toString"
u
)
:name
"abcl-contrib"
)))
(
java:jcall
"getURLs"
(
boot-classloader
)))))
(
or
(
ignore-errors
(
when
(
find-system-jar
)
(
probe-file
(
make-pathname
:defaults
(
find-system-jar
)
:name
"abcl-contrib"
))))
(
some
(
lambda
(
u
)
(
probe-file
(
make-pathname
:defaults
(
java:jcall
"toString"
u
)
:name
"abcl-contrib"
)))
(
java:jcall
"getURLs"
(
boot-classloader
)))))
(
export
`
(
find-system
find-contrib
*abcl-contrib*
))
find-contrib
*abcl-contrib*
))
(
when
(
find-and-add-contrib
:verbose
t
)
(
provide
:abcl-contrib
))
...
...
@@ -109,5 +111,5 @@ Returns the pathname of the contrib if it can be found."
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment