Как стать автором
Обновить
22
0
Тимур Исходжанов @timurrrr

Пользователь

Отправить сообщение
Хотелось бы для сравнения посмотреть результаты такого же тестирования, используя интегрированную графику и вынув видеокарту.
Самому интересен бесшумный компьютер, а интегрированной графики уже несколько лет хватает за глаза :)
Записи выступлений: channel9.msdn.com/Events/GoingNative/2013
К сожалению, там пока появились только видео первого дня.
Как насчёт такого?

$ for F in *.{h,c}; do echo "/*** $F ***/"; cat $F; echo; done

/*** h.h ***/
struct S {
  double f;
};

struct S f(void);

/*** c.c ***/
#include "h.h"

int main(void) {
  struct S s = f();
  printf("s.f = %lf\n", s.f);
  return (s.f != 42.0);
}

/*** m.c ***/
#include "h.h"

struct S f(void) {
  struct S ret;
  ret.f = 42.0;
  return ret;
}


Под CL всё ок:
$ (cl -nologo -O2 -c -Foc.obj c.c && cl -nologo -Fec.exe -O2 m.c c.obj) >/dev/null && ./c.exe ; echo $?
s.f = 42.000000
0


CL + MinGW — увы:
$ cl -nologo -O2 -c -Foc.obj c.c >/dev/null && C:/mingw/bin/gcc -O2 m.c c.obj 2>/dev/null && ./a.exe ; echo $?
s.f = 0.000000
1
Пардон, видимо проглядел в правилах?..

В каком-то смысле это не совсем перевод, так как я сам являюсь активным участником данного процесса и могу ответить на некоторые вопросы в комментариях; просто вместо того чтобы придумывать свой велосипед текст, я решил перевести краткий и ёмкий пост Chandler'а. Надеюсь, это частично искупает мою вину.
Увы, у меня сейчас под рукой нет винды и mingw.
Попробуйте воспроизвести с gcc llvm.org/PR15556?
И там кажется для наглядности наоборот нужно, чтобы get_data компилировалась gcc/mingw/clang
Попробуйте
struct S { int x, y; };
и
struct S { int x, y, z; };
На практике, такое теоретическое разделение не совсем пригодно. Один и тот же cdecl на Windows под mingw и msvc реализован по разному.
Давно пробовали? Там недавно серьёзные подвижки были.
С++ Mingw тоже не совместим с С++ ABI студии, ничего особо страшного в этом нет.
Всяко бывает, в каких-то проектах интерфейсы между библиотеками протянуты C++ные.
С-ABI и COM работают.
Что Вы подразумеваете под C-ABI? Например, передача и возврат POD структур по значению в Itanium ABI и msvc организованы по-разному. Да и сам layout структур, кажется, тоже разный (просто передачей по указателю не обойтись).
Если что-то можно собрать, то это не значит, что оно работает, верно?

Раньше можно было использовать только Itanium C++ ABI (вроде mingw, насколько я понимаю). Использование скомпилированных для msvc библиотек с C++ным интерфейсом (и «стандартным» виндовым ABI) было невозможным.
Возможно, я не совсем понимаю чего именно Вы хотите, но по идее отдельной сборки/поддержки для clang не потребуется, так как clang как раз и старается быть настолько совместимым с msvc, чтобы лишних телодвижений не требовалось :)
Я так понимаю, в южном полушарии на этих широтах нет таких проблем договориться, как с постсоветским и прочим холодновоенным пространством.
Я согласен на 4.3" :)
А также всяческие гороскопы и «камеры раздевания»
А где в моём, если не секрет?
Самая максимальная цикломатическая сложность, равная 2782, принадлежит функции ValidateChunkAMD64() в проекте Chromium. Но её пришлось дисквалифицировать из состязания. Функция находится в файле validator_x86_64.c, который является автогенерируемым. Жаль. А то был бы эпичный рекордсмен. Я и близко с такой цикломатической сложностью не сталкивался.

Это ещё не самая сложная её версия. Промежуточные версии, насколько я знаю, в trunk так и не попали, так как требовали 10+ минут на компиляцию… или просто сносили крышу компилятору и он крэшился :)
Есть ли надежда, что видео в этом году будут появляться сразу после занятий, а не в конце учебного года?
А где ссылка на github? :)
BTW, why don't we comment on this post in English? :-)

Информация

В рейтинге
Не участвует
Откуда
Россия
Дата рождения
Зарегистрирован
Активность