71164 Commits

Author SHA1 Message Date
Burdette Lamar
3e6c6c74dd
{DOC] Enhanced RDoc for io.c (#5529)
Changes parameter name from simple opts to open_opts or enc_opts when appropriate; leaves the name unchanged when more than one kind of option is allowed.
2022-02-05 14:05:27 -06:00
git
3ec2ffed86 * 2022-02-06 [ci skip] 2022-02-06 03:06:14 +09:00
Koichi Sasada
603ab70961 support concurrent btest execution
* `-j` option for concurrent test with threads
  * `-jN` uses N threads
  * `-j` uses nproc/2 threads
* Introduce `BT` struct to manage configurations
* Introduce `Assertion` to manage all assertions
* Remove all toplevel instance variables
* Show elapsed seconds at last

```
$ time make btest
...
real    0m37.319s
user    0m26.221s
sys     0m16.534s

$ time make btest TESTOPTS=-j
...
real    0m11.812s
user    0m36.667s
sys     0m21.872s
```
2022-02-06 03:05:47 +09:00
Aaron Patterson
2a76440fac [Bug #18501] Fire write barrier after hash has been written
Before this change the write barrier was executed before the key and
value were actually reachable via the Hash.  This could cause
inconsistencies in object coloration which would lead to accidental
collection of dup'd keys.

Example:

1. Object O is grey, Object P is white.
2. Write barrier fires O -> P
3. Write barrier does nothing
4. Malloc happens, which starts GC
5. GC colors O black
6. P is written in to O (now we have O -> P reference)
7. P is now accidentally treated as garbage
2022-02-04 14:36:04 -08:00
git
06e96b922f * 2022-02-05 [ci skip] 2022-02-05 07:27:04 +09:00
Burdette Lamar
06a28ec4d4
[DOC] Enhanced RDoc for io.c (#5527)
Treats:

    IO.binread (abbreviated to be like IO.binwrite).
    IO.write
    IO.binwrite
    IO.copystream
    IO#external_encoding
    IO#internal_encoding
    IO#set_encoding
2022-02-04 16:26:49 -06:00
Burdette Lamar
46f6575157
[DOC] Enhanced RDoc for io.c (#5511)
Treats:

    IO.foreach
    IO.readlines
    IO.read
    IO.binread
2022-02-04 06:55:10 -06:00
Max Leopold
203b1fc7e2 Add documentation for regexp emoji named character property 2022-02-04 08:26:49 +09:00
Matt Valentine-House
9fab2c1a1a Add the size pool slot size to the output of ObjectSpace.dump/dump_all 2022-02-03 15:07:35 -05:00
git
a3caf196d9 * 2022-02-04 [ci skip] 2022-02-04 05:07:15 +09:00
Peter Zhu
af321ea727 Move total_freed_pages to size pool 2022-02-03 15:06:55 -05:00
Peter Zhu
a9221406aa Move total_allocated_pages to size pool 2022-02-03 15:06:55 -05:00
Peter Zhu
424374d330 Fix case when gc_marks_continue does not yield slots
gc_marks_continue will start sweeping when it finishes marking. However,
if the heap we are trying to allocate into is full, then the sweeping
may not yield any free slots. If we don't call gc_sweep_continue
immediate after this, then another GC will be started halfway during
lazy sweeping. gc_sweep_continue will either grow the heap or finish
sweeping.
2022-02-03 09:22:24 -05:00
Nobuyoshi Nakada
8f3a36fb6e
Fix indents [ci skip] 2022-02-03 11:21:41 +09:00
Jeremy Evans
7529c53891 [ruby/net-http] Do not set SNI hostname if connecting to IP address
RFC 6066, section 3, explicitly disallows the use of an IP address
as an SNI server name.  So check if the connection is being made
to an IP address using the resolv regexps, and do not set an SNI
hostname in that case.

Recent changes to LibreSSL make it more strictly follow RFC 6066,
resulting an s.hostname= raising an error if passed an IP address.
When such verions of LibreSSL are used, this change not only fixes
the net/http tests, it also fixes tests for webrick and open-uri,
which both make SSL connections to 127.0.0.1 using net/http in
their tests.

Avoid warning in the openssl extension by unsetting
@ssl_context.verify_hostname if connecting to an IP address.
Make changes so that the post_connection_check still happens
when connecting to an IP address, which is necessary to keep
checking that the certificate returned includes the IP address,
which one of the tests depends on.

Revert the previous change that modified the regexp used for
checking the error message.

https://github.com/ruby/net-http/commit/fa68e64bee
2022-02-03 05:10:21 +09:00
git
3ca244a29a * 2022-02-03 [ci skip] 2022-02-03 02:21:00 +09:00
Jemma Issroff
2913a2f5cf Treat TS_ICVARC cache as separate from TS_IVC cache 2022-02-02 09:20:34 -08:00
Peter Zhu
7b77d46671 Decouple GC slot sizes from RVALUE
Add a new macro BASE_SLOT_SIZE that determines the slot size.

For Variable Width Allocation (compiled with USE_RVARGC=1), all slot
sizes are powers-of-2 multiples of BASE_SLOT_SIZE.

For USE_RVARGC=0, BASE_SLOT_SIZE is set to sizeof(RVALUE).
2022-02-02 09:52:04 -05:00
S.H
af10771045
Add econv_get_encoding function 2022-02-02 22:52:55 +09:00
Olle Jonsson
d8c54bac4a [ruby/net-protocol] Fix typo in gem description [ci skip]
https://github.com/ruby/net-protocol/commit/35d7b08a54
2022-02-02 21:21:47 +09:00
Olle Jonsson
94687a6826 [ruby/net-protocol] Drop unused gemspec directives
This gem exposes no executables.

https://github.com/ruby/net-protocol/commit/3c4def2a64
2022-02-02 21:17:47 +09:00
git
ea6b6f1ad3 Update bundled gems list at d4a8c04dc7bb1c9aa48eaf50dc6b18 [ci skip] 2022-02-02 04:26:22 +00:00
Soutaro Matsumoto
d4a8c04dc7
Update RBS (#5515)
* Bundle RBS 2.1.0
2022-02-02 13:25:47 +09:00
git
bb845fb971 * 2022-02-02 [ci skip] 2022-02-02 09:08:47 +09:00
Kazuhiro NISHIYAMA
aff4b2194f
Fix a typo [ci skip] 2022-02-02 09:08:12 +09:00
Dan Jensen
0b2f6b942b [rubygems/rubygems] Skip "seller shipped" notification after delivery
If a Shipment has been delivered, there is no point in notifying the
buyer that the seller shipped. Instead, we should simply notify the
buyer that the shipment was delivered. This is relevant in cases where
the seller is late to mark a Shipment as shipped, so the first EasyPost
Tracker update marks it as delivered, or in cases where the seller
fails to mark as shipped and the buyer marks it as delivered.

This fixes a Shipment event handler so the buyer notification for
shipment is no longer invoked if the Shipment is already delivered.

https://github.com/rubygems/rubygems/commit/09c2cadc86
2022-02-01 20:07:18 +09:00
Nobuyoshi Nakada
f6894711a4 [ruby/io-wait] Exclude rake files from packages
https://github.com/ruby/io-wait/commit/7be58cd7f4
2022-02-01 20:04:15 +09:00
Jean Boussier
ddb9d60f7d
[ruby/io-wait] Make the gem a noop on Rubies older than 2.6
Ref: https://github.com/mikel/mail/pull/1439

Some gems depend on io-wait, but still support older rubies,
so they have to chose between droping support or not listing io-wait.

But io-wait could act a a noop on older rubies.

https://github.com/ruby/io-wait/commit/75fcb74c32
2022-02-01 14:11:16 +09:00
git
804dca7b0c Update default gems list at fc4fbeef28b1d243e45d7fc8d60778 [ci skip] 2022-02-01 04:22:40 +00:00
Nobuyoshi Nakada
fc4fbeef28 [ruby/io-wait] bump up to 0.2.2
https://github.com/ruby/io-wait/commit/e15a2486b2
2022-02-01 13:22:03 +09:00
Hiroshi SHIBATA
ec906191ab
Restore workaround for test_rubygems.rb, It still fails with chkbuild encironment 2022-02-01 12:21:53 +09:00
David Rodríguez
6623d60ec8 Try make this more readable and consistent with other targets 2022-02-01 08:09:23 +09:00
David Rodríguez
e53af7d1fb Tweaks to freeze bundler CI
Currently some specs are broken because `rspec-mocks-3.10.3` is used,
which has some breaking changes, apparently.

This change makes ruby-core install the same gems installed upstream for
running bundle specs, so that things never break with 3rd party
releases.
2022-02-01 08:09:23 +09:00
David Rodríguez
517d7c3221 Sync latest Bundler & RubyGems 2022-02-01 08:09:23 +09:00
git
2b2e3b7991 * 2022-02-01 [ci skip] 2022-02-01 05:20:53 +09:00
Josef Šimánek
d5c9710b07 [rubygems/rubygems] Remove encoding pragma from specification.rb
- it is not used since it is not at the top of the file
- it is not useful anymore

https://github.com/rubygems/rubygems/commit/6aee05d923
2022-02-01 05:20:38 +09:00
Peter Zhu
605f226142 Fix heap page iteration in gc_verify_heap_page
The for loops are not correctly iterating heap pages in
gc_verify_heap_page.
2022-01-31 09:42:20 -05:00
Steven Nunez
b01657c470
[DOC] Fix case for new sentence. 2022-01-31 07:59:10 +09:00
Koichi ITO
f924e05b68
[DOC] Fix a typo in the NEWS.md
Follow up of https://github.com/ruby/ruby/commit/fbb3cab.
2022-01-31 07:38:10 +09:00
Burdette Lamar
99a65e80d5
[DOC] Enhanced RDoc for io.c (#5460)
Treats:

    Kernel#readline
    Kernel#readlines
    Kernel#`cmd`
    IO#advise
    IO.select
    IO#ioctl
    IO#fcntl
    Kernel#syscall
    IO.pipe
2022-01-30 16:17:53 -06:00
git
b0bd26ada9 * 2022-01-31 [ci skip] 2022-01-31 03:47:18 +09:00
Koichi Sasada
e75bd8df51 pend some tests while using to_binary
ISeqs from ISeq#to_binary/load do not support `keep_script_lines`
now so some tests should be pending tests with
`RUBY_ISEQ_DUMP_DEBUG=to_binary`
2022-01-31 03:47:03 +09:00
Nobuyoshi Nakada
44c44b9b4a
Ignore warnings at reading debug info for now
Something seems changed on FreeBSD 13.
2022-01-29 22:59:39 +09:00
Nobuyoshi Nakada
67f4729ff0
[Bug#18556] Fallback MAP_ ANONYMOUS
Define `MAP_ANONYMOUS` to `MAP_ANON` if undefined on old systems.
2022-01-29 19:07:38 +09:00
Takashi Kokubun
fbb3cab956
Add a NEWS entry about [Feature #16806] 2022-01-29 00:32:38 -08:00
Nobuyoshi Nakada
90a8b1c543
Remove a typo hash [ci skip] 2022-01-29 15:33:13 +09:00
Nobuyoshi Nakada
7672f6a423
mkmf: unify duplicate code in pkg_config 2022-01-29 15:29:46 +09:00
Mike Dalessio
b90e56e624 mkmf: pkg_config accepts multiple options 2022-01-29 15:22:52 +09:00
Mike Dalessio
24c7e75ded test: backfill coverage for MakeMakefile.pkg_config 2022-01-29 15:22:52 +09:00
git
1bd033cb89 * 2022-01-29 [ci skip] 2022-01-29 03:33:31 +09:00