summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-09-23Retrieve key-buffer that was supposed to loseaycabta
2019-09-23Adjusted directives order of a function [ci skip]Nobuyoshi Nakada
2019-09-23Lazy init thread local storageLourens Naudé
Notes: Merged: https://github.com/ruby/ruby/pull/2295
2019-09-23make-snapshot: store timestamps in UTC for zip which lacks timezoneNobuyoshi Nakada
2019-09-23* 2019-09-23 [ci skip]git
2019-09-23Add `-mtc=off` to `7z` not to store NTFS timestampsKazuhiro NISHIYAMA
https://sevenzip.osdn.jp/chm/cmdline/switches/method.htm
2019-09-22make-snapshot: Added -no7z optionNobuyoshi Nakada
It disables 7z, which seems not to have an option to stop saving extra file attributes (uid/gid and atime), in order to make zip packages stable.
2019-09-22make-snapshot: Do not save extra file attributesNobuyoshi Nakada
Extra file attributes (uid/gid and atime) make the packaged zip file unstable.
2019-09-22st.c: Use rb_st_* prefix instead of st_* (#2479)Yusuke Endoh
The original st.c was public domain hash table implementation, but Ruby's st.c is highly modified, and its data structure is not compatiblie with the original one. Therefore, when creating an extension library to wrap C code that uses the original st.c, the symbols conflict, which leads to segfault. This changes the prefix `st_*` of st.c functions to `rb_st_*` for reflecting that they are specific to Ruby's, and avoid symbol conflicts. Notes: Merged-By: mame <mame@ruby-lang.org>
2019-09-22st.c (st_add_direct_with_hash): make it "static inline"Yusuke Endoh
It was originally static inline, but seemed to be accidentally published at 8f675cdd00e2c5b5a0f143f5e508dbbafdb20ccd.
2019-09-22variable.c: Rename rb_st_copy to rb_iv_tbl_copyYusuke Endoh
This function was created as a variant of st_copy with firing write barrier. It should have more explicit name, such as st_copy_with_write_barrier. But because it is used only for copying iv_tbl, so I rename it to rb_iv_tbl_copy now. If we face other use case than iv_tbl, we may want to rename it to more general name.
2019-09-22test/bigdecimal/test_bigdecimal.rb: Use BigDecimal()Yusuke Endoh
instead of deprecated BigDecimal.new.
2019-09-22Add `if: always()` because 2.4.x's `make check` failed on snapshot [ci skip]Kazuhiro NISHIYAMA
`check-snapshot-ruby_2_4` uses `make test` instead of `make check`. https://github.com/ruby/actions/blob/95692e54f4263501db1508d51c1fb67c03b4f575/.github/workflows/snapshot.yml#L448-L449 `draft-release` use `make check` to make it simple, and actions is required regardless of success or failure. On the other hand, snapshot success can be ignored, so normally it should not fail.
2019-09-22* 2019-09-22 [ci skip]git
2019-09-21Make Kernel#{Pathname,BigDecimal,Complex} return argument if given correct typeJeremy Evans
This is how Kernel#{Array,String,Float,Integer,Hash,Rational} work. BigDecimal and Complex instances are always frozen, so this should not cause backwards compatibility issues for those. Pathname instances are not frozen, so potentially this could cause backwards compatibility issues by not returning a new object. Based on a patch from Joshua Ballanco, some minor changes by me. Fixes [Bug #7522] Notes: Merged: https://github.com/ruby/ruby/pull/2473
2019-09-21Fix Module#class_variables for singleton classes of classes/modulesJeremy Evans
Module#class_variables should reflect class variable lookup. For singleton classes of classes/modules, this means the lookup should be: * Singleton Class * Class * All Ancestors of Class Note that this doesn't include modules included in the singleton class, because class variable lookup doesn't include those. Singleton classes of other objects do not have this behavior and always just search all ancestors of the singleton class, so do not change the behavior for them. Fixes [Bug #8297] Notes: Merged: https://github.com/ruby/ruby/pull/2478
2019-09-21test/ruby/test_assignment.rb: use bug number for assert messageYusuke Endoh
to suppress variable unused warning
2019-09-21Add a benchmark for JIT-ed code dispatchTakashi Kokubun
2019-09-21typedef rb_jmpbuf_t to void *[5] if __builtin_setjmp is usedFangrui Song
The built-in version operates on a buffer of 5 words, much smaller than the size of jmp_buf defined in libc. Note, powerpc requires 5 words, while arm and x86_64 just require 3. Notes: Merged: https://github.com/ruby/ruby/pull/2471
2019-09-20Fix documentation for ENV.each to return ENVJeremy Evans
Also have spec check that it returns ENV. Mostly from burdettelamar@yahoo.com (Burdette Lamar). Fixes [Bug #16164]
2019-09-21Revert eval.c in e81a3e6df54842b5a836dad7055a4295cf4155bcNobuyoshi Nakada
Inadvertently merged change to suppress warnings by gcc 9.2. Pointed out by Alan Wu.
2019-09-21* 2019-09-21 [ci skip]git
2019-09-21Disable method definition type checks on WindowsNobuyoshi Nakada
2019-09-20Fixed format specifiersNobuyoshi Nakada
Use PRIdPTRDIFF for the platforms where a pointer is larger than a long.
2019-09-20Call rb_vm_call_kw insted of rb_vm_call0 in a few casesJeremy Evans
rb_vm_call_kw handles the tmp buffer for you. Also, change method_missing so it also calls rb_vm_call_kw to handle the kw_splat flag, instead of requiring callers to handle kw_splat flag before calling method_missing. This may fix other cases where method_missing is currently called without the kw_splat being handled.
2019-09-20Handle keyword argument separation for Enumerator#sizeJeremy Evans
When Object#to_enum is passed a block, the block is called to get a size with the arguments given to to_enum. This calls the block with the same keyword flag as to_enum is called with. This requires adding rb_check_funcall_kw and rb_check_funcall_default_kw to handle keyword flags.
2019-09-20Make passing empty keywords to dig pass empty keywords to next dig methodJeremy Evans
If defined in Ruby, dig would be defined as def dig(arg, *rest) end, it would not use keywords. If the last dig argument was an empty hash, it could be treated as keyword arguments by the next dig method. Allow dig to pass along the empty keyword flag if called with an empty keyword, to suppress the previous behavior and force treating the hash as a positional argument and not keywords. Also handle the case where dig calls method_missing, passing the empty keyword flag to that as well. This requires adding rb_check_funcall_with_hook_kw functions, so that dig can specify how arguments are treated. It also adds kw_splat arguments to a couple static functions.
2019-09-20Allows calling a private method only with bare `self`Nobuyoshi Nakada
2019-09-20Fix wrong allocation failure handlingTakashi Kokubun
`iseq->body->jit_unit->compile_info` should not be referenced before the null check of `iseq->body->jit_unit`.
2019-09-20Use RUBY_VM_NEXT_CONTROL_FRAME macroTakashi Kokubun
in vm_push_frame and limit scope of i. Just a minor maintainability improvement.
2019-09-20Fix for explicit cast without RUBY_METHOD_FUNCNobuyoshi Nakada
2019-09-20Check various method defitions in C++Nobuyoshi Nakada
2019-09-20Fix rb_define_singleton_method warningTakashi Kokubun
for debug counters ``` ../include/ruby/intern.h:1175:137: warning: passing argument 3 of 'rb_define_singleton_method0' from incompatible pointer type [-Wincompatible-pointer-types] #define rb_define_singleton_method(klass, mid, func, arity) rb_define_singleton_method_choose_prototypem3((arity),(func))((klass),(mid),(func),(arity)); ^ ../vm.c:2958:5: note: in expansion of macro 'rb_define_singleton_method' rb_define_singleton_method(rb_cRubyVM, "show_debug_counters", rb_debug_counter_show, 0); ^~~~~~~~~~~~~~~~~~~~~~~~~~ ../include/ruby/intern.h:1139:99: note: expected 'VALUE (*)(VALUE) {aka long unsigned int (*)(long unsigned int)}' but argument is of type 'VALUE (*)(void) {aka long unsigned int (*)(void)}' __attribute__((__unused__,__weakref__("rb_define_singleton_method"),__nonnull__(2,3)))static void rb_define_singleton_method0 (VALUE,const char*,VALUE(*)(VALUE),int); ```
2019-09-20Get rid of embedding make command lineNobuyoshi Nakada
NMAKE sets MAKE to the full path name, which includes spaces by the default installation.
2019-09-20Fixed cxxanyargs/dependNobuyoshi Nakada
* Removed excess backslashes * Fixed the target name to try failure.cpp
2019-09-20[DOC] DOT is not a part of a receiver [ci skip]Nobuyoshi Nakada
[Feature #11297] [Feature #16123]
2019-09-20Fixed up 37c083942509dd7e0d8b7ccd3575936a2017c400Hiroshi SHIBATA
2019-09-20Removed ThreadsWait from the ruby repositoryHiroshi SHIBATA
2019-09-20Removed Synchronizer from the ruby repository.Hiroshi SHIBATA
2019-09-20Removed Shell from the ruby repository.Hiroshi SHIBATA
2019-09-20Removed Scanf from the ruby repository.Hiroshi SHIBATA
2019-09-20Removed CMath from the ruby repository.Hiroshi SHIBATA
2019-09-20Fixed memory leakNobuyoshi Nakada
* array.c (flatten): fix a memory leak in the case of an exception at conversion of an element to Array.
2019-09-20Added the target to run a benchmarkNobuyoshi Nakada
2019-09-20Fixed a variable in checkout-github-%Nobuyoshi Nakada
2019-09-20Update NEWS and documents [ci skip]Nobuyoshi Nakada
[Feature #11297] [Feature #16123]
2019-09-20Allow calling a private accessor with `self.`Nobuyoshi Nakada
[Feature #11297] [Feature #16123] Notes: Merged: https://github.com/ruby/ruby/pull/2474
2019-09-20Added version guardNobuyoshi Nakada
[Feature #11297] [Feature #16123] Notes: Merged: https://github.com/ruby/ruby/pull/2474
2019-09-20Allow calling a private method with `self.`Dylan Thacker-Smith
This makes it consistent with calling private attribute assignment methods, which currently is allowed (e.g. `self.value =`). Calling a private method in this way can be useful when trying to assign the return value to a local variable with the same name. [Feature #11297] [Feature #16123] Notes: Merged: https://github.com/ruby/ruby/pull/2474
2019-09-20Overload variable definition functionsNobuyoshi Nakada
Define overloading functions of rb_define_virtual_variable and rb_define_hooked_variable, for combinations with and without ANYARGS casts. Notes: Merged: https://github.com/ruby/ruby/pull/2461