Re: ASDF-newbie: How to determine whether ASDF is *already* installed on my ISP?




[Pascal J. Bourguignon]

| [...] man THE_COMAND and read carefully the page mage
| of the command.

[Robert Maas]

| I already did read those fucking-extraverbose man pages several times,
| each time spending a half hour or hour or even two hours [...]

You might be better off reading them less carefully. I'm often helped
by cheap-and-cheerful approaches, like

$ diff --version | head -n 1
diff (GNU diffutils) 2.8.1

$ diff --help | grep white
-b --ignore-space-change Ignore changes in the amount of white space.
-w --ignore-all-space Ignore all white space.

at least for the first pass.

I think it's reasonable to think of `find' as the general Unix user
interface for operating on the filesystem-graph, and as such worth
spending a little time learning.

find --help

yields a dense overview, at least with a recent GNU findutils. Also,
the top 4 Google results for "find tutorial" are tutorials for `find'.

You'll find that most commands yield useful output when you pass --help.

| Ok, now it's sitting at:
| Manual page diff(1) line 195/219 (END)
| and when I press space to continue off the end it just beeps at me.
| Do I need to press control-C to abort the 'man' program on Ubuntu

Nowadays it's reasonable to assume that the default pager is `less'
(instead of `more'). `man' takes care of rendering the page, and punts
to `less' for paging. Press `q' to quit, press `h' to see a help-page,
press `/' to search forward for a regex-match, press `g' to jump to the
first line. Piping long output to `less' for paging long outputs from
grep, locate etc. is useful.

There's a recent-Linux-distribution survival-kit for you; --help,
option, grep, find, locate, man and less.

| How come the line-number given by 'diff' isn't the same as one more
| than the number of C-N commands needed to get there? Is it because
| the stupid version of EMACS on Ubuntu counts wrapped lines as MORE
| THAN ONE LINE [...]

That sounds highly unlikely. Besides, you can probably get the
display behaviour you want by putting "(setq selective-display-ellipses
t)" in your .emacs.

Since you're already in Emacs, it's convenient to do `M-x diff RET'
insteading of dropping to a shell. Other useful commands to avoid
dropping to a shell in Emacs are `dired', `locate', `grep', `find',
`find-grep' and `man'. They invoke the corresponpinding Linux commands
for you, and provides helpful behaviour for operating on the output.
For example, `RET' on a line in a diff-buffer will take you to the
corresponding line in the source file, `RET' on a line in a grep buffer
will take you to the corresponding location in the source file etc.

| I don't understand why, on Ubuntu where asdf already is on system
| disk, I need to provide my own version in addition. Why can't I
| just use the system-supplied version?

Why can't you? (load "/path/to/asdf.lisp") ?

| I'm guessing asdf:oos means Object-Oriented Services, but
| so-far the Google search isn't turning up the definition of the
| abbreviation.

CL-USER> (load #p"/home/thomas/lib/cl/asdf.lisp")
T
CL-USER> (documentation 'asdf:oos 'function)
"Short for _operate on system_ and an alias for the `operate` function.
Operate does three things:

1. It creates an instance of `operation-class` using any keyword parameters
as initargs.
2. It finds the asdf-system specified by `system` (possibly loading
it from disk).
3. It then calls `traverse` with the operation and system as arguments

The traverse operation is wrapped in `with-compilation-unit` and error
handling code. If a `version` argument is supplied, then operate also
ensures that the system found satisfies it using the `version-satisfies`
method."

An alternative to ASDF is Sean Ross' Mudballs <http://mudballs.com/>

| Many years ago there were job openings for people to do this kind of
| work, for the purpose of developing a huge database of "world
| knowledge" for use by a computer system that understood the deep
| meaning of natural language.

Today the "semantic web" is all the rage. Or, maybe it was last week.
<http://en.wikipedia.org/wiki/Semantic_Web>

| IMO s-expressions are optimal for specifying strictly-nested
| structures, whereas SGML is optimal for turning orthogonal modes on
| and off in a non-nested way, the old "tag soup" methodology.

Related topic at <http://www.cliki.net/HTML-from-sexpr>. Marking up
with sexprs offers paren-matching instead of tag-balancing, structural
editing with familiar Emacs commands, less verbosity, easy manipulation
by means of CL, easy to spit out whatever-format from.

| I wonder how MicroSoft Word fhandles it [...]

It's "Microsoft", I believe.

| [about ASDF dependency-detection/resolving]

<http://www.cliki.net/asdf-dependency-grovel> is useful, and
<http://common-lisp.net/project/xcvb/> is in the works.

ASDF/ASDF-INSTALL works just fine for downloading, installing, compiling
and loading an extensive set of libraries, though.

| Suppose that file "a" in system FOO changes; if you load system BAR,
| file "a" will be recompiled; but file "b" will not! If file "b" uses a
| macro from file "a", you will load the old version of that macro from
| FASLs, and things will break. Ow.

| Does this mean ASDF is really crappy in this respect?

This has bitten me often enough that I have written tools for clearing
relevant fasls. On the other hand, I've become better at getting my
macros right quickly. :)

--
Thomas
.


Quantcast