Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
asdf-dependency-grovel
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
xcvb
asdf-dependency-grovel
Commits
6f9f128d
Commit
6f9f128d
authored
Nov 20, 2011
by
Francois-Rene Rideau
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1.104: add support for :around-compile
parent
f8d720b1
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
37 additions
and
17 deletions
+37
-17
asdf-classes.lisp
asdf-classes.lisp
+13
-0
asdf-dependency-grovel.asd
asdf-dependency-grovel.asd
+22
-14
asdf-ops.lisp
asdf-ops.lisp
+0
-1
package.lisp
package.lisp
+2
-2
No files found.
asdf-classes.lisp
View file @
6f9f128d
...
...
@@ -26,10 +26,23 @@
()
(
:default-initargs
:default-component-class
'instrumented-cl-source-file
))
(
defun
escaped-around-compile-hook
(
component
)
(
let
((
around-compile
(
asdf::around-compile-hook
component
)))
(
etypecase
around-compile
((
or
null
string
)
around-compile
)
(
function
(
error
"Can't convert around-compile hook ~S because it's a function object.~%Maybe you should use a lambda-expression instead?"
around-compile
))
((
or
symbol
cons
)
(
with-standard-io-syntax
(
let
((
*package*
(
find-package
:cl
)))
(
write-to-string
around-compile
:readably
t
)))))))
(
defmethod
additional-initargs
:around
((
comp
instrumented-component
))
(
flet
((
slot-when-bound
(
slot-name
initarg
)
(
when
(
slot-boundp
comp
slot-name
)
`
(
,
initarg
,
(
slot-value
comp
slot-name
)))))
`
(
,@
(
call-next-method
)
,@
(
when
(
asdf::around-compile-hook
comp
)
`
(
:around-compile
(
escaped-around-compile
comp
)))
,@
(
slot-when-bound
'translated-name
:translated-name
)
,@
(
slot-when-bound
'translated-pathname
:translated-pathname-form
))))
asdf-dependency-grovel.asd
View file @
6f9f128d
...
...
@@ -2,7 +2,7 @@
(
cl:in-package
:asdf
)
(
unless
(
or
#+
asdf2
(
asdf:version-satisfies
(
asdf:
asdf-version
)
"2.014.8"
))
(
unless
(
or
#+
asdf2
(
version-satisfies
(
asdf-version
)
"2.014.8"
))
(
error
"Not only is your ASDF version is too old for ASDF-DEPENDENCY-GROVEL,
you must upgrade it *before* you try to load any system."
))
...
...
@@ -10,18 +10,18 @@
((
%components
:accessor
%handler-components
)))
(
defun
handler-input-file-list
(
pathname
parent
)
(
map
'list
(
lambda
(
f
)
(
make-instance
'cl-source-file
:name
(
pathname-name
f
)
:parent
parent
:pathname
f
))
(
sort
(
directory
(
make-pathname
:defaults
pathname
:name
:wild
:type
"lisp"
:version
:newest
))
#'
string<
:key
#'
namestring
)))
(
map
car
(
lambda
(
f
)
(
make-instance
'cl-source-file
:name
(
pathname-name
f
)
:parent
parent
:pathname
f
))
(
sort
(
directory
(
make-pathname
:defaults
pathname
:name
:wild
:type
"lisp"
:version
:newest
))
#'
string<
:key
#'
namestring
)))
(
defmethod
module-components
((
c
grovel-handlers
))
(
if
(
slot-boundp
c
'%components
)
...
...
@@ -30,7 +30,15 @@
(
handler-input-file-list
(
component-pathname
c
)
c
))))
(
defsystem
:asdf-dependency-grovel
:depends-on
((
:version
:asdf
"2.017"
))
:description
"Analyse the dependencies in an ASDF system"
:long-description
"ASDF-DEPENDENCY-GROVEL will analyse the actual dependencies in an ASDF system.
Based on an analysis with file granularity ,
it can output an optimized system definition,
based on which compilation can be parallelized.
Based on an analysis with form granularity,
it can output a summary from which you can untangle
the circularities in your build."
:depends-on
((
:version
:asdf
"2.018.12"
))
;; for full :around-compile support
:components
((
:file
"package"
)
(
:file
"variables"
:depends-on
(
"package"
))
(
:file
"classes"
:depends-on
(
"package"
"variables"
))
...
...
asdf-ops.lisp
View file @
6f9f128d
...
...
@@ -12,7 +12,6 @@ to the base of the system."
(
pathname-directory
system-base-dir
)
:test
#'
equal
)
(
length
(
pathname-directory
output-file
))))))
(
list
(
if
(
or
*current-constituent*
(
and
(
boundp
'*old-macroexpand-hook*
)
*old-macroexpand-hook*
))
...
...
package.lisp
View file @
6f9f128d
...
...
@@ -31,8 +31,8 @@
(
in-package
#:asdf-dependency-grovel
)
(
defparameter
*asdf-dependency-grovel-version*
"1.10
3
"
)
(
defparameter
*asdf-version-required-by-adg*
"2.0
08
"
)
(
defparameter
*asdf-dependency-grovel-version*
"1.10
4
"
)
(
defparameter
*asdf-version-required-by-adg*
"2.0
18.12
"
)
#-
asdf2
(
error
"ASDF-DEPENDENCY-GROVEL requires ASDF2."
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a 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