ASPL User Guide v 1.00
© 2025 Bassem W. Jamaleddine
ASPL is a containment software application that runs on top of the UNIX system. Its components are laid on the UNIX filesystem, and the interpreter uses many of the basic UNIX commands. Users who are confortable with the essential UNIX commands should be able to navigate easily around the ASPL directories. The command tilde displays a valuable output showing many of ASPL tilde-expansion commands and its settable enviornment variables. A tilde-expansion is a contraction of a mnemonic that is prefixed with ~ tilde character. The provided tilde-expansions makes ASPL a conductive learning environment with commands easier to remember: the user can effectively navigate and manage files and directories within ASPL containment infrastructure without leaving the interpreter.
For instance, the user can specify one of the various UNIX editors to be used by ASPL, simply by assigning the program editor name to the environment variable ASPL_EDITOR then typing ~colorsfile to simply edit the colors file.
On some ASPL distributions, entering the command envvar, to display ASPL environment variables, will also display the tilde-expansion.
The following shows the output of the command tilde. The output of the command may vary on your system, since it depends on the installation location of your distribution.
tilde expansion explanation directory
--------------- --------------------------------------------- -------------------------------------
˜pwd Parent process working directory /tmp/oo
˜home ASPL home directory /opt/ASPLv1.00
˜shared ASPL shared directory /opt/ASPLv1.00/shared
˜scripts Scripts directory (beta v2) NO SUCH DIRECTORY: ˜scripts
˜etc ASPL etc directory /opt/ASPLv1.00/etc
˜tmp ASPL tmp directory /root/.aspl/tmp
˜bin ASPL bin directory /opt/ASPLv1.00/bin
˜wsp ASPL Workspace directory /root/.aspl/WSP/WORKSPACES1
˜elmddir elmd's directory for the groupingclass /opt/ASPLv1.00/BRIDGE/ASPL/Groupings/Elements/Attributes
˜egc ASPL Element Grouping Class Container directory (loadable) /opt/ASPLv1.00/BRIDGE/ASPL/Groupings/Elements/ZEROGROUP
˜gg ASPL Grouping Functions directory (loadable) /opt/ASPLv1.00/BRIDGE/ASPL/GGs
˜ggs ASPL Grouping Functions directory (loadable) /opt/ASPLv1.00/BRIDGE/ASPL/GGs
˜tie Tied Attributes directory (loadable modules) NO SUCH DIRECTORY: ˜tie
˜feeder Feeder directory (of Udev) for Tied Attributes directory (loadable module) NO SUCH DIRECTORY: ˜feeder
˜geosubs GEO contextual set operation modules NO SUCH DIRECTORY: ˜geosubs
** You can navigate to any of these directories within ASPL, just type its tilde-expansion at the ASPL prompt followed by ENTER.
** To list the files in any of these directories within ASPL, just precede its tilde-expansion with ll,lls,llt,lltr,lld, or llsdr.
** the ll and lls are the same, llt list files by time, lltr list files by reverse time, lld list w.o. extending directories
** To change directory to the directory known to a tilde-expansion just type chdir followed by the tilde-expansion.
** to change directory to ˜ggs: chdir ˜ggs
** also by just typing: ˜ggs
** go back to parent directory: chdir ˜pwd
** go back to parent directory: ˜pwd
** To print the directory tree known to a tilde-expansion just type tree or treed followed by the tilde-expansion.
** for example display the tree (including files) of GGs functions: tree ˜ggs
** for example display the tree (only directories) of GGs functions: treed ˜ggs
** To print the URI of the ELMD file for currently loaded groupingclass: ˜elmd
** To edit the ks-vector defined in the ELMD definition file you will type: ˜ks
** If you have attributes defined as lambda code, you can edit the Anoncode module by typing: ˜anoncode
** If you have attributes tied functions, you can edit the Udev module by typing: ˜udev
** NOTE: the ˜tie directory is only available if the group attributes are tied to real time UNIX devices.
** NOTE: the ˜feeder directory is only available if the group attributes are tied to real time UNIX devices.
** NOTE: the ˜geosubs directory is only available with GEOmetric element grouping class.
tilde expansion explanation file
--------------- --------------------------------------------- -------------------------------------
˜colorsfile Colors configuration file /opt/ASPLv1.00/.aspl/etc/colors.conf
˜emailsfile Email groups file /root/.aspl/etc/emailspool
˜ddmfile DDM configuration file /opt/ASPLv1.00/etc/ddm.conf
˜shallowed Shallowed set operation processors module /opt/ASPLv1.00/.aspl/etc/ShallowMatches.pm
˜asplconf ASPL configuration file (sessions timeout) /opt/ASPLv1.00/etc/aspl.conf
** To edit any of these files within ASPL you can specify its tilde-expansion at the ASPL prompt, or just edit it in another terminal.
THE FOLLOWING ARE THE EXPORTED ASPL ENVIRONMENT VARIABLES:
----------------------------------------------------------
ASPL1_00_BRIDGE=/opt/ASPLv1.00/BRIDGE
ASPL1_00_HOME=/opt/ASPLv1.00
ASPL1_00_PROMPT='prompt:{tm} {u}@{h} {cwd} aspl:{no} > ;promptcolor:bold_black;logocolor:bold_black;loadcolors:colors3'
ASPL1_00_TMP=/root/.aspl/tmp
ASPL_CLI_CONFIG=/root/.aspl/WSP/WORKSPACES1,TRIVIAL,10,10,10,1000,30,2,0,0,0,0
BASH_EXECUTION_STRING='echo;set | grep ASPL'
PATH=/tools:/tools/nailsutil:/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/ASPLv1.00/bin:/opt/ASPLv1.00/shared:/root/.aspl/scripts:/opt/ASPLv1.00/BRIDGE/bin
EDITOR: "vi "
YOU CAN CHANGE THE EDITOR. FOR EXAMPLE,
TO USE "vim" EDITOR: export ASPL_EDITOR=vim
TO USE "joe" EDITOR: export ASPL_EDITOR=joe
TO USE "jpico" EDITOR: export ASPL_EDITOR=jpico
TO USE "emacs" EDITOR: export ASPL_EDITOR=emacs
YOU NEED TO EXIST AND EXPORT ASPL_EDITOR.
ASPL DEFAULT EDITOR IS "vi"
THE EDITOR IS DISABLED IF PAGING IS ON.
PAGER:
The current pager is "more"
The pager is disable by default, but you can toggle it with: paging 1
and turn it off with: paging 0
HISTORY:
The history of any ASPL workspace can be recalled with the "hs" command.
You can grep the history or the currently loaded workspace, for example: hs grep somestring
The current history of a session can be recalled with the "h" command.
The current history of a session is not being saved unless the workspace is saved with the "save" or "bye" command.
At the ASPL prompt, you can display the history of all workspaces can be displayed by typing "hsall", and
you can grep the history of all workspaces for somestring by typing "hsall grep somestring"
aspl> hsall
On the UNIX shell prompt you can also display the history by using any of the following commands:
# asplcmd hsall
# aspl -verb hsall
# asplcmd hsall | grep somestring
# asplmgrp -lisths
LIST ALL GROUPINGCLASSES (ELGROCO) DEFINED IN THE egC-Container:
# metagrouping -listnamed
QUICKLY LOOKING INTO A WORKSPACE:
On the UNIX shell prompt you can type the description of a workspace RANDONEBITMIX
# asplcmd "load RANDONEBITMIX; description"
you can type the history saved of a workspace RANDONEBITMIX
# asplcmd "load RANDONEBITMIX; hs"
WORKING WITH WORKSPACE:
To print the location of the workspace directory:
# asplcmd ˜wsp
To quickly list the workspace directory used by ASPL for your current configuration, type at the UNIX prompt:
# asplcmd wls
# asplcmd wlls
# asplcmd "wls sort by name"
# asplcmd "wls sort by grouping"
Find the named workspaces (or namedspaces) whose groupingclass is ZEROGROUP:
# asplcmd wls | grep ZEROGROUP
Since a saved namedspace has its metadata are saved in MGRP files, then you can list these with:
# asplmgrp -list
To print the currently loaded namedspace used by your ASPL session, this will also show the uptime:
aspl> wid
Typing the following command at the shell prompt will display the workspace then exit ASPL:
# asplcmd "load RANDONEBITMIX; wid"
Delete a workspace using the wrm command
aspl> wrm WS1JUNK
or at the UNIX prompt by calling asplcmd
# asplcmd "wrm WS1JUNK"
or at the UNIX prompt by starting ASPL and passing a -verb
# aspl WS1JUNK -verb wrm
You can always duplicate a workspace using the save command
here we start ASPL with WS1 workspace
# aspl WS1
we issue some command setting a123 set variable
aspl> a123 = gU a1 a2 a3
we save the current workspace to WS1JUNK
aspl> save WS1JUNK
saving the workspace does not mean ASPL will load it, wid will show that WS1 is still being used
aspl> wid
we quit (without saving WS1 workspace) and restart ASPL with WS1JUNK
aspl> quit
# aspl WS1JUNK
TRANSIENT:
The special namedspace TRANSIENT is a temporary memory space used by ASPL for its default command:
WHICH:
ASPL has a colorful pretty print "which" command.
aspl> whichxX+iR *aspl*group*
It is also available at the UNIX shell prompt as the "whichma" command:
# whichma xX+iR "*aspl*group*"
and even build a tree and walk its directories:
# ALTERNATE_EXPANDEDPATH=$(pathedtrees -dir /opt/ASPLv1.00/BRIDGE/ASPL) whichma xX+iR "aspl*/Feeder*pm"
For more about ASPL "which" command or its shell equivalent whichma-call-it "whichma" command, you can
simply type "whichma" at the shell prompt:
# whichma
VERBOSE STARTUP:
Start ASPL with -verbose option to display information at startup.
If a workspace has been already saved, then you can quickly start ASPL by loading it, eg. to load TRIVIAL:
# aspl TRIVIAL -verbose
or explicitly specify the namedspace and its namedGClass
# aspl -wsname TRIVIAL -groupingclass ZEROGROUP -verbose
SCRIPT:
Always have the -script as the first option, followed by the scriptname and its arguments:
# aspl -script /opt/ASPLv1.00/shared/dircompare.aspl /tmp/aa3 /tmp/aa6
the following command executes the ASPL script with trace
# aspl -script /opt/ASPLv1.00/shared/dircompare.aspl /tmp/aa3 /tmp/aa6 -SCT
the following command executes the ASPL script with trace and show ASPL startup
# aspl -script /opt/ASPLv1.00/shared/dircompare.aspl /tmp/aa3 /tmp/aa6 -SCT -verbose
below, -verbose will be ignored since the always -script should be the first argument
# aspl -verbose -script /opt/ASPLv1.00/shared/dircompare.aspl /tmp/aa3 /tmp/aa6 -SCT
DEBUG STARTUP:
ASPL_DBG_ENTRY=4 aspl -showonly
ASPL_DBG_ENTRY=1 aspl
ASPL_DBG_ENTRY=3 aspl -wsname TRIVIAL -verbose
PEEK INSIDE ..
aspl> findegc egrouping_class
aspl> findgg egroupingclass
aspl> ffinder ˜gg/ggbit*.pm egroupingclass
aspl> ffinder ˜gg/* TRIVIAL
aspl> grepper ˜gg/* TRIVIAL
aspl> grepper ˜gg/ggbit*.pm egroupingclass
aspl> ffinder ˜egc/* TRIVIAL
aspl> ffinder ˜elmd egrouping_class
aspl> grepper ˜elmd egrouping_class
aspl> whichexp /home/bassem/.aspl:/opt/ASPLv1.00/BRIDGE GG*BAY*feed*
# whichexp
CURRENT LOADED WORKSPACE:
The current workspace repository is "/root/.aspl/WSP/WORKSPACES1"
The currently loaded namedspace is "TRIVIAL"
This namespace has namedGClass "ZEROGROUP"
The ASPL intepreter is a pure PERL implementation that is build on top of the UNIX system
and it uses the PERL virtual machine in processing its statements.
Thank you for using ASPL.
COPYRIGHT 2025 by Bassem Jamaleddine
--------------- --------------------------------------------- -------------------------------------
˜pwd Parent process working directory /tmp/oo
˜home ASPL home directory /opt/ASPLv1.00
˜shared ASPL shared directory /opt/ASPLv1.00/shared
˜scripts Scripts directory (beta v2) NO SUCH DIRECTORY: ˜scripts
˜etc ASPL etc directory /opt/ASPLv1.00/etc
˜tmp ASPL tmp directory /root/.aspl/tmp
˜bin ASPL bin directory /opt/ASPLv1.00/bin
˜wsp ASPL Workspace directory /root/.aspl/WSP/WORKSPACES1
˜elmddir elmd's directory for the groupingclass /opt/ASPLv1.00/BRIDGE/ASPL/Groupings/Elements/Attributes
˜egc ASPL Element Grouping Class Container directory (loadable) /opt/ASPLv1.00/BRIDGE/ASPL/Groupings/Elements/ZEROGROUP
˜gg ASPL Grouping Functions directory (loadable) /opt/ASPLv1.00/BRIDGE/ASPL/GGs
˜ggs ASPL Grouping Functions directory (loadable) /opt/ASPLv1.00/BRIDGE/ASPL/GGs
˜tie Tied Attributes directory (loadable modules) NO SUCH DIRECTORY: ˜tie
˜feeder Feeder directory (of Udev) for Tied Attributes directory (loadable module) NO SUCH DIRECTORY: ˜feeder
˜geosubs GEO contextual set operation modules NO SUCH DIRECTORY: ˜geosubs
** You can navigate to any of these directories within ASPL, just type its tilde-expansion at the ASPL prompt followed by ENTER.
** To list the files in any of these directories within ASPL, just precede its tilde-expansion with ll,lls,llt,lltr,lld, or llsdr.
** the ll and lls are the same, llt list files by time, lltr list files by reverse time, lld list w.o. extending directories
** To change directory to the directory known to a tilde-expansion just type chdir followed by the tilde-expansion.
** to change directory to ˜ggs: chdir ˜ggs
** also by just typing: ˜ggs
** go back to parent directory: chdir ˜pwd
** go back to parent directory: ˜pwd
** To print the directory tree known to a tilde-expansion just type tree or treed followed by the tilde-expansion.
** for example display the tree (including files) of GGs functions: tree ˜ggs
** for example display the tree (only directories) of GGs functions: treed ˜ggs
** To print the URI of the ELMD file for currently loaded groupingclass: ˜elmd
** To edit the ks-vector defined in the ELMD definition file you will type: ˜ks
** If you have attributes defined as lambda code, you can edit the Anoncode module by typing: ˜anoncode
** If you have attributes tied functions, you can edit the Udev module by typing: ˜udev
** NOTE: the ˜tie directory is only available if the group attributes are tied to real time UNIX devices.
** NOTE: the ˜feeder directory is only available if the group attributes are tied to real time UNIX devices.
** NOTE: the ˜geosubs directory is only available with GEOmetric element grouping class.
tilde expansion explanation file
--------------- --------------------------------------------- -------------------------------------
˜colorsfile Colors configuration file /opt/ASPLv1.00/.aspl/etc/colors.conf
˜emailsfile Email groups file /root/.aspl/etc/emailspool
˜ddmfile DDM configuration file /opt/ASPLv1.00/etc/ddm.conf
˜shallowed Shallowed set operation processors module /opt/ASPLv1.00/.aspl/etc/ShallowMatches.pm
˜asplconf ASPL configuration file (sessions timeout) /opt/ASPLv1.00/etc/aspl.conf
** To edit any of these files within ASPL you can specify its tilde-expansion at the ASPL prompt, or just edit it in another terminal.
THE FOLLOWING ARE THE EXPORTED ASPL ENVIRONMENT VARIABLES:
----------------------------------------------------------
ASPL1_00_BRIDGE=/opt/ASPLv1.00/BRIDGE
ASPL1_00_HOME=/opt/ASPLv1.00
ASPL1_00_PROMPT='prompt:{tm} {u}@{h} {cwd} aspl:{no} > ;promptcolor:bold_black;logocolor:bold_black;loadcolors:colors3'
ASPL1_00_TMP=/root/.aspl/tmp
ASPL_CLI_CONFIG=/root/.aspl/WSP/WORKSPACES1,TRIVIAL,10,10,10,1000,30,2,0,0,0,0
BASH_EXECUTION_STRING='echo;set | grep ASPL'
PATH=/tools:/tools/nailsutil:/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/ASPLv1.00/bin:/opt/ASPLv1.00/shared:/root/.aspl/scripts:/opt/ASPLv1.00/BRIDGE/bin
EDITOR: "vi "
YOU CAN CHANGE THE EDITOR. FOR EXAMPLE,
TO USE "vim" EDITOR: export ASPL_EDITOR=vim
TO USE "joe" EDITOR: export ASPL_EDITOR=joe
TO USE "jpico" EDITOR: export ASPL_EDITOR=jpico
TO USE "emacs" EDITOR: export ASPL_EDITOR=emacs
YOU NEED TO EXIST AND EXPORT ASPL_EDITOR.
ASPL DEFAULT EDITOR IS "vi"
THE EDITOR IS DISABLED IF PAGING IS ON.
PAGER:
The current pager is "more"
The pager is disable by default, but you can toggle it with: paging 1
and turn it off with: paging 0
HISTORY:
The history of any ASPL workspace can be recalled with the "hs" command.
You can grep the history or the currently loaded workspace, for example: hs grep somestring
The current history of a session can be recalled with the "h" command.
The current history of a session is not being saved unless the workspace is saved with the "save" or "bye" command.
At the ASPL prompt, you can display the history of all workspaces can be displayed by typing "hsall", and
you can grep the history of all workspaces for somestring by typing "hsall grep somestring"
aspl> hsall
On the UNIX shell prompt you can also display the history by using any of the following commands:
# asplcmd hsall
# aspl -verb hsall
# asplcmd hsall | grep somestring
# asplmgrp -lisths
`asplcmd ˜wsp` LIST ALL GROUPINGCLASSES (ELGROCO) DEFINED IN THE egC-Container:
# metagrouping -listnamed
QUICKLY LOOKING INTO A WORKSPACE:
On the UNIX shell prompt you can type the description of a workspace RANDONEBITMIX
# asplcmd "load RANDONEBITMIX; description"
you can type the history saved of a workspace RANDONEBITMIX
# asplcmd "load RANDONEBITMIX; hs"
WORKING WITH WORKSPACE:
To print the location of the workspace directory:
# asplcmd ˜wsp
To quickly list the workspace directory used by ASPL for your current configuration, type at the UNIX prompt:
# asplcmd wls
# asplcmd wlls
# asplcmd "wls sort by name"
# asplcmd "wls sort by grouping"
Find the named workspaces (or namedspaces) whose groupingclass is ZEROGROUP:
# asplcmd wls | grep ZEROGROUP
Since a saved namedspace has its metadata are saved in MGRP files, then you can list these with:
# asplmgrp -list
`asplcmd ˜wsp` To print the currently loaded namedspace used by your ASPL session, this will also show the uptime:
aspl> wid
Typing the following command at the shell prompt will display the workspace then exit ASPL:
# asplcmd "load RANDONEBITMIX; wid"
Delete a workspace using the wrm command
aspl> wrm WS1JUNK
or at the UNIX prompt by calling asplcmd
# asplcmd "wrm WS1JUNK"
or at the UNIX prompt by starting ASPL and passing a -verb
# aspl WS1JUNK -verb wrm
You can always duplicate a workspace using the save command
here we start ASPL with WS1 workspace
# aspl WS1
we issue some command setting a123 set variable
aspl> a123 = gU a1 a2 a3
we save the current workspace to WS1JUNK
aspl> save WS1JUNK
saving the workspace does not mean ASPL will load it, wid will show that WS1 is still being used
aspl> wid
we quit (without saving WS1 workspace) and restart ASPL with WS1JUNK
aspl> quit
# aspl WS1JUNK
TRANSIENT:
The special namedspace TRANSIENT is a temporary memory space used by ASPL for its default command:
WHICH:
ASPL has a colorful pretty print "which" command.
aspl> whichxX+iR *aspl*group*
It is also available at the UNIX shell prompt as the "whichma" command:
# whichma xX+iR "*aspl*group*"
and even build a tree and walk its directories:
# ALTERNATE_EXPANDEDPATH=$(pathedtrees -dir /opt/ASPLv1.00/BRIDGE/ASPL) whichma xX+iR "aspl*/Feeder*pm"
For more about ASPL "which" command or its shell equivalent whichma-call-it "whichma" command, you can
simply type "whichma" at the shell prompt:
# whichma
VERBOSE STARTUP:
Start ASPL with -verbose option to display information at startup.
If a workspace has been already saved, then you can quickly start ASPL by loading it, eg. to load TRIVIAL:
# aspl TRIVIAL -verbose
or explicitly specify the namedspace and its namedGClass
# aspl -wsname TRIVIAL -groupingclass ZEROGROUP -verbose
SCRIPT:
Always have the -script as the first option, followed by the scriptname and its arguments:
# aspl -script /opt/ASPLv1.00/shared/dircompare.aspl /tmp/aa3 /tmp/aa6
the following command executes the ASPL script with trace
# aspl -script /opt/ASPLv1.00/shared/dircompare.aspl /tmp/aa3 /tmp/aa6 -SCT
the following command executes the ASPL script with trace and show ASPL startup
# aspl -script /opt/ASPLv1.00/shared/dircompare.aspl /tmp/aa3 /tmp/aa6 -SCT -verbose
below, -verbose will be ignored since the always -script should be the first argument
# aspl -verbose -script /opt/ASPLv1.00/shared/dircompare.aspl /tmp/aa3 /tmp/aa6 -SCT
DEBUG STARTUP:
ASPL_DBG_ENTRY=4 aspl -showonly
ASPL_DBG_ENTRY=1 aspl
ASPL_DBG_ENTRY=3 aspl -wsname TRIVIAL -verbose
PEEK INSIDE ..
aspl> findegc egrouping_class
aspl> findgg egroupingclass
aspl> ffinder ˜gg/ggbit*.pm egroupingclass
aspl> ffinder ˜gg/* TRIVIAL
aspl> grepper ˜gg/* TRIVIAL
aspl> grepper ˜gg/ggbit*.pm egroupingclass
aspl> ffinder ˜egc/* TRIVIAL
aspl> ffinder ˜elmd egrouping_class
aspl> grepper ˜elmd egrouping_class
aspl> whichexp /home/bassem/.aspl:/opt/ASPLv1.00/BRIDGE GG*BAY*feed*
# whichexp
`asplcmd ˜home`/bin "*aspl* CURRENT LOADED WORKSPACE:
The current workspace repository is "/root/.aspl/WSP/WORKSPACES1"
The currently loaded namedspace is "TRIVIAL"
This namespace has namedGClass "ZEROGROUP"
The ASPL intepreter is a pure PERL implementation that is build on top of the UNIX system
and it uses the PERL virtual machine in processing its statements.
Thank you for using ASPL.
COPYRIGHT 2025 by Bassem Jamaleddine