summaryrefslogtreecommitdiff
path: root/internal
AgeCommit message (Collapse)Author
2019-12-26internal/bingnum.h rework卜部昌平
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
2019-12-26internal/fixnum.h rework卜部昌平
Add #include lines, move FIXNUM_POSITIVE_P etc. from numeric.h. Notes: Merged: https://github.com/ruby/ruby/pull/2711
2019-12-26internal/static_assert.h rework卜部昌平
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
2019-12-26internal/warnings.h rework卜部昌平
Not a big rewrite. Just to make those macros readable. Notes: Merged: https://github.com/ruby/ruby/pull/2711
2019-12-26internal/bits.h rework卜部昌平
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
2019-12-26add several __has_something macro卜部昌平
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
2019-12-26assume C99卜部昌平
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
2019-12-26split internal.h into files卜部昌平
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