Age | Commit message (Collapse) | Author |
|
|
|
* Add buffer protocol
* Modify for some review comments
* Per-object buffer availability
* Rename to MemoryView from Buffer and make compilable
* Support integral repeat count in memory view format
* Support 'x' for padding bytes
* Add rb_memory_view_parse_item_format
* Check type in rb_memory_view_register
* Update dependencies in common.mk
* Add test of MemoryView
* Add test of rb_memory_view_init_as_byte_array
* Add native size format test
* Add MemoryView test utilities
* Add test of rb_memory_view_fill_contiguous_strides
* Skip spaces in format string
* Support endianness specifiers
* Update documentation
* Support alignment
* Use RUBY_ALIGNOF
* Fix format parser to follow the pack format
* Support the _ modifier
* Parse count specifiers in get_format_size function.
* Use STRUCT_ALIGNOF
* Fix test
* Fix test
* Fix total size for the case with tail padding
* Fix rb_memory_view_get_item_pointer
* Fix rb_memory_view_parse_item_format again
Notes:
Merged-By: mrkn <mrkn@ruby-lang.org>
|
|
Now taint flag is obsolete and it is used fro shareaable flag.
So we should not check this flag.
Notes:
Merged: https://github.com/ruby/ruby/pull/3575
|
|
Added description and URL about nested flexible array member.
Notes:
Merged: https://github.com/ruby/ruby/pull/3570
|
|
Was definitely a bad idea to use constexpr. It is not ubiquitous.
Notes:
Merged: https://github.com/ruby/ruby/pull/3570
|
|
Now that RUBY_ALIGNOF behaves like C11's _Alignof. This is not
necessarily the best stack arrangement. We can just give up using
__builtin_alloca_with_align(), and let alloca choose what is optimal.
Notes:
Merged: https://github.com/ruby/ruby/pull/3570
|
|
It is reported that on a system of i386 System V ABI, GCC returns 8 for
__alignof__(double). OTOH the ABI defines alignments of double to be 4,
and ISO/IEC 9899:2011 reads that _Alignof(double) shall return 4 on such
machine. What we want in ruby is 4 instead of 8 there. We cannot use
__alignof__.
Additionally, both old GCC / old clang return 8 for _Alignof(double) on
such platforms. They are their bugs, and already fixed in recent
versions. But we have to support older compilers for a while. Shall
check sanity of _Alignof.
Notes:
Merged: https://github.com/ruby/ruby/pull/3570
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3537
|
|
Also improve specs and documentation for finalizers and more clearly
recommend a safe code pattern to use them.
Notes:
Merged: https://github.com/ruby/ruby/pull/3444
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3434
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3434
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3434
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3434
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3434
|
|
To enclose the initialization of Random::Base part.
Notes:
Merged: https://github.com/ruby/ruby/pull/3024
|
|
Added `WITH_REAL` versions to `RB_RANDOM_INTERFACE` macros. Also
these macros including "without real" versions no longer contain
the terminator (semicolon and comma).
Notes:
Merged: https://github.com/ruby/ruby/pull/3024
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3024
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3024
|
|
* random.c: separate abstract rb_random_t and rb_random_mt_t for
Mersenne Twister implementation.
* include/ruby/random.h: the interface for extensions of Random
class.
* DLL imported symbol reference is not constant on Windows.
* check if properly initialized.
Notes:
Merged: https://github.com/ruby/ruby/pull/3024
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3519
|
|
This commit introduces Ractor mechanism to run Ruby program in
parallel. See doc/ractor.md for more details about Ractor.
See ticket [Feature #17100] to see the implementation details
and discussions.
[Feature #17100]
This commit does not complete the implementation. You can find
many bugs on using Ractor. Also the specification will be changed
so that this feature is experimental. You will see a warning when
you make the first Ractor with `Ractor.new`.
I hope this feature can help programmers from thread-safety issues.
Notes:
Merged: https://github.com/ruby/ruby/pull/3365
|
|
We have decided to go forward to 3.0 this year.
|
|
|
|
Only one function in only one file uses contents of this public header.
That is not a wise idea. Let's just free the header's soul.
Notes:
Merged: https://github.com/ruby/ruby/pull/3347
|
|
Commit 7aab062ef3772c7e8e50fc872a1647918c76dbba says:
> ruby_show_version() will no longer exits the process, if
> RUBY_SHOW_COPYRIGHT_TO_DIE is set to 0. This will be the default in
> the future.
3.0 is a good timing for that "future".
Notes:
Merged: https://github.com/ruby/ruby/pull/3342
|
|
Remove all usages of RCAST() so that the header file can be excluded
from ruby/ruby.h's dependency.
Notes:
Merged: https://github.com/ruby/ruby/pull/3346
|
|
We should not recommend RBIMPL_*.
Notes:
Merged: https://github.com/ruby/ruby/pull/3341
|
|
Nobody uses this macro any longer.
Notes:
Merged: https://github.com/ruby/ruby/pull/3341
|
|
It has been deprecated for 5 years since 1f2255604087e9a7d7efcb2df61b5ca0e2daa200.
Notes:
Merged: https://github.com/ruby/ruby/pull/3341
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3344
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3343
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3345
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3340
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3338
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3338
|
|
Because we check HAVE_STMT_AND_DECL_IN_EXPR in configure, it is peoven
to work in C. But C++ situation can be different. Oracle Developer
Studio is another example of such things.
Notes:
Merged: https://github.com/ruby/ruby/pull/3433
|
|
Oracle Developer Studio's C++ preprocessor started to understand
__has_cpp_attribute since version 12.5, and is broken. After looking
around for a while I found Boost and ICU also had this issue before.
Let me add workaround for it.
Notes:
Merged: https://github.com/ruby/ruby/pull/3433
|
|
Former ROBJECT_IV_INDEX_TBL macro included RCLASS_IV_INDEX_TBL, which is
not disclosed to extension libraies. The macro was kind of broken. Why
not just deprecate it, and convert the internal use into an inline
function.
Notes:
Merged: https://github.com/ruby/ruby/pull/3427
|
|
RARRAY_AREF has been a macro for reasons. We might not be able to
change that for public APIs, but why not relax the situation internally
to make it an inline function.
Notes:
Merged: https://github.com/ruby/ruby/pull/3419
|
|
* Enable unaligned accesses on arm64
64-bit Arm platforms support unaligned accesses.
Running the string benchmarks this change improves performance
by an average of 1.04x, min .96x, max 1.21x, median 1.01x
* arm64 enable gc optimizations
Similar to x86 and powerpc optimizations.
| |compare-ruby|built-ruby|
|:------|-----------:|---------:|
|hash1 | 0.225| 0.237|
| | -| 1.05x|
|hash2 | 0.110| 0.110|
| | 1.00x| -|
* vm_exec.c: improve performance for arm64
| |compare-ruby|built-ruby|
|:------------------------------|-----------:|---------:|
|vm_array | 26.501M| 27.959M|
| | -| 1.06x|
|vm_attr_ivar | 21.606M| 31.429M|
| | -| 1.45x|
|vm_attr_ivar_set | 21.178M| 26.113M|
| | -| 1.23x|
|vm_backtrace | 6.621| 6.668|
| | -| 1.01x|
|vm_bigarray | 26.205M| 29.958M|
| | -| 1.14x|
|vm_bighash | 504.155k| 479.306k|
| | 1.05x| -|
|vm_block | 16.692M| 21.315M|
| | -| 1.28x|
|block_handler_type_iseq | 5.083| 7.004|
| | -| 1.38x|
Notes:
Merged-By: nurse <naruse@airemix.jp>
|
|
- When NDEBUG is defined that shall be honoured.
- When RUBY_DEBUG is defined that shall be honoured.
- When both are defined and they conflict, warnings shall be rendered.
- When nothing is specified, nothing shall happen.
Notes:
Merged-By: shyouhei <shyouhei@ruby-lang.org>
|
|
- util.h includes defines.h,
- ... which includes ruby/backward/2/stdarg.h,
- ... which always defines _.
This `#ifndef _` must never happen.
Notes:
Merged: https://github.com/ruby/ruby/pull/3348
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3323
|
|
Correctly capture thread before releasing GVL and pass as argument to
`rb_thread_scheduler_if_nonblocking`.
Notes:
Merged: https://github.com/ruby/ruby/pull/3323
|
|
This reverts commit c8dc2bf1401fc01d35a4a7587ed224f1f2fe29e6.
No longer necessary.
|
|
Prevent casual typos inside of UNREACHABLE_RETURN(...).
Notes:
Merged: https://github.com/ruby/ruby/pull/3247
|
|
If __builtin_assume() is enables and RUBY_DEBUG=0, RUBY_ASSERT(expr)
will be compiled to __builtin_assume(expr) and compiler can assume
expr is true and apply aggressive optimizations. However we observed
doubtful behavior because of compiler optimizations, we introduce
new macro RUBY_ASSERT_NOASSUME to disable __builtin_assume().
With this macro, we can try without __builtin_assume().
|
|
|
|
|
|
Co-authored-by: 卜部昌平 <shyouhei@ruby-lang.org>
Notes:
Merged: https://github.com/ruby/ruby/pull/3124
|