Size: a a a

Compiler Development

2019 October 09

E

EgorBo in Compiler Development
кстати не знаю относится к этому или нет, но на винде memcpy все равно делает memmove
источник

E

EgorBo in Compiler Development
(оверхед на проверку пересечения но типа безопаснее)
источник

T

Tagir in Compiler Development
В джаву давно один сторонний контрибьютор пытается пропихнуть новую супербыструю и правильную реализацию Double.toString, но всем пофиг :-( https://mail.openjdk.java.net/pipermail/core-libs-dev/2019-September/062580.html
источник

T

Tagir in Compiler Development
Там помимо целевой строки нет аллокаций.
источник

SS

Sergey Sverdlov in Compiler Development
Я в шоке. Пустячный на первый взгляд вопрос, а сколько нетривиальных алгоритмов придумано! И придумывают и придумывают... :) Это про Double to String.
источник

M

MaxGraey in Compiler Development
Tagir
Там помимо целевой строки нет аллокаций.
Так и не должно быть =)
источник

M

MaxGraey in Compiler Development
MaxGraey
В принципе можно сделать вообще без таблицы когда приоритетом будет размер а не скорость, это не должно быть сильно сложно. У нас в стандартной библиотеке я частенько разделяю speed/size подходы через условную компиляцию
источник

E

EgorBo in Compiler Development
я помню для интов тустринг улучшал
источник

E

EgorBo in Compiler Development
при помощи popcnt
источник

E

EgorBo in Compiler Development
ой или lzcnt (для хекс формата)
источник

VK

Val Krylov in Compiler Development
Я помню, как дебажил double to string под arm в древней версии SpiderMonkey 10 лет назад. Делали SVG+CSS+JS движок в LG - приложения работают, тесты жабьего JSR 226 работают, всё отлично. Но некоторые внутренние наши же демки крашились при запуске на мобилах, при том, что остальные работали. Оказалось, что проблема была именно там. Пока в DOM из JS записывались инты - работало, как только плавучка - нет.
источник
2019 October 10

а

а это кто in Compiler Development
Val Krylov
Я помню, как дебажил double to string под arm в древней версии SpiderMonkey 10 лет назад. Делали SVG+CSS+JS движок в LG - приложения работают, тесты жабьего JSR 226 работают, всё отлично. Но некоторые внутренние наши же демки крашились при запуске на мобилах, при том, что остальные работали. Оказалось, что проблема была именно там. Пока в DOM из JS записывались инты - работало, как только плавучка - нет.
LG это что?
источник

T

Tagir in Compiler Development
Sergey Sverdlov
Я в шоке. Пустячный на первый взгляд вопрос, а сколько нетривиальных алгоритмов придумано! И придумывают и придумывают... :) Это про Double to String.
Там у них целое научное исследование. Оказывается текущий алгоритм не только медленный, но и не всегда правильный. И вообще вопрос, какой алгоритм правильнее, не такой тривиальный
источник

DP

Dmitry Ponyatov in Compiler Development
Какие еще гомоиконичные среды программирования есть, кроме вариаций Lisp и Smalltalk?
источник

DP

Dmitry Ponyatov in Compiler Development
зы: ST не нравится переусложненностью ядра
источник

DP

Dmitry Ponyatov in Compiler Development
что-нибудь на графовом представлении программ кому попадалось? или прямая работа с атрибутными грамматиками
источник

МБ

Михаил Бахтерев in Compiler Development
MaxGraey
На Rust есть кодогенерация, если известен тип объекта, что очень сильно ускоряет десереализацию. Собственно есть SAX и DOM способ разбора JSON. Так вот, зная предпологаемый тип можно нагенерить аксессоров для SAX заранее и из 5мб-ного JSON объекта хирургически выделить и прочитать только те поля что заданы в сигнатуре, вместо всего объекта / json-данных целиком
Того же можно достичь при помощи occurence typing, которое вычисляется по ветвлениям. То есть, если написано if (valid?(x)) { ... }, то в then-ветке много информации о x, в том числе и о форме.  Я не знаю, лучше ли этот метод (он явно сложнее обычной типизации, с другой стороны, гибче, например, можно  отличить byte-integer-greater-then const от просто integer), но он существует. В Stalin его использовали, и для численных задач получался быстрый код. Очевидный недостаток -- скорость компиляции. Очевидное достоинство -- можно не напрягать пользователя дополнительным языком типов. Остальное не очевидно, и требует отдельного изучения.
источник

AK

Andrei Kurosh in Compiler Development
Михаил Бахтерев
Того же можно достичь при помощи occurence typing, которое вычисляется по ветвлениям. То есть, если написано if (valid?(x)) { ... }, то в then-ветке много информации о x, в том числе и о форме.  Я не знаю, лучше ли этот метод (он явно сложнее обычной типизации, с другой стороны, гибче, например, можно  отличить byte-integer-greater-then const от просто integer), но он существует. В Stalin его использовали, и для численных задач получался быстрый код. Очевидный недостаток -- скорость компиляции. Очевидное достоинство -- можно не напрягать пользователя дополнительным языком типов. Остальное не очевидно, и требует отдельного изучения.
В тайпскрипте такое используется, но для этого функция valid должна быть специальным образом проаннотирована
источник

AT

Alexander Tchitchigin in Compiler Development
Dmitry Ponyatov
Какие еще гомоиконичные среды программирования есть, кроме вариаций Lisp и Smalltalk?
Io? Или это вариация SmallTalk?
источник

AT

Alexander Tchitchigin in Compiler Development
Forth гомоиконным не считается?
источник