aboutsummaryrefslogtreecommitdiffstats
path: root/internal/compilers.h
Commit message (Collapse)AuthorAgeFilesLines
* Update compilers.h [ci skip]Gui Heurich2021-01-051-1/+1
|
* sed -i 's|ruby/impl|ruby/internal|'卜部昌平2020-05-111-8/+8
| | | | To fix build failures.
* sed -i s/RUBY3/RBIMPL/g卜部昌平2020-05-111-8/+8
| | | | | Devs do not love "3". The only exception is RUBY3_KEYWORDS in parse.y, which seems unrelated to our interests.
* sed -i s|ruby/3|ruby/impl|g卜部昌平2020-05-111-8/+8
| | | | This shall fix compile errors.
* add #include guard hack卜部昌平2020-04-131-3/+3
| | | | | | | | | | | | | | | | | | | | | | According to MSVC manual (*1), cl.exe can skip including a header file when that: - contains #pragma once, or - starts with #ifndef, or - starts with #if ! defined. GCC has a similar trick (*2), but it acts more stricter (e. g. there must be _no tokens_ outside of #ifndef...#endif). Sun C lacked #pragma once for a looong time. Oracle Developer Studio 12.5 finally implemented it, but we cannot assume such recent version. This changeset modifies header files so that each of them include strictly one #ifndef...#endif. I believe this is the most portable way to trigger compiler optimizations. [Bug #16770] *1: https://docs.microsoft.com/en-us/cpp/preprocessor/once *2: https://gcc.gnu.org/onlinedocs/cppinternals/Guard-Macros.html
* Merge pull request #2991 from shyouhei/ruby.h卜部昌平2020-04-081-160/+24
| | | Split ruby.h
* add missing #include卜部昌平2020-01-101-0/+1
|
* decouple internal.h headers卜部昌平2019-12-261-1/+0
| | | | | | | | | | | | | | | | | | 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).
* internal/string.h rework卜部昌平2019-12-261-0/+5
| | | | | Reduced the number of macros defined in the file. Also made it explicit for MJIT_FUNC_EXPORTTED functions to be so.
* internal/gc.h rework卜部昌平2019-12-261-18/+0
| | | | | | 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.
* internal/fixnum.h rework卜部昌平2019-12-261-1/+11
| | | | Add #include lines, move FIXNUM_POSITIVE_P etc. from numeric.h.
* internal/bits.h rework卜部昌平2019-12-261-1/+72
| | | | | | Improving readability by converting some macros into inline functions. Also improved support for recent x86_64 processors, which have better instructions for the purposes.
* add several __has_something macro卜部昌平2019-12-261-5/+94
| | | | | | | 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().
* split internal.h into files卜部昌平2019-12-261-0/+87
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.