Commit graph

104 commits

Author SHA1 Message Date
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
Richard Feldman
9803e3ab01
Fix bug with 2-byte UTF-8 chars 2022-07-02 13:11:45 -04:00
Richard Feldman
598d03737c
Use RocStr.fromSlice in test 2022-07-02 13:11:45 -04:00
Richard Feldman
46c96be6ce
Rename toCodePts to toScalars
These code points will all be Unicode Scalar Values,
so might as well be more precise about the name.
2022-07-02 13:11:44 -04:00