7649 Commits

Author SHA1 Message Date
Yusuke Endoh
950614b088 ext/socket/ipsocket.c: prevent "warning: unused variable 'resolv_timeout'" 2020-09-27 02:38:39 +09:00
NARUSE, Yui
4e31cbc070 update-deps
https://github.com/ruby/ruby/runs/1169621878
2020-09-26 18:55:00 +09:00
Alan Wu
24820d508b Return nil when argument to ObjectSpace.internal_class_of is T_IMEMO
The added test case crashes the interpreter because it makes
ObjectSpace.internal_class_of return the second VALUE slot of an AST
imemo object. The second VALUE slot of `struct rb_ast_struct` is
not a VALUE and not a pointer to a Ruby object.
2020-09-25 09:27:49 -07:00
Kenta Murata
3a00f2a0f4
ext/readline/depend: update-deps --fix 2020-09-26 00:34:27 +09:00
aycabta
f4328d7f5d [ruby/readline-ext] Remove unnecessary header files from depend
https://github.com/ruby/readline-ext/commit/f9783c0739
2020-09-25 21:34:34 +09:00
Kenta Murata
890bc2cdde
Buffer protocol proposal (#3261)
* Add buffer protocol

* Modify for some review comments

* Per-object buffer availability

* Rename to MemoryView from Buffer and make compilable

* Support integral repeat count in memory view format

* Support 'x' for padding bytes

* Add rb_memory_view_parse_item_format

* Check type in rb_memory_view_register

* Update dependencies in common.mk

* Add test of MemoryView

* Add test of rb_memory_view_init_as_byte_array

* Add native size format test

* Add MemoryView test utilities

* Add test of rb_memory_view_fill_contiguous_strides

* Skip spaces in format string

* Support endianness specifiers

* Update documentation

* Support alignment

* Use RUBY_ALIGNOF

* Fix format parser to follow the pack format

* Support the _ modifier

* Parse count specifiers in get_format_size function.

* Use STRUCT_ALIGNOF

* Fix test

* Fix test

* Fix total size for the case with tail padding

* Fix rb_memory_view_get_item_pointer

* Fix rb_memory_view_parse_item_format again
2020-09-25 20:32:02 +09:00
Jean Boussier
927a377a7c [flori/json] Fix JSON.load_file doc
https://github.com/flori/json/commit/cb61a00ba8
2020-09-25 17:28:42 +09:00
BurdetteLamar
038252fe66 [flori/json] Partial compliance with doc/method_documentation.rdoc
https://github.com/flori/json/commit/6dfa885134
2020-09-25 17:28:42 +09:00
Burdette Lamar
71f64e15b9 [flori/json] Enhanced RDoc for JSON.dump (#443)
* Enhanced RDoc for JSON.dump
https://github.com/flori/json/commit/03f1699ec4
2020-09-25 17:28:42 +09:00
Julien Feltesse
3d5e833998 bundle the LICENSE file in the gem 2020-09-25 17:28:42 +09:00
BurdetteLamar
de0e0ffad4 [flori/json] Nodoc for recurse_proc
https://github.com/flori/json/commit/f8c0fe2408
2020-09-25 17:28:42 +09:00
BurdetteLamar
e9096f796c [flori/json] RDoc for JSON.load with proc
https://github.com/flori/json/commit/a55c91934e
2020-09-25 17:28:42 +09:00
Karol Bucek
f8d43e5370 unify json-java gemspec with the baseline 2020-09-25 17:28:42 +09:00
BurdetteLamar
8c057bb845 [flori/json] RDoc example for JSON.load
https://github.com/flori/json/commit/e4eead665c
2020-09-25 17:28:42 +09:00
BurdetteLamar
36b2177ea8 [flori/json] Enhance RDoc for JSON.parse
https://github.com/flori/json/commit/33e64ef255
2020-09-25 17:28:42 +09:00
BurdetteLamar
71b1bbad02 [flori/json] Move options from #generate and #parse to common area
https://github.com/flori/json/commit/20d7be605a
2020-09-25 17:28:42 +09:00
Keith Bennett
c3614877d2 [flori/json] Add load_file and load_file! methods, with tests. Fixes issue #386.
https://github.com/flori/json/commit/0be363c99b
2020-09-25 17:28:42 +09:00
Jean Boussier
e1659af372 Add an option to escape forward slash character
Squashed commit of the following:

commit 26d181059989279a79c433cedcd893b4f52e42ee
Author: Francois Chagnon <francois.chagnon@jadedpixel.com>
Date:   Tue Sep 15 21:17:34 2015 +0000

    add config options for escape_slash

commit fa282334051b16df91ca097dd7304b46f3bc7719
Author: Francois Chagnon <francois.chagnon@jadedpixel.com>
Date:   Mon Feb 9 21:09:33 2015 +0000

    add forward slash to escape character
2020-09-25 17:28:42 +09:00
Masaki Matsushita
f2d1808e73 Add comments for resolv_timeout 2020-09-25 15:39:26 +09:00
Masaki Matsushita
511fe23fa2 Add resolve_timeout to TCPSocket [Feature #17134] 2020-09-25 15:19:14 +09:00
Jean Boussier
b72f9200ac
[ruby/psych] Forward keyword arguments in load_file and load_stream
https://github.com/ruby/psych/commit/4e1dd37f09
2020-09-25 13:11:33 +09:00
Hiroshi SHIBATA
8ea1021f19
[ruby/psych] Bump version to 3.2.0
https://github.com/ruby/psych/commit/181a727c90
2020-09-25 13:11:33 +09:00
SzymonKowalczyk
263c43487f
[ruby/psych] Revert psych version
https://github.com/ruby/psych/commit/55a294fcd0
2020-09-25 13:11:33 +09:00
SzymonKowalczyk
f794c928a0
[ruby/psych] Update SNAKEYAML CVE-2017-18640
to version 1.26
https://github.com/ruby/psych/commit/b2802135e7
2020-09-25 13:11:32 +09:00
Charles Oliver Nutter
33641e00cd
Remove private_iv_get
The only remaining use of this function was to get the internal
message object from an exception's hidden `mesg` instance
variable to allow it to be dumped wiithout converting to a string.

As discussed in #103, this exposes internal implementation details
of CRuby, and ultimately does not provide any real utility to the
user since they can't directly inspect this hidden variable. The
test change here is to reflect CRuby behavior that denies equality
if the internal message objects do not match, as is the case after
the exception has been loaded and now has a simple String value.

The impact to users is that exceptions with special hidden message
objects will convert those objects to String during marshaling
through YAML. I believe this only affects NameError and its
descendants, since users can't set this field directly on their
own exception types.

Fixes #103.
2020-09-25 13:11:32 +09:00
卜部昌平
4cc501bcfd ext/-test-/RUBY_ALIGNOF: skip C++ when no compiler
C++ compilers are optional.  Skip C++ tests when they are absent.
2020-09-25 11:38:33 +09:00
卜部昌平
0b77a86d1e ext/-test-/RUBY_ALIGNOF: add minimalistic test
Check if RUBY_ALIGNOF(double) is the alignment to store a double inside
of a struct.
2020-09-25 11:38:33 +09:00
Nobuyoshi Nakada
73a626c078
[ruby/io-wait] update required_ruby_version
As d387029f39d976565c955377117103499d47ff09 made io/wait
unbuildable with older versions, drop older versions tentatively.
Also the change seems to instroduce behavioral incompatibilities,
may address them or bump up the version later.
2020-09-19 17:47:40 +09:00
Nobuyoshi Nakada
702cebf104
strip trailing spaces [ci skip] 2020-09-19 17:40:54 +09:00
Jean Boussier
fbba6bd4e3 Parse ObjectSpace.dump_all / dump arguments in Ruby to avoid allocation noise
[Feature #17045] ObjectSpace.dump_all should allocate as little as possible in the GC heap

Up until this commit ObjectSpace.dump_all allocates two Hash because of `rb_scan_args`.

It also can allocate a `File` because of `rb_io_get_write_io`.

These allocations are problematic because `dump_all` dumps the Ruby
heap, so it should try modify as little as possible what it is
observing.
2020-09-15 09:18:13 -07:00
Marc-Andre Lafortune
39312cf4d6 Optimize Pathname#relative? / absolute? 2020-09-14 14:18:23 -04:00
Jeremy Evans
d52dffd817 [ruby/zlib] Add Zlib::GzipReader.zcat for handling multiple gzip streams in gz file
Most gzip tools support concatenated gz streams in a gz file. This
offers a way to handle such gz files in Ruby.

Fixes [Bug #9790]
Fixes [Bug #11180]
Fixes [Bug #14804]

https://github.com/ruby/zlib/commit/e2ce56de7d
2020-09-14 17:52:20 +09:00
Samuel Williams
7fca274198 Rework console to use rb_io_wait. 2020-09-14 16:44:09 +12:00
Samuel Williams
d387029f39 Standardised scheduler interface. 2020-09-14 16:44:09 +12:00
Kazuhiro NISHIYAMA
406559a268
Add missing break
pointed out by Coverity Scan
2020-09-11 11:02:24 +09:00
Hiroshi SHIBATA
867204c4a5
Promote syslog to default gems 2020-09-10 20:42:53 +09:00
Jean Boussier
5001cc4716 Optimize ObjectSpace.dump_all
The two main optimization are:
  - buffer writes for improved performance
  - avoid formatting functions when possible

```

|                   |compare-ruby|built-ruby|
|:------------------|-----------:|---------:|
|dump_all_string    |       1.038|   195.925|
|                   |           -|   188.77x|
|dump_all_file      |      33.453|   139.645|
|                   |           -|     4.17x|
|dump_all_dev_null  |      44.030|   278.552|
|                   |           -|     6.33x|
```
2020-09-09 11:11:36 -07:00
Jean Boussier
b49a870414 Add a :since option to dump_all
This is useful to see what a block of code allocated, e.g.

```
GC.start
GC.disable
ObjectSpace.trace_object_allocations do
  # run some code
end
gc_gen = GC.count
allocations = ObjectSpace.dump_all(output: :file, since: gc_gen)
GC.enable
GC.start
retentions = ObjectSpace.dump_all(output: :file, since: gc_gen)
```
2020-09-09 08:05:14 -07:00
Kazuhiro NISHIYAMA
5be75aad37
Add FALLTHROUGH
Pointed out by Coverity Scan

```
** CID 1466646: Control flow issues (MISSING_BREAK)
/ext/-test-/random/loop.c: 63 in loop_get_bytes()
```
2020-09-08 10:30:07 +09:00
Nobuyoshi Nakada
2b07b24bdf Added rb_random_base_init
To enclose the initialization of Random::Base part.
2020-09-07 20:08:01 +09:00
Nobuyoshi Nakada
4924011262 Added WITH_REAL macros
Added `WITH_REAL` versions to `RB_RANDOM_INTERFACE` macros.  Also
these macros including "without real" versions no longer contain
the terminator (semicolon and comma).
2020-09-07 20:08:01 +09:00
Nobuyoshi Nakada
d6ec0ef59b Added get_real interface 2020-09-07 20:08:01 +09:00
Nobuyoshi Nakada
af5e87ab21 separate rb_random_t
* random.c: separate abstract rb_random_t and rb_random_mt_t for
  Mersenne Twister implementation.

* include/ruby/random.h: the interface for extensions of Random
  class.

* DLL imported symbol reference is not constant on Windows.

* check if properly initialized.
2020-09-07 20:08:01 +09:00
Koichi Sasada
79df14c04b Introduce Ractor mechanism for parallel execution
This commit introduces Ractor mechanism to run Ruby program in
parallel. See doc/ractor.md for more details about Ractor.
See ticket [Feature #17100] to see the implementation details
and discussions.

[Feature #17100]

This commit does not complete the implementation. You can find
many bugs on using Ractor. Also the specification will be changed
so that this feature is experimental. You will see a warning when
you make the first Ractor with `Ractor.new`.

I hope this feature can help programmers from thread-safety issues.
2020-09-03 21:11:06 +09:00
Jeremy Evans
d9b8411a7b Document that StringScanner#matched_size returns size in bytes [ci skip]
Fixes [Bug #17139]
2020-09-02 10:41:49 -07:00
Jeremy Evans
cc5b7ed1dc Document limitation of Pathname#relative_path_from [ci skip]
This method is explicitly documented to not access the filesystem,
and the only way to get the correct behavior for a case where the
filesystem's case sensitivity differs from the operating system
default would be to access the filesystem.

Fixes [Bug #15417]
2020-09-02 10:34:33 -07:00
Sutou Kouhei
c23c880f56
[ruby/strscan] Bump version
https://github.com/ruby/strscan/commit/df90d541fa
2020-08-31 21:57:35 +09:00
Nobuyoshi Nakada
c76508b88c
[ruby/strscan] Replaced examples using $KCODE with encodings
`$KCODE` has been deprecated and not effective since years ago.

https://github.com/ruby/strscan/commit/7c4dbd4cb3
2020-08-31 21:57:35 +09:00
Masaki Matsushita
6d946665bd Show deprecation warning on Socket.gethostbyname and Socket.gethostbyaddr 2020-08-29 17:18:59 +09:00
Masaki Matsushita
9658a5a849 Show deprecation warning on TCPSocket.gethostbyname 2020-08-28 01:01:51 +09:00