ASPL User Manual v 1.00
© 2025 SetSphere.com


C

   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