Andrey
format!("{:x}", ...
Αλεχ
если че, вордпресс и жумла больше 80% всех сайтов в интернете под собой имеют
Αλεχ
к слову про "ненужность" и "говно"
Αλεχ
все эти реакты ангуляры асп.неты и прочие рельсы делят между собой оставшиеся два десятка процентов рынка
Денис
О, спасибо, проясняет.
кстати я хз как дабл-фри победить
Денис
хотя не, кажись знаю
Денис
impl Drop for DB { fn drop(&mut self) { std::mem::forget(std::mem::replace(&mut self.a, Vec::new())); } }
Loyd
Там, где нужен ангуляр реакты и прочее, это совсем не тот уровень сайтов, который wp и джумла охватывают
Loyd
Те 80% это бложики да интернет магазины
Αλεχ
так какая разницА?
Αλεχ
в области бложиков пхп лучше)
Alexander
impl Drop for DB { fn drop(&mut self) { std::mem::forget(std::mem::replace(&mut self.a, Vec::new())); } }
Что-то после такого я думаю может лучше два разных поля в структуре сделать :)
Денис
ну может forget и на оригинальный вектор сделать
Денис
безо всяких реплейсов
Alexander
Тоже не особо приятное решение :)
Антон
все эти реакты ангуляры асп.неты и прочие рельсы делят между собой оставшиеся два десятка процентов рынка
Легаси может быть на говне, если на момент его появления не было внятных альтернатив
Денис
Тоже не особо приятное решение :)
то есть unsafe блок это было окей? :)
Anton
Скажите а cargo умеет просто скопировать файлы в target/ директорию?
պլհկ
build.rs
Alex
в области бложиков пхп лучше)
щас же модно статик бложики на гитхаб.ио
LexsZero
в телеграмоканале
Alex
русоязычне да
Anton
build.rs
спасибо
Денис
а заревьювьте плиз кому не лень — https://gitlab.com/mexus/futures-retry :)
Александр
Нужна помощь с XSLT. При добавление пространства имён по умолчанию (например xmlns="http://www.w3.org/1999/xhtml") в xml, xsl и xsd - отоброжается пустая страница. Стоит убрать его - всё нормально (xsl форматирует xml корректно) . Могу прислать пример
Kerrigan
D:
Kerrigan
где ты его выкопал вообще?
Oleg
щас же модно статик бложики на гитхаб.ио
на жекилах хекилах? Это по-моему было модно года три назад
Alexander
Мда. Ты вообще книги пытался читать?
Чёто мне кажется может мы не дополняли друг-друга, но я до сих пор уверен что значения живут не до конца функции. и я это читал вроде как. Может перечитать надо.
Alexander
И я не прав похоже. Хм, хм. Ведь даже порядок обратный освобождения упоминали, а иначе его бы не было.
Alex
Pavel
Чёто мне кажется может мы не дополняли друг-друга, но я до сих пор уверен что значения живут не до конца функции. и я это читал вроде как. Может перечитать надо.
возможно где-то и есть оптимизации на уровне компилятора что освобождают ресурсы раньше блока скоупа, но в плане понимания на уровне синтаксиса - то есть привязка в описании что ресурс освобождается по выходу из скоупа. потому обернув {} внутри функции тв можешь получить своего рода под блок и так можешь вероятно более гранулированно освобождать ресурс (хотя я не чекал как оно под капотом)
Alexander
Буду искать откуда я это выцепил. Для меня казалось очень логичным убивать как только он дальше в коде не используется и память это экономит. А компилятору понять где это место довольно просто.
Loo
Чёто мне кажется может мы не дополняли друг-друга, но я до сих пор уверен что значения живут не до конца функции. и я это читал вроде как. Может перечитать надо.
Блок/функция должна владеть переменной чтобы был вызван дроп в конце, если функция заимствует переменную то и дропа никакого ожидать не стоит. Исключениями в стандартной библиотеке например являются счётчики ссылок.
Loo
Вопрос в словах "в конце". Для меня это было "как только уже не нужна".
Ага. Понял. Вот если интересно прочитать: https://rustbyexample.com/trait/drop.html
Loo
> The Drop trait only has one method: drop, which is called automatically when an object goes out of scope. 
ㅤ
А сейчас все лайфтаймы отслеживаются на границах блоков
ㅤ
Хз
ㅤ
Говорят, что сложна
Денис
на самом деле объект не всегда хранится до выхода из {...}, если это временное значение, то оно хранится до ;, но сути это не меняет
Денис
и я кстати не уверен, что логично всё уничтожать прям сразу же
Денис
если всё откладывается на выход из фукнции, у llvm появляется шанс оптимизировать все деструкторы, особенно если там были последовательные выделения в куче
Денис
ну эт так, мои разглагольствования
Αλεχ
О чем и речь
Αλεχ
Наоборот, имеет смысл не освобождать память пока свободная ещё есть
Денис
ну, с другой стороны, тот же линукс менеджит память неплохо
Денис
то есть если сделать free, а потом сразу malloc на не бОльшую величину, то ОС предпримет ровно ноль действий по этому поводу))
LexsZero
не линукс, а либцэ
Денис
хм
Денис
верное замечание )
Denis
Non lexical lifetimes сейчас на стадии «помогите нам доделать, у нас почти все готово». Они вроде есть в роадмэпе на 2018
Sergey
И в чем суть вообще
Sergey
Зачем они?
Denis
https://github.com/rust-lang/rust/issues/43234
Denis
Смысл в том, чтобы компилятор сам выводил время жизни переменной исходя из кода функции. То есть можно будет не городить {} ради этого вручную
Denis
В первом же комменте ссылочка на драфт и подробное описание
Sergey
О ништяк
Marat
Скорее бы nll, а то сейчас лайфтаймы переусложненны слишком
պլհկ
feature(nll) уже доступно так-то
Marat
feature(nll) уже доступно так-то
Так не в стейбле же
Marat
С нлл ещё сложней
Для компилятора только
Marat
Так то пользоваться проще. Не мешает, когда не нужно
պլհկ
Сейчас правила простые, на ошибки можно не глядя говорить поставь {}
պլհկ
А с ними будут *НЮАНСЫ*