Commit graph

57 commits

Author SHA1 Message Date
Travis Staloch
c2dbed2ff5
str-graphemes: rework and add some zig tests
- rework strGraphemes() to use a mutable slice and keep track of just
`last_codepoint_len`.
- add zig tests for empty string, ascii, utf8, ascii+utf8+emoji
2022-10-22 19:29:49 -07:00
Prajwal S N
df7e4eea7e
builtin(str): implement Str.graphemes
Signed-off-by: Prajwal S N <prajwalnadig21@gmail.com>
2022-10-22 19:29:49 -07:00
Brendan Hansknecht
e551e59c1c
refactor string reallocation 2022-10-11 07:56:34 -07:00
Brendan Hansknecht
96b5d365b2
Add capacity growth to RocStr
Also, cleans up the alloc and realloc api for both list and str.
Updates Str.reserve to match List.reserve
2022-10-10 22:24:55 -07:00
Prajwal S N
9013e4ce11
builtin(str): implement withCapacity
Signed-off-by: Prajwal S N <prajwalnadig21@gmail.com>
2022-10-08 00:24:46 +05:30
Folkert
9106479d07
access out of bounds in string split 2022-09-28 15:17:07 +02:00
Brian Carroll
0423e5650f
builtins: remove some redundant small string checks in strToBytes 2022-09-04 14:37:42 +01:00
Brian Carroll
32b815847e
builtins: Remove old incorrect comment about isSmallStr and add a test to make sure 2022-09-04 14:37:42 +01:00
Folkert
1bfac155ca
implement expect struct reporting 2022-07-28 16:47:02 +02:00
Folkert de Vries
66365fba6e
Merge pull request #3649 from rtfeldman/3640-str-split-edge-case
Fix `Str.split` edge case when string and delimiter are equal
2022-07-28 11:30:40 +02:00
raleng
c7997c7c38
Fix formatting 2022-07-28 01:57:01 +02:00
raleng
17fc1a297c
Fix Str.split when string equals delimiter
countSegments and strSplitHelp check whether the length of the string is
strictly greater-than the length of the delimiter, skipping most of the
logic when this is not the case.

Changing the check to a greater-than-or-equal allows for the case when
the string and the delimiter are equal, giving the expected result of
["", ""].
2022-07-28 01:36:02 +02:00
raleng
71e83746cc
add countSegments test case
The test ensures countSegments returns a count of two when the string
and the delimiter are equal. The expected result of Str.split in that
case is ["", ""].
2022-07-28 01:35:08 +02:00
raleng
261ff3224d
Add strSplitHelp test cases
Add a test for the case when the string starts with the delimiter, and
when the string and the delimiter are equal.
2022-07-28 01:34:20 +02:00
Folkert
8e5b0daa94
figured out how to serialize nested structures 2022-07-27 23:52:11 +02:00
Folkert
e62a0ee39a
make string clone return where next extra bytes should be written 2022-07-27 22:48:41 +02:00
Folkert
6d0e751999
fix bug in expect handling on the cli side 2022-07-25 22:37:36 +02:00
Folkert
012c6a75d1
simplify RocStr to array in zig 2022-07-24 11:50:28 +02:00
Folkert
ab3a431db7
add string cloning helper 2022-07-23 00:08:01 +02:00
Richard Feldman
7e446d1b0d
Eliminate @memcpy from Str.trim functions 2022-07-18 10:28:53 -04:00
Richard Feldman
da7c7ac5f2
Merge pull request #3525 from rtfeldman/3522
Num.toStr for f32, f64, Dec
2022-07-13 21:30:05 -04:00
Richard Feldman
77afe0c1f1
Merge pull request #3503 from rtfeldman/string-memory-problems
String memory problems
2022-07-13 15:17:28 -04:00
Ayaz Hafiz
980c3f1421
Use decimal formatting for float Num.toStr 2022-07-13 12:35:49 -04:00
Richard Feldman
25facfa9c6
Expose capacity builtins 2022-07-13 12:19:37 -04:00
Ayaz Hafiz
b7c312d449
Support Num.toStr for f32, f64 2022-07-13 12:13:01 -04:00
Folkert
9a51737a47
fix use after free 2022-07-13 10:34:30 +02:00
Folkert
bc24841921
Str.fromUtf8Range: take list argument as owned; make sure it's decremented in the small string case 2022-07-12 22:57:48 +02:00
Folkert
e8530eaca5
improve lowlevel unwrapping 2022-07-08 22:13:13 +02:00
Folkert
c5ac4a2984
fix reallocation setting both length and capacity 2022-07-06 23:56:04 +02:00
Folkert
36b42fb62b
use existing capacity in Str.concat if possible 2022-07-06 17:59:48 +02:00
Folkert
52605fcca9
simplify string splitting LLVM codegen 2022-07-06 01:12:03 +02:00
Folkert
6d7c329698
Str.walkScalars 2022-07-04 18:01:19 +02:00
Folkert
1de9270ecf
Merge remote-tracking branch 'origin/trunk' into str-walk 2022-07-04 16:30:07 +02:00
Folkert
ab721dd3c1
Str.reserve 2022-07-04 14:57:20 +02:00
Folkert
a9ba08d8cb
appendScalar zig implementation 2022-07-04 13:58:39 +02:00
Folkert
4f965ec263
fix RocStr.capacity() in zig 2022-07-04 13:39:51 +02:00
Brian Carroll
e1d8d09472
builtins: move the output argument of Zig fromUtf8RangeC to first position 2022-07-04 11:24:39 +01:00
Brian Carroll
60d29c2e25
builtins: Move return pointer to first position for fromUtf8C 2022-07-04 11:24:39 +01:00
Brian Carroll
02ec30425c
wasm: Implement Str.split 2022-07-04 11:24:38 +01:00
Folkert
5904934887
rename countBytes -> countUtf8Bytes 2022-07-03 21:49:01 +02:00
Folkert
eeb271d07f
Str.splitFirst and Str.splitLast 2022-07-03 19:47:06 +02:00
Folkert
45eb8b9d77
add substringUnsafe in zig 2022-07-03 15:10:14 +02:00
Folkert
3cd56c3184
add Str.countBytes 2022-07-03 14:16:47 +02:00
Richard Feldman
c9e52b8311
Have startsWithCodePt share code with toScalars 2022-07-02 15:28:10 -04:00
Richard Feldman
cfb33cb414
Fix bug in 3-byte and 4-byte toScalars 2022-07-02 15:25:33 -04:00
Richard Feldman
d3ef05970f
zig fmt 2022-07-02 13:13:29 -04:00
Richard Feldman
9c9577c084
Add strToScalars empty string test 2022-07-02 13:13:28 -04:00
Richard Feldman
acb7cf99e1
Add Str.toScalars builtin 2022-07-02 13:12:12 -04:00
Richard Feldman
b1fe76adbf
Export Str.toScalars from Zig 2022-07-02 13:11:46 -04:00
Richard Feldman
5f20d31617
Add more strToScalars tests 2022-07-02 13:11:45 -04:00