Coding in E-L

Glenn Holloway (holloway@endor.harvard.edu)
Tue, 18 Feb 1997 15:09:08 -0500


Allyn Dimock writes:
>
> Glenn, I've taken care of the request for a manual, and pointed ...
> towards the error derivative.
>
> Could you look at "Bad prerequisite or reference" stuff below.
> Thanks.
>
[...]
>
> >From: ...@das.harvard.edu
> >Date: Mon, 17 Feb 97 20:59:50 EST
[...]
> >
> ><error%Executable^sun4-pro> Bad prerequisite or reference
> > [wc-C-main C-module 1997/02/17 20:47:16]<module-summary>
> ><Executable%sun4-pro> Bad prerequisite or reference
> > [wc-C-main C-module 1997/02/17 20:47:16]<module-summary>
> ><error%Executable^sun4-dbg> Bad prerequisite or reference
> > [wc-C-main C-module 1997/02/17 20:47:16]<module-summary>
> ><Executable%sun4-dbg> Bad prerequisite or reference
> > [wc-C-main C-module 1997/02/17 20:47:16]<module-summary>
> >

When you get a display like the above, you're meant to
put your cursor on one of the lines like

[wc-C-main C-module 1997/02/17 20:47:16]<module-summary>

and use M-x follow-link (or C-z ^) to get more information.
For example, in the current state of your wc-C-main C-module,
I used M-x examine-problems on that artifact to get a similar display:

<error%object^sun4-dbg> Bad prerequisite or reference
[wc-C-main C-module 1997/02/17 20:47:16]<sun4-dbg [cc universal 1997/02/10 21:14:36] -g>
<object%sun4-dbg> Bad prerequisite or reference
[wc-C-main C-module 1997/02/17 20:47:16]<sun4-dbg [cc universal 1997/02/10 21:14:36] -g>
<C-spec> Bad prerequisite or reference
[Headers C-module 1997/02/10 22:41:30]<C-text>
<C-file> Bad prerequisite or reference
[Headers C-module 1997/02/10 22:41:30]<C-text>
<module-summary> Bad prerequisite or reference
[Headers C-module 1997/02/10 22:41:30]<C-text>

Then I used C-z ^ on

[wc-C-main C-module 1997/02/17 20:47:16]<sun4-dbg [cc universal 1997/02/10 21:14:36] -g>

to get
>>> Bad prerequisite or reference
[wc-C-main C-module 1997/02/17 20:47:16]<C-file>
[wc-C-main C-module 1997/02/17 20:47:16]<C-spec>
[wc-C-main C-module 1997/02/17 20:47:16]<module-summary>
[Headers C-module 1997/02/10 22:41:30]<C-text>

The last line of this looked especially bogus to me (modules shouldn't have
C-text derivatives), so I used C-z ^ on that line and got

>>> Artifact type C-module, kind C-text not in derivers plex

Now, it's my belief that you should have gotten a notice to the
same effect when you originally committed things. Still, it's
so cryptic, I can understand why it wouldn't have meant much.

The reference to [stdio ...] in your Headers module needs to be
followed by <spec>. Compare with some of the references to
things analogous to stdio in the game-of-life C-module
artifacts, for example.

Furthermore, you're wanting to export the definitions in stdio
to clients of Headers, so you need to use M-x highlight-region (C-z h)
on the line [stdio ...]<spec>, and you need to give the highlighted
region attribute global, instead of the default local. Use C-z !
on the word local (after doing C-z h) to toggle it to global.

To try to anticipate other problems, I made a copy of your wc
program under my own name. For what it's worth, the while loop
in your 101c artifact needs a closing right brace.

Good luck.

Glenn