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
Pascal J. Bourguignon
asdf
Commits
939c00f3
Commit
939c00f3
authored
23 years ago
by
Daniel Barlow
Browse files
Options
Downloads
Patches
Plain Diff
add compile-and-load-op, load-source-op ops
parent
e9323b37
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
README
+37
-10
37 additions, 10 deletions
README
with
37 additions
and
10 deletions
README
+
37
−
10
View file @
939c00f3
asdf: another system definition facility -*- Text -*-
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
This system definition utility talks in terms of 'components' and
'operations'.
'operations'.
...
@@ -214,18 +214,33 @@ defined to accept.
...
@@ -214,18 +214,33 @@ defined to accept.
** standard operations
** standard operations
*** compile-op
&key proclamations
*** compile-op
, load-op
The definition of `compile' is "do everything that we can do to make
When creating a new component, you should provide methods for these.
subsequent loads (in a new image that we didn't do the compile in)"
As a user, you almost never want to use them, though. See below.
faster.
*** 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
If proclamations are supplied, they will be proclaimed. This is a
good place to specify optimization settings
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
*** test-system-version &key minimum
...
@@ -388,10 +403,10 @@ has the effect of
...
@@ -388,10 +403,10 @@ has the effect of
where ... is the component in question; note that while :before
where ... is the component in question; note that while :before
methods are also supported by this, they may not do what you want them
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
will run after all the dependencies and sub-components have been
processed, but before the component in question has been
processed, but before the component in question has been
compiled
)
.
compiled.
*** Source location
*** Source location
...
@@ -456,13 +471,25 @@ partition:partition symbol
...
@@ -456,13 +471,25 @@ partition:partition symbol
Need an explicit error for "dependency missing" and "required version
Need an explicit error for "dependency missing" and "required version
of dependency missing" so that we can fit this to an automated
of dependency missing" so that we can fit this to an automated
dependency downloading thing
dependency downloading thing
.
* missing bits in implementation
* missing bits in implementation
** all of the above
** all of the above
** reuse the same scratch package whenever a system is reloaded from disk
** reuse the same scratch package whenever a system is reloaded from disk
** defsystem syntax for EQL methods
** defsystem syntax for EQL methods
How the hell Cop out and use EVAL?
** versions
** versions
** test suite, insofar as it makes sense
** test suite, insofar as it makes sense
** compiler/loader options
** compiler/loader options
verbosity, proclamations, etc: do this with specials
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
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