Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
A
asdf
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Hugo Ishimaru
asdf
Commits
1e95a883
Commit
1e95a883
authored
13 years ago
by
Francois-Rene Rideau
Browse files
Options
Downloads
Patches
Plain Diff
2.017.27: define, use and export a new function subpathname.
parent
49eca05c
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
asdf.asd
+1
-1
1 addition, 1 deletion
asdf.asd
asdf.lisp
+47
-49
47 additions, 49 deletions
asdf.lisp
with
48 additions
and
50 deletions
asdf.asd
+
1
−
1
View file @
1e95a883
...
...
@@ -14,7 +14,7 @@
:licence
"MIT"
:description
"Another System Definition Facility"
:long-description
"ASDF builds Common Lisp software organized into defined systems."
:version
"2.017.2
6
"
;; to be automatically updated by bin/bump-revision
:version
"2.017.2
7
"
;; to be automatically updated by bin/bump-revision
:depends-on
()
:components
((
:file
"asdf"
)
...
...
This diff is collapsed.
Click to expand it.
asdf.lisp
+
47
−
49
View file @
1e95a883
;;; -*- mode: Common-Lisp; Base: 10 ; Syntax: ANSI-Common-Lisp -*-
;;; This is ASDF 2.017.2
6
: Another System Definition Facility.
;;; This is ASDF 2.017.2
7
: Another System Definition Facility.
;;;
;;; Feedback, bug reports, and patches are all welcome:
;;; please mail to <asdf-devel@common-lisp.net>.
...
...
@@ -107,7 +107,7 @@
;; "2.345.6" would be a development version in the official upstream
;; "2.345.0.7" would be your seventh local modification of official release 2.345
;; "2.345.6.7" would be your seventh local modification of development version 2.345.6
(
asdf-version
"2.017.2
6
"
)
(
asdf-version
"2.017.2
7
"
)
(
existing-asdf
(
find-class
'component
nil
))
(
existing-version
*asdf-version*
)
(
already-there
(
equal
asdf-version
existing-version
)))
...
...
@@ -348,6 +348,7 @@
;; #:find-symbol*
#:merge-pathnames*
#:coerce-pathname
#:subpathname
#:pathname-directory-pathname
#:read-file-forms
;; #:remove-keys
...
...
@@ -1868,6 +1869,17 @@ Host, device and version components are taken from DEFAULTS."
:type
(
source-file-type
component
(
component-system
component
))
:defaults
(
component-parent-pathname
component
)))
(
defun*
subpathname
(
pathname
subpath
&key
type
)
(
and
pathname
(
merge-pathnames*
(
coerce-pathname
subpath
:type
type
)
(
pathname-directory-pathname
pathname
))))
(
defun*
try-subpathname
(
pathname
subpath
&key
type
)
(
let*
((
sp
(
and
pathname
(
probe-file*
pathname
)
(
subpathname
pathname
subpath
:type
type
)))
(
ts
(
and
sp
(
probe-file*
sp
))))
(
and
ts
(
values
sp
ts
))))
;;;; -------------------------------------------------------------------------
;;;; Operations
...
...
@@ -2656,7 +2668,7 @@ details."
(
defun*
load-pathname
()
(
resolve-symlinks*
(
or
*load-pathname*
*compile-file-pathname*
)))
(
defun*
determine-system-pathname
(
pathname
pathname-supplied-p
)
(
defun*
determine-system-pathname
(
pathname
)
;; The defsystem macro calls us to determine
;; the pathname of a system as follows:
;; 1. the one supplied,
...
...
@@ -2664,9 +2676,7 @@ details."
;; 3. taken from the *default-pathname-defaults* via default-directory
(
let*
((
file-pathname
(
load-pathname
))
(
directory-pathname
(
and
file-pathname
(
pathname-directory-pathname
file-pathname
))))
(
or
(
and
pathname-supplied-p
(
merge-pathnames*
(
coerce-pathname
pathname
:type
:directory
)
directory-pathname
))
(
or
(
and
pathname
(
subpathname
directory-pathname
pathname
:type
:directory
))
directory-pathname
(
default-directory
))))
...
...
@@ -2847,7 +2857,7 @@ Returns the new tree (which probably shares structure with the old one)"
ret
)))
(
defun*
do-defsystem
(
name
&rest
options
&key
(
pathname
nil
pathname-arg-p
)
(
class
'system
)
&key
pathname
(
class
'system
)
defsystem-depends-on
&allow-other-keys
)
;; The system must be registered before we parse the body,
;; otherwise we recur when trying to find an existing system
...
...
@@ -2874,7 +2884,7 @@ Returns the new tree (which probably shares structure with the old one)"
(
parse-component-form
nil
(
list*
:module
name
:pathname
(
determine-system-pathname
pathname
pathname-arg-p
)
:pathname
(
determine-system-pathname
pathname
)
component-options
)))))
(
defmacro
defsystem
(
name
&body
options
)
...
...
@@ -3054,9 +3064,7 @@ located."
:defaults
p
)))
(
defun*
system-relative-pathname
(
system
name
&key
type
)
(
merge-pathnames*
(
coerce-pathname
name
:type
type
)
(
system-source-directory
system
)))
(
subpathname
(
system-source-directory
system
)
name
:type
type
))
;;; ---------------------------------------------------------------------------
...
...
@@ -3152,40 +3160,33 @@ located."
#+
mcl
(
current-user-homedir-pathname
)
#-
mcl
(
user-homedir-pathname
))))
(
defun*
try-directory-subpath
(
x
sub
&key
type
)
(
let*
((
p
(
and
x
(
ensure-directory-pathname
x
)))
(
tp
(
and
p
(
probe-file*
p
)))
(
sp
(
and
tp
(
merge-pathnames*
(
coerce-pathname
sub
:type
type
)
p
)))
(
ts
(
and
sp
(
probe-file*
sp
))))
(
and
ts
(
values
sp
ts
))))
(
defun*
user-configuration-directories
()
(
let
((
dirs
(
flet
((
try
(
x
sub
)
(
try-directory-subpath
x
sub
)))
`
(
,
(
try
(
getenv
"XDG_CONFIG_HOME"
)
"common-lisp/"
)
,@
(
loop
:with
dirs
=
(
getenv
"XDG_CONFIG_DIRS"
)
:for
dir
:in
(
split-string
dirs
:separator
":"
)
:collect
(
try
dir
"common-lisp/"
))
,@
(
when
(
os-windows-p
)
`
(
,
(
try
(
or
#+
lispworks
(
sys:get-folder-path
:local-appdata
)
(
getenv
"LOCALAPPDATA"
))
"common-lisp/config/"
)
;; read-windows-registry HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\AppData
,
(
try
(
or
#+
lispworks
(
sys:get-folder-path
:appdata
)
(
getenv
"APPDATA"
))
"common-lisp/config/"
)))
,
(
try
(
user-homedir
)
".config/common-lisp/"
)))))
`
(
,
(
try-subpathname
(
getenv
"XDG_CONFIG_HOME"
)
"common-lisp/"
)
,@
(
loop
:with
dirs
=
(
getenv
"XDG_CONFIG_DIRS"
)
:for
dir
:in
(
split-string
dirs
:separator
":"
)
:collect
(
try-subpathname
dir
"common-lisp/"
))
,@
(
when
(
os-windows-p
)
`
(
,
(
try-subpathname
(
or
#+
lispworks
(
sys:get-folder-path
:local-appdata
)
(
getenv
"LOCALAPPDATA"
))
"common-lisp/config/"
)
;; read-windows-registry HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\AppData
,
(
try-subpathname
(
or
#+
lispworks
(
sys:get-folder-path
:appdata
)
(
getenv
"APPDATA"
))
"common-lisp/config/"
)))
,
(
try-subpathname
(
user-homedir
)
".config/common-lisp/"
))))
(
remove-duplicates
(
remove-if
#'
null
dirs
)
:from-end
t
:test
'equal
)))
(
defun*
system-configuration-directories
()
(
cond
((
os-unix-p
)
'
(
#p"/etc/common-lisp/"
))
((
os-windows-p
)
(
aif
(
flet
((
try
(
x
sub
)
(
try-directory-subpath
x
sub
)))
;; read-windows-registry HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Common AppData
(
try
(
or
#+
lispworks
(
sys:get-folder-path
:common-appdata
)
(
getenv
"ALLUSERSAPPDATA"
)
(
try
(
getenv
"ALLUSERSPROFILE"
)
"Application Data/"
))
"common-lisp/config/"
))
;; read-windows-registry HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Common AppData
(
try-subpathname
(
or
#+
lispworks
(
sys:get-folder-path
:common-appdata
)
(
getenv
"ALLUSERSAPPDATA"
)
(
subpathname
(
getenv
"ALLUSERSPROFILE"
)
"Application Data/"
))
"common-lisp/config/"
)
(
list
it
)))))
(
defun*
in-first-directory
(
dirs
x
)
...
...
@@ -3784,9 +3785,7 @@ call that function where you would otherwise have loaded and configured A-B-L.")
(
&key
(
centralize-lisp-binaries
nil
)
(
default-toplevel-directory
;; Use ".cache/common-lisp" instead ???
(
merge-pathnames*
(
make-pathname
:directory
'
(
:relative
".fasls"
))
(
user-homedir
)))
(
subpathname
(
user-homedir
)
".fasls/"
))
;; Use ".cache/common-lisp/" instead ???
(
include-per-user-information
nil
)
(
map-all-source-files
(
or
#+
(
or
ecl
clisp
)
t
nil
))
(
source-to-target-mappings
nil
))
...
...
@@ -4021,14 +4020,13 @@ with a different configuration, so the configuration would be re-read then."
#+
cmu
(
:tree
#p"modules:"
)
#+
scl
(
:tree
#p"file://modules/"
)))
(
defun*
default-source-registry
()
(
flet
((
try
(
x
sub
)
(
try-directory-subpath
x
sub
)))
`
(
:source-registry
#+
sbcl
(
:directory
,
(
try
(
user-homedir
)
".sbcl/systems/"
))
(
:directory
,
(
default-directory
))
`
(
:source-registry
#+
sbcl
(
:directory
,
(
try-subpathname
(
user-homedir
)
".sbcl/systems/"
))
(
:directory
,
(
default-directory
))
,@
(
loop
:for
dir
:in
`
(
,@
(
when
(
os-unix-p
)
`
(
,
(
or
(
getenv
"XDG_DATA_HOME"
)
(
try
(
user-homedir
)
".local/share/"
))
(
try
-subpathname
(
user-homedir
)
".local/share/"
))
,@
(
split-string
(
or
(
getenv
"XDG_DATA_DIRS"
)
"/usr/local/share:/usr/share"
)
:separator
":"
)))
...
...
@@ -4039,10 +4037,10 @@ with a different configuration, so the configuration would be re-read then."
(
getenv
"APPDATA"
))
,
(
or
#+
lispworks
(
sys:get-folder-path
:common-appdata
)
(
getenv
"ALLUSERSAPPDATA"
)
(
try
(
getenv
"ALLUSERSPROFILE"
)
"Application Data/"
)))))
:collect
`
(
:directory
,
(
try
dir
"common-lisp/systems/"
))
:collect
`
(
:tree
,
(
try
dir
"common-lisp/source/"
)))
:inherit-configuration
))
)
(
try
-subpathname
(
getenv
"ALLUSERSPROFILE"
)
"Application Data/"
)))))
:collect
`
(
:directory
,
(
try
-subpathname
dir
"common-lisp/systems/"
))
:collect
`
(
:tree
,
(
try
-subpathname
dir
"common-lisp/source/"
)))
:inherit-configuration
))
(
defun*
user-source-registry
()
(
in-user-configuration-directory
*source-registry-file*
))
(
defun*
system-source-registry
()
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
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!
Save comment
Cancel
Please
register
or
sign in
to comment