Size: a a a

Compiler Development

2020 January 17

A

Alex Ф-ф-фэils!🌠︙ in Compiler Development
ща вот JFrog и Bintray очень хорошо работают на конаном, в общем, и Microsoft над vcpkg;
источник

A

Alex Ф-ф-фэils!🌠︙ in Compiler Development
Alex Ф-ф-фэils!🌠︙
вроде бы они уже опакечены в конан-централе или у бинкрафтеров
источник

A

Alex Ф-ф-фэils!🌠︙ in Compiler Development
оно в итоге все будет собираться примерно в 4 команды:
mkdir build ; cd build;
conan remote add bincrafters https://api.bintray.com/conan/bincrafters
conan install --build missing
cmake ..
cmake --build .
источник

E

EgorBo in Compiler Development
ну ок, хочу еще в свой двиг добавить https://github.com/recastnavigation/recastnavigation
какой еще пакетный менегер добавлять в проект? ))
источник

E

EgorBo in Compiler Development
(либа для поиска пути мобов - навмеш)
источник

A

Alex Ф-ф-фэils!🌠︙ in Compiler Development
тогда надо сделать рецепт для нее
источник

E

EgorBo in Compiler Development
после 10ой такой либы рецепт выпишут уже мне
источник

E

EgorBo in Compiler Development
короче не стать мне С++ архитектором
источник

A

Alex Ф-ф-фэils!🌠︙ in Compiler Development
ну новые либы надо писать уже сразу с прицелом на то, что их рецепт надо делать для конана
источник

A

Alex Ф-ф-фэils!🌠︙ in Compiler Development
EgorBo
ну ок, хочу еще в свой двиг добавить https://github.com/recastnavigation/recastnavigation
какой еще пакетный менегер добавлять в проект? ))
ну кстати у этой либы нормальный смак, рецепт простой будет
источник

МБ

Михаил Бахтерев in Compiler Development
K R
Я по крайней мере ещё не слышал о компиляторе с x86 asm в Javascript.
источник

VK

Vladimir Kazanov in Compiler Development
EgorBo
говорили уже 20 лет про разные языки...
Или вот про Си ещё так говорили апологеты с++ :-)
источник

МБ

Михаил Бахтерев in Compiler Development
MaxGraey
Что весьма интерестно в данном случае C++ и Rust выводят разные результаты:
https://godbolt.org/z/79LKrX

С++ - бесконечный цикл
Rust  - возврящает «1»
А почему это должно удивлять? Написаны разные по смыслу циклы, вот и результат разный. В сишечке for x in A..B пишется идиоматически не for(x = A; x <= B; x++), а так: for(x = A, n = B - A; n-- >= 0; x++)
источник

TS

Timur Safin in Compiler Development
Михаил Бахтерев
А почему это должно удивлять? Написаны разные по смыслу циклы, вот и результат разный. В сишечке for x in A..B пишется идиоматически не for(x = A; x <= B; x++), а так: for(x = A, n = B - A; n-- >= 0; x++)
кхмм, кхмм, никогда не встречал такого "идиоматичного" кода (и слава богу)
источник

TS

Timur Safin in Compiler Development
EgorBo
long же
вообще, кажется, там всё же ошибка с вычислением типа для беззнаковых констант. Если поменять 0x7FFFFFFF на скажем 0x6FFFFFF то auto станет unsigned int и код ожидаемо сделает одну итерацию, но вот 0x7FFFFFF у него уже не влезает в unsigned int, и становится signed long (похоже). Что генерирует бесконечный цикл.
( Или я чего-то недопонимаю в implicit integer conversions в С++?)
https://godbolt.org/z/kTZZiA
источник

МБ

Михаил Бахтерев in Compiler Development
Timur Safin
кхмм, кхмм, никогда не встречал такого "идиоматичного" кода (и слава богу)
Так как раз для всяких разных крайних случаев. Все эти целочисленные тонкости с диапазонами всегда специально обсуждаются в учебниках: деление массивов пополам, границы итераций, что по возможности правильнее сравнивать с нулём, а не со значением и т.д. и т.п.
источник

МБ

Михаил Бахтерев in Compiler Development
Timur Safin
вообще, кажется, там всё же ошибка с вычислением типа для беззнаковых констант. Если поменять 0x7FFFFFFF на скажем 0x6FFFFFF то auto станет unsigned int и код ожидаемо сделает одну итерацию, но вот 0x7FFFFFF у него уже не влезает в unsigned int, и становится signed long (похоже). Что генерирует бесконечный цикл.
( Или я чего-то недопонимаю в implicit integer conversions в С++?)
https://godbolt.org/z/kTZZiA
Почему не влезет? 32bit unsigned int - это до 2^32 - 1, то есть, до 0xffffffff, что больше 0x7fffffff
источник

TS

Timur Safin in Compiler Development
вот об этом и вопрос 0x7fffffff априорно помещается в диапазон и signed и unsigned int
источник

AS

Aleksey Shipilev in Compiler Development
А я думал, что это выводится из типа литерала, который по-умолчанию int? См. https://cppinsights.io/s/6d40660d
источник

VM

Victor Miasnikov in Compiler Development
Vasiliy Yorkin
Туплю, я понимаю проблему, но не понимаю предолженное решение (p.166 of the Tiger-book): чего там куда нужно добавить (?) 😂 как это может выглядеть в псевдо-коде?

Вот так у меня сейчас происходит переписывание For -> Let+While: http://ix.io/27A2/ocaml, там ~? это "dummy location", тк при переписывании\синтезе аст этой инфы нет (но можно и не смотреть это, наверное)
Детальный обзор методов надёжной реализации циклов FOR есть в статье:

2005-09-25: [en] The Modula-3 FOR loop

См.
www.roland-illig.de/articles/index.html
источник