summaryrefslogtreecommitdiff
path: root/ext
AgeCommit message (Collapse)Author
2020-02-27Merge racc from upstream repository.Hiroshi SHIBATA
* Support Ruby 2.4's frozen string literals. * Remove VCS revisions headers.
2020-02-25ext/-test-/cxxanyargs: use try_link instead卜部昌平
We would like to skip this extension library when libstdc++ is missing. To avoid such situation let's use try_link instead of try_compile.
2020-02-25Fix wrong documentation for return value of Pathname#fnmatchMasataka Pocke Kuwabara
Notes: Merged: https://github.com/ruby/ruby/pull/2923
2020-02-22Introduce disposable call-cache.Koichi Sasada
This patch contains several ideas: (1) Disposable inline method cache (IMC) for race-free inline method cache * Making call-cache (CC) as a RVALUE (GC target object) and allocate new CC on cache miss. * This technique allows race-free access from parallel processing elements like RCU. (2) Introduce per-Class method cache (pCMC) * Instead of fixed-size global method cache (GMC), pCMC allows flexible cache size. * Caching CCs reduces CC allocation and allow sharing CC's fast-path between same call-info (CI) call-sites. (3) Invalidate an inline method cache by invalidating corresponding method entries (MEs) * Instead of using class serials, we set "invalidated" flag for method entry itself to represent cache invalidation. * Compare with using class serials, the impact of method modification (add/overwrite/delete) is small. * Updating class serials invalidate all method caches of the class and sub-classes. * Proposed approach only invalidate the method cache of only one ME. See [Feature #16614] for more details. Notes: Merged: https://github.com/ruby/ruby/pull/2888
2020-02-22VALUE size packed callinfo (ci).Koichi Sasada
Now, rb_call_info contains how to call the method with tuple of (mid, orig_argc, flags, kwarg). Most of cases, kwarg == NULL and mid+argc+flags only requires 64bits. So this patch packed rb_call_info to VALUE (1 word) on such cases. If we can not represent it in VALUE, then use imemo_callinfo which contains conventional callinfo (rb_callinfo, renamed from rb_call_info). iseq->body->ci_kw_size is removed because all of callinfo is VALUE size (packed ci or a pointer to imemo_callinfo). To access ci information, we need to use these functions: vm_ci_mid(ci), _flag(ci), _argc(ci), _kwarg(ci). struct rb_call_info_kw_arg is renamed to rb_callinfo_kwarg. rb_funcallv_with_cc() and rb_method_basic_definition_p_with_cc() is temporary removed because cd->ci should be marked. Notes: Merged: https://github.com/ruby/ruby/pull/2888
2020-02-20ext/-test-/cxxanyargs: prevent have_devel check卜部昌平
The `cxx.try_compile` command in this file kicks `cxx.have_devel?` internally, which recursively calls `cxx.try_link` with a different source code. We don't want that happen (the source code compiled in this file must be the first one). We need to fake the system.
2020-02-18[ruby/io-console] bump up to 0.5.6Nobuyoshi Nakada
2020-02-18[ruby/io-console] Just ignore the extension on other than CRubyNobuyoshi Nakada
https://github.com/ruby/io-console/commit/41b6f09574
2020-02-17[ruby/openssl] ts: simplify OpenSSL::Timestamp::Request#algorithmKazuki Yamaguchi
Stop the special treatment of invalid hashAlgorithm of the message imprint. Those invalid values can only appear after the object is instantiated, before the user sets an actual message digest algorithm. OpenSSL::Timestamp::TokenInfo#algorithm already does the same. Also, remove the test case "test_create_request" since it does not make much sense. Those fields are to be set by the user after creation of the object and checking the initial value is pointless. Fixes: https://github.com/ruby/openssl/issues/335 https://github.com/ruby/openssl/commit/890a6476fa
2020-02-17[ruby/io-console] [DOC] Improved about `intr:`Nobuyoshi Nakada
https://github.com/ruby/io-console/commit/82b630cd79
2020-02-16ext/openssl/extconf.rb: avoid -Werror=deprecated-declarationsYusuke Endoh
It fails to build on Solaris: https://rubyci.org/logs/rubyci.s3.amazonaws.com/solaris11-gcc/ruby-master/log/20200216T090008Z.log.html.gz ``` ossl_cipher.c: 関数 ‘ossl_cipher_init’ 内: ossl_cipher.c:228:2: エラー: ‘EVP_md5’ is deprecated [-Werror=deprecated-declarations] 228 | EVP_BytesToKey(EVP_CIPHER_CTX_cipher(ctx), EVP_md5(), iv, | ^~~~~~~~~~~~~~ In file included from /usr/include/openssl/x509.h:73, from /usr/include/openssl/x509v3.h:63, from ossl.h:23, from ossl_cipher.c:10: /usr/include/openssl/evp.h:732:26: 備考: ここで宣言されています 732 | DEPRECATED const EVP_MD *EVP_md5(void); | ^~~~~~~ ```
2020-02-16Import openssl-2.2.0 (#2693)Hiroshi SHIBATA
Import the master branch of ruby/openssl for preparing to release openssl-2.2.0 Notes: Merged-By: hsbt <hsbt@ruby-lang.org>
2020-02-15Workaround for bison provided by scoop on mswin environmentHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/2909
2020-02-15Fix call-seq of Pathname#{,l}ch{mod,own} [ci skip]Kazuhiro NISHIYAMA
2020-02-14[ruby/io-console] Prefer keyword argumentsNobuyoshi Nakada
https://github.com/ruby/io-console/commit/5facbfc4c8
2020-02-09Fix readline build dependencyAlan Wu
Notes: Merged: https://github.com/ruby/ruby/pull/2895
2020-02-09[ruby/readline-ext] Use rake/extensiokntask to buildaycabta
https://github.com/ruby/readline-ext/commit/b0b5f709bd
2020-02-09[ruby/readline-ext] Add spec.extensionsaycabta
https://github.com/ruby/readline-ext/commit/8c33abb13c
2020-02-09[ruby/readline-ext] The ruby/assert.h is adopted by Ruby 2.7 or lateraycabta
https://github.com/ruby/readline-ext/commit/106c31fc1b
2020-02-09[ruby/readline-ext] Remove unnecessary -I$(top_srcdir) when it's an ↵aycabta
individual gem https://github.com/ruby/readline-ext/commit/efaca4a5f4
2020-02-09Revert "[ruby/readline-ext] Include ruby/assert.h in ruby/ruby.h so that ↵aycabta
assertions can be there" This reverts commit 425b2064d394639101854c83a061a0918b33b857. This cherry-pick was a mistake.
2020-02-07more on NULL versus functions.卜部昌平
Function pointers are not void*. See also ce4ea956d24eab5089a143bba38126f2b11b55b6 8427fca49bd85205f5a8766292dd893f003c0e48
2020-02-04Add call-seq to Pathname#open from File.openKazuhiro NISHIYAMA
before: ``` open(p1 = v1, p2 = v2, p3 = v3) ```
2020-02-04Fix linkage of popen_deadlock testMikhail Novosyolov
DEBUG: BUILDSTDERR: /usr/bin/ld: infinite_loop_dlsym.o: in function `native_loop_dlsym': DEBUG: BUILDSTDERR: /builddir/build/BUILD/ruby-2.7.0/ext/-test-/popen_deadlock/infinite_loop_dlsym.c:16: undefined reference to `dlsym' DEBUG: BUILDSTDERR: collect2: error: ld returned 1 exit status Ruby was built with LibreSSL. Notes: Merged: https://github.com/ruby/ruby/pull/2862
2020-02-01fix delete unnecessary return卜部昌平
Was my mistake to put return here.
2020-01-31support C++ std::nullptr_t卜部昌平
C++ keyword `nullptr` represents a null pointer (note also that NULL is an integer in C++ due to its design flaw). Its type is `std::nullptr_t`, defined in <cstddef> standard header. Why not support it when the backend implementation can take a null pointer as an argument.
2020-01-31Return the makefile contentNobuyoshi Nakada
Block for `create_makefile` is expected to return the content of the makefile.
2020-01-31Move .IGNORE in extconf.rbNARUSE, Yui
2020-01-31Support nmakeNARUSE, Yui
2020-01-31Ignore expected errors on compiling C++ source [Bug #16331]NARUSE, Yui
BSD make can run parallel more aggressively than GNU make. It communicate with other make process through -J option in MAKEFLAGS environment variable to notify a build failure happend in an other pararell make process. https://www.freebsd.org/cgi/man.cgi?make It usually works well but ext/-test-/cxxanyargs/Makefile has two targets which are expected to fail (failure.o and failurem1.o). Additional note: To test and debug this issue, following command will speed up it. `make -f exts.mk -j8 clean all`
2020-01-28fix rb_define_global_function to take const VALUE*卜部昌平
It was unable for rb_define_global_function to take VALUE(*)(int argc, const VLAUE *argv, VALUE self) -style function. Test added.
2020-01-28add test for rb_define_global_function卜部昌平
was missing.
2020-01-28add test for rb_define_method_id卜部昌平
was missing.
2020-01-28improved support for rb_f_notimplement卜部昌平
rb_f_notimplement should be accepted for all possible arities. Test provided for that.
2020-01-23Revert pathname, rb_warn_deprecated* are not public APINobuyoshi Nakada
2020-01-23Added rb_warn_deprecated_to_removeNobuyoshi Nakada
Warn the deprecation and future removal, with obeying the warning flag.
2020-01-23[ruby/readline-ext] Include ruby/assert.h in ruby/ruby.h so that assertions ↵Nobuyoshi Nakada
can be there https://github.com/ruby/readline-ext/commit/4d44c12832
2020-01-22Make taint warnings non-verbose instead of verboseJeremy Evans
Notes: Merged: https://github.com/ruby/ruby/pull/2856
2020-01-22Drop executable bit of *.{yml,h,mk.tmpl}Kazuhiro NISHIYAMA
2020-01-20Get rid of use of special variablesJeremy Evans
Use `"\n"` and `IO#fileno` instead of `$/` and `$.` respectively. [Feature #14240]
2020-01-18[ruby/io-console] bump up to 0.5.5Nobuyoshi Nakada
2020-01-18[ruby/io-console] Set `OPOST` when `intr` is trueNobuyoshi Nakada
To enable implementation-defined output processing, for the compatibility with readline. [Bug #16509] https://bugs.ruby-lang.org/issues/16509 https://github.com/ruby/io-console/commit/8c8b0b6757
2020-01-18[ruby/io-console] Update the minimum requirement of Ruby versionHiroshi SHIBATA
https://github.com/ruby/io-console/commit/73e7b6318a
2020-01-17Update dependenciesNobuyoshi Nakada
internal/rational.h needs internal/warnings.h with Apple clang, for `UNALIGNED_MEMBER_ACCESS`.
2020-01-17Update dependencies in makefiles againKazuhiro NISHIYAMA
patch from https://travis-ci.org/ruby/ruby/jobs/638231960
2020-01-17rb_rational_raw: make a denominator always positiveKenta Murata
2020-01-17Update dependencies in makefilesKazuhiro NISHIYAMA
patch from https://travis-ci.org/ruby/ruby/jobs/638226493
2020-01-06[flori/json] Add :nodoc: for GeneratorMethodszverok
https://github.com/flori/json/commit/2f3f44c180
2020-01-06[flori/json] Fix examples syntaxzverok
https://github.com/flori/json/commit/3845491d92
2020-01-06[flori/json] Enchance generic JSON and #generate docszverok
https://github.com/flori/json/commit/4ede0a7d19