summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-11-18Update Fiddle's dependenciesSutou Kouhei
Notes: Merged: https://github.com/ruby/ruby/pull/3780
2020-11-18[ruby/fiddle] Remove needless returnSutou Kouhei
https://github.com/ruby/fiddle/commit/50e02f9445 Notes: Merged: https://github.com/ruby/ruby/pull/3780
2020-11-18[ruby/fiddle] Bump versionSutou Kouhei
https://github.com/ruby/fiddle/commit/74b65cb858 Notes: Merged: https://github.com/ruby/ruby/pull/3780
2020-11-18[ruby/fiddle] test: suppress shadowing outer local variable warningSutou Kouhei
https://github.com/ruby/fiddle/commit/cf168680a2 Notes: Merged: https://github.com/ruby/ruby/pull/3780
2020-11-18[ruby/fiddle] Remove needless workaroundSutou Kouhei
It's fixed in upstream. https://github.com/MSP-Greg/ruby-loco/issues/4 https://github.com/ruby/fiddle/commit/2ae0ff4934 Notes: Merged: https://github.com/ruby/ruby/pull/3780
2020-11-18[ruby/fiddle] Add workaround for ruby head for mingwSutou Kouhei
https://github.com/ruby/fiddle/commit/bb227c206d Notes: Merged: https://github.com/ruby/ruby/pull/3780
2020-11-18[ruby/fiddle] Use msys2_mingw_dependenciesSutou Kouhei
https://github.com/ruby/fiddle/commit/fee175a8ff Notes: Merged: https://github.com/ruby/ruby/pull/3780
2020-11-18[ruby/fiddle] Use ruby_xcalloc() instead of ruby_xmalloc() and memset()Sutou Kouhei
https://github.com/ruby/fiddle/commit/6d24fb5438 Notes: Merged: https://github.com/ruby/ruby/pull/3780
2020-11-18[ruby/fiddle] Remove needless rescueSutou Kouhei
GitHub: fix GH-15 Reported by Eneroth3. Thanks!!! https://github.com/ruby/fiddle/commit/f3d70b81ec Notes: Merged: https://github.com/ruby/ruby/pull/3780
2020-11-18[ruby/fiddle] Add workaround for RubyInstaller for WindowsSutou Kouhei
See comment for details. https://github.com/ruby/fiddle/commit/0c76f03dc4 Notes: Merged: https://github.com/ruby/ruby/pull/3780
2020-11-18[ruby/fiddle] Add a "pinning" reference (#44)Aaron Patterson
* Add a "pinning" reference A `Fiddle::Pinned` objects will prevent the objects they point to from moving. This is useful in the case where you need to pass a reference to a C extension that keeps the address in a global and needs the address to be stable. For example: ```ruby class Foo A = "hi" # this is an embedded string some_c_function A # A might move! end ``` If `A` moves, then the underlying string buffer may also move. `Fiddle::Pinned` will prevent the object from moving: ```ruby class Foo A = "hi" # this is an embedded string A_pinner = Fiddle::Pinned.new(A) # :nodoc: some_c_function A # A can't move because of `Fiddle::Pinned` end ``` This is a similar strategy to what Graal uses: https://www.graalvm.org/sdk/javadoc/org/graalvm/nativeimage/PinnedObject.html#getObject-- * rename global to match exception name * Introduce generic Fiddle::Error and rearrange error classes Fiddle::Error is the generic exception base class for Fiddle exceptions. This commit introduces the class and rearranges Fiddle exceptions to inherit from it. https://github.com/ruby/fiddle/commit/ac52d00223 Notes: Merged: https://github.com/ruby/ruby/pull/3780
2020-11-18[ruby/fiddle] Add support for specifying types by name as String or SymbolSutou Kouhei
For example, :voidp equals to Fiddle::TYPE_VOID_P. https://github.com/ruby/fiddle/commit/3b4de54899 Notes: Merged: https://github.com/ruby/ruby/pull/3780
2020-11-18[ruby/fiddle] Add TYPE_CONST_STRING and SIZEOF_CONST_STRING for "const char *"Sutou Kouhei
Add rb_fiddle_ prefix to conversion functions.h to keep backward compatibility but value_to_generic() isn't safe for TYPE_CONST_STRING and not String src. Use rb_fiddle_value_to_generic() instead. https://github.com/ruby/fiddle/commit/0ffcaa39e5 Notes: Merged: https://github.com/ruby/ruby/pull/3780
2020-11-18test/net/smtp - use TCPSocket when UNIXSocket unavailableMSP-Greg
Notes: Merged: https://github.com/ruby/ruby/pull/3778
2020-11-17NEWS: Add --backtrace-limit option [ci skip]Junichi Ito
Notes: Merged: https://github.com/ruby/ruby/pull/3782
2020-11-17Remove NEWS entry about taint deprecation warnings [ci skip]Jeremy Evans
JunichiIto on GitHub correctly pointed out this is no longer accurate due to the change to not display deprecation warnings by default.
2020-11-18* 2020-11-18 [ci skip]git
2020-11-18fix public interfaceKoichi Sasada
To make some kind of Ractor related extensions, some functions should be exposed. * include/ruby/thread_native.h * rb_native_mutex_* * rb_native_cond_* * include/ruby/ractor.h * RB_OBJ_SHAREABLE_P(obj) * rb_ractor_shareable_p(obj) * rb_ractor_std*() * rb_cRactor and rm ractor_pub.h and rename srcdir/ractor.h to srcdir/ractor_core.h (to avoid conflict with include/ruby/ractor.h) Notes: Merged: https://github.com/ruby/ruby/pull/3775
2020-11-17Skip tests related TLS with Windows platform.Hiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/3776
2020-11-17Import net-smtp-0.2.0 from https://github.com/ruby/net-smtpHiroshi SHIBATA
2020-11-17configure.ac: fix for upcoming autoconf-2.70Sergei Trofimovich
The failure initially noticed on `autoconf-2.69d` (soon to become 2.70): ``` $ ./configure ./configure: line 8720: syntax error near unexpected token `fi' ./configure: line 8720: `fi' ``` Before the change generated `./configure ` snippet looked like: ``` if ! $CC -E -xc - <<SRC >/dev/null then : #if defined __APPLE_CC__ && defined __clang_major__ && __clang_major__ < 3 #error premature clang #endif SRC as_fn_error $? "clang version 3.0 or later is required" "$LINENO" 5 fi ``` Note the newline that breaks here-document syntax. After the change the snippet does not use here-document. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> Notes: Merged: https://github.com/ruby/ruby/pull/3773
2020-11-17Expose the rb_interned_str_* family of functionsJean Boussier
Fixes [Feature #13381] Notes: Merged: https://github.com/ruby/ruby/pull/3586
2020-11-16Set allocator on class creationAlan Wu
Allocating an instance of a class uses the allocator for the class. When the class has no allocator set, Ruby looks for it in the super class (see rb_get_alloc_func()). It's uncommon for classes created from Ruby code to ever have an allocator set, so it's common during the allocation process to search all the way to BasicObject from the class with which the allocation is being performed. This makes creating instances of classes that have long ancestry chains more expensive than creating instances of classes have that shorter ancestry chains. Setting the allocator at class creation time removes the need to perform a search for the alloctor during allocation. This is a breaking change for C-extensions that assume that classes created from Ruby code have no allocator set. Libraries that setup a class hierarchy in Ruby code and then set the allocator on some parent class, for example, can experience breakage. This seems like an unusual use case and hopefully it is rare or non-existent in practice. Rails has many classes that have upwards of 60 elements in the ancestry chain and benchmark shows a significant improvement for allocating with a class that includes 64 modules. ``` pre: ruby 3.0.0dev (2020-11-12T14:39:27Z master 6325866421) post: ruby 3.0.0dev (2020-11-12T20:15:30Z cut-allocator-lookup) Comparison: allocate_8_deep post: 10336985.6 i/s pre: 8691873.1 i/s - 1.19x slower allocate_32_deep post: 10423181.2 i/s pre: 6264879.1 i/s - 1.66x slower allocate_64_deep post: 10541851.2 i/s pre: 4936321.5 i/s - 2.14x slower allocate_128_deep post: 10451505.0 i/s pre: 3031313.5 i/s - 3.45x slower ``` Notes: Merged: https://github.com/ruby/ruby/pull/3764
2020-11-16Fix singleton class cloningAlan Wu
Before this commit, `clone` gave different results depending on whether the original object had an attached singleton class or not. Consider the following setup: ``` class Foo; end Foo.singleton_class.define_method(:foo) {} obj = Foo.new obj.singleton_class if $call_singleton clone = obj.clone ``` When `$call_singleton = false`, neither `obj.singleton_class.singleton_class` nor `clone.singleton_class.singleton_class` own any methods. However, when `$call_singleton = true`, `clone.singleton_class.singleton_class` would own a copy of `foo` from `Foo.singleton_class`, even though `obj.singleton_class.singleton_class` does not. The latter case is unexpected and results in a visibly different clone, depending on if the original object had an attached class or not. Co-authored-by: Ufuk Kayserilioglu <ufuk.kayserilioglu@shopify.com> Notes: Merged: https://github.com/ruby/ruby/pull/3761
2020-11-17remain enabled and line specified trace pointsKoichi Sasada
If two or more tracepoints enabled with the same target and with different target lines, the only last line is activated. This patch fixes this issue by remaining existing trace instructions. [Bug #17302] Notes: Merged: https://github.com/ruby/ruby/pull/3770
2020-11-17* 2020-11-17 [ci skip]git
2020-11-16Fix typo on Proc docsTomás Coêlho
Notes: Merged: https://github.com/ruby/ruby/pull/3772
2020-11-16[DOC] Fixed a typo [ci skip]Nobuyoshi Nakada
2020-11-16Update TypeProf to 0.5.2Yusuke Endoh
2020-11-16Update TypeProf to 0.5.1Soutaro Matsumoto
Notes: Merged: https://github.com/ruby/ruby/pull/3765
2020-11-16Update RBS to 0.17.0Soutaro Matsumoto
Notes: Merged: https://github.com/ruby/ruby/pull/3765
2020-11-16Fix a link [ci skip]Kazuhiro NISHIYAMA
2020-11-16Fix links [ci skip]Kazuhiro NISHIYAMA
2020-11-15Use more specific warning for ambiguous slashJeremy Evans
Fixes [Bug #17124] Notes: Merged: https://github.com/ruby/ruby/pull/3767
2020-11-16* 2020-11-16 [ci skip]git
2020-11-15NEWS: merge Range and Regexp being frozen [doc]Marc-Andre Lafortune
2020-11-15* 2020-11-15 [ci skip]git
2020-11-15Functions defined in headers should be static inlineNobuyoshi Nakada
2020-11-14Update TypeProf to 0.5.0Yusuke Endoh
2020-11-13Use rb_attr_get() for hidden ivarAlan Wu
rb_ivar_get() can issue an uninitialized ivar warning. We never want to issue warnings about hidden ivars as they are not actionable for users. Notes: Merged: https://github.com/ruby/ruby/pull/3763
2020-11-14* 2020-11-14 [ci skip]git
2020-11-13Improve error message when subclassing non-ClassJeremy Evans
Fixes [Bug #14726] Notes: Merged: https://github.com/ruby/ruby/pull/3330
2020-11-13Update to ruby/spec@b0b7f53Benoit Daloze
2020-11-13Update to ruby/mspec@f8b0618Benoit Daloze
2020-11-13Fixup 957efa95cc12c608705a5663256226f022ea6c7fHiroshi SHIBATA
2020-11-13Revert https://github.com/ruby/webrick/pull/44Hiroshi SHIBATA
Because the test for this change was still broken.
2020-11-13* 2020-11-13 [ci skip]git
2020-11-13[ruby/webrick] add mime type of extention .mjshisanori
https://github.com/ruby/webrick/commit/45d68f9eba
2020-11-13[ruby/webrick] Allow empty POST and PUT requests without content lengthJeremy Evans
RFC 7230 section 3.3.3 allows for this. Fixes #30 https://github.com/ruby/webrick/commit/069e9b1908
2020-11-12spec/ruby/core/file/utime_spec.rb: XFS seems to have Year 2038 problemYusuke Endoh
https://rubyci.org/logs/rubyci.s3.amazonaws.com/rhel8/ruby-master/log/20201112T123004Z.fail.html.gz ``` 1) File.utime allows Time instances in the far future to set mtime and atime (but some filesystems limit it up to 2446-05-10) FAILED Expected [559444, 2446].include? 2038 to be truthy but was false /home/chkbuild/chkbuild/tmp/build/20201112T123004Z/ruby/spec/ruby/core/file/utime_spec.rb:80:in `block (4 levels) in <top (required)>' /home/chkbuild/chkbuild/tmp/build/20201112T123004Z/ruby/spec/ruby/core/file/utime_spec.rb:3:in `<top (required)>' ``` ``` $ touch foo $ ./miniruby -e 'time = Time.at(1<<44); File.utime(time, time, "foo")' $ ls -l foo -rw-r--r--. 1 mame wheel 0 Jan 19 2038 foo ```