| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
This is just a hoax. Nobody have ever implemented a function named as
such. Also the functionality implied by the name must not be a public
API if any.
|
|
|
|
| |
Not only NUM2LL, also LL2NUM, ULL2NUM and NUM2ULL.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previous code failed to compile on MSVC. Log:
https://github.com/ruby/ruby/pull/4371/checks?check_run_id=2304484466
This is possibly due to the fact that:
1. `Data_Wrap_Struct(...)` appears in a source code
2. which expands to `rb_data_object_wrap(...)`
3. which expands to `RUBY_MACRO_SELECT(rb_data_object_wrap_, RUBY_UNTYPED_DATA_WARNING)`
4. which expands to `rb_data_object_wrap_0`
5. which expands to `rb_data_object_wrap`, so far so good, but
6. this is a recursive macro expansion (see step 2). Everybody stops expanding...
- in step 4 for MSVC, and
- in step 5 for GCC etc.
I have no idea why but this proposed changeset prevents MSVC from
stopping at step 4.
|
| |
|
|
|
|
|
| |
Use of TOKEN_PASTE was a bad idea at the first place. Just use ##
everywhere. Nobody practically lacks token pasting.
|
| |
|
| |
|
|
|
|
|
| |
# Conflicts:
# scheduler.c
|
| |
|
|
|
| |
a.out format is considered extinct nowadays.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Deleted decades ago in commit 6e0fed271c1d2e6f2b13b99d89d43e7d00e81472
Note also that we eventually ended up reinventing this exact same
functionality. It is called rb_check_id() now.
|
|
|
|
|
|
| |
It existed since f3d022543ef2afde3d53e7f6b3028eafe39d0ef4 until
96760236079b15674a6322a2ca41b1528b51afbd. No official releases included
the actual function. The declaration shall be deleted.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the use of the ruby namespace isn't prepended by `::` to make it
explicit that the global ruby namespace is referenced here, it can
clash with other non-global namespace named ruby, e.g.
```
// declaration
namespace myproject {
namespace ruby {
// my ruby classes
}
}
// implementation
using namespace myproject;
[...]
rb_define_method(...);
[...]
```
leads to the following error:
```
../ruby/choice.cc: In function 'void {anonymous}::do_register_choice()':
../ruby/choice.cc:342:9: error: reference to 'ruby' is ambiguous
342 | rb_define_method(c_choices, "each", RUBY_FUNC_CAST(&choices_each), 0);
| ^~~~~~~~~~~~~~~~
In file included from ../ruby/choice.cc:20:
../ruby/paludis_ruby.hh:53:15: note: candidates are: 'namespace paludis::ruby { }'
53 | namespace ruby
| ^~~~
In file included from /usr/x86_64-pc-linux-gnu/include/ruby-3.0/ruby/backward/2/stdalign.h:23,
from /usr/x86_64-pc-linux-gnu/include/ruby-3.0/ruby/defines.h:77,
from /usr/x86_64-pc-linux-gnu/include/ruby-3.0/ruby/ruby.h:23,
from /usr/x86_64-pc-linux-gnu/include/ruby-3.0/ruby.h:38,
from ../ruby/paludis_ruby.hh:44,
from ../ruby/choice.cc:20:
/usr/x86_64-pc-linux-gnu/include/ruby-3.0/ruby/internal/stdalign.h:92:11: note: 'namespace ruby { }'
92 | namespace ruby {
| ^~~~
In file included from /usr/x86_64-pc-linux-gnu/include/ruby-3.0/ruby/internal/anyargs.h:83,
from /usr/x86_64-pc-linux-gnu/include/ruby-3.0/ruby/ruby.h:24,
from /usr/x86_64-pc-linux-gnu/include/ruby-3.0/ruby.h:38,
from ../ruby/paludis_ruby.hh:44,
from ../ruby/choice.cc:20:
../ruby/choice.cc:342:9: error: '::define' has not been declared
342 | rb_define_method(c_choices, "each", RUBY_FUNC_CAST(&choices_each), 0);
| ^~~~~~~~~~~~~~~~
../ruby/choice.cc:344:9: error: reference to 'ruby' is ambiguous
344 | rb_define_method(c_choices, "find_by_name_with_prefix", RUBY_FUNC_CAST(&choices_find_by_name_with_prefix), 1);
| ^~~~~~~~~~~~~~~~
```
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
* Rename `rb_scheduler` to `rb_fiber_scheduler`.
* Use public interface if available.
* Use `rb_check_funcall` where possible.
* Don't use `unblock` unless the fiber was non-blocking.
|
|
|
|
|
| |
It is questionable whether we can change a public API but this function
does not exist today. No way.
|
|
|
|
|
| |
https://github.com/ruby/ruby/pull/4100#pullrequestreview-576059827
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
|
|
|
| |
cf: https://github.com/ruby/ruby/pull/4100#pullrequestreview-575952836
|
|
|
|
|
|
|
|
| |
They are no longer how Object#clone/Object#dup are defined. In fact
DUPSETUP is not used from anywhere. CLONESETUP has only one usage.
Let's not expose them to extension libraries.
cf https://github.com/ruby/ruby/pull/4100#discussion_r563481718
|
|
|
|
|
|
|
|
|
| |
See also https://gcc.gnu.org/gcc-6/changes.html
Clang has this feature when __has_extension(enumerator_attributes) is
set.
MSVC has #pragma deprecated instead.
|
|
|
|
|
|
|
|
| |
matz said in [ruby-core:94979]:
> 3.0:
> * taint/trust/untaint/untrust non-verbose warning when called
This is it, for C extensions.
|
|
|
|
|
|
|
|
|
| |
Now that RUBY_FL_TAINT is recycled to become new RUBY_FL_SHAREABLE.
Setting/clearing this flag from extension libraries break Ractor.
Especially problematic one is OBJ_INFECT, which would make non-shareable
objects travel across Ractor boundaries.
Such operations should just be prohibited.
|
|
|
|
|
| |
It seems I broke them in commit 9e6e39c3512f7a962c44dc3729c98a0f8be90341
Sorry!
|
| |
|
|
|
|
|
|
|
| |
iff means if and only if, but readers without that knowledge might
assume this to be a spelling mistake. To me, this seems like
exclusionary language that is unnecessary. Simply using "if and only if"
instead should suffice.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
expose some C-APIs to try to make ractor utilities on external gems.
* add
* rb_ractor_local_storage_value_lookup() to check availability
* expose
* rb_ractor_make_shareable()
* rb_ractor_make_shareable_copy()
* rb_proc_isolate() (not public)
* rb_proc_isolate_bang() (not public)
* rb_proc_ractor_make_shareable() (not public)
|
|
|
|
|
|
|
|
| |
The count of rb_alloc_tmp_buffer_with_count is the allocation size
counted in VALUE size but not in the requested element size.
Co-authored-by: Yusuke Endoh <mame@ruby-lang.org>
Co-authored-by: Koichi Sasada <ko1@atdot.net>
|
| |
|
|
|
|
|
| |
Get rid of duplicate attributes, which may be warned or ignored
except for the first.
|
|
|
|
|
|
| |
* DECLARE_DEPRECATED_FEATURE with RBIMPL_ATTR_DEPRECATED_SINCE
* DECLARE_DEPRECATED_INTERNAL_FEATURE with RBIMPL_ATTR_INTERNAL
And moved function declarations outside both.
|
| |
|
|
|
|
|
| |
A consumer of a MemoryView no longer guards the original object.
[ci skip]
|
| |
|
|
|
|
|
|
|
|
| |
Pointed out by @shyouhei.
NOTE: Already we have dropped the support for older MSVCs,
probably prior to 1300 or 1400. Remove the conditional code,
especially in win32/Makefile.sub.
|
|
|
|
|
|
|
| |
"experimental_everything" makes the assigned value, it means
the assignment change the state of assigned value.
"experimental_copy" tries to make a deep copy and make copyied object
sharable.
|
|
|
|
|
| |
Now we need atomic operations, which are lighter than mutex, more
widely for extension libraries because of Ractor.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Deleted well over a decade ago in commit 977d66ec993b0f1892fb3e4cd8ac.
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
| |
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.
|