diff options
Diffstat (limited to 'man')
| -rw-r--r-- | man/erb.1 | 25 | ||||
| -rw-r--r-- | man/goruby.1 | 4 | ||||
| -rw-r--r-- | man/irb.1 | 173 | ||||
| -rw-r--r-- | man/rake.1 | 169 | ||||
| -rw-r--r-- | man/ri.1 | 181 | ||||
| -rw-r--r-- | man/ruby.1 | 435 |
6 files changed, 390 insertions, 597 deletions
@@ -1,6 +1,6 @@ .\"Ruby is copyrighted by Yukihiro Matsumoto <matz@netlab.jp>. -.Dd November 7, 2012 -.Dt ERB(1) "" "Ruby Programmers Reference Guide" +.Dd December 16, 2018 +.Dt ERB \&1 "Ruby Programmer's Reference Guide" .Os UNIX .Sh NAME .Nm erb @@ -45,9 +45,8 @@ You can omit the one for internal encodings, then the value .Pf ( Li "Encoding.default_internal" ) will be nil. .Pp .It Fl P -Evaluates lines starting with -.Li "%" -as Ruby code and removes the tailing EOLs. +Disables ruby code evaluation for lines beginning with +.Li "%" . .Pp .It Fl S Ar level Specifies the safe level in which eRuby script will run. @@ -77,6 +76,8 @@ And leading whitespaces are removed if the erb directive starts with .Li "<%-" . .Pp .El +.It Fl r +Load a library .Pp .It Fl U can be one of @@ -143,15 +144,17 @@ class. .Pp .Sh REPORTING BUGS .Bl -bullet -.Li Security vulnerabilities should be reported via an email to -.Aq security@ruby-lang.org Ns -.Li . +.It +Security vulnerabilities should be reported via an email to +.Mt security@ruby-lang.org . Reported problems will be published after being fixed. .Pp -.Li And you can report other bugs and feature requests via the -Ruby Issue Tracking System (http://bugs.ruby-lang.org). +.It +Other bugs and feature requests can be reported via the +Ruby Issue Tracking System +.Pq Lk https://bugs.ruby-lang.org/ . Do not report security vulnerabilities -via the system because it publishes the vulnerabilities immediately. +via this system because it publishes the vulnerabilities immediately. .El .Sh AUTHORS Written by Masatoshi SEKI. diff --git a/man/goruby.1 b/man/goruby.1 index 62a7bad23f..a305a5afce 100644 --- a/man/goruby.1 +++ b/man/goruby.1 @@ -1,6 +1,6 @@ .\"Ruby is copyrighted by Yukihiro Matsumoto <matz@netlab.jp>. -.Dd November 7, 2012 -.Dt GORUBY(1) "" "Ruby Programmers Reference Guide" +.Dd April 20, 2017 +.Dt GORUBY \&1 "Ruby Programmer's Reference Guide" .Os UNIX .Sh NAME .Nm goruby diff --git a/man/irb.1 b/man/irb.1 deleted file mode 100644 index 543217e099..0000000000 --- a/man/irb.1 +++ /dev/null @@ -1,173 +0,0 @@ -.\"Ruby is copyrighted by Yukihiro Matsumoto <matz@netlab.jp>. -.Dd November 7, 2012 -.Dt IRB(1) "" "Ruby Programmers Reference Guide" -.Os UNIX -.Sh NAME -.Nm irb -.Nd Interactive Ruby Shell -.Sh SYNOPSIS -.Nm -.Op Fl -version -.Op Fl dfm -.Op Fl I Ar directory -.Op Fl r Ar library -.Op Fl - Ns Oo no Oc Ns inspect -.Op Fl - Ns Oo no Oc Ns readline -.Op Fl -prompt Ar mode -.Op Fl -prompt-mode Ar mode -.Op Fl -inf-ruby-mode -.Op Fl -simple-prompt -.Op Fl -noprompt -.Op Fl -tracer -.Op Fl -back-trace-limit Ar n -.Op Fl -irb_debug Ar n -.Op Fl - -.Op program_file -.Op argument ... -.Pp -.Sh DESCRIPTION -.Nm -is the REPL(read-eval-print loop) environment for Ruby programs. -.Pp -.Sh OPTIONS -.Bl -tag -width "1234567890123" -compact -.Pp -.It Fl -version -Prints the version of -.Nm . -.Pp -.It Fl E Ar external Ns Op : Ns Ar internal -.It Fl -encoding Ar external Ns Op : Ns Ar internal -Same as `ruby -E' . -Specifies the default value(s) for external encodings and internal encoding. Values should be separated with colon (:). -.Pp -You can omit the one for internal encodings, then the value -.Pf ( Li "Encoding.default_internal" ) will be nil. -.Pp -.It Fl I Ar path -Same as `ruby -I' . -Specifies -.Li $LOAD_PATH -directory -.Pp -.It Fl U -Same as `ruby -U' . -Sets the default value for internal encodings -.Pf ( Li "Encoding.default_internal" ) to UTF-8. -.Pp -.It Fl d -Same as `ruby -d' . -Sets -.Li $DEBUG -to true. -.Pp -.It Fl f -Suppresses read of -.Pa ~/.irbrc . -.Pp -.It Fl h -.It Fl -help -Prints a summary of the options. -.Pp -.It Fl m -Bc mode (load mathn, fraction or matrix are available) -.Pp -.It Fl r Ar library -Same as `ruby -r'. -Causes irb to load the library using require. -.Pp -.It Fl -inspect -Uses `inspect' for output (default except for bc mode) -.Pp -.It Fl -noinspect -Doesn't use inspect for output -.Pp -.It Fl -readline -Uses Readline extension module. -.Pp -.It Fl -noreadline -Doesn't use Readline extension module. -.Pp -.It Fl -prompt Ar mode -.It Fl -prompt-mode Ar mode -Switch prompt mode. Pre-defined prompt modes are -`default', `simple', `xmp' and `inf-ruby'. -.Pp -.It Fl -inf-ruby-mode -Uses prompt appropriate for inf-ruby-mode on emacs. -Suppresses --readline. -.Pp -.It Fl -simple-prompt -Makes prompts simple. -.Pp -.It Fl -noprompt -No prompt mode. -.Pp -.It Fl -tracer -Displays trace for each execution of commands. -.Pp -.It Fl -back-trace-limit Ar n -Displays backtrace top -.Ar n -and tail -.Ar n Ns . -The default value is 16. -.Pp -.It Fl -irb_debug Ar n -Sets internal debug level to n (not for popular use) -.Pp -.El -.Pp -.Sh ENVIRONMENT -.Bl -tag -width "RUBYLIB_PREFIX" -compact -.It Ev IRBRC -.Pp -.El -.Pp -Also -.Nm -depends on same variables as -.Xr ruby 1 . -.Pp -.Sh FILES -.Bl -tag -width "RUBYLIB_PREFIX" -compact -.It Pa ~/.irbrc -Personal irb initialization. -.Pp -.El -.Pp -.Sh EXAMPLES -.Dl % irb -.Dl irb(main):001:0> Ic 1 + 1 -.Dl 2 -.Dl irb(main):002:0> Ic def t(x) -.Dl irb(main):003:1> Ic x+1 -.Dl irb(main):004:1> Ic end -.Dl => nil -.Dl irb(main):005:0> Ic t(3) -.Dl => 4 -.Dl irb(main):006:0> Ic if t(3) == 4 -.Dl irb(main):007:1> Ic p :ok -.Dl irb(main):008:1> Ic end -.Dl :ok -.Dl => :ok -.Dl irb(main):009:0> Ic quit -.Dl % -.Pp -.Sh SEE ALSO -.Xr ruby 1 . -.Pp -.Sh REPORTING BUGS -.Bl -bullet -.Li Security vulnerabilities should be reported via an email to -.Aq security@ruby-lang.org Ns -.Li . -Reported problems will be published after being fixed. -.Pp -.Li And you can report other bugs and feature requests via the -Ruby Issue Tracking System (http://bugs.ruby-lang.org). -Do not report security vulnerabilities -via the system because it publishes the vulnerabilities immediately. -.El -.Sh AUTHORS -Written by Keiju ISHITSUKA. diff --git a/man/rake.1 b/man/rake.1 deleted file mode 100644 index c8ba5dd82c..0000000000 --- a/man/rake.1 +++ /dev/null @@ -1,169 +0,0 @@ -.Dd November 7, 2012 -.Dt RAKE(1) "" "Ruby Programmers Reference Guide" -.Os UNIX -.Sh NAME -.Nm rake -.Nd Ruby Make -.Sh SYNOPSIS -.Nm -.Op Fl -f Ar Rakefile -.Op Fl -version -.Op Fl CGNPgnqstv -.Op Fl D Op Ar PATTERN -.Op Fl E Ar CODE -.Op Fl I Ar LIBDIR -.Op Fl R Ar RAKELIBDIR -.Op Fl T Op Ar PATTERN -.Op Fl e Ar CODE -.Op Fl p Ar CODE -.Op Fl r Ar MODULE -.Op Fl -rules -.Op Ar variable Ns = Ns Ar value -.Ar target ... -.Sh DESCRIPTION -.Nm Rake -is a simple -.Xr ruby 1 -build program with capabilities similar to the regular -.Xr make 1 -command. -.Pp -.Nm Rake -has the following features: -.Bl -bullet -.It -Rakefiles (Rake's version of Makefiles) are completely defined in standard Ruby syntax. -No XML files to edit. No quirky Makefile syntax to worry about (is that a tab or a space?). -.It -Users can specify tasks with prerequisites. -.It -Rake supports rule patterns to synthesize implicit tasks. -.It -Flexible FileLists that act like arrays but know about manipulating file names and paths. -.It -A library of prepackaged tasks to make building rakefiles easier. -.El -.Pp -.Sh OPTIONS -.Bl -tag -width "--execute-continue" -compact -.Pp -.It Fl -version -Display the program version. -.Pp -.It Fl C -.It Fl -classic-namespace -Put Task and FileTask in the top level namespace -.Pp -.It Fl D Op Ar PATTERN -.It Fl -describe Op Ar PATTERN -Describe the tasks (matching optional -.Ar PATTERN Ns -), then exit. -.Pp -.It Fl E Ar CODE -.It Fl -execute-continue Ar CODE -Execute some Ruby code, then continue with normal task processing. -.Pp -.It Fl G -.It Fl -no-system -.It Fl -nosystem -Use standard project Rakefile search paths, ignore system wide rakefiles. -.Pp -.It Fl I Ar LIBDIR -.It Fl -libdir Ar LIBDIR -Include -.Ar LIBDIR -in the search path for required modules. -.Pp -.It Fl N -.It Fl -no-search -.It Fl -nosearch -Do not search parent directories for the Rakefile. -.Pp -.It Fl P -.It Fl -prereqs -Display the tasks and dependencies, then exit. -.Pp -.It Fl R Ar RAKELIBDIR -.It Fl -rakelib Ar RAKELIBDIR -.It Fl -rakelibdir Ar RAKELIBDIR -Auto-import any .rake files in -.Ar RAKELIBDIR . -(default is -.Pa rakelib -) -.Pp -.It Fl T Op Ar PATTERN -.It Fl -tasks Op Ar PATTERN -Display the tasks (matching optional -.Ar PATTERN Ns -) with descriptions, then exit. -.Pp -.It Fl e Ar CODE -.It Fl -execute Ar CODE -Execute some Ruby code and exit. -.Pp -.It Fl f Ar FILE -.It Fl -rakefile Ar FILE -Use FILE as the rakefile. -.Pp -.It Fl h -.It Fl -help -Prints a summary of options. -.Pp -.It Fl g -.It Fl -system -Using system wide (global) rakefiles (usually -.Pa ~/.rake/*.rake -). -.Pp -.It Fl n -.It Fl -dry-run -Do a dry run without executing actions. -.Pp -.It Fl p Ar CODE -.It Fl -execute-print Ar CODE -Execute some Ruby code, print the result, then exit. -.Pp -.It Fl q -.It Fl -quiet -Do not log messages to standard output. -.Pp -.It Fl r Ar MODULE -.It Fl -require Ar MODULE -Require MODULE before executing rakefile. -.Pp -.It Fl s -.It Fl -silent -Like -.Fl -quiet , -but also suppresses the 'in directory' announcement. -.Pp -.It Fl t -.It Fl -trace -Turn on invoke/execute tracing, enable full backtrace. -.Pp -.It Fl v -.It Fl -verbose -Log message to standard output (default). -.Pp -.It Fl -rules -Trace the rules resolution. -.Pp -.El -.Pp -.Sh SEE ALSO -.Xr ruby 1 -.Xr make 1 -.Pp -http://rake.rubyforge.org/ -.Sh REPORTING BUGS -Bugs, features requests and other issues can be logged at -<\fBhttp://onestepback.org/redmine/projects/show/rake\fR>. -.Pp -You will need an account to before you can post issues. Register at <\fBhttp://onestepback.org/redmine/account/register\fR>. -Or you can send an email to the author. -.Sh AUTHOR -.Nm Rake -is written by -.An Jim Weirich Aq jim@weirichhouse.org diff --git a/man/ri.1 b/man/ri.1 deleted file mode 100644 index cadf4b8e16..0000000000 --- a/man/ri.1 +++ /dev/null @@ -1,181 +0,0 @@ -.\"Ruby is copyrighted by Yukihiro Matsumoto <matz@netlab.jp>. -.Dd November 7, 2012 -.Dt RI(1) "" "Ruby Programmers Reference Guide" -.Os UNIX -.Sh NAME -.Nm ri -.Nd Ruby API reference front end -.Sh SYNOPSIS -.Nm -.Op Fl Ti -.Op Fl d Ar directory -.Op Fl f Ar format -.Op Fl -list-doc-dirs -.Op Fl -no-standard-docs -.Op Fl - Ns Oo Cm no- Oc Ns Bro Cm system Ns | Ns Cm site Ns | Ns Cm gems Ns | Ns Cm home Brc -.Op Fl - Ns Oo Cm no- Oc Ns Cm use-cache -.Op Fl -width Ns = Ns Ar width -.Op Ar target ... -.Sh DESCRIPTION -.Nm -is a CLI front end for the Ruby API reference. -You can search and read API reference for classes and methods with -.Nm . -.Pp -.Nm -is a part of Ruby. -.Pp -.Ar target -can be one of the following forms: -.Bl -diag -offset indent -.It Class -for classes -.It Class::method -for class methods -.It Class#method -for instance methods -.It Class.method -for both class and instance methods -.It method -for both class and instance methods -.El -.Pp -All class names may be abbreviated to their minimum unambiguous form. If a name -is ambiguous, all valid options will be listed. -.Pp -For example: -.Bd -literal -offset indent -ri Fil -ri File -ri File.new -ri zip -.Ed -.Pp -Note that shell quoting may be required for method names containing -punctuation: -.Bd -literal -offset indent -ri 'Array.[]' -ri compact\! -.Ed -.Sh OPTIONS -.Bl -tag -width "1234567890123" -compact -.Pp -.It Fl -version -Prints the version of -.Nm . -.Pp -.It Fl T -.It Fl -no-pager -Send output directly to stdout, rather than to a pager. -.Pp -.It Fl d Ar directory -.It Fl -doc-dir Ns = Ns Ar directory -List of directories from which to source documentation in addition to the standard -directories. May be repeated. -.Pp -.It Fl f Ar FORMAT -.It Fl -fmt Ar FORMAT -.It Fl -format Ns = Ns FORMAT -Format to use when displaying output: -.Pp -ansi, bs, html, plain, simple -.Pp -Use 'bs' (backspace) with most pager programs. To use ANSI, either disable the -pager or tell the pager to allow control characters. -.Pp -.It Fl i -.It Fl -interactive -This makes -.Nm -go into interactive mode. -.Pp -When -.Nm -is in interactive mode it will allow the user to disambiguate lists of -methods in case multiple methods match against a method search string. It also -will allow the user to enter in a method name (with auto-completion, if readline -is supported) when viewing a class. -.Pp -.It Fl -list-doc-dirs -List the directories from which ri will source documentation on stdout and exit. -.Pp -.It Fl -no-standard-docs -Do not include documentation from the Ruby standard library, -.Pa site_lib , -installed gems, or -.Pa ~/.rdoc . -.Pp -Equivalent to specifying the options -.Fl -no-system , Fl -no-site , Fl -no-gems , -and -.Fl -no-home . -.Pp -.It Fl - Ns Oo Cm no- Oc Ns Cm system -Include documentation from Ruby's standard library. Defaults to true. -.Pp -.It Fl - Ns Oo Cm no- Oc Ns Cm site - Include documentation from libraries installed in site_lib. Defaults to true. -.Pp -.It Fl - Ns Oo Cm no- Oc Ns Cm gems -Include documentation from RubyGems. Defaults to true. -.Pp -.It Fl - Ns Oo Cm no- Oc Ns Cm home -Include documentation stored in ~/.rdoc. Defaults to true. -.Pp -.It Fl - Ns Oo Cm no- Oc Ns Cm use-cache -Whether or not to use -.Nm Ns -.Ns 's cache. True by default. -.Pp -.It Fl w Ar width -.It Fl -width Ns = Ns Ar width -Set the width of the output. -.Pp -.El -.Pp -.Sh ENVIRONMENT -.Bl -tag -width "USERPROFILE" -compact -.Pp -.It Ev RI -Additional options. -.Pp -.It Ev PAGER -Used as the name of pager program for displaying. -.Pp -.It Ev HOME -.It Ev USERPROFILE -.It Ev HOMEPATH -Path to user's home directory. -.El -.Pp -.Sh FILES -.Bl -tag -width "USERPROFILE" -compact -.Pp -.It Pa ~/.ri -Caches recently referenced documents here. -.Pp -.It Pa ~/.rdoc -Searches user-wide documents here. -.Pp -.El -.Pp -.Sh SEE ALSO -.Xr ruby 1 -.Xr rdoc 1 -.Xr gem 1 -.Pp -.Sh REPORTING BUGS -.Bl -bullet -.Li Security vulnerabilities should be reported via an email to -.Aq security@ruby-lang.org Ns -.Li . -Reported problems will be published after being fixed. -.Pp -.Li And you can report other bugs and feature requests via the -Ruby Issue Tracking System (http://bugs.ruby-lang.org). -Do not report security vulnerabilities -via the system because it publishes the vulnerabilities immediately. -.El -.Sh AUTHORS -Written by Dave Thomas -.Aq dave@pragmaticprogrammer.com diff --git a/man/ruby.1 b/man/ruby.1 index 84f6bf47d7..8141a6d7ef 100644 --- a/man/ruby.1 +++ b/man/ruby.1 @@ -1,7 +1,6 @@ .\"Ruby is copyrighted by Yukihiro Matsumoto <matz@netlab.jp>. -.Dd November 7, 2012 -.Dt RUBY(1) "" "Ruby Programmers Reference Guide" -.\".Dt RUBY 1 +.Dd April 14, 2018 +.Dt RUBY \&1 "Ruby Programmer's Reference Guide" .Os UNIX .Sh NAME .Nm ruby @@ -14,18 +13,19 @@ .Op Fl 0 Ns Op Ar octal .Op Fl C Ar directory .Op Fl E Ar external Ns Op : Ns Ar internal -.Op Fl F Ar pattern +.Op Fl F Ns Op Ar pattern .Op Fl I Ar directory -.Op Fl K Ar c +.Op Fl K Ns Op Ar c .Op Fl T Ns Op Ar level .Op Fl W Ns Op Ar level .Op Fl e Ar command .Op Fl i Ns Op Ar extension .Op Fl r Ar library .Op Fl x Ns Op Ar directory -.Op - Ns Bro Cm enable Ns | Ns Cm disable Brc Ns - Ns Ar FEATURE +.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 ... @@ -101,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). @@ -120,24 +120,36 @@ On most systems, you can load object files into the Ruby interpreter on-the-fly. .It Sy "Rich libraries" -Libraries called "builtin libraries" and "standard libraries" are bundled with Ruby. -And you can obtain more libraries via the package management system called `RubyGems'. -.Pp -Moreover there are thousands of Ruby projects on GitHub -.Pf <\fBhttps://github.com/languages/Ruby\fR> Ns . +In addition to the +.Dq builtin libraries +and +.Dq standard libraries +that are bundled with Ruby, a vast amount of third-party libraries +.Pq Dq gems +are available via the package management system called +.Sq RubyGems , +namely the +.Xr gem 1 +command. Visit RubyGems.org +.Pq Lk https://rubygems.org/ +to find the gems you need, and explore GitHub +.Pq Lk https://github.com/ +to see how they are being developed and used. .El .Pp .Sh OPTIONS -Ruby interpreter accepts following command-line options (switches). +The Ruby interpreter accepts the following command-line options (switches). They are quite similar to those of .Xr perl 1 . .Bl -tag -width "1234567890123" -compact .Pp .It Fl -copyright -Prints the copyright notice. +Prints the copyright notice, and quits immediately without running any +script. .Pp .It Fl -version -Prints the version of Ruby interpreter. +Prints the version of the Ruby interpreter, and quits immediately without +running any script. .Pp .It Fl 0 Ns Op Ar octal (The digit @@ -208,6 +220,18 @@ on machines that don't support it, in the following manner: exec /usr/local/bin/ruby -S $0 $* .Ed .Pp +On some systems +.Li "$0" +does not always contain the full pathname, so you need the +.Fl S +switch to tell Ruby to search for the script if necessary (to handle embedded +spaces and such). A better construct than +.Li "$*" +would be +.Li ${1+"$@"} , +but it does not work if the script is being interpreted by +.Xr csh 1 . +.Pp .It Fl T Ns Op Ar level=1 Turns on taint checks at the specified level (default 1). .Pp @@ -234,7 +258,7 @@ Verbose mode is "verbose". It sets the .Li "$VERBOSE" to true. .Fl W Ns -2 is same as +2 is the same as .Fl w . .El @@ -248,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 @@ -258,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 @@ -290,7 +321,7 @@ Enables automatic line-ending processing, which means to firstly set to the value of .Li "$/" , and secondly chops every line read using -.Li chop! . +.Li chomp! . .Pp .It Fl n Causes Ruby to assume the following loop around your script, which @@ -333,18 +364,6 @@ and set the corresponding variable in the script. For example: print "true\en" if $xyz .Ed .Pp -On some systems -.Li "$0" -does not always contain the full pathname, so you need the -.Fl S -switch to tell Ruby to search for the script if necessary (to handle embedded -spaces and such). A better construct than -.Li "$*" -would be -.Li ${1+"$@"} , -but it does not work if the script is being interpreted by -.Xr csh 1 . -.Pp .It Fl v Enables verbose mode. Ruby will print its version at the beginning and set the variable @@ -377,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 @@ -386,8 +405,7 @@ debug the Ruby interpreter. .It Fl -disable- Ns Ar FEATURE .It Fl -enable- Ns Ar FEATURE Disables (or enables) the specified -.Ar FEATURE Ns -\&. +.Ar FEATURE . .Bl -tag -width "--disable-rubyopt" -compact .It Fl -disable-gems .It Fl -enable-gems @@ -409,30 +427,63 @@ Disables (or enables) all features. .El .Pp .It Fl -dump Ns = Ns Ar target -DO NOT USE. +Dump some information. .Pp Prints the specified target. .Ar target -can be one of; -.Bl -hang -offset indent -.It Sy insns -disassembled instructions +can be one of: +.Bl -hang -offset indent -width "version" +.It Sy version +Print version description (same as +.Fl -version). +.It Sy usage +Print a brief usage message (same as +.Fl h). +.It Sy help +Show long help message (same as +.Fl -help). +.It Sy syntax +Check syntax (same as +.Fl c +.Fl -yydebug). .Pp .El .Pp -Only specify this switch if you are going to debug the Ruby interpreter. +Or one of the following, which are intended for debugging the interpreter: +.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 insns +Print a list of disassembled bytecode instructions. +.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 Enables verbose mode without printing version message at the beginning. It sets the .Li "$VERBOSE" variable to true. -If this switch is given, and no other switches are present, Ruby quits -after printing its version. +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 -.Bl -tag -width "RUBYLIB_PREFIX" -compact +.Bl -tag -width "RUBYSHELL" -compact .It Ev RUBYLIB A colon-separated list of directories that are added to Ruby's library load path @@ -468,47 +519,309 @@ 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 environment variable on calling Kernel#system. -.Pp -.It Ev RUBYLIB_PREFIX -This variable is obsolete. .El .Pp And Ruby depends on some RubyGems related environment variables unless RubyGems is disabled. See the help of .Xr gem 1 -as bellow. +as below. .Bd -literal -offset indent % gem help .Ed .Pp +.Sh GC ENVIRONMENT +The Ruby garbage collector (GC) tracks objects in fixed-sized slots, +but each object may have auxiliary memory allocations handled by the +malloc family of C standard library calls ( +.Xr malloc 3 , +.Xr calloc 3 , +and +.Xr realloc 3 ) . +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: +.Bl -hang -offset indent +.It Sy 1 +Reaching the object limit. +.It Sy 2 +Reaching the malloc limit. +.Pp +.El +In Ruby 2.1, the generational GC was introduced and the limits are divided +into young and old generations, providing two additional ways to trigger +a GC: +.Bl -hang -offset indent +.It Sy 3 +Reaching the old object limit. +.It Sy 4 +Reaching the old malloc limit. +.El +.Pp +There are currently 4 possible areas where the GC may be tuned by +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 +Prepare at least this amount of slots after GC. +Allocate this number slots if there are not enough slots. +Introduced in Ruby 2.1, default: 4096 +.Pp +.It Ev RUBY_GC_HEAP_GROWTH_FACTOR +Increase allocation rate of heap slots by this factor. +Introduced in Ruby 2.1, default: 1.8, minimum: 1.0 (no growth) +.Pp +.It Ev RUBY_GC_HEAP_GROWTH_MAX_SLOTS +Allocation rate is limited to this number of slots, +preventing excessive allocation due to RUBY_GC_HEAP_GROWTH_FACTOR. +Introduced in Ruby 2.1, default: 0 (no limit) +.Pp +.It Ev RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR +Perform a full GC when the number of old objects is more than R * N, +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. +Default: 16MB +.Pp +.It Ev RUBY_GC_MALLOC_LIMIT_MAX +The maximum limit of young generation allocation from malloc before GC starts. +Prevents excessive malloc growth due to RUBY_GC_MALLOC_LIMIT_GROWTH_FACTOR. +Introduced in Ruby 2.1, default: 32MB. +.Pp +.It Ev RUBY_GC_MALLOC_LIMIT_GROWTH_FACTOR +Increases the limit of young generation malloc calls, reducing +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. +Introduced in Ruby 2.1, default: 16MB +.Pp +.It Ev RUBY_GC_OLDMALLOC_LIMIT_MAX +The maximum limit of old generation allocation from malloc before a +full GC starts. +Prevents excessive malloc growth due to RUBY_GC_OLDMALLOC_LIMIT_GROWTH_FACTOR. +Introduced in Ruby 2.1, default: 128MB +.Pp +.It Ev RUBY_GC_OLDMALLOC_LIMIT_GROWTH_FACTOR +Increases the limit of old generation malloc allocation, reducing full +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 +subject to change with different versions of Ruby. The VM stack is used +for pure-Ruby code and managed by the virtual machine. Machine stack is +used by the operating system and its usage is dependent on C extensions +as well as C compiler options. Using lower values for these may allow +applications to keep more Fibers or Threads running; but increases the +chance of SystemStackError exceptions and segmentation faults (SIGSEGV). +These environment variables are available since Ruby 2.0.0. +All values are specified in bytes. +.Pp +.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 1048576 (64-bit) +.Pp +.It Ev RUBY_THREAD_MACHINE_STACK_SIZE +Machine stack size used at thread creation. +default: 524288 or 1048576 +.Pp +.It Ev RUBY_FIBER_VM_STACK_SIZE +VM stack size used at fiber creation. +default: 65536 or 131072 +.Pp +.It Ev RUBY_FIBER_MACHINE_STACK_SIZE +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 "http://www.ruby-lang.org/123" -.It http://www.ruby-lang.org +.Bl -hang -compact -width "https://www.ruby-toolbox.com/" +.It Lk https://www.ruby-lang.org/ The official web site. -.It http://www.rubyforge.org -hosting many open source ruby projects. -.It http://raa.ruby-lang.org -Ruby Application Archive. +.It Lk https://www.ruby-toolbox.com/ +Comprehensive catalog of Ruby libraries. .El .Pp .Sh REPORTING BUGS .Bl -bullet -.Li Security vulnerabilities should be reported via an email to -.Aq security@ruby-lang.org Ns -.Li . -Reported problems will be published after they've been fixed. -.Pp -.Li And you can report other bugs and feature requests via the -Ruby Issue Tracking System (http://bugs.ruby-lang.org). +.It +Security vulnerabilities should be reported via an email to +.Mt security@ruby-lang.org . +Reported problems will be published after being fixed. +.Pp +.It +Other bugs and feature requests can be reported via the +Ruby Issue Tracking System +.Pq Lk https://bugs.ruby-lang.org/ . Do not report security vulnerabilities -via the system because it publishes the vulnerabilities immediately. +via this system because it publishes the vulnerabilities immediately. .El .Sh AUTHORS Ruby is designed and implemented by .An Yukihiro Matsumoto Aq matz@netlab.jp . .Pp -See <\fBhttp://bugs.ruby-lang.org/wiki/ruby/Contributors\fR> for contributors to Ruby. +See +.Aq Lk https://github.com/ruby/ruby/graphs/contributors +for contributors to Ruby. |
