Layout of the Poplog forest - GetPoplog/Seed GitHub Wiki
The Poplog-forest consists of three "trees" (it's a small forest, admittedly):
- The core Poplog system, which is housed in
$usepop/pop
and should be versioned - The folders used for unstructured add-ons,
$poplocal/local
- The user's personal add-on folder,
$poplib
This page describes the current plan for laying out these folders. As we get more serious about the package structure, we will almost certainly need to add a 4th tree to our forest for post-install add-ons, so we can cope with installations on read-only systems (e.g. appImage and snap).
Each tree has three significant locations. There's no standard names for these so in this document we call them the prefix, the home and the content. The home acts as the parent to one or more versions of the content. So if Poplog is installed in /opt/poplog
then
- the prefix is
/opt
- the home is
/opt/poplog
- the content is
/opt/poplog/current_usepop
(there may be multiple versions)
The structure of the base Poplog-tree is as follows:
$PREFIX - prefix, default /opt
poplog/ - home
current_usepop -> V16
V16/ - content (versioned)
pop/
com/...
doc/...
lib/
auto/...
lib/...
include/...
psv/... - poplog saved images
<more>
lisp/... - Common Lisp
obj/...
packages/...
plog/... - Prolog
pml/... - Standard ML
pop/...
ref/...
src/...
teach/...
ved/...
x/...
The $poplocal
tree is used for system-wide extensions to the base installation. This tree is much less elaborate than the base. GetPoplog has a different default location for this tree, as explained here. GetPoplog also places $poplocalbin
within this tree.
$PREFIX/ - prefix, default /opt
poplocal - home [*]
local - content
init.p
vedinit.p
auto/ - $poplocalauto
psv/ - $poplocalbin [*]
N.B. As part of GetPoplog, we plan to flesh out this structure a little bit more to include lib
and help
folders at least. Further expansion will wait until we tackle standardising packages.
This is the most reduced of the trees.
$HOME - home, prefix not relevant
$poplib/ - content, default ~/.poplog [*]
init.p
vedinit.p