| Age | Commit message (Collapse) | Author |
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3869
|
|
Miller Rabin algorithm can be used to test primality for integers smaller than a max value "MaxMR" (~3e24)
It can be much faster than previous implementation: ~100x faster for numbers with 13 digits, at least 5 orders of magnitude for even larger numbers (previous implementation is so slow that it requires more patience than I have for more precise estimate).
Miller Rabin test becomes faster than previous implementation at somewhere in the range 1e5-1e6. It seems that the range 62000..66000 is where Miller Rabin starts being always faster, so I picked 0xffff arbitrarily; before that, or above "MaxMR", the previous implementation remains.
I compared the `faster_prime` gem too. It is slower than previous implementation up to ~1e4. After that it becomes faster and faster compared to previous implementation, but is still slower than Miller Rabin starting at ~1e5 and up to MaxMR. Thus, after this commit, builtin `Integer#prime?` will be similar or faster than `faster_prime` up to "MaxMR".
Adapted from patch of Stephen Blackstone [Feature #16468]
Benchmark results and code: https://gist.github.com/marcandre/b263bdae488e76dabdda84daf73733b9
Co-authored-by: Stephen Blackstone <sblackstone@gmail.com>
Notes:
Merged: https://github.com/ruby/ruby/pull/3847
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3853
|
|
|
|
This reverts commit bd47a8d660ab33a20c5e28d0effcc29105c434e4.
`libc_so` and `libm_so` are `nil` at line 124 because Big Sur doesn't have `/usr/lib/libSystem.B.dylib`.
The reassignment at line 127 is necessary in this case.
Notes:
Merged-By: mrkn <mrkn@ruby-lang.org>
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3864
|
|
Notes:
Merged-By: mrkn <mrkn@ruby-lang.org>
|
|
|
|
Notes:
Merged-By: mrkn <mrkn@ruby-lang.org>
|
|
* Windows: Read ENV names and values as UTF-8 encoded Strings
Implements issue #12650: fix https://bugs.ruby-lang.org/issues/12650
This also removes the special encoding for ENV['PATH'] and some
complexity in the code that is unnecessary now.
* Windows: Improve readablity of getenv() encoding
getenv() did use the expected codepage as an implicit parameter of the macro.
This is mis-leading since include/ruby/win32.h has a different definition.
Using the "cp" variable explicit (like the other function calls) makes it
more readable and consistent.
* Windows: Change external C-API macros getenv() and execv() to use UTF-8
They used to process and return strings with locale encoding,
but since all ruby-internal spawn and environment functions use UTF-8,
it makes sense to change the C-API equally.
Notes:
Merged-By: nurse <naruse@airemix.jp>
|
|
https://github.com/ruby/reline/commit/0a4f175b0a
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3841
|
|
getaddrinfo_a() gets stuck after fork().
To avoid this, we need 1 second sleep to wait for internal
worker threads of getaddrinfo_a() to be finished, but that is unacceptable.
[Bug #17220] [Feature #17134] [Feature #17187]
|
|
This reverts the following three commits.
- ce707079c153f389d861c91a8dccc510fab0e245
- 1a76bb56b0ba99a19d1373c4c8ebac42e7b6f27c
- 51500eedefa492699668ced3e07e330a9a4d53ee
|
|
|
|
|
|
Avoiding recursive call would imply iterating bits starting from
most significant, which is not easy to do efficiently.
Any saving would be dwarfed by the multiplications anyways.
[Feature #15233]
Notes:
Merged: https://github.com/ruby/ruby/pull/3844
|
|
https://github.com/ruby/reline/commit/89d49ec9e0
|
|
https://github.com/ruby/reline/commit/d1a6869322
|
|
https://github.com/ruby/reline/commit/0e30a49d03
|
|
https://github.com/ruby/reline/commit/1959e22043
|
|
Key strokes, vi arg, operator, and motion should be treated as operator, vi
arg, and motion.
https://github.com/ruby/reline/commit/d1a7e74aa4
|
|
https://github.com/ruby/reline/commit/301e9048fc
|
|
https://github.com/ruby/reline/commit/a79c297567
|
|
https://github.com/ruby/reline/commit/594484d9f9
|
|
operator
https://github.com/ruby/reline/commit/86e9a76499
|
|
https://github.com/ruby/reline/commit/164aaf9a5f
|
|
avoid crashing
https://github.com/ruby/reline/commit/1c0c06de1f
|
|
https://github.com/ruby/reline/commit/abc90e6867
|
|
The proc variable will be used later so the instance variable will be changes.
https://github.com/ruby/reline/commit/496c4361f6
|
|
https://github.com/ruby/reline/commit/abb56e5ec3
|
|
A newline is automatically inserted if a character is rendered at eol on
command prompt.
https://github.com/ruby/reline/commit/2dfd5d0df8
|
|
https://github.com/ruby/reline/commit/2dabf0c786
|
|
https://github.com/ruby/reline/commit/f4683b72eb
|
|
https://github.com/ruby/reline/commit/c7c1d5f5d1
|
|
https://github.com/ruby/reline/commit/a63ce6371c
|
|
https://github.com/ruby/reline/commit/d29d33dcf5
|
|
https://github.com/ruby/reline/commit/70536d8c9a
|
|
* Otherwise those tests, etc cannot run on alternative Ruby implementations.
|
|
We need stop worker threads in getaddrinfo_a() before fork().
This change adds a hook before fork() that cancel all outstanding requests
and wait for all ongoing requests. Then, it waits for all worker
threads to be finished.
Fixes [Bug #17220]
|
|
This should fix Ruby Bug 12468.
https://github.com/ruby/logger/commit/49de53d1fc
|
|
Co-authored-by: Ryuta Kamizono <kamipo@gmail.com>
https://github.com/ruby/mutex_m/commit/84ca1fc108
|
|
|
|
https://github.com/ruby/set/commit/447974a374
|
|
It required RBTree to perform decently and the external dependency was
not suitable for a standard library. The pure ruby fallback
implementation was originally meant to be an example of how to write a
subclass of Set, and its poor performance was not suitable for use in
production.
I decided it should be distributed as an external library instead of
bundling it with Set.
https://github.com/ruby/set/commit/dfcc8e568b
|
|
In Ruby 2.x, initialize_copy does not take a freeze option.
https://github.com/ruby/set/commit/3da6c309df
|
|
If a buffer keyword argument is given, it is used as the buffer,
instead of creating new strings. This can result in significantly
lower memory usage during inflation.
Implements #19
https://github.com/ruby/zlib/commit/dac9a9b57d
|
|
This reads from the IO in 8192 byte chunks, so you don't need to
have the entire string in memory.
Fixes #16
https://github.com/ruby/zlib/commit/ba9793c550
|
|
|
|
http://rubyci.s3.amazonaws.com/ubuntu/ruby-master/log/20201203T123002Z.log.html.gz
```
/home/chkbuild/chkbuild/tmp/build/20201203T123002Z/ruby/test/ruby/test_io.rb:1830:
warning: method redefined; discarding old test_each_byte
/home/chkbuild/chkbuild/tmp/build/20201203T123002Z/ruby/test/ruby/test_io.rb:376:
warning: previous definition of test_each_byte was here
test/unit warning: method TestIO#test_each_byte is redefined
/home/chkbuild/chkbuild/tmp/build/20201203T123002Z/ruby/test/ruby/test_io.rb:1849:
warning: method redefined; discarding old test_each_char
/home/chkbuild/chkbuild/tmp/build/20201203T123002Z/ruby/test/ruby/test_io.rb:1799:
warning: previous definition of test_each_char was here
test/unit warning: method TestIO#test_each_char is redefined
```
|