diff options
Diffstat (limited to 'man/ruby.1')
| -rw-r--r-- | man/ruby.1 | 119 |
1 files changed, 104 insertions, 15 deletions
diff --git a/man/ruby.1 b/man/ruby.1 index a0cda14641..8141a6d7ef 100644 --- a/man/ruby.1 +++ b/man/ruby.1 @@ -287,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 @@ -430,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). @@ -448,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 annotated 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 @@ -515,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 @@ -537,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: @@ -559,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. +the following environment variables: +.Bl -hang -compact -width "RUBY_GC_HEAP_n_INIT_SLOTS" .Pp -.It Ev RUBY_GC_HEAP_%d_INIT_SLOTS +.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 `GC.stat_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 @@ -589,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. @@ -605,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. @@ -622,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 @@ -637,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. @@ -707,6 +785,17 @@ 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/ |
