summaryrefslogtreecommitdiff
path: root/include
AgeCommit message (Collapse)Author
2020-12-23[memory_view] Make some rb_memroy_view_t members constKenta Murata
2020-12-23[memory_view][fiddle] Rename len to byte_size in rb_memory_view_tKenta Murata
2020-12-23[memory_view][fiddle] Use bool for boolean return valueKenta Murata
2020-12-22rb_cCont: no longer exists卜部昌平
Deleted well over a decade ago in commit 977d66ec993b0f1892fb3e4cd8ac.
2020-12-22Removed rb_cData entityNobuyoshi Nakada
* Use the wrapper of rb_cObject instead of data access * Replaced rest of extentions * Updated the version guard for Data * Added the version guard of rb_cData Notes: Merged: https://github.com/ruby/ruby/pull/3961
2020-12-22Data: delete卜部昌平
Has been deprecated since 684bdf6171b76f5bc5e4f05926a5ab01ec2b4fd5. Matz says in [ruby-core:83954] that Data should be an alias of Object. Because rb_cData has not been deprecated, let us deprecate the constant to make it a C-level synonym of rb_cObject. Notes: Merged: https://github.com/ruby/ruby/pull/3961
2020-12-21include/ruby/internal/xmalloc.h: document rb_eNoMemError卜部昌平
It was my bad, the exception that actually raises is rb_eNoMemError. [ci skip]
2020-12-21include/ruby/internal/xmalloc.h: doxygen tag卜部昌平
`@exception` is an alias of `@throw`. It might suite Ruby's document because ruby uses `raise` terminology instead of `throw`. [ci skip]
2020-12-20win32: Deprecate file CP version functionsNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/3948
2020-12-20win32: Use UTF-8 as filesystem encoding [Feature #12654]Nobuyoshi Nakada
Co-Authored-By: Dāvis Mosāns <davispuh@gmail.com> Notes: Merged: https://github.com/ruby/ruby/pull/3948
2020-12-19Added macros for headers which are not included by ruby.hNobuyoshi Nakada
2020-12-18Use category: :experimental in warnings that are related to experimental ↵Jeremy Evans
features This adds rb_category_compile_warn in order to emit compiler warnings with categories. Note that Ripper currently ignores the category for these warnings, but by default it ignores the warnings completely, so this shouldn't matter. Notes: Merged: https://github.com/ruby/ruby/pull/3917
2020-12-18Switch rb_category_warn{,ing} to accept an rb_warning_category_tJeremy Evans
Since we decided to only allowing specific warning categories, there is no reason to have an API that accepts a general string, as it is more error-prone. Switch to only allowing the specific warning categories. As rb_category_warn{,ing} are public API, this requires making rb_warning_category_t public API as well. Notes: Merged: https://github.com/ruby/ruby/pull/3917
2020-12-18ruby_set_stack_size: no longer exists卜部昌平
Deleted since fc3c60f6081d85f6274986a7a08b59db1515fcb5
2020-12-17add HAVE_RB_EXT_RACTOR_SAFE macroKoichi Sasada
define HAVE_RB_EXT_RACTOR_SAFE to check rb_ext_ractor_safe() is available or not.
2020-12-16Made LARGEFILE_SUPPORT mandatoryNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/3914
2020-12-16Removed stale declarationNobuyoshi Nakada
rb_w32_pipe_exec was removed in 1.9.3, at commit:7ac32d7a16734ea66de15319bcff2fd429abae7f. Notes: Merged: https://github.com/ruby/ruby/pull/3914
2020-12-12Signal handler type should be voidNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/3889
2020-12-12Omit checks for C89 standard or laterNobuyoshi Nakada
Now we require C99, these features available of course. * prototypes * stdarg prototypes * token pasting * stringization * string literal concatenation Notes: Merged: https://github.com/ruby/ruby/pull/3889
2020-12-12Added parentheses to silence sizeof-array-div warnings [Bug #17385]Nobuyoshi Nakada
As well as 2366c681166a1dab95de6b9ca8ffcaae18aadd39.
2020-12-10include/ruby/memory_view.h: fix the return type of ↵Kenta Murata
rb_memory_view_prepare_item_desc
2020-12-10include/ruby/memory_view.h: fix typoKenta Murata
2020-12-10memory_view.c: Add rb_memory_view_get_item and ↵Kenta Murata
rb_memory_view_prepare_item_desc (#3871) Notes: Merged-By: mrkn <mrkn@ruby-lang.org>
2020-12-09Tweaked `Process::Status.wait`Nobuyoshi Nakada
* revert `rb_last_status_set` * renamed the new function as `rb_process_status_new` * `rb_process_status_new` always freezes the return value * marked `Process::Status.wait` as EXPERIMENTAL, as it has not been discussed totally yet.
2020-12-09Removed declaration of non-existent symbolNobuyoshi Nakada
2020-12-09Add support for non-blocking `Process.wait`.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/3853
2020-12-08memory_view.c: Add rb_memory_view_extract_item_members (#3855)Kenta Murata
Notes: Merged-By: mrkn <mrkn@ruby-lang.org>
2020-12-08Windows: Read ENV names and values as UTF-8 encoded Strings (#3818)Lars Kanis
* Windows: Read ENV names and values as UTF-8 encoded Strings Implements issue #12650: fix https://bugs.ruby-lang.org/issues/12650 This also removes the special encoding for ENV['PATH'] and some complexity in the code that is unnecessary now. * Windows: Improve readablity of getenv() encoding getenv() did use the expected codepage as an implicit parameter of the macro. This is mis-leading since include/ruby/win32.h has a different definition. Using the "cp" variable explicit (like the other function calls) makes it more readable and consistent. * Windows: Change external C-API macros getenv() and execv() to use UTF-8 They used to process and return strings with locale encoding, but since all ruby-internal spawn and environment functions use UTF-8, it makes sense to change the C-API equally. Notes: Merged-By: nurse <naruse@airemix.jp>
2020-12-07Removed deprecated Time#succNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/3841
2020-12-07Doxygen terminology update [ci skip]卜部昌平
Follow N2328 http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2328.pdf
2020-12-07Revert getaddrinfo_a()Masaki Matsushita
getaddrinfo_a() gets stuck after fork(). To avoid this, we need 1 second sleep to wait for internal worker threads of getaddrinfo_a() to be finished, but that is unacceptable. [Bug #17220] [Feature #17134] [Feature #17187]
2020-12-07Revert "memory_view.c: Add rb_memory_view_extract_item_members"Kenta Murata
This reverts the following three commits. - ce707079c153f389d861c91a8dccc510fab0e245 - 1a76bb56b0ba99a19d1373c4c8ebac42e7b6f27c - 51500eedefa492699668ced3e07e330a9a4d53ee
2020-12-06memory_view.c: Fix the argument type of rb_memory_view_extract_item_membersKenta Murata
2020-12-06memory_view.c: Add rb_memory_view_extract_item_membersKenta Murata
2020-12-06Call cleanup function for getaddrinfo_a(3) only before fork()Masaki Matsushita
Previously, rb_getaddrinfo_a_before_exec() is called from before_exec(). However, the function needs to be called only before fork(). The change moves it to before_fork().
2020-12-04Add a hook before fork() for getaddrinfo_a()Masaki Matsushita
We need stop worker threads in getaddrinfo_a() before fork(). This change adds a hook before fork() that cancel all outstanding requests and wait for all ongoing requests. Then, it waits for all worker threads to be finished. Fixes [Bug #17220]
2020-12-04Fix typos [ci skip]Kazuhiro NISHIYAMA
2020-12-03include/ruby/internal/xmalloc.h: add doxygen卜部昌平
Thought it was not a bad idea to document these CAPI. [ci skip]
2020-12-01Fix docs about movement for rb_gc_register_mark_object()Alan Wu
This API in fact pins objects passed to it. See vm.c:2546. Notes: Merged: https://github.com/ruby/ruby/pull/3815
2020-12-01rb_ext_ractor_safe() to declare ractor-safe extKoichi Sasada
C extensions can violate the ractor-safety, so only ractor-safe C extensions (C methods) can run on non-main ractors. rb_ext_ractor_safe(true) declares that the successive defined methods are ractor-safe. Otherwiwze, defined methods checked they are invoked in main ractor and raise an error if invoked at non-main ractors. [Feature #17307] Notes: Merged: https://github.com/ruby/ruby/pull/3824
2020-12-01ractor local storage C-APIKoichi Sasada
To manage ractor-local data for C extension, the following APIs are defined. * rb_ractor_local_storage_value_newkey * rb_ractor_local_storage_value * rb_ractor_local_storage_value_set * rb_ractor_local_storage_ptr_newkey * rb_ractor_local_storage_ptr * rb_ractor_local_storage_ptr_set At first, you need to create a key of storage by rb_ractor_local_(value|ptr)_newkey(). For ptr storage, it accepts the type of storage, how to mark and how to free with ractor's lifetime. rb_ractor_local_storage_value/set are used to access a VALUE and rb_ractor_local_storage_ptr/set are used to access a pointer. random.c uses this API. Notes: Merged: https://github.com/ruby/ruby/pull/3822
2020-11-30Keep references of memory-view-exported objects (#3816)Kenta Murata
* memory_view.c: remove a reference in view->obj at rb_memory_view_release * memory_view.c: keep references of memory-view-exported objects * Update common.mk * memory_view.c: Use st_update Notes: Merged-By: mrkn <mrkn@ruby-lang.org>
2020-11-27Use opaque struct pointer than voidNobuyoshi Nakada
2020-11-18Move the declaration into the functionKazuhiro NISHIYAMA
instead of 'do not call it directly.' comment.
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-17Expose the rb_interned_str_* family of functionsJean Boussier
Fixes [Feature #13381] Notes: Merged: https://github.com/ruby/ruby/pull/3586
2020-11-06Add docs for some C extension GC APIsAlan Wu
Notes: Merged: https://github.com/ruby/ruby/pull/3733
2020-10-30Add warning for str_new_static functionsAlan Wu
Many functions in string.c assume that capa + termlen to be readable memory. Add comment in header to communicate this to extension authors. See also: comment in str_fill_term() Notes: Merged: https://github.com/ruby/ruby/pull/3698
2020-10-21Ractor.make_shareable(obj)Koichi Sasada
Introduce new method Ractor.make_shareable(obj) which tries to make obj shareable object. Protocol is here. (1) If obj is shareable, it is shareable. (2) If obj is not a shareable object and if obj can be shareable object if it is frozen, then freeze obj. If obj has reachable objects (rs), do rs.each{|o| Ractor.make_shareable(o)} recursively (recursion is not Ruby-level, but C-level). (3) Otherwise, raise Ractor::Error. Now T_DATA is not a shareable object even if the object is frozen. If the method finished without error, given obj is marked as a sharable object. To allow makng a shareable frozen T_DATA object, then set `RUBY_TYPED_FROZEN_SHAREABLE` as type->flags. On default, this flag is not set. It means user defined T_DATA objects are not allowed to become shareable objects when it is frozen. You can make any object shareable by setting FL_SHAREABLE flag, so if you know that the T_DATA object is shareable (== thread-safe), set this flag, at creation time for example. `Ractor` object is one example, which is not a frozen, but a shareable object. Notes: Merged: https://github.com/ruby/ruby/pull/3678
2020-10-21Feature #16812: Allow slicing arrays with ArithmeticSequence (#3241)Kenta Murata
* Support ArithmeticSequence in Array#slice * Extract rb_range_component_beg_len * Use rb_range_values to check Range object * Fix ary_make_partial_step * Fix for negative step cases * range.c: Describe the role of err argument in rb_range_component_beg_len * Raise a RangeError when an arithmetic sequence refers the outside of an array [Feature #16812] Notes: Merged-By: mrkn <mrkn@ruby-lang.org>