diff options
Diffstat (limited to 'man/ruby.1')
| -rw-r--r-- | man/ruby.1 | 198 |
1 files changed, 177 insertions, 21 deletions
diff --git a/man/ruby.1 b/man/ruby.1 index 779167ac3e..8141a6d7ef 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 @@ -281,6 +287,8 @@ to the standard output. .It Fl -debug Turns on debug mode. .Li "$DEBUG" +and +.Li "$VERBOSE" will be set to true. .Pp .It Fl e Ar command @@ -388,7 +396,7 @@ before executing script. .Pp .It Fl y .It Fl -yydebug -DO NOT USE. +This option is not guaranteed to be compatible. .Pp Turns on compiler debug mode. Ruby will print a bunch of internal state messages during compilation. Only specify this switch you are going to @@ -424,7 +432,7 @@ Dump some information. Prints the specified target. .Ar target can be one of: -.Bl -hang -offset indent +.Bl -hang -offset indent -width "version" .It Sy version Print version description (same as .Fl -version). @@ -442,18 +450,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 -width "parsetree" .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 +474,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 @@ -503,6 +519,43 @@ enabled for only mswin32, mingw32, and OS/2 platforms. If this variable is not defined, Ruby refers to .Ev COMSPEC . .Pp +.It Ev RUBY_FREE_AT_EXIT +If set, Ruby tries to free all dynamically allocated memories. +Introduced in Ruby 3.3, default: unset. +.Pp +.It Ev RUBY_BOX +If set to +.Li 1 , +Ruby Box is enabled and users will be able to execute +.Li Ruby::Box.new . +Ruby Box is an experimental feature introduced in Ruby 4.0. +.Pp +.It Ev RUBY_IO_BUFFER_DEFAULT_SIZE +The custom default buffer size of +.Li IO::Buffer . +.Pp +.It Ev RUBY_MAX_CPU +The maximum number of native threads used by M:N Threads scheduler +Introduced in Ruby 3.3, default: 8. +.Pp +.It Ev RUBY_MN_THREADS +If set to +.Li 1 , +M:N Thread scheduler is enabled on the main Ractor. +Introduced in Ruby 3.3, default: unset. +.Pp +.It Ev RUBY_PAGER +The pager command that will be used for +.Fl -help +option. +Introduced in Ruby 3.0, default: +.Ev PAGER +environment variable. +.Pp +.It Ev RUBY_THREAD_TIMESLICE +Sets the default thread time slice (thread quantum) in milliseconds. +Introduced in Ruby 3.4, default: 100ms. +.Pp .It Ev PATH Ruby refers to the .Ev PATH @@ -525,7 +578,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: @@ -547,14 +600,15 @@ Reaching the old malloc limit. .El .Pp There are currently 4 possible areas where the GC may be tuned by -the following 11 environment variables: -.Bl -hang -compact -width "RUBY_GC_OLDMALLOC_LIMIT_GROWTH_FACTOR" -.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`. +the following environment variables: +.Bl -hang -compact -width "RUBY_GC_HEAP_n_INIT_SLOTS" +.Pp +.It Ev RUBY_GC_HEAP_ Ns Ar n Ns Ev _INIT_SLOTS +Initial allocation of slots in a specific heap. +The available heaps can be found in the keys of +.Li GC.stat_heap . +.Ar n +is a decimal number between 0 and 4. Introduced in Ruby 3.3. .Pp .It Ev RUBY_GC_HEAP_FREE_SLOTS @@ -577,6 +631,12 @@ where R is this factor and N is the number of old objects after the last full GC. Introduced in Ruby 2.1.1, default: 2.0 .Pp +.It Ev RUBY_GC_HEAP_REMEMBERED_WB_UNPROTECTED_OBJECTS_LIMIT_RATIO +Used to calculate the +.Li remembered_wb_unprotected_objects_limit +using a ratio of +.Li old_objects . +Introduced in Ruby 3.3, default: 0.1, minimum: 0.0 .It Ev RUBY_GC_MALLOC_LIMIT The initial limit of young generation allocation from the malloc-family. GC will start when this limit is reached. @@ -593,6 +653,31 @@ GC frequency but increasing malloc growth until RUBY_GC_MALLOC_LIMIT_MAX is reached. Introduced in Ruby 2.1, default: 1.4, minimum: 1.0 (no growth) .Pp +.It Ev RUBY_GC_HEAP_FREE_SLOTS_MIN_RATIO +Allocate additional pages when the number of free slots is +lower than the value +.Li (total_slots * (this ratio)) . +Introduced in Ruby 2.4, default: 0.2, minimum: 0.0, maximum: 1.0 +.Pp +.It Ev RUBY_GC_HEAP_FREE_SLOTS_MAX_RATIO +Allow to free pages when the number of free slots is greater than the value +.Li (total_slots * (this ratio)) . +Introduced in Ruby 2.4, default: 0.4, minimum: +.Li RUBY_GC_HEAP_FREE_SLOTS_MIN_RATIO, +maximum: 1.0 +.Pp +.It Ev RUBY_GC_HEAP_FREE_SLOTS_GOAL_RATIO +Allocate slots to satisfy this formula: +.Li free_slots = total_slots * goal_ratio +In other words, prepare +.Li (total_slots * goal_ratio) +free slots. +if this value is 0.0, then use RUBY_GC_HEAP_GROWTH_FACTOR directly. +Introduced in Ruby 2.4, default: 0.65, minimum: +.Li RUBY_GC_HEAP_FREE_SLOTS_MIN_RATIO, +maximum: +.Li RUBY_GC_HEAP_FREE_SLOTS_MAX_RATIO +.Pp .It Ev RUBY_GC_OLDMALLOC_LIMIT The initial limit of old generation allocation from malloc, a full GC will start when this limit is reached. @@ -610,6 +695,11 @@ GC frequency but increasing malloc growth until RUBY_GC_OLDMALLOC_LIMIT_MAX is reached. Introduced in Ruby 2.1, default: 1.2, minimum: 1.0 (no growth) .Pp +.It Ev RUBY_SHARED_FIBER_POOL_FREE_STACKS +Frees stacks of pooled fibers, if set to 1. +Do not free the stacks if set to 0. +Introduced in Ruby 2.7, default: 1 (no growth) +.Pp .El .Sh STACK SIZE ENVIRONMENT Stack size environment variables are implementation-dependent and @@ -625,11 +715,11 @@ All values are specified in bytes. .Bl -hang -compact -width "RUBY_THREAD_MACHINE_STACK_SIZE" .It Ev RUBY_THREAD_VM_STACK_SIZE VM stack size used at thread creation. -default: 524288 (32-bit CPU) or 1048575 (64-bit) +default: 524288 (32-bit CPU) or 1048576 (64-bit) .Pp .It Ev RUBY_THREAD_MACHINE_STACK_SIZE Machine stack size used at thread creation. -default: 524288 or 1048575 +default: 524288 or 1048576 .Pp .It Ev RUBY_FIBER_VM_STACK_SIZE VM stack size used at fiber creation. @@ -640,6 +730,72 @@ 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 MISC ENVIRONMENT +.Pp +.Bl -hang -compact -width "RUBY_TCP_NO_FAST_FALLBACK" +.It Ev RUBY_TCP_NO_FAST_FALLBACK +If set to +.Li 1 , +disables the fast fallback feature by default in TCPSocket.new and Socket.tcp. +When set to +.Li 0 +or left unset, the fast fallback feature is enabled. +Introduced in Ruby 3.4, default: unset. .Sh SEE ALSO .Bl -hang -compact -width "https://www.ruby-toolbox.com/" .It Lk https://www.ruby-lang.org/ @@ -667,5 +823,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. |
