jx_repl(1) Cooperative Computing Tools jx_repl(1)

jx_repl - interactive command line tool to explore the JX language.

jx_repl

jx_repl is an interactive tool to explore the JX language. jx_repl will read in a JX expression, evaluate it, print the result, then save both the query and the result to the context. Results of previous expressions can be referenced via the out_%d` symbol, and their corresponding query via the `in_%d` symbol. The program will exit on EOF or when the user enters 'quit' or 'exit.

jx_repl also reserves certain symbols in the context to act as commands when entered:

Will always return 0

Simply run jx_repl with no parameters:

% jx_repl
Welcome to the JX Language Explorer.
Type 'help' for help
in_0  >>>

Enter any valid JX expression:

% jx_repl
in_0  >>> [ "file" + x + ".txt" for x in range(3) ]
out_0 <<<
[
  "file0.txt",
  "file1.txt",
  "file2.txt"
]

Fetch the catalog data:

% jx_repl
in_1  >>> catalog
out_1 <<<
[
  {
    "name":NAME,
    "lastheardfrom":1620308581,
    "address":ADDRESS,
    ...
    "type":"wq_factory"
  },
  ...
]

Perform operations on previous output

% jx_repl
in_2  >>> select(type=="wq_master", out_1)
out_2 <<<
[
  {
    "name":NAME,
    "lastheardfrom":1620308755,
    "address":ADDRESS,
    "tasks_total_disk":0,
    "tasks_total_memory":0,
    ...
    "type": wq_master
  }
  ...
]

Do more operations on previous output

% jx_repl
in_4  >>> join(project(name, out_2), ", ")
out_4 <<< NAME_1, NAME_2, NAME_3, ..., NAME_N

Now, fetch the query used to attain that output

% jx_repl
in_5  >>> in_4
out_5 <<< join(project(name,select(type=="wq_master",fetch("http://catalog.cse.nd.edu:9097/query.json"))),", ")

Call one of reserved commands

% jx_repl
in_7  >>> help
  help          display this message
  functions     display a list of functions supported by the JX language
  values        display a list of values supported by the JX language
  operators     display a list of operators supported by the JX language
  in_#          the #'th input query
  out_#         result of in_#
  catalog       alias to fetch catalog data
  quit|exit     exit program
    

The Cooperative Computing Tools are Copyright (C) 2005-2019 The University of Notre Dame. This software is distributed under the GNU General Public License. See the file COPYING for details.

CCTools 8.0.0 DEVELOPMENT