Size: a a a

Compiler Development

2020 March 01

А

Алексей in Compiler Development
K R
У меня на gcc 4.9.2 компилируется

X X;

X - это объявленная выше структура.
оу
источник

А

Алексей in Compiler Development
ну это фиаско
источник

А

Алексей in Compiler Development
хотя тут X наверное будет уже переменной
источник

KR

K R in Compiler Development
А :: кстати, показывают  родство между namespace и классом со статическими функциями.

То есть ::, -> и . - это практически единственные некостыльные элементы С++. Это доступ к элементам Типов и элементам Объектов.
источник

KR

K R in Compiler Development
Нет, тоже костыльно - смешиваются типы и пространства имён. И всё-таки это С++.
источник

EM

Evgenii Moiseenko in Compiler Development
А кто-нибудь из знающих людей может кратко объяснить чем отличаются модули в Хаскелле от модулей в Окамле (с точки зрения раздельной компиляции, кросс-модульных оптимизаций и вот этого всего, то что в Окамле модули являются объектом первого класса и так известно).
Я слышал, что камлисты очень гордятся своими модулями, а хаскель за его систему модулей часто ругают, вот хочется узнать подробности.
источник

K

Kakadu in Compiler Development
Ну выкинь их камла функторы, вложенные модули, типы модулей, сделай абстрактные типы просвечивающимися для компилятора сквозь интерфейс и получишь примерно хаскель
источник

λ

λоλторт in Compiler Development
надо не забыть ещё сделать язык ленивым по умолчанию и прикрутить нормальный оптимизатор под это дело
источник

EM

Evgenii Moiseenko in Compiler Development
Kakadu
Ну выкинь их камла функторы, вложенные модули, типы модулей, сделай абстрактные типы просвечивающимися для компилятора сквозь интерфейс и получишь примерно хаскель
да, это все понятно ))
мне интересно какие различия именно с точки зрения реализации системы модулей в компиляторе, как это все влияет на раздельную компиляцию, скорость компиляции, оптимизации итп
источник

А

Алексей in Compiler Development
в окамл же модули не просто модули, а вообще особые сущности
источник

А

Алексей in Compiler Development
а в хаскеле просто обычные модули
источник

KR

K R in Compiler Development
Evgenii Moiseenko
да, это все понятно ))
мне интересно какие различия именно с точки зрения реализации системы модулей в компиляторе, как это все влияет на раздельную компиляцию, скорость компиляции, оптимизации итп
Ну в камле есть костыль first class модули.

Это всунуто в компилятор фришем аланом. Можете найти соответствующий ПР.
источник

EM

Evgenii Moiseenko in Compiler Development
K R
Ну в камле есть костыль first class модули.

Это всунуто в компилятор фришем аланом. Можете найти соответствующий ПР.
Почему же first class modules это костыль?
источник

А

Алексей in Compiler Development
Вообще смахивает на костыль, да. Просто модули обычно модули, а не средство абстракции.
источник

А

Алексей in Compiler Development
лучше уж пожалуй тайпклассы сделать, нежели модули
источник
2020 March 02

KR

K R in Compiler Development
Evgenii Moiseenko
Почему же first class modules это костыль?
Потому, что реализовано опосля всего и использование весьма C++подобное.

Кроме того, есть йазыг 1ML, в котором, вроде, сделано нормально.
источник

M

MaxGraey in Compiler Development
Народ нужно коллективная помошь. В musl 1.2.0 нахол странную особенность в новых функциях log / exp / pow. Сконпилировал даже несколько версий и боевой пример через emscripten что бы наглядно на это посмотреть:
https://maxgraey.github.io/mandelbrot-issue-demo/#bug

Есть так же файл с входными значениями которые показывает что musl 1.2.0 существенно отличается от страндарнуой libc на примере log2(0.5 * log(x)). Результаты и разницу в ULP можно посмотреть здесь:
https://github.com/MaxGraey/mandelbrot-issue-demo/blob/master/tests/results.txt

Если у кого есть Clang или GCC. (Любой версии) то могли бы вы запустить это тест
https://github.com/MaxGraey/mandelbrot-issue-demo/tree/master/tests

и опубликовать результаты в этом issue:
https://github.com/MaxGraey/mandelbrot-issue-demo/issues/1

Похоже результаты сильно разнятся от CPU. У Rich Felker они вообще не разнятся например

Спасибо
источник

K

Kakadu in Compiler Development
MaxGraey
Народ нужно коллективная помошь. В musl 1.2.0 нахол странную особенность в новых функциях log / exp / pow. Сконпилировал даже несколько версий и боевой пример через emscripten что бы наглядно на это посмотреть:
https://maxgraey.github.io/mandelbrot-issue-demo/#bug

Есть так же файл с входными значениями которые показывает что musl 1.2.0 существенно отличается от страндарнуой libc на примере log2(0.5 * log(x)). Результаты и разницу в ULP можно посмотреть здесь:
https://github.com/MaxGraey/mandelbrot-issue-demo/blob/master/tests/results.txt

Если у кого есть Clang или GCC. (Любой версии) то могли бы вы запустить это тест
https://github.com/MaxGraey/mandelbrot-issue-demo/tree/master/tests

и опубликовать результаты в этом issue:
https://github.com/MaxGraey/mandelbrot-issue-demo/issues/1

Похоже результаты сильно разнятся от CPU. У Rich Felker они вообще не разнятся например

Спасибо
Из слов не понятно, нужно ли иметь мазл, чтобы компилять тесты
источник

K

Kakadu in Compiler Development
Ну и ещё тся/ться
источник

M

MaxGraey in Compiler Development
Kakadu
Из слов не понятно, нужно ли иметь мазл, чтобы компилять тесты
нет
источник