Size: a a a

2021 April 04

M(

MIT/Yardanico (alt) in ru.nim.talks
обычно разные апишки хотя бы длину возвращают
источник

A

Alexander in ru.nim.talks
MIT/Yardanico (alt)
правда странно что у тебя именно указатель на начало и конец
... оптимизируюссс
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
🤔
источник

A

Alexander in ru.nim.talks
MIT/Yardanico (alt)
и да, mystr.addr неправильно, т.к. нимовские строки не просто указатель на массив данных
ага, да, про это хорошо помню
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
ещё кстати, если тебе в парсере нужно проверять на конец строки, можешь cstring заюзать
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
это без копии, но при этом тебе станет доступен нулевой байт в конце строки
источник

A

Alexander in ru.nim.talks
а у меня нулевого байта нет
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
он есть всегда
источник

A

Alexander in ru.nim.talks
хотя, хм, я же могу сделать
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
во всех нимовских строках
источник

A

Alexander in ru.nim.talks
ну в плане у меня нету в данных из которых копирую
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
я про то, что если ты много проверяешь, если попал уже в конец строки, то можно cstring
источник

A

Alexander in ru.nim.talks
сейчас доделаю и покажу
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
var mystr = "hello world"
var mystrC = cstring(mystr) # нет копии

for i in 0 .. mystrC.len:
 echo repr mystrC[i]
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
mystrC[mystrC.len] будет нулевой терминатор
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
просто иногда в парсерах полезно
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
но это если прям нужно до максимума оптимизировать
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
с тем же ARC получение длины строки или последовательности  происходит без всяких указателей
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
из-за этого, к примеру, даже длина Table тоже без всяких указателей берётся
источник

A

Alexander in ru.nim.talks
Продолжаю мучать бенчмарки

сделал C-like версию, но что-то она отстаёт, что странно:
https://github.com/inv2004/newfix/blob/master/src/newfix/streamfix.nim#L48
источник