Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
asdf
asdf
Commits
939c00f3
Commit
939c00f3
authored
Feb 14, 2002
by
Daniel Barlow
Browse files
add compile-and-load-op, load-source-op ops
parent
e9323b37
Changes
1
Hide whitespace changes
Inline
Side-by-side
README
View file @
939c00f3
asdf
:
another
system
definition
facility
-*-
Text
-*-
$
Id
:
README
,
v
1.1
0
2002
/
02
/
1
2
1
2
:
46
:
5
4
dan_b
Exp
$
$
Id
:
README
,
v
1.1
1
2002
/
02
/
1
4
1
1
:
37
:
5
8
dan_b
Exp
$
This
system
definition
utility
talks
in
terms
of
'components'
and
'operations'
.
...
...
@@ -214,18 +214,33 @@ defined to accept.
**
standard
operations
***
compile
-
op
&
key
proclamations
***
compile
-
op
,
load
-
op
The
definition
of
`
compile
' is "do everything that we can do to make
subsequent loads (in a new image that we didn'
t
do
the
compile
in
)
"
faster.
When
creating
a
new
component
,
you
should
provide
methods
for
these
.
As
a
user
,
you
almost
never
want
to
use
them
,
though
.
See
below
.
***
compile
-
and
-
load
-
op
&
key
proclamations
This
is
roughly
equivalent
to
the
mk
-
defsystem
'compile'
operation
.
Compiling
a
system
usually
involves
loading
each
component
after
it
is
compiled
-
we
've changed the name of this operation to make it more
explicit what is happening
If proclamations are supplied, they will be proclaimed. This is a
good place to specify optimization settings
*** load-op
You probably don'
t
need
to
create
this
method
if
you
are
creating
a
new
component
type
.
The
default
method
for
this
operation
on
source
-
files
calls
compile
-
op
and
load
-
op
***
load
-
source
-
op
Sometimes
systems
have
knotty
dependencies
which
require
that
sources
are
loaded
before
they
can
be
compiled
.
This
is
how
you
do
that
.
If
you
are
creating
a
component
type
,
you
need
to
implement
this
operation
-
at
least
,
where
meaningful
.
This is the `do everything' operation. It depends on compile-op.
***
test
-
system
-
version
&
key
minimum
...
...
@@ -388,10 +403,10 @@ has the effect of
where ... is the component in question; note that while :before
methods are also supported by this, they may not do what you want them
d
o
(
a :before method on perform ((op compile-op) (c (eql ...)))
t
o
-
a :before method on perform ((op compile-op) (c (eql ...)))
will run after all the dependencies and sub-components have been
processed, but before the component in question has been
compiled
)
.
compiled.
*** Source location
...
...
@@ -456,13 +471,25 @@ partition:partition symbol
Need
an
explicit
error
for
"dependency missing"
and
"required version
of dependency missing"
so
that
we
can
fit
this
to
an
automated
dependency downloading thing
dependency
downloading
thing
.
*
missing
bits
in
implementation
**
all
of
the
above
**
reuse
the
same
scratch
package
whenever
a
system
is
reloaded
from
disk
**
defsystem
syntax
for
EQL
methods
How
the
hell
Cop
out
and
use
EVAL
?
**
versions
**
test
suite
,
insofar
as
it
makes
sense
**
compiler
/
loader
options
verbosity
,
proclamations
,
etc
:
do
this
with
specials
(
defvar
*
visited
-
nodes
*
nil
)
(
defvar
*
visiting
-
nodes
*
nil
)
rewrite
the
component
-
visiting
stuff
to
hide
this
state
in
the
operation
**
pathname
defaulting
in
defsystem
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