diff options
Diffstat (limited to 'man/ruby.1')
-rw-r--r-- | man/ruby.1 | 93 |
1 files changed, 81 insertions, 12 deletions
diff --git a/man/ruby.1 b/man/ruby.1 index 6c9f5fb0d1..bbad8ae203 100644 --- a/man/ruby.1 +++ b/man/ruby.1 @@ -25,6 +25,7 @@ .Op Fl - Ns Bro Cm enable Ns | Ns Cm disable Brc Ns - Ns Ar FEATURE .Op Fl -dump Ns = Ns Ar target .Op Fl -verbose +.Op Fl -crash-report Ns = Ns Ar template .Op Fl - .Op Ar program_file .Op Ar argument ... @@ -100,10 +101,10 @@ different character encodings, without dependence on Unicode. .It Sy "Bignums" With built-in bignums, you can for example calculate factorial(400). .Pp -.It Sy "Reflection and domain specific languages" +.It Sy "Reflection and domain-specific languages" Class is also an instance of the Class class. Definition of classes and methods is an expression just as 1+1 is. So your programs can even write and modify programs. -Thus you can write your application in your own programming language on top of Ruby. +Thus, you can write your application in your own programming language on top of Ruby. .Pp .It Sy "Exception handling" As in Java(tm). @@ -271,6 +272,11 @@ In auto-split mode, Ruby executes .Dl $F = $_.split at beginning of each loop. .Pp +.It Fl -backtrace-limit Ns = Ns Ar num +Limits the maximum length of backtraces to +.Ar num +lines (default -1, meaning no limit). +.Pp .It Fl c Causes Ruby to check the syntax of the script and exit without executing. If there are no syntax errors, Ruby will print @@ -442,18 +448,20 @@ Check syntax (same as .El .Pp Or one of the following, which are intended for debugging the interpreter: -.Bl -hang -offset indent -tag -width "parsetree_with_comment" +.Bl -hang -offset indent -tag -width "+error-tolerant" .It Sy yydebug Enable compiler debug mode (same as .Fl -yydebug). .It Sy parsetree Print a textual representation of the Ruby AST for the program. -.It Sy parsetree_with_comment -Print a textual representation of the Ruby AST for the program, but with each node annoted with the associated Ruby source code. .It Sy insns Print a list of disassembled bytecode instructions. -.It Sy insns_without_opt -Print the list of disassembled bytecode instructions before various optimizations have been applied. +.It Sy -optimize +Disable various optimizations to print a list disassembled bytecode instructions. +.It Sy +error-tolerant +Enable error-tolerant parsing, when yydebug or parsetree. +.It Sy +comment +Annotate a textual representation of the Ruby AST for the program with the associated Ruby source code. .El .Pp .It Fl -verbose @@ -464,6 +472,12 @@ variable to true. If this switch is given, and no script arguments (script file or .Fl e options) are present, Ruby quits immediately. +.Pp +.It Fl -crash-report Ns = Ns Ar template +Sets the template of path name to save crash report. +See +.Ev RUBY_CRASH_REPORT +environment variable for details. .El .Pp .Sh ENVIRONMENT @@ -525,7 +539,7 @@ malloc family of C standard library calls ( .Xr calloc 3 , and .Xr realloc 3 ) . -In this documentatation, the "heap" refers to the Ruby object heap +In this documentation, the "heap" refers to the Ruby object heap of fixed-sized slots, while "malloc" refers to auxiliary allocations commonly referred to as the "process heap". Thus there are at least two possible ways to trigger GC: @@ -552,9 +566,9 @@ the following 11 environment variables: .It Ev RUBY_GC_HEAP_INIT_SLOTS Initial allocation slots. Applies to all slot sizes. Introduced in Ruby 2.1, default: 10000. .Pp -.It Ev RUBY_GC_HEAP_INIT_SIZE_%d_SLOTS -Initial allocation of slots in a specific size pool. -The available size pools can be found in `GC.stat_heap`. +.It Ev RUBY_GC_HEAP_%d_INIT_SLOTS +Initial allocation of slots in a specific heap. +The available heaps can be found in the keys of `GC.stat_heap`. Introduced in Ruby 3.3. .Pp .It Ev RUBY_GC_HEAP_FREE_SLOTS @@ -640,6 +654,61 @@ Machine stack size used at fiber creation. default: 262144 or 524288 .Pp .El +.Sh CRASH REPORT ENVIRONMENT +.Pp +.Bl -tag -compact -width "RUBY_CRASH_REPORT" +.It Ev RUBY_CRASH_REPORT +The template of path name to save crash report. +default: none +.El +.Ss Naming crash report files +The template can contain +.Li \fB%\fP +specifiers which are substituted by the following values when a crash +report file is created: +.Pp +.Bl -hang -compact -width "%NNN" +.It Li \fB%%\fP +A single +.Li \fB%\fP +character. +.It Li \fB%e\fP +Basename of executable. +.It Li \fB%E\fP +Pathname of executable, +with slashes (\fB/\fP) replaced by exclamation marks (\fB!\fP). +.It Li \fB%f\fP +Basename of the program name, +.Li "$0" . +.It Li \fB%F\fP +Pathname of the program name, +.Li "$0", +with slashes (\fB/\fP) replaced by exclamation marks (\fB!\fP). +.It Li \fB%p\fP +PID of dumped process. +.It Li \fB%t\fP +Time of dump, expressed as seconds since the +Epoch, 1970-01-01 00:00:00 +0000 (UTC). +.It Li \fB%NNN\fP +A character code in octal. +.El +.Pp +A single +.Li \fB%\fP +at the end of the template is dropped from the core filename, as is +the combination of a +.Li \fB%\fP +followed by any character other than those listed above. All other +characters in the template become a literal part of the core filename. +The template may include \(aq/\(aq characters, which are interpreted +as delimiters for directory names. +.Ss Piping crash reports to a program +If the first character of this file is a pipe symbol (\fB|\fP), +then the remainder of the line is interpreted as the command-line for +a program (or script) that is to be executed. +.Pp +The pipe template is split on spaces into an argument list before the +template parameters are expanded. .Sh SEE ALSO .Bl -hang -compact -width "https://www.ruby-toolbox.com/" .It Lk https://www.ruby-lang.org/ @@ -667,5 +736,5 @@ Ruby is designed and implemented by .An Yukihiro Matsumoto Aq matz@netlab.jp . .Pp See -.Aq Lk https://bugs.ruby-lang.org/projects/ruby/wiki/Contributors +.Aq Lk https://github.com/ruby/ruby/graphs/contributors for contributors to Ruby. |