U.Nakamura
7e926c4d8c
String#slice! should clear the coderange when truncating
...
[Bug #19739 ]
This bug was incidentally fixed in Ruby 3.2 via b0b9f72
but remains on 3.1 and older.
this patch is written by byroot, 3b351ee62d
Co-authored-by: Jean Boussier <byroot@ruby-lang.org>
2023-07-25 20:00:21 +09:00
nagachika
159930b785
merge revision(s) d8ef0a98c6
: [Backport #19319 ]
...
[Bug #19319 ] Fix crash in rb_str_casemap
The following code crashes on my machine:
```
GC.stress = true
str = "testing testing testing"
puts str.capitalize
```
We need to ensure that the object `buffer_anchor` remains on the stack
so it does not get GC'd.
---
string.c | 2 ++
1 file changed, 2 insertions(+)
2023-03-21 12:02:04 +09:00
Nobuyoshi Nakada
e2ec97c4b8
[DOC] How to get the longest last match [Bug #18415 ]
2021-12-19 20:27:31 +09:00
Burdette Lamar
5588aa79d4
What's Here for Symbol ( #5289 )
...
* What's Here for Symbol
2021-12-17 17:02:12 -06:00
Burdette Lamar
f7e266e6d2
Enhanced RDoc for case mapping ( #5245 )
...
Adds file doc/case_mapping.rdoc, which describes case mapping and provides a link target that methods doc can link to.
Revises:
String#capitalize
String#capitalize!
String#casecmp
String#casecmp?
String#downcase
String#downcase!
String#swapcase
String#swapcase!
String#upcase
String#upcase!
Symbol#capitalize
Symbol#casecmp
Symbol#casecmp?
Symbol#downcase
Symbol#swapcase
Symbol#upcase
2021-12-17 06:05:31 -06:00
Burdette Lamar
e5ff030f60
Enhanced RDoc for String ( #5234 )
...
Treated:
#to_i
#to_f
#to_s
#inspect
#dump
#undump
2021-12-10 10:50:13 -06:00
Burdette Lamar
9a2ecddf32
Enhanced RDoc for String ( #5227 )
...
Treats:
#replace
#clear
#chr
#getbyte
#setbyte
#byteslice
#reverse
#reverse!
#include?
2021-12-08 12:29:56 -06:00
Burdette Lamar
7fc9d83bd1
Fix link ( #5208 )
2021-12-03 10:46:35 -06:00
Burdette Lamar
28fb6d6b9e
Adding links to literals and Kernel ( #5192 )
...
* Adding links to literals and Kernel
2021-12-03 07:12:28 -06:00
Peter Zhu
7cfacbcad2
Improve performance of embedded string allocation
...
Non-VWA embedded string allocation had a performance regression. This
commit improves performance of non-VWA embedded string allocation.
2021-11-26 13:27:32 -05:00
Peter Zhu
9aded89f40
Speed up Ractors for Variable Width Allocation
...
This commit adds a Ractor cache for every size pool. Previously, all VWA
allocated objects used the slowpath and locked the VM.
On a micro-benchmark that benchmarks String allocation:
VWA turned off:
29.196591 0.889709 30.086300 ( 9.434059)
VWA before this commit:
29.279486 41.477869 70.757355 ( 12.527379)
VWA after this commit:
16.782903 0.557117 17.340020 ( 4.255603)
2021-11-23 10:51:27 -05:00
Peter Zhu
aeae6e2842
[Feature #18290 ] Remove all usages of rb_gc_force_recycle
...
This commit removes usages of rb_gc_force_recycle since it is a burden
to maintain and makes changes to the GC difficult.
2021-11-08 14:05:54 -05:00
Yusuke Endoh
4b248e7994
string.c: Follow up to ae2359f602
...
* Mention `\0`
* Make the example of hash replacement meaningful
2021-11-03 03:52:28 +09:00
Burdette Lamar
ae2359f602
Enhanced RDoc for String ( #5060 )
...
Treated:
#slice!
#sub
#sub!
#gsub
#gsub!
2021-11-02 13:04:58 -05:00
Burdette Lamar
3e743d3147
Cleanup some RDoc ( #5050 )
...
Mostly adding blank line before and after code segment, to improve compliance with doc\documentation_guide.rdoc.
2021-10-28 17:01:49 -05:00
Yusuke Endoh
acb2f86caa
string.c: Add some comments about STR flags
2021-10-29 01:57:29 +09:00
Peter Zhu
a5b6598192
[Feature #18239 ] Implement VWA for strings
...
This commit adds support for embedded strings with variable capacity and
uses Variable Width Allocation to allocate strings.
2021-10-25 13:26:23 -04:00
Peter Zhu
46b66eb9e8
[Feature #18239 ] Add struct for embedded strings
2021-10-25 13:26:23 -04:00
Jeremy Evans
2a5c3a4d0f
Update documentation for String and Symbol to discuss differences
...
Implements [Feature #14347 ]
2021-10-15 13:54:03 -07:00
Nobuyoshi Nakada
78ff9b719c
Add tests for the edge caces of String#end_with?
...
Also, check if a suffix is empty, to guarantee the assumption of
`onigenc_get_left_adjust_char_head` that `*s` is always accessible,
even in the case of `SHARABLE_MIDDLE_SUBSTRING`.
2021-10-08 14:08:03 +09:00
git
1bf3f3f4da
* remove trailing spaces. [ci skip]
2021-10-06 00:40:54 +09:00
Jeremy Evans
c6706f15af
Fix documentation for String#{<<,concat,prepend}
...
These methods mutate and return the receiver, they don't create
and return a new string.
Fixes [Bug #18241 ]
2021-10-05 08:39:27 -07:00
Nobuyoshi Nakada
cd182c5ee1
Adjust types to rb_enc_left_char_head
...
I dislike unnatural casts.
2021-10-05 17:14:29 +09:00
Nobuyoshi Nakada
5a961c3768
Remove a redundant cast between the exact same types
2021-10-05 15:56:34 +09:00
卜部昌平
f032c09bca
rb_enc_left_char_head(): take void*
...
Nobu doesn't like (char*) cast.
2021-10-05 14:18:23 +09:00
卜部昌平
499660b04f
downcase_single/upcase_single: assume ASCII
...
These functions assume ASCII compatibility. That has to be ensured in
their caller.
2021-10-05 14:18:23 +09:00
卜部昌平
5112a54846
include/ruby/encoding.h: convert macros into inline functions
...
Less macros == huge win.
2021-10-05 14:18:23 +09:00
卜部昌平
e42c8c160d
add undeclared variables
...
Why did they even exist?
2021-10-05 14:18:23 +09:00
Nobuyoshi Nakada
842b0008c1
Skip broken strings as the locale encoding
2021-10-01 20:28:44 +09:00
Kazuhiro NISHIYAMA
e0c6e8c64a
[DOC] Use unpack1
instead of unpack(template)[0]
[ci skip]
2021-09-23 09:20:00 +09:00
Nobuyoshi Nakada
cbbda3e648
Adjust indent in string.c [ci skip]
2021-09-16 23:49:16 +09:00
S.H
b8c3a84bdd
Refactor and Using RBOOL macro
2021-09-15 08:11:05 +09:00
Nobuyoshi Nakada
cd829bb078
Remove printf family from the mjit header
...
Linking printf family functions makes mjit objects to link
unnecessary code.
2021-09-11 08:41:32 +09:00
卜部昌平
091faca99c
include/ruby/internal/intern/string.h: add doygen
...
Must not be a bad idea to improve documents. [ci skip]
2021-09-10 20:00:06 +09:00
Peter Zhu
5d81554281
[Bug #18154 ] Fix memory leak in String#initialize
...
String#initialize can leak memory when called on a string that is marked
with STR_NOFREE because it does not unset the STR_NOFREE flag.
2021-09-08 10:20:12 -04:00
Nobuyoshi Nakada
edf01d4e82
Treat NULL fake string as an empty string
...
And the NULL string must be of size 0.
2021-08-17 18:45:36 +09:00
Jeremy Evans
84bf4d2ce5
Term fill in String#{,l,r}strip! even when SHARABLE_MIDDLE_SUBSTRING
...
Each of these methods calls str_modify_keep_cr before
term filling, which should ensure the backing string
uses private memory, and therefore term filling should
not affect other strings.
Skipping the term filling was added in
a707ab4bc8
.
Fixes [Bug #12540 ]
2021-08-11 13:40:49 +09:00
Peter Zhu
c463a5e008
Fix indentation in string.c
...
7 spaces were used for 2 levels of indentation. This commit changes it
to use 8 spaces.
2021-08-03 16:39:02 -04:00
Troy Chance
7f4e86804d
Fix documentation of #<=> and #casecmp [ci skip]
...
Descriptions for return values of -1 and 1 were reversed.
2021-08-02 12:09:07 +09:00
S.H
378e8cdad6
Using RBOOL macro
2021-08-02 12:06:44 +09:00
Nobuyoshi Nakada
eec45a93ef
Escape unprintable chars only, without surrounding quotes
2021-07-24 14:31:41 +09:00
S-H-GAMELINKS
9952e9358e
Refactor rb_str_export and rb_str_export_locale function's
2021-07-07 12:31:43 +09:00
Nobuyoshi Nakada
94bd3bde81
Specify version to remove as bare numbers
2021-06-30 10:47:01 +09:00
Nobuyoshi Nakada
8118d435d0
rb_warn_deprecated_to_remove_at [Feature #17432 ]
...
At compilation time with RUBY_DEBUG enabled, check if the removal
version has been reached.
2021-06-30 10:47:01 +09:00
Nobuyoshi Nakada
391abc543c
Scan the coderange in the given encoding
2021-06-26 16:05:15 +09:00
Ketan Bhatt
2fb435b3ab
Add Related link from String#hash to Object#hash
...
We came across a bug in our code because we assumed `String#hash` to be consistent across Ruby processes, which was incorrect.
Our search lead us to `Object#hash` which has the right warning that `String#hash` doesn't. We also noticed that a previous version of the documentation for `String#hash` pointed to `Object#hash` that was removed by https://github.com/ruby/ruby/pull/3565 .
We think this removal might not be intended and just got missed amidst other changes.
2021-06-23 07:42:02 -07:00
Burdette Lamar
c1741df1a1
What's Here for Numeric and Comparable
2021-06-21 10:38:16 -07:00
Nobuyoshi Nakada
e4f891ce8d
Adjust styles [ci skip]
...
* --braces-after-func-def-line
* --dont-cuddle-else
* --procnames-start-lines
* --space-after-for
* --space-after-if
* --space-after-while
2021-06-17 10:13:40 +09:00
Nobuyoshi Nakada
12f7ba5ed4
Make String#crypt ractor-safe
2021-04-13 12:05:31 +09:00
Nobuyoshi Nakada
df7efdcb6b
Get rid of LONG_LONG redefinition
2021-04-12 22:47:07 +09:00