Dave wrote:

> Please can anyone help me.
>
> I am developing useful procedures in pop11 which I autoload as needed.
>
> What I would also like to do is augment the pop help system to provide help
> on them.
>
> I was hoping that there was a popvar, say called pophelplist, which would
> contain a list of user defined help directories for the help system to
> search.
>
> I have not managed to find such a var.
>
> Perhaps there is another way to do it?

I see that while I was writing my answer below, others have given shorter
answers.

If you find their answers adequate, ignore what follows. But there is a
non-trivial re-design project to be set up for the long term future of poplog.

Meanwhile:

Essentially this is what the environment variable $poplib is for (and there
are more details scattered around REF SYSTEM).

Poplog is meant to be VERY VERY VERY tailorable! That includes allowing
individual users or groups of users (e.g. a group of students taught on a
particular course) to modify or extend almost any portion of poplog as it
appears to them (or their students and friends).

This is partly done through a variety of search lists, for files or directories
containing any (or all) of, in no particular order:

user-specified, or group specfied, or system specified (defaults for all users)

        saved images (defining the commands pop11, prolog, clisp,

                etc. also xved and others that invoke saved images).

        code libraries,

                including
                whole packages with their own subdirectories, like popvision, 
popneural,
                poprulebase, sim_agent (which uses poprulebase), etc.

        documentation libraries (teach,  help, ref, doc, demo) which may be 
parts of
                packages (e.g. part of popvision) or standalone, e.g. teach 
arith.
                teach decimals.

This tailoring is done via the environment variable $poplib.

If users invoke poplog without defining $poplib poplog treats $poplib as
referring to

        $usepop/pop/packages/setup/Poplib

That Poplib directory used to be a core part of Poplog but when the packages
subtree was added Poplib was located there, to allow the files in Poplib to
specify extensions to poplog for the user (or group of users sharing a
poplog system, e.g. a group of students, or a research project team).

Also uses this user-, or system- extendable directory:

        $usepop/pop/packages/lib/*.p

The Poplib directory (above) contains a collection of lists that set up a whole
lot of defaults for current users:

    Poplib/Poplogfiles
        explains (too tersely) what the directory is for.
                
    Poplib/Xdefaults.poplog
                stuff about bitmaps, terminals, colours, fonts, ...

    Poplib/init.ml
                stuff for pml (??) (Should we get rid of the Pml subsystem, as 
its
                designers have informed me that it is out of date and buggy?)

    Poplib/init.p
        starts up various pop11 and system stuff inside pop11.
                
    Poplib/init.pl
                ditto for prolog
                        obscurely: contains only one line: library(useful)
                        I assume there's a default prolog useful.pl somewhere, 
which can be
                        redefined by users.

    Poplib/vedfiletypes.p
                specifies various types of files used for various purposes in 
various
                subsystems.

                Users can add new types, with new suffixes to identify them, 
and then
                provide code libraries for dealing with them!

    Poplib/vedinit.p

                sets up a large collection of defaults for specifying the 
behaviour of
                ved/xved (the poplog editor, which can do much more than just 
editing
                -- e.g. it can invoke the language compiler or other things),

                including types of font, behaviour of the mouse when editing,
                how to behave according to the type of terminal, mouse and 
keyboard
                e.g. standard xterm, or graphical terminal, standard querty
                keyboard or something else (e.g. sun workstation keyboard),

                        I am sure that the set of alternatives is badly out of 
date!!!

                        Any volunteers to produce a more sane and up to date 
version, for
                        this and the other initialisation files? Not a trivial 
task and
                        details may change as technology changes.

                        E.g. there should be options for voice commands for the 
editor, in
                        the user's language!

NB NB
A user who doesn't like the defaults can copy and edit the contents of

    $usepop/pop/packages/poplib

into a new directory (possibly shared by a team...) and then redefine the
environment variable $poplib somewhere in their login scripts to refer to that
directory -- as I do.

NB the stuff in the user's $poplib may be a minor variant of the default
version, or it may include *major* extensions, e.g. packages as big and
important as popvision, for example, or a collection of documentation and code
libraries to be used by a whole group of students, or a project team.

Similar remarks apply to individual packages that can be copied and edited:

    rclib, neural, teaching, vedlatex, emacs ...

The packages don't all share the same structure. Several of them, e.g. the
'teaching' package started life as simply a collection of stuff I removed from
the default poplog libraries, where they could (and sometimes did) get in the
way using the original default autoloading or library loading mechanisms.
Later various additional tutorials were added.

It is also possible for other packages, e.g. popvision, poprulebase, simagent,
etc. to include their own tutorials, in which case the 'teach' search list
should be extended appropriately when those packages are added.
Likewise help, ref, doc, lib, auto, ... search lists

Of course the user added search lists can shadow the default search lists,
which is a reason for being very careful about choice of names for packages
and their files, etc.

If I were starting again I would probably introduce a more fine-grained
structure, and perhaps a different design. But I have no idea what it should now
be!!

Is it worth funding a very bright MSc student to come up with a proposal, after
much consultation with experienced users?

I fear there's nobody left at Birmingham who could supervise such a student
(although some members of staff grew up on poplog in the distant past).

It's not a job for one or two of us in an armchair --- but perhaps someone would
like to make a proposal for a revised library-, and meta-library- system for
poplog???.

I hope that's not too indigestible.

Dave, as a newly re-joined *real* poplog user really writing pop11 code, you may
be in a specially good position to identify some relatively straightforward
highly desirable extensions/modifications.

Feel free to circulate a proposal to pop-forum if you come up with ideas.

Aaron

Reply via email to