AgeCommit message (Collapse)Author
2019-10-07Add section to extension.rdoc for backwards compatibility macros [ci skip]Jeremy Evans
These macros should make it easier to C extensions to switch to the Ruby 2.7 C-API *_kw functions, but still have the code work correctly on older Ruby versions.
2019-10-07Note RB_PASS_EMPTY_KEYWORDS and RB_SCAN_ARGS_EMPTY_KEYWORDS will be removedJeremy Evans
There is no need for these in Ruby 3.0, and the plan is to remove them.
2019-10-07Update NEWS with Module#ruby2_keywords and a few other thingsJeremy Evans
2019-10-07Do not free too many pages.Aaron Patterson
Sweep step checks `heap_pages_freeable_pages`, so compaction should do the same.
2019-10-07Move empty pages to the tombAaron Patterson
I think we need to be moving empty pages to the tomb after they become empty.
2019-10-07Eliminate second GC pass for eliminating T_MOVEDAaron Patterson
`T_MOVED` is a linked list, so we can just iterate through the `T_MOVED` objects, clearing them out and adding them to respective free lists.
2019-10-08* 2019-10-08 [ci skip]git
2019-10-08Fix typo [ci skip]Kazuhiro NISHIYAMA
pointed out by ruby-trunk-changes
2019-10-07Allow ruby2_keywords to be used with bmethodsJeremy Evans
There are libraries that use define_method with argument splats where they would like to pass keywords through the method. To more easily allow such libraries to use ruby2_keywords to handle backwards compatibility, it is necessary for ruby2_keywords to support bmethods. Notes: Merged:
2019-10-07Write yaml and json under destdir and print to stdoutKazuhiro NISHIYAMA
2019-10-07Create info.yml and info.jsonKazuhiro NISHIYAMA
- `info.yml` is for ruby/ - `info.json` is meta data for users of snapshot
2019-10-07Remove `-s3` optionKazuhiro NISHIYAMA
It will not use in `ruby/actions`, and `default=tmp` is not correct.
2019-10-07Version 0.0.3aycabta
2019-10-07Add: Array#intersection methodPrajjwal Singh
Notes: Merged:
2019-10-07* 2019-10-07 [ci skip]git
2019-10-07Flush console just after printingaycabta
2019-10-07Use built-in Win32API on JRubyaycabta
It's fixed for JRuby dedicatedly.
2019-10-07Swap expected and actual correctlyaycabta
2019-10-06Revert "tailcall optimization again (#2528)"Koichi Sasada
This reverts commit f62f90367fc3bce6714e7c34cbd040e14e43fe07.
2019-10-06tailcall optimization again (#2528)wanabe
This is follow up of r67315.
2019-10-06test/dtrace/helper.rb: Etc.getgrnam may return nil on some platformsYusuke Endoh
2019-10-06* 2019-10-06 [ci skip]git
2019-10-06time.c: Fix some bugs about WIDEVALUEYusuke Endoh
WIDEVALUE differs from VALUE in 32bit platform, but some codes assume that they are the same. There is `#define STRUCT_WIDEVAL` mode to check the consistency. This change allows to build with STRUCT_WIDEVAL.
2019-10-05ext/openssl/ossl_ssl.c: Use const declaration if LibreSSL >= 2.8.0Yusuke Endoh
to suppress a warning in OpenBSD. ``` ossl_ssl.c:938:31: warning: incompatible pointer types passing 'SSL_SESSION *(SSL *, unsigned char *, int, int *)' (aka 'struct ssl_session_st *(struct ssl_st *, unsigned char *, int, int *)') to parameter of type 'SSL_SESSION *(*)(struct ssl_st *, const unsigned char *, int, int *)' (aka 'struct ssl_session_st *(*)(struct ssl_st *, const unsigned char *, int, int *)') [-Wincompatible-pointer-types] SSL_CTX_sess_set_get_cb(ctx, ossl_sslctx_session_get_cb); ^~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/openssl/ssl.h:738:20: note: passing argument to parameter 'get_session_cb' here SSL_SESSION *(*get_session_cb)(struct ssl_st *ssl, ^ 1 warning generated. ```
2019-10-05ext/json/parser/ use `if $. == 1` instead of a hacky codeYusuke Endoh
2019-10-05ext/json/parser/ keep line numbers of ext/json/parser/parser.cYusuke Endoh
Follow up of 5717e55e9a7790c938afa694a9bf558c0e54bb83. Adding a header with newline broke linenos.
2019-10-05Now keyword parameter warnings are suppressed by 871005bdd204Nobuyoshi Nakada
This reverts commits: * 2a490d5660ac869f8f2bbcec4887b1dc2950643f Suppress assert_match warnings. * d4a86e407ec2057c2c7ad757aa76dad757f34c3a Assert warnings message for the last argument is keyword parameter.
2019-10-05Added dependencies on prerequisite makefilesNobuyoshi Nakada
2019-10-05[rubygems/rubygems] The date might have advanced since TODAY has been setNobuyoshi Nakada
2019-10-05[rubygems/rubygems] Use dependency.identity in available_specsbronzdoc
2019-10-05[rubygems/rubygems] Add Gem::Dependency#identity methodbronzdoc
2019-10-05[rubygems/rubygems] Suppress keywords warning in ruby 2.7Nobuyoshi Nakada
2019-10-05[rubygems/rubygems] Always pass an encoding option to Zlib::GzipReader.wrapNobuyoshi Nakada
The arity of this method has been -1 since the import, so the option has been passed always, even if Zlib::GzipReader#initialize does not take the option. Actually it takes the option since 1.9.
2019-10-05[rubygems/rubygems] Use dedicated assertion methodsNobuyoshi Nakada
For better messages at failures.
2019-10-05[rubygems/rubygems] Fixed assertion argumentsNobuyoshi Nakada
It is `assert_eqal(expected, actual)`.
2019-10-05signal.c: Use MINSIGSTKSZ by casting to intYusuke Endoh
MINSIGSTKSZ is unsigned int in OpenBSD, which makes a warning of comparison: ``` signal.c:535:14: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare] if (size < MINSIGSTKSZ) ~~~~ ^ ~~~~~~~~~~~ 1 warning generated. ```
2019-10-05ext/json/parser/parser.rl: Use "signed" char to contain negative valuesYusuke Endoh
char is not always signed. In fact, it is unsigned in arm. ``` compiling parser.c parser.rl: In function ‘unescape_unicode’: parser.rl:50:5: warning: comparison is always false due to limited range of data type [-Wtype-limits] if (b < 0) return UNI_REPLACEMENT_CHAR; ^ ```
2019-10-05ext/json/parser/ Add a "automatically generated" headerYusuke Endoh
to parser.c.
2019-10-05ext/json/parser/parser.rl: Update the source code of parser.cYusuke Endoh
There have been some direct changes in parser.c which is automatically generated from parser.rl. This updates parser.rl to sync the changes: * 91793b8967e0531bd1159a8ff0cc7e50739c7620 * 79ead821dd4880725c9c6bb9645b3fad71715c5b * 80b5a0ff2a7709367178f29d4ebe1c54122b1c27
2019-10-04IMEMO objects don't have a class, so return earlyAaron Patterson
IMEMO objects don't have a class field to update, so we need to return early, otherwise it can cause a segv.
2019-10-04Don't allocate objects in `gc_compact`Aaron Patterson
I'd like to call `gc_compact` after major GC, but before the GC finishes. This means we can't allocate any objects inside `gc_compact`. So in this commit I'm just pulling the compaction statistics allocation outside the `gc_compact` function so we can safely call it.
2019-10-05* 2019-10-05 [ci skip]git
2019-10-05Fix potential memory leaks by `rb_imemo_tmpbuf_auto_free_pointer`Nobuyoshi Nakada
This function has been used wrongly always at first, "allocate a buffer then wrap it with tmpbuf". This order can cause a memory leak, as tmpbuf creation also can raise a NoMemoryError exception. The right order is "create a tmpbuf then allocate&wrap a buffer". So the argument of this function is rather harmful than just useless. TODO: * Rename this function to more proper name, as it is not used "temporary" (function local) purpose. * Allocate and wrap at once safely, like `ALLOCV`.
2019-10-04iseq.c (rb_iseq_compile_on_base): RemovedYusuke Endoh
ko1 cannot remember why he introduced the function. And it is not used. After it is removed, the argument "base_block" of rb_iseq_compile_with_option is always zero.
2019-10-04array.c (rb_mem_clear): remove "register" from argumentsYusuke Endoh
to suppress the following warning: ``` compiling cxxanyargs.cpp In file included from cxxanyargs.cpp:1: In file included from ../../.././include/ruby/ruby.h:2150: ../../.././include/ruby/intern.h:56:19: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register] void rb_mem_clear(register VALUE*, register long); ^~~~~~~~~ ../../.././include/ruby/intern.h:56:36: warning: 'register' storage class specifier is deprecated and incompatible with C++17 [-Wdeprecated-register] void rb_mem_clear(register VALUE*, register long); ^~~~~~~~~ ```
2019-10-04Remove call-seq for method that doesn't exist (#2521)Alan Wu
``` $ ruby -ve 'IO.popen("ls"){}; $?.to_int' ruby 2.6.4p104 (2019-08-28 revision 67798) [x86_64-darwin18] Traceback (most recent call last): -e:1:in `<main>': undefined method `to_int' for #<Process::Status: pid 33989 SIGPIPE (signal 13)> (NoMethodError) Did you mean? to_i taint ``` Process::Status#to_int was removed at 7ba5c4e.
2019-10-03Revert "Simplify bin_path_spec.rb guard"Takashi Kokubun
This reverts commit a56d742e69aa8a3a1fe92fc515d93f6e51cf5fbc. I was checking the CI result of the wrong revision. It actually worked fine Never mind...
2019-10-03Simplify bin_path_spec.rb guardTakashi Kokubun
For some reason the guard_not seems not working as expected
2019-10-03Ignore arm32 failure for nowTakashi Kokubun
2019-10-03bin_path_spec.rb has failed from the beginningTakashi Kokubun
for mswin. This spec is not valid for mswin platform.