ASPL User Guide v 1.00
© 2025 Bassem W. Jamaleddine
By typing aspl by itself on the command prompt, then pressing ENTER, you will start the interpreter with the default namedspace that is defined in the environment variable ASPL_CLI_CONFIG. To start ASPL loading the namedspace WS1, you can enter the short form:
# aspl WS1
# aspl -wsname WS1
# aspl -wsname WS1 -groupingclass POSIX
Use the asplcmd command to pass instructions to run through ASPL interpreter, then exit. These instructions are passed within a quoted string to asplcmd. You can pass any of the tilde-expansion as part of the instructions.
# asplcmd wls
# asplcmd "load WS1; v"
load namedspace WS1, print the symbol table, then exit
# asplcmd envvar
print the env var of the namedspace loaded by default
# asplcmd ~gg
print the location of the GG-Container
# asplcmd ~ggs
~gg or ~ggs are the same
# ls -l $(asplcmd ~gg)
passing result to the shell
# ls -l `asplcmd ~gg`
DO NOT CONFUSE asplcmd FOR aspl
Entering aspl is not the same as asplcmd. While the following two commands work fine on your system:
① # asplcmd wls
passing the command wls through ASPL
② # aspl wls
starting the interpreter on a namedspace wls
You may choose to alias asplcmd with something else
# alias ascmd=asplcmd
# ls `ascmd ~gg`
Remember all namedspaces are uppercase words, the following three commands are equivaleent as they load the same namedspace ACMESPACE
# aspl ACMESPACE
# aspl Acmespace
# aspl acmespace
ASPL. Casual users of ASPL do not need to work with any of these commands;
however, if you are a developer, or your aim is to maintain ASPL on your UNIX
system, then you may find some of the following commands helpful.
▪ You want to see the tilde-expansions
# asplcmd tilde
# asplcmd tilde | grep "^\s*~"
show nothing but tilde-expansion
# asplcmd "load WS1; tilde"
# asplcmd "load TIERANDGAUSSIAN; tilde"
▪ You want to display the ANSI colors used by ASPL
# ttycolors
# asplcmd ~colorsfile
# ASPL_EDITOR=nano asplcmd ~colorsfile
▪ You want to use nano as the program editor, then export ASPL_EDITOR or set it in your .bashrc
# export ASPL_EDITOR=nano
▪ You want to list the workspace
# asplcmd wls
# asplcmd "wls sort by grouping"
# asplcmd "wls sort by name"
# asplcmd "wlls sort by name"
▪ You want to list the namedGClasses in the egC-Container
# metagrouping -listnamed
# metagrouping -listnamedphrases
this will list them including the description in DisplayPhrase
# metagrouping -list
this will ping every namedGClass in the egC-Container
▪ You want to ping the ZEROGROUP in the egC-Container
# metagrouping -egcping ZEROGROUP
▪ You want to print whatever was written in the scratchpad of namedspace ACMEGROUP
# asplmgrp -catscratchpad `asplcmd ~wsp`/ACMEGROUP.mgrp
▪ You want to list the GG-functions in concordance with namedGClass ZEROGROUP
# xrgg -listggs -gcn ZEROGROUP
▪ You want to list all GG-functions in the GG-Container
# asplcmd ggls
# asplcmd "ggls gg*osci*"
▪ You want to list all GG-functions matching ggtierandomgaussian
# asplcmd "ggls ggtierandomgaussian"
# ls -l $(echo $ASPL1_00_BRIDGE)/ASPL/GGs/ggtierandomgaussian*
# ls -l $(echo $ASPL1_00_BRIDGE)/ASPL/GGs/ggtierandomgaussian.pm
▪ To find the namedspaces name in your default workspace repository whose groupingclass is TIERANDGAUSSIANGROUP, here is a dumb search by using grep:
# asplcmd wls | grep TIERANDGAUSSIANGROUP
▪ To find the namedspaces name in your default workspace repository that contain the work JMXJAR, here is a dumb search by using grep:
# asplcmd wls | grep JMXJAR
▪ You want to compare two directories /tmp/aa1 and /tmp/aa2
# dircompare.aspl /tmp/aa1 /tmp/aa2
SESSIONS FOR ASPL ENTERPRISE:
▪ You want to know if you have ASPL Enterprise installed
# aspl -vv
# asplcmd sessions
▪ You want to see the session timeout and max number of sessions
# asplcmd ~asplconf
PROGRAMMER VIEW OF TIED ATTRIBUTES:
▪ Let's look at some oscillating GG-functions, use ggs or ggls
# asplcmd 'ggs gg*osci*'
# asplcmd 'ggls gg*osci*'
# asplcmd 'ggs ggthreadedtimedoscillatorS()'
# asplcmd 'ggls ggthreadedtimedoscillatorS()'
# asplcmd "createworkspace TRANSIENT TIE_OSCILLATORS_AREA_VARY_TIME_ATIME_GROUP;ggthreadedtimedoscillatorS(points,300,frequency1,2,frequency2,3,roundfrac,1)"
# ls -ltr `asplcmd ~tmp`
• Peek inside the GG-function ggthreadedtimedoscillatorS() by editing its module
# vi `asplcmd ~gg`/ggthreadedtimedoscillatorS.pm
# whichexp $ASPL1_00_BRIDGE/ASPL/GGs "TIE_OSCILLATORS_AREA_VARY_TIME_ATIME_GROUP/*feed*"
# whichexp $(echo $ASPL1_00_BRIDGE)/ASPL/GGs "TIE_OSCILLATORS_AREA_VARY_TIME_ATIME_GROUP/*feed*"
# whichexp $(asplcmd ~gg) "TIE_OSCILLATORS_AREA_VARY_TIME_ATIME_GROUP/*feed*"
# whichexp $(echo $ASPL1_00_BRIDGE)/ASPL/GGs "TIE_OSCILLATORS_AREA_VARY_TIME_ATIME_GROUP/*anon*"
# whichexp $ASPL1_00_BRIDGE/ASPL/GGs "TIE_OSCILLATORS_AREA_VARY_TIME_ATIME_GROUP/*anon*"
# whichexp $(asplcmd ~gg) "TIE_OSCILLATORS_AREA_VARY_TIME_ATIME_GROUP/*Anon*"
▪ so let's query the workspaces and see what namedspace is using TIE_OSCILLATORS_AREA_VARY_TIME_ATIME_GROUP
# asplcmd wls | grep TIE_OSCILLATORS_AREA_VARY_TIME_ATIME_GROUP
this will show TIEDOSCI_SYSTIMED
# asplcmd "load TIEDOSCI_SYSTIMED; ~udev"
# ASPL_EDITOR=emacs asplcmd "load TIEDOSCI_SYSTIMED; ~udev"
• List the directory for the processor modules of TIE_OSCILLATORS_AREA_VARY_TIME_ATIME_GROUP
# ls -l $(echo $ASPL1_00_BRIDGE)/ASPL/GGs/TIE_OSCILLATORS_AREA_VARY_TIME_ATIME_GROUP/
# tree $(echo $ASPL1_00_BRIDGE)/ASPL/GGs/TIE_OSCILLATORS_AREA_VARY_TIME_ATIME_GROUP/
# metagrouping -listnamedphrases | grep TIE_OSCILLATORS_AREA_VARY_TIME_ATIME_GROUP
# vi `asplcmd ~elmddir`/TIE_OSCILLATORS_AREA_VARY_TIME_ATIME_GROUP.ELMD
# metagrouping -egcping TIE_OSCILLATORS_AREA_VARY_TIME_ATIME_GROUP
BACKUP AND RESTORE:
▪ You want to copy the namedspace WS1VIENNA from your current host to the remote host vienna
# (cd `asplcmd ~wsp` && tar czf - WS1VIENNA.*) | ssh vienna 'cd `asplcmd ~wsp` && tar xzf -'
▪ You want to backup your workspace directory to /tmp/MYBACKUP on your current system
# (cd `asplcmd ~wsp` && tar czf - * ) | (cd /tmp/MYBACKUP && tar xzf -)
# (cd /tmp/MYBACKUP && tar czf - * ) | (cd `asplcmd ~wsp` && tar xzf -)
▪ You want to backup the namedspace WS1 to remote host vienna's directory /tmp/VIENNABACKUP
# (cd `asplcmd ~wsp` && tar czf - WS1.*) | ssh vienna 'cd /tmp/VIENNABACKUP && tar xzf -'
# (cd `asplcmd ~wsp` && tar czf - *) | ssh vienna 'cd /tmp/VIENNABACKUP && tar xzf -'
# ssh vienna 'cd /tmp/VIENNABACKUP && tar czf - *' | (cd `asplcmd ~wsp` && tar xzf - )
CHECK NAMEDSPACES FOR CONSISTENCY AND DANGLING:
▪ You want to list and validate the namedspaces in a repository ~wsp
# asplmgrp -list `asplcmd ~wsp`
▪ You want to list the attributes of namedspace TRIVIAL
# asplmgrp -attributes $(echo $ASPL_CLI_CONFIG | sed s/,.*//)/TRIVIAL.mgrp
# asplmgrp -attributes `asplcmd ~wsp`/TRIVIAL.mgrp
EXPORTING A GROUPINGCLASS:
▪ You want to export the groupingclass ACMEGROUP from machine mm01 to machine newyork.
•On machine mm01, create a temporary directory /tmp/Groo, then export the groupingclass ACMEGROUP:
# metagrouping -exportgrouping ACMEGROUP -targetdir "/tmp/Groo"
# scp -p -r root@mm01:/tmp/Groo/ASPL $ASPL1_00_BRIDGE
# metagrouping -egcping ACMEGROUP
check that ACMEGROUP is in egC-Container
# metagrouping -listnamedphrases | grep ACMEGROUP
ASPL ~tmp DIRECTORY:
▪ You want to look into ~tmp, any of the following command will do
# asplcmd ~tmp
# ls -ltr $(asplcmd ~tmp)
# ls -ltr `asplcmd ~tmp`
# du -ms $(asplcmd ~tmp)
SHALLOW SET OPERATIONS MODULE ShallowMatches.pm:
▪ You want to edit the shallow matching module ShallowMatches.pm
# asplcmd ~shallowed
WORKSPACE REPOSITORY:
▪ You want to find where the workspaces are being loaded from
# echo $ASPL_CLI_CONFIG | sed s/,.*//
print the workspace directory location
# asplcmd ~wsp
▪ You want to query the workspace repository location for the namedspace WS1
# find $(echo $ASPL_CLI_CONFIG | sed s/,.*//) -name "WS1.*"
▪ Here is a dumb search for WS1 in the list of workspace
# asplcmd wls | grep WS1
list namedspaces and dumb search for WS1
# asplcmd wls | grep POSIX
list namedspaces and dumb search for POSIX
▪ You want to check if TIERANDGAUSSIAN is a namedspace in the workspace directory
# ls -l $(echo $ASPL_CLI_CONFIG | sed s/,.*//) | grep TIERANDGAUSSIAN
list namedspaces matching TIERANDGAUSSIAN
# find $(echo $ASPL_CLI_CONFIG | sed s/,.*//) | grep TIERANDGAUSSIAN
find namedspaces matching TIERANDGAUSSIAN
# find $(echo $ASPL_CLI_CONFIG | sed s/,.*//) -name "TIERANDGAUSSIAN.*"
find namedspaces matching name TIERANDGAUSSIAN
# ls -ld $(echo $ASPL_CLI_CONFIG | sed s/,.*//)/TIERANDGAUSSIAN*
# ls -l $(asplcmd ~wsp) | grep TIERANDGAUSSIAN
# ls -l $(asplcmd ~wsp)/TIERANDGAUSSIAN*
aspl -verb: envvar hs description scratchpad vars arcvars wls
When aspl is followed by the namedspace then a verb, the interpreter will do the action of the verb then exit.
If aspl is not followed explicitly by the namedspace, then the default namedspace TRIVIAL is assumed.
▪ You want to list the arcvars of namedspace RATECHANGES_RANDBIT
# aspl RATECHANGES_RANDBIT -verb arcvars
# aspl JUNKSPACE -verb wrm
# aspl RATECHANGES_RANDBIT -verb hs
# aspl JMXJARQR -verb description
▪ Any of the following three commands shows the history in namedspace JMXJARQR
# asplcmd "load JMXJARQR; hs"
# asplmgrp -caths `asplcmd ~wsp`/JMXJARQR.mgrp
# aspl JMXJARQR -verb hs
show history saved in the namedspace
▪ Any of the following three commands shows the description in namedspace JMXJARQR
# asplcmd "load JMXJARQR; description"
# asplmgrp -catdescription `asplcmd ~wsp`/JMXJARQR.mgrp
# aspl JMXJARQR -verb description
▪ You want to see the attributes of namedspace TIERANDGAUSSIAN
# asplcmd "load TIERANDGAUSSIAN; attributes"
# asplmgrp -attributes `asplcmd ~wsp`/TIERANDGAUSSIAN.mgrp
▪ You want to know if monitordir.aspl is in your PATH
# which monitordir.aspl
# whichma monitordir.aspl
# ls -l $(asplcmd ~shared)/monitordir.aspl
▪ You want to locate any script containing *monitor*aspl* in your PATH
# whichma *monitor*aspl*
# whichma *jmx*aspl*
# whichma *jmx*pl*
# whichma *jar*pl*
QUICKLY LOOK INTO NAMED FILES AND THEIR CONTENTS IN UNIX DIRECTORIES
▪ You want to locate these named files with same names but different contents
# asplcmd 'createworkspace TRANSIENT POSIX; ggdir(dir,/tmp/edu1);ggdir(dir,/tmp/edu2);f&`c~'
# asplcmd 'createworkspace TRANSIENT POSIX; ggdir(dir,/tmp/edu1);ggdir(dir,/tmp/edu2);c&`ks~'