summaryrefslogtreecommitdiff
path: root/internal/string.h
Commit message (Collapse)AuthorAgeFilesLines
* Stop exporting symbols for MJITTakashi Kokubun2023-03-061-2/+0
|
* Use shared flags of the typePeter Zhu2022-11-021-1/+1
| | | | | | The ELTS_SHARED flag is generic, so we should prefer to use the flags specific of the type (STR_SHARED for strings and RARRAY_SHARED_FLAG for arrays).
* Revert "Revert "error.c: Let Exception#inspect inspect its message""Yusuke Endoh2022-09-231-0/+1
| | | | | | This reverts commit b9f030954a8a1572032f3548b39c5b8ac35792ce. [Bug #18170]
* [Bug #18973] Promote US-ASCII to ASCII-8BIT when adding 8-bit charNobuyoshi Nakada2022-08-311-0/+1
|
* Move String RVALUES between poolsMatt Valentine-House2022-06-131-0/+4
| | | | | And re-embed any strings that can now fit inside the slot they've been moved to
* Revert "error.c: Let Exception#inspect inspect its message"Yusuke Endoh2022-06-071-1/+0
| | | | This reverts commit 9d927204e7b86eb00bfd07a060a6383139edf741.
* error.c: Let Exception#inspect inspect its messageYusuke Endoh2022-06-071-0/+1
| | | | | | | | | | | | ... only when the message string has a newline. `p StandardError.new("foo\nbar")` now prints `#<StandardError: "foo\nbar">' instead of: #<StandardError: bar> [Bug #18170]
* Add comments about special runtime routines YJIT callsAlan Wu2021-10-201-0/+1
| | | | | | | | | | | When YJIT make calls to routines without reconstructing interpreter state through jit_prepare_routine_call(), it relies on the routine to never allocate, raise, and push/pop control frames. Comment about this on the routines that YJTI calls. This is probably something we should dynamically verify on debug builds. It's hard to statically verify this as it requires verifying all functions in the call tree. Maybe something to look at in the future.
* Skip broken strings as the locale encodingNobuyoshi Nakada2021-10-011-0/+1
|
* internal/*.h: skip doxygen卜部昌平2021-09-101-1/+0
| | | | | These contents are purely implementation details, not worth appearing in CAPI documents. [ci skip]
* Move rb_str_escape function declarationS-H-GAMELINKS2021-07-111-0/+1
|
* Remove unneeded rb_str_initialize defination in internal/string.h (#4465)S.H2021-06-011-1/+0
|
* tuning trial: newobj with current ecKoichi Sasada2020-12-071-0/+3
| | | | | Passing current ec can improve performance of newobj. This patch tries it for Array and String literals ([] and '').
* should not use rb_str_modify(), tooKoichi Sasada2020-12-011-0/+2
| | | | | | Same as 8247b8edde, should not use rb_str_modify() here. https://bugs.ruby-lang.org/issues/17343#change-88858
* sed -i 's|ruby/impl|ruby/internal|'卜部昌平2020-05-111-2/+2
| | | | To fix build failures.
* sed -i s|ruby/3|ruby/impl|g卜部昌平2020-05-111-2/+2
| | | | 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-7/+7
| | | Split ruby.h
* decouple internal.h headers卜部昌平2019-12-261-0/+4
| | | | | | | | | | | | | | | | | | 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-40/+80
| | | | | Reduced the number of macros defined in the file. Also made it explicit for MJIT_FUNC_EXPORTTED functions to be so.
* internal/proc.h rework卜部昌平2019-12-261-1/+0
| | | | | | 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.
* split internal.h into files卜部昌平2019-12-261-0/+92
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.