Age | Commit message (Collapse) | Author |
|
This removes the warnings added in 2.7, and changes the behavior
so that a final positional hash is not treated as keywords or
vice-versa.
To handle the arg_setup_block splat case correctly with keyword
arguments, we need to check if we are taking a keyword hash.
That case didn't have a test, but it affects real-world code,
so add a test for it.
This removes rb_empty_keyword_given_p() and related code, as
that is not needed in Ruby 3. The empty keyword case is the
same as the no keyword case in Ruby 3.
This changes rb_scan_args to implement keyword argument
separation for C functions when the : character is used.
For backwards compatibility, it returns a duped hash.
This is a bad idea for performance, but not duping the hash
breaks at least Enumerator::ArithmeticSequence#inspect.
Instead of having RB_PASS_CALLED_KEYWORDS be a number,
simplify the code by just making it be rb_keyword_given_p().
Notes:
Merged: https://github.com/ruby/ruby/pull/2794
|
|
Debug utilities should be accessible from any internal code.
|
|
* bignum.h: Add BIGNUM_EMBED_P
* bignum.c: Use macros for handling BIGNUM_EMBED_FLAG
Notes:
Merged-By: mrkn <mrkn@ruby-lang.org>
|
|
|
|
OpenBSD's <sys/endian.h> has its own swap32() etc. We have to avoid
name conflicts.
See also https://rubyci.org/logs/rubyci.s3.amazonaws.com/openbsd-current/ruby-master/log/20191226T210011Z.log.html.gz#miniruby
|
|
|
|
Noticed that internal/stdbool.h and addr2line.c are the only two place
where missing/stdbool.h is included. Why not delete the file so that
we can merge internal/stdbool.h and missing/stdbool.h into one.
Notes:
Merged: https://github.com/ruby/ruby/pull/2711
|
|
Saves comitters' daily life by avoid #include-ing everything from
internal.h to make each file do so instead. This would significantly
speed up incremental builds.
We take the following inclusion order in this changeset:
1. "ruby/config.h", where _GNU_SOURCE is defined (must be the very
first thing among everything).
2. RUBY_EXTCONF_H if any.
3. Standard C headers, sorted alphabetically.
4. Other system headers, maybe guarded by #ifdef
5. Everything else, sorted alphabetically.
Exceptions are those win32-related headers, which tend not be self-
containing (headers have inclusion order dependencies).
Notes:
Merged: https://github.com/ruby/ruby/pull/2711
|
|
These headers need no rewrite. Just add some minor tweaks, like
addition of #include lines. Mainly cosmetic.
TIMET_MAX_PLUS_ONE was deleted because the macro was used from only
one place (directly write expression there).
Notes:
Merged: https://github.com/ruby/ruby/pull/2711
|
|
Rearranged contents, then added MJIT_FUNC_EXPORTED function
declarations.
Notes:
Merged: https://github.com/ruby/ruby/pull/2711
|
|
Rather trivial, added missed MJIT_FUNC_EXPORTED function declaration.
Notes:
Merged: https://github.com/ruby/ruby/pull/2711
|
|
Some declatations are moved from internal/parse.h, to reflect the fact
that they are defined in symbol.c.
Notes:
Merged: https://github.com/ruby/ruby/pull/2711
|
|
Reduced the number of macros defined in the file. Also made it explicit
for MJIT_FUNC_EXPORTTED functions to be so.
Notes:
Merged: https://github.com/ruby/ruby/pull/2711
|
|
Eliminate macros for better readability.
Notes:
Merged: https://github.com/ruby/ruby/pull/2711
|
|
Eliminated the macro to convert into an inline function.
Notes:
Merged: https://github.com/ruby/ruby/pull/2711
|
|
Annotated MJIT_FUNC_EXPORTED functions as such. Declaration of
rb_sym_to_proc is moved into this file because the function is defined
in proc.c rather than string.c.
Notes:
Merged: https://github.com/ruby/ruby/pull/2711
|
|
Eliminated macros. As a side effect struct RBasicRaw is no longer
required because we can now define anonymous structs inside of inline
functions.
Notes:
Merged: https://github.com/ruby/ruby/pull/2711
|
|
Improved readability by reducing the use of macros. Also moved some
part of internal/compilers.h into this file, because it seems to be the
right place for them.
Notes:
Merged: https://github.com/ruby/ruby/pull/2711
|
|
Rearrange macro orders for better readability.
Notes:
Merged: https://github.com/ruby/ruby/pull/2711
|
|
Reduce macros for readability. Also transplanted some part of
internal/file.h into here because the delcared functions are in fact
defined in error.c.
Notes:
Merged: https://github.com/ruby/ruby/pull/2711
|
|
This file containes other materials than in compile.c. I could perhaps
split them into files, but felt overkill. Just add comments that
describe the situations.
Notes:
Merged: https://github.com/ruby/ruby/pull/2711
|
|
Rearrange contents for better readability, reduce macros for the same
reason, and mark MJIT_FUNC_EXPORTED functions as such.
Notes:
Merged: https://github.com/ruby/ruby/pull/2711
|
|
Eliminated macros. Also marked MJIT_FUNC_EXPORTED functions as such.
Some of them are declared in constant.h so edited that file also.
Notes:
Merged: https://github.com/ruby/ruby/pull/2711
|
|
Arrange contents and eliminate macros, to make them readable.
Macro IFUNC_NEW was deleted because there was only one usage.
Notes:
Merged: https://github.com/ruby/ruby/pull/2711
|
|
This file has almost nothing to do. Added some #ifdef lines and
rearranged file contents.
Those macros are unable to translate into inline functions, because they
are used as lvalues of assignments.
Notes:
Merged: https://github.com/ruby/ruby/pull/2711
|
|
Replace macros with inline functions of equivalent contents, for much
improved readability.
Notes:
Merged: https://github.com/ruby/ruby/pull/2711
|
|
Reduce macros to make them inline functions, as well as mark
MJIT_FUNC_EXPORTED functions explicitly as such.
Definition of ar_hint_t is simplified. This has been the only possible
definition so far.
Notes:
Merged: https://github.com/ruby/ruby/pull/2711
|
|
Marked MJIT_FUNC_EXPORTED functions as such. Other changes are rather
cosmetic.
Notes:
Merged: https://github.com/ruby/ruby/pull/2711
|
|
Turn macros into inline functions for better readability. Also add
rb_int128t2big delcaration, which was missing.
Notes:
Merged: https://github.com/ruby/ruby/pull/2711
|
|
Add #include lines, move FIXNUM_POSITIVE_P etc. from numeric.h.
Notes:
Merged: https://github.com/ruby/ruby/pull/2711
|
|
ISO/IEC 9899:2011 section 7.2 states that <assert.h> must define
static_assert. Use it when available.
Notes:
Merged: https://github.com/ruby/ruby/pull/2711
|
|
Not a big rewrite. Just to make those macros readable.
Notes:
Merged: https://github.com/ruby/ruby/pull/2711
|
|
Improving readability by converting some macros into inline functions.
Also improved support for recent x86_64 processors, which have better
instructions for the purposes.
Notes:
Merged: https://github.com/ruby/ruby/pull/2711
|
|
With these macros implemented we can write codes just like we can assume
the compiler being clang. MSC_VERSION_SINCE is defined to implement
those macros, but turned out to be handy for other places. The -fdeclspec
compiler flag is necessary for clang to properly handle __has_declspec().
Notes:
Merged: https://github.com/ruby/ruby/pull/2711
|
|
Now that we no longer support old compilers, we can safely delete
several obsolete #ifdef gurads. Also because (as of writing) it is
impossible to compile the program using C++ compilers, lets just
entirely prohibit __cplusplus to reduce # of LOCs.
Note however that we still cannot eliminate __STDC_VERSION__ checks,
because MSVC does not define it, saying its C99 support is partial.
See also https://social.msdn.microsoft.com/Forums/vstudio/en-US/53a4fd75-9f97-48b2-aa63-2e2e5a15efa3
Notes:
Merged: https://github.com/ruby/ruby/pull/2711
|
|
One day, I could not resist the way it was written. I finally started
to make the code clean. This changeset is the beginning of a series of
housekeeping commits. It is a simple refactoring; split internal.h into
files, so that we can divide and concur in the upcoming commits. No
lines of codes are either added or removed, except the obvious file
headers/footers. The generated binary is identical to the one before.
Notes:
Merged: https://github.com/ruby/ruby/pull/2711
|