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
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
15
Issues
15
List
Boards
Labels
Service Desk
Milestones
Merge Requests
8
Merge Requests
8
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
asdf
asdf
Commits
356c662f
Commit
356c662f
authored
Oct 05, 2018
by
Hugo Ishimaru
1
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Doc: Modify the explanation about ASDF traversing dependencies of package-inferred-system
parent
7437858b
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
33 additions
and
27 deletions
+33
-27
doc/asdf.texinfo
doc/asdf.texinfo
+33
-27
No files found.
doc/asdf.texinfo
View file @
356c662f
...
...
@@ -1999,9 +1999,10 @@ packages used or provided by your system and its components
where
the
name
of
the
system
that
provides
the
package
is
not
the
downcase
of
the
package
name
.
Then, a file @file
{
interface/order.lisp
}
under the @code
{
my-lib
}
hierarchy will start with the following form, dependencies being
trivially computed from the @code
{
:use
}
and @code
{
:mix
}
clauses:
Then
,
each
file
under
the
@
code
{
my
-
lib
}
hierarchy
will
start
with
a
package
definition
,
dependencies
being
trivially
computed
from
the
@
code
{:
use
}
and
@
code
{:
mix
}
clauses
.
Take
a
file
@
file
{
interface
/
order
.
lisp
}
as
an
example
:
@
example
(
uiop
:
define
-
package
:
my
-
lib
/
interface
/
order
...
...
@@ -2016,6 +2017,35 @@ ASDF can tell that this file depends on system @code{closer-mop} (registered abo
@
code
{
my
-
lib
/
interface
/
definition
},
@
code
{
my
-
lib
/
interface
/
base
}
(
package
and
system
names
match
,
and
they
will
be
looked
up
hierarchically
).
How
can
ASDF
find
the
file
@
file
{
interface
/
order
.
lisp
}
from
the
toplevel
system
@
code
{
my
-
lib
},
however
?
In
the
example
above
,
@
file
{
interface
/
all
.
lisp
}
(
and
other
@
code
{
all
.
lisp
})
will
reexport
all
the
symbols
at
once
from
the
packages
at
the
same
or
lower
levels
of
the
hierarchy
.
This
can
be
easily
done
with
@
code
{
uiop
:
define
-
package
}:
@
example
(
uiop
:
define
-
package
:
my
-
lib
/
interface
/
all
(:
nicknames
:
my
-
lib
-
interface
)
(:
use
:
closer
-
common
-
lisp
)
(:
mix
:
fare
-
utils
:
uiop
:
alexandria
)
(:
use
-
reexport
:
my
-
lib
/
interface
/
definition
:
my
-
lib
/
interface
/
base
:
my
-
lib
/
interface
/
order
:
my
-
lib
/
interface
/
monad
/
continuation
))
@
end
example
And
thus
you
have
only
to
refer
to
each
@
code
{
my
-
lib
/.../
all
}
system
in
the
toplevel
system
because
ASDF
detects
@
file
{
interface
/
order
.
lisp
}
and
all
other
dependencies
from
@
code
{:
use
-
reexport
}
clause
.
The
form
@
code
{
uiop
:
define
-
package
}
is
supported
as
well
as
@
code
{
defpackage
},
and
has
many
options
that
prove
useful
in
this
context
,
such
as
@
code
{:
use
-
reexport
}
and
@
code
{:
mix
-
reexport
}
that
allow
for
``
inheritance
''
of
symbols
being
exported
.
ASDF
also
detects
dependencies
from
@
code
{:
import
-
from
}
clauses
.
You
may
thus
import
a
well
-
defined
set
of
symbols
from
an
existing
package
as
loaded
from
suitably
named
system
;
...
...
@@ -2031,30 +2061,6 @@ via an @code{:import-from} clause with an empty list of symbols, as in:
(:
export
...))
@
end
example
The form @code
{
uiop:define-package
}
is supported as well as @code
{
defpackage
}
,
and has many options that prove useful in this context,
such as @code
{
:use-reexport
}
and @code
{
:mix-reexport
}
that allow for ``inheritance'' of symbols being exported.
In @code
{
my-lib
}
example above, @file
{
my-lib/interface/all.lisp
}
(and
other @code
{
all.lisp
}
) will reexport all the symbols at once from the
packages at the same or lower levels of the hierarchy. This can be
done with @code
{
:use-reexport
}
:
@example
(uiop:define-package :my-lib/interface/all
(:nicknames :my-lib-interface)
(:use :closer-common-lisp)
(:mix :fare-utils :uiop :alexandria)
(:use-reexport
:my-lib/interface/definition
:my-lib/interface/base
:my-lib/interface/order
:my-lib/interface/monad/continuation))
@end example
And thus you have only to refer to each @code
{
my-lib/.../all
}
system in the toplevel system.
Note
that
starting
with
ASDF
3.1.5.6
only
,
ASDF
will
look
for
source
files
under
the
@
code
{
component
-
pathname
}
as
specified
via
the
@
code
{:
pathname
}
option
,
whereas
earlier
versions
ignore
this
option
and
use
the
@
code
{
system
-
source
-
directory
}
...
...
Robert Goldman
@rgoldman
mentioned in commit
204e1efd
·
Oct 05, 2018
mentioned in commit
204e1efd
mentioned in commit 204e1efd7851be1e4c93135dba7ca787a1bb9d00
Toggle commit list
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