ASPL User Guide v 1.00
© 2025 Bassem W. Jamaleddine


G

   ASPL Tilde Expansions: tilde

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 `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