🔍

Usage

Command-line usage

To control internal system logging OLOG environment variable is to be used. See supported vаlues for this variables below.

Vаlues are organized in levels. That is top level error is the least level of verbosity. trace level is the highest including all lower levels.

OLOG vаlue Meaning
error Serious errors
warn Warnings, things to pay attention to
info Any useful information
debug Debugging information
trace Verbose logging used for debugging only

Usage example:

$ OLOG="info" tachyon
Tachyonic platform 0.1.0
Build hash 529a35cf1baeb5f89f6d296687e0b8e3fd19d5b8
Build date 2022-02-14 14:26:50
Built with rustc 1.54.0-nightly (657bc0188 2021-05-31)
Build opts profile:debug dbg_asserts:on dbg_info:off
-------------------------------------------------------
CPU cores: 12
MEMORY: total: 16777216, free: 3793848, avail: 1423292
HOSTNAME: Serhiis-MBP
OS: Darwin
OS version: 21.2.0
Created pool with 1 cores
Thread stack size: 2048 kb
Lambda stack size: 4096 kb
Allocator pool size: 64 mb
Started with : []
-------------------------------------------------------
o){x+1}"123"
** runtime error: `+`:
"123"
1
** stack backtrace:
 [0]: "REPL":1
>
  {x+1}
<
**
o)

debug level also controls emitting native stack dumps when platform is built with debug info. This is especially useful for debugging complex multithreaded system issues which is often next to impossible to reproduce.

$ OLOG="debug" tachyon
o){x+1}"123"
 DEBUG rt      >
   0: backtrace::backtrace::trace_unsynchronized
   1: backtrace::backtrace::trace
   2: backtrace::capture::Backtrace::create
   3: backtrace::capture::Backtrace::new
   4: rt::backtrace
   5: base::interpreter::Interpreter::o_error
   6: base::interpreter::Interpreter::runtime_error
   7: dyad1::dyad::plus::{{closure}}
   8: dyad1::dyad::arith_temporal_pred
   9: dyad1::dyad::arith_temporal_xor
  10: _plus
  11: apply_dyad@@32
  12: _eval
  13: base::eval_sequence_guarded::{{closure}}
  14: rt::try_std::do_call
  15: ___rust_try
  16: rt::try_std
  17: base::eval_sequence_guarded
  18: base::eval_sequence
  19: monad::apply::lambda_in_frame
  20: monad::apply::lambda_call_iter
  21: monad::apply::lambda_in_frame
  22: apply_lambda@@32
  23: apply@@32
  24: _eval
  25: tachyon::repl::{{closure}}
  26: rt::try_std::do_call
  27: ___rust_try
  28: rt::try_std
  29: tachyon::repl
  30: _console
  31: tachyon::single
  32: tachyon::run
  33: tachyon::main
  34: core::ops::function::FnOnce::call_once
  35: std::sys_common::backtrace::__rust_begin_short_backtrace
  36: std::rt::lang_start::{{closure}}
  37: std::rt::lang_start_internal
  38: std::rt::lang_start
  39: _main

** runtime error: `+`:
"123"
1
** stack backtrace:
 [0]: "REPL":1
>
  {x+1}
<
**
o)

Query optimization level

Query optimization level can be set at start time using --qO parameter. It is implemented since 0.6.0 version.

It accepts 0..3 value like below. Default optimization level is 1. For details on query optimization levels - see Select/Compilation options

$ OLOG="info" tachyon --qO=3

Query parallel execution

Query parallel execution can be enabled at start time using --qP parameter. It is implemented since 0.6.0 version.

It accepts value "on" and "off". Value by default is is "off". For details on query parallel execution - see Select/Compilation options

$ OLOG="info" tachyon --qP=on