Two issues caused groff/lintian warnings on the mdoc pages:
1. man/ruby.1: the MISC ENVIRONMENT list for RUBY_TCP_NO_FAST_FALLBACK
opened a .Bl that was never closed before .Sh SEE ALSO, producing
"A .Bl directive has no matching .El".
2. man/erb.1 and man/ruby.1: .Bl -tag -width "1234567890123" uses a long
all-digit width string. Under groff 1.24 that is mishandled and floods
"cannot adjust line; overset by ~5e7n" warnings, and mangled OPTIONS
rendering. Replace it with -width "--encoding" (a representative tag).
Verified with man --warnings: 0 warnings on erb.1/ruby.1/goruby.1 after
this change (was 249 / 1399 / 0 on master).
This is implied by the fact that non-main ractors use the M:N thread
scheduler, but I expect that some users are not aware of this.
Bump all man page dates as CI requires it.
Remove a zero-width space from manual page section numbers improving
portability with the mandoc compiler used on macOS, BSD, and illumos.
Previously it was polluting the whatis(1) database, showing as being
in both sections `1` and also creating a new section `\&1`.
This matches the examples shown in the language references for
the two most widely deployed mdoc(7) compilers, mandoc and groff.
Signed-off-by: Alexander Ziaee <ziaee@google.com>
This change includes the following updates:
- Added an environment variable `RUBY_TCP_NO_FAST_FALLBACK` to control enabling/disabling fast_fallback
- Updated documentation and man pages
- Revised the implementation of Socket.tcp_fast_fallback= and Socket.tcp_fast_fallback, which previously performed dynamic name resolution of constants and variables. As a result, the following performance improvements were achieved:
(Case of 1000 executions of `TCPSocket.new` to the local host)
Rehearsal -----------------------------------------
before 0.031462 0.147946 0.179408 ( 0.249279)
after 0.031164 0.146839 0.178003 ( 0.346935)
-------------------------------- total: 0.178003sec
user system total real
before 0.027584 0.138712 0.166296 ( 0.233356)
after 0.025953 0.127608 0.153561 ( 0.237971)
This commit adds an environment variable `RUBY_THREAD_TIMESLICE` for
specifying the default thread quantum in milliseconds. You can adjust
this variable to tune throughput, which is especially useful on
multithreaded systems that are mixing CPU bound work and IO bound work.
The default quantum remains 100ms.
[Feature #20861]
Co-Authored-By: John Hawthorn <john@hawthorn.email>
This commit changes RUBY_GC_HEAP_INIT_SIZE_{40,80,160,320,640}_SLOTS to
RUBY_GC_HEAP_{0,1,2,3,4}_INIT_SLOTS. This is easier to use because the
user does not need to determine the slot sizes (which can vary between
32 and 64 bit systems). They now just use the heap names
(`GC.stat_heap.keys`).
The old RUBY_GC_HEAP_INIT_SLOTS isn't really usable anymore as
it initalize all the pools by the same factor, but it's unlikely
that pools will need similar sizes.
In production our 40B pool is 5 to 6 times bigger than our 80B pool.