C11 (стандарт языка C ISO/IEC 9899:2011)

Модератор: Модераторы разделов

Аватара пользователя
Olej
Сообщения: 659
ОС: Fedora, Mint, Debian, QNX
Контактная информация:

C11

Сообщение Olej »

C11
C11 или ISO/IEC 9899:2011 (неофициально C1X) — новый стандарт для языка Си (ISO/IEC 9899:2011), который заменил существующий стандарт C99. Официально о выпуске стандарта было объявлено 19 декабря 2011 года. Эта версия стандарта большей частью стандартизирует возможности, существующие в распространённых современных компиляторах. Из-за плохой совместимости текущих реализаций C99 со стандартом, C11 включает в себя больше выборочных возможностей для упрощения совместимости со стандартом ядра языка. Хотя стандарт принят совсем недавно, но в GCC версии 4.6 уже есть зачаточная поддержка некоторых возможностей, описанных в черновике стандарта.

Последняя черновая спецификация (доступная для бесплатного скачивания) имеет название N1570 и была издана в апреле 2011 года.

Новый стандарт прошел заключительный пересмотр черновика 10 октября 2011 года и был официально ратифицирован ISO и опубликован в ISO / IEC 9899: 2011 8 декабря 2011 года, без каких-либо замечаний.

Определение стандартного макроса __STDC_VERSION__ со значением 201112L дает указание,что присутствует поддержка C11. Некоторые возможности C11 поддерживаются GCC начиная с версии 4.6. В Clang поддержка начинается с версии 3.1, а в IBM XL C поддержка с версии 12.1.

N1570, последний черновик стандарта C1X На 25 апреля 2011 года, датирован 2011-04-12
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: C11

Сообщение NickLion »

Э-э-э… немного новость запоздала, лет так на 5.
Спасибо сказали:
Аватара пользователя
Olej
Сообщения: 659
ОС: Fedora, Mint, Debian, QNX
Контактная информация:

Re: C11

Сообщение Olej »

NickLion писал(а):
27.05.2016 11:04
Э-э-э… немного новость запоздала, лет так на 5.

Э-э-э… :unsure: немного новость не запоздала, а преждевременно поспешила ... лет так на 2-3, потому что существующие компиляторы (GCC, Clang ... виндаунов я в расчёт не беру) стандарт ISO/IEC 9899:2011 в полной мере ещё не поддерживают.

И ещё непреятность в тос, что C11 вводит, например, вместо (или в дополнение) библиотечного API потоков (pthread_t - POSIX 1003.b, расширение реального времени) совсем другую реализацию потоков, в языке (а не в библиотеках).
И всё бы ничего, но примеров кода по использованию этого механизма практически нигде нет.

А если вы, NickLion, такой пострел ("наш пострел везде поспел" :drinks: ), то вы взяли бы и привели такие примеры, поделились с общественностью...
Тем более, что тема эта для того и помещена в разделе "Программирование", а вовсе не в разделе "Новости".
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: C11

Сообщение NickLion »

Olej писал(а):
27.05.2016 12:30
NickLion писал(а):
27.05.2016 11:04
Э-э-э… немного новость запоздала, лет так на 5.

Э-э-э… :unsure: немного новость не запоздала, а преждевременно поспешила ... лет так на 2-3, потому что существующие компиляторы (GCC, Clang ... виндаунов я в расчёт не беру) стандарт ISO/IEC 9899:2011 в полной мере ещё не поддерживают.

В полной мере — да, но в приведённой новости упоминается древний 4.6, когда актуальная версия — 6.1. И на сегодня поддержка очень близка к полной.

Olej писал(а):
27.05.2016 12:30
И ещё непреятность в тос, что C11 вводит, например, вместо (или в дополнение) библиотечного API потоков (pthread_t - POSIX 1003.b, расширение реального времени) совсем другую реализацию потоков, в языке (а не в библиотеках).

:crazy: Что значит в языке? Функции находятся в библиотеках, вроде libc, libm и т.п. Раздел стандарта 7.26 Threads <threads.h> относится к какой части? 7. Library, а не 6. Language.

Olej писал(а):
27.05.2016 12:30
И всё бы ничего, но примеров кода по использованию этого механизма практически нигде нет.

А если вы, NickLion, такой пострел ("наш пострел везде поспел" :drinks: ), то вы взяли бы и привели такие примеры, поделились с общественностью...

Ну, так об этом и надо говорить, если это интересует, а не просто привести новость, что 5 лет назад вышел новый стандарт. Если сильно интересно, могу написать примерчики.

Olej писал(а):
27.05.2016 12:30
Тем более, что тема эта для того и помещена в разделе "Программирование", а вовсе не в разделе "Новости".

Что эта тема делает в разделе программирование вообще непонятно. Исходное сообщение явно новостного характера.
Спасибо сказали:
Аватара пользователя
Olej
Сообщения: 659
ОС: Fedora, Mint, Debian, QNX
Контактная информация:

Re: C11

Сообщение Olej »

NickLion писал(а):
27.05.2016 15:53
Если сильно интересно, могу написать примерчики.

Сильно интересует :rolleyes:
Давай! :drinks:
Спасибо сказали:
Аватара пользователя
Olej
Сообщения: 659
ОС: Fedora, Mint, Debian, QNX
Контактная информация:

Re: C11

Сообщение Olej »

NickLion писал(а):
27.05.2016 15:53
:crazy: Что значит в языке? Функции находятся в библиотеках, вроде libc, libm и т.п. Раздел стандарта 7.26 Threads <threads.h> относится к какой части? 7. Library, а не 6. Language.

Имелось в виду следующее:

До C99 (включительно) использовать потоки можно только было в модели описанной расширением POSIX 1003b, подключением #include <pthread.h>, на сборке необходимо явно подключить внешнюю библиотеку -l pthread.
При этом создание потока в простейшем виде выглядит примерно так:

Код: Выделить всё

#include <pthread.h>
   void* threadfunc( void* data ) { // функция потока
      ...
      pthread_exit( NULL );
   };
...
   pthread_t tid;
   pthread_create( &tid, NULL, threadfunc, NULL );
   pthread_join( tid, NULL );

Сам стандарт языка, язык C ничего не знает вообще о каких-либо потоках.

В C11 всё меняется!
Теперь в самом стандарте языка определяются многопоточные сущности, но совершенно отличающиеся от POSIX 1003b.
Теперь эквивалент того, что выше, выглядит как-то так:

Код: Выделить всё

#include <threads.h>
   thrd_start_t threadfunc;
   ...
   int threadfunc( void* data ) {
      ...
      thrd_exit( thrd_success );
   }
...
   thrd_t tid;
   int ret = thrd_create( &tid, threadfunc, NULL );
   thrd_join( tid, &ret );

Как легко видеть, это совершенно другое (другие типы данных, прототипы функций, возвращаемые значения...).
Теперь это всё постулируется внутри языка C, неважно, определяется это в разделе 6 или 7 :laugh: ... для этого не требуется сторонней библиотеки libpthread.so !
Спасибо сказали:
Аватара пользователя
Olej
Сообщения: 659
ОС: Fedora, Mint, Debian, QNX
Контактная информация:

Re: C11

Сообщение Olej »

NickLion писал(а):
27.05.2016 15:53
В полной мере — да, но в приведённой новости упоминается древний 4.6, когда актуальная версия — 6.1. И на сегодня поддержка очень близка к полной.

По поводу поддержки, полноты и актуальных версий - тоже хотелось бы уточнений...

Возьмём практически самую свежую из доступных версий дистрибутива Linux (декабрь 2015), с последними обновлениями ядра, библиотек и инструментов (25 мая 2016):

Код: Выделить всё

[olej@dell ch2]$ lsb_release -ircd
Distributor ID: Fedora
Description:    Fedora release 23 (Twenty Three)
Release:        23
Codename:       TwentyThree

[olej@dell C99]$ uname -a
Linux dell.localdomain 4.4.9-300.fc23.x86_64 #1 SMP Wed May 4 23:56:27 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

Код: Выделить всё

[olej@dell C99]$ gcc --version
gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6)
Copyright (C) 2015 Free Software Foundation, Inc.
Это свободно распространяемое программное обеспечение. Условия копирования
приведены в исходных текстах. Без гарантии каких-либо качеств, включая
коммерческую ценность и применимость для каких-либо целей.


Смотрим многопоточную поддержку C11 ... на самом начальном уровне:

Код: Выделить всё

[olej@dell linux]$ find /usr/include/ -name threads.h
[olej@dell linux]$

Нет такой поддержки!
Нет даже файлов хэдеров... никто ни о чём подобом и не слышал...
Поиск по контексту thrd_t в /usr/include тоже ничего не даёт.

Вопрос: с какой версии GCC и c какой версии CLang реализуется многопоточная модель C11?
Спасибо сказали:
Аватара пользователя
Olej
Сообщения: 659
ОС: Fedora, Mint, Debian, QNX
Контактная информация:

Re: C11

Сообщение Olej »

Olej писал(а):
27.05.2016 17:55
Вопрос: с какой версии GCC и c какой версии CLang реализуется многопоточная модель C11?

Вот из-за таких конкретных вопросов, актуальных только для практически работающих программистов, эта тема и отнесена к разделу "Программирование", а не к разделу "Новости" - это обсуждение применимости C11.

P.S. А то, что понимается как "новости из мира IT" мне вообще на хрен не интересны ... все и любые, в принципе (IMHO :drinks: ).
Всё, что мне нужно, я и сам вовремя узнаю. :rolleyes:
Спасибо сказали:
Аватара пользователя
Olej
Сообщения: 659
ОС: Fedora, Mint, Debian, QNX
Контактная информация:

Re: C11

Сообщение Olej »

Olej писал(а):
27.05.2016 17:55
Нет такой поддержки!
Нет даже файлов хэдеров... никто ни о чём подобом и не слышал...
Поиск по контексту thrd_t в /usr/include тоже ничего не даёт.

Любопытно! :unsure:
Контекстный поиск по ключу "GCC thrd_t" даёт только ссылки на ... умничания-рассуждения ВУЗ-овских пЫдагогов ... "доцентов с кандидатами", типа вот такого Сибирский университет бла-бла-бла... с примерами кода:

Код: Выделить всё

#include <threads.h>
void threadfun() {
   printf("Hello from thread\n");
}

int main() {
   thrd_t tid;
   int rc;
   rc = thrd_create( &tid, threadfun, NULL )
   if (rc != thrd_success) {
      fprintf(stderr, "Error creating thread\n");
      exit(1);
   }
   thrd_join(tid, NULL);
   /* Wait */
   return 0;
}

(именно так, без ; в конце строчки thrd_create).
Так такое даже компилироваться элементарно не станет, потому что потоковая функця в этой модели имеет другой прототип и должна возвращать int значение.

Такое впечатление, что работающих примеров С11 модели многопоточности просто нет в природе (т.е. в сети)!
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: C11

Сообщение Bizdelnick »

https://gcc.gnu.org/wiki/C11Status
Что касается многопоточности, дело-то тут не за компилятором, а за libc.
Upd. В musl вроде как оно есть.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Olej
Сообщения: 659
ОС: Fedora, Mint, Debian, QNX
Контактная информация:

Re: C11

Сообщение Olej »

Bizdelnick писал(а):
27.05.2016 18:57
Что касается многопоточности, дело-то тут не за компилятором, а за libc.

Компилятор и libc.so - это неразрывная пара, как только минимально меняется GCC - меняется и libc.so
Иначе и быть не может, потому что libc.so (кроме всех других дел) это интерфейс к системным вызовам Linux для программ на всех и любых (почти :rolleyes: ) языках программирования.


Bizdelnick писал(а):
27.05.2016 18:57
https://gcc.gnu.org/wiki/C11Status

Эту страничку я давно видел, но она безмерно дремучая, самый последний там упоминаемый GCC - это 4.9

Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: C11

Сообщение Bizdelnick »

Olej писал(а):
27.05.2016 19:18
Компилятор и libc.so - это неразрывная пара, как только минимально меняется GCC - меняется и libc.so

Да ладно? С libstdc++ не путаете? libc в каждой системе своя, а gcc везде один, однако ж работает и с glibc, и с musl, и freebsdшной libc, и с соляровской, и с кучей других. Как и clang.

Olej писал(а):
27.05.2016 19:18
самый последний там упоминаемый GCC - это 4.9

Значит работа над поддержкой C11 в gcc завершена к версии 4.9, логично?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Olej
Сообщения: 659
ОС: Fedora, Mint, Debian, QNX
Контактная информация:

Re: C11

Сообщение Olej »

Bizdelnick писал(а):
27.05.2016 19:21
Значит работа над поддержкой C11 в gcc завершена к версии 4.9, логично?

Абсолютная ерунда, потому что в GCC 5.3.1 20160406 (Red Hat 5.3.1-6) - её нет.


Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: C11

Сообщение Bizdelnick »

А у меня в 4.9.2 есть. Какие-то раздолбаи в редхате, видать, всё сломали.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Olej
Сообщения: 659
ОС: Fedora, Mint, Debian, QNX
Контактная информация:

Re: C11

Сообщение Olej »

Bizdelnick писал(а):
27.05.2016 19:21
С libstdc++ не путаете? libc в каждой системе своя, а gcc везде один, однако ж работает и с glibc, и с musl, и freebsdшной libc, и с соляровской, и с кучей других. Как и clang.

При чём здесь (к разговору) libstdc++ и С++ я не понял.
А glibc, и с musl, и freebsdшной libc - это только альтернативы библиотеки C ... для любителей-энтузиастов, если они умеют перевести системные вызовы Linux в int 80h или sysenter - будут работать ... но какое это имеет отношение к теме?


Bizdelnick писал(а):
27.05.2016 19:26
А у меня в 4.9.2 есть.

Если есть, то лучше не говорить "есть", а показать пример кода, компиляцию, выполнение...

Спасибо сказали:
Аватара пользователя
Olej
Сообщения: 659
ОС: Fedora, Mint, Debian, QNX
Контактная информация:

Re: C11

Сообщение Olej »

Bizdelnick писал(а):
27.05.2016 19:26
А у меня в 4.9.2 есть. Какие-то раздолбаи в редхате, видать, всё сломали.

Первый подвернувшийся под руку компьютер не от раздолбаев от редхат:

Код: Выделить всё

olej@nvidia /usr/include $ lsb_release -ircd
Distributor ID:    LinuxMint
Description:    Linux Mint 17.1 Rebecca
Release:    17.1
Codename:    rebecca
olej@nvidia /usr/include $ gcc --version
gcc (Ubuntu 4.8.4-2ubuntu1~14.04.1) 4.8.4
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
olej@nvidia /usr/include $ find /usr/include -name threads.h

И следа нет.

Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: C11

Сообщение Bizdelnick »

Извините, времени очень мало, поэтому взял приведённый Вами выше пример и заставил его компилироваться, наплевав на предупреждения:

Shell

% musl-gcc --version gcc (Debian 4.9.2-10) 4.9.2 Copyright © 2014 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. % cat test.c #include <stdio.h> #include <threads.h> void threadfun() { printf("Hello from thread\n"); } int main() { thrd_t tid; int rc; rc = thrd_create( &tid, threadfun, NULL ); if (rc != thrd_success) { fprintf(stderr, "Error creating thread\n"); exit(1); } thrd_join(tid, NULL); /* Wait */ return 0; } % musl-gcc test.c test.c: In function ‘main’: test.c:11:29: warning: passing argument 2 of ‘thrd_create’ from incompatible pointer type rc = thrd_create( &tid, threadfun, NULL ); ^ In file included from test.c:2:0: /usr/include/x86_64-linux-musl/threads.h:43:5: note: expected ‘thrd_start_t’ but argument is of type ‘void (*)()’ int thrd_create(thrd_t *, thrd_start_t, void *); ^ test.c:14:9: warning: incompatible implicit declaration of built-in function ‘exit’ exit(1); ^ % ./a.out Hello from thread %

Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Olej
Сообщения: 659
ОС: Fedora, Mint, Debian, QNX
Контактная информация:

Re: C11

Сообщение Olej »

Bizdelnick писал(а):
27.05.2016 18:57
https://gcc.gnu.org/wiki/C11Status

Кстати:
Threading [Optional] Library issue (not implemented)



Bizdelnick писал(а):
27.05.2016 19:41
Извините, времени очень мало, поэтому взял приведённый Вами выше пример и заставил его компилироваться, наплевав на предупреждения:

Это же musl - нестандартная приблуда, её в проект, поставляемый заказчику не втулишь (т.е. втулить то, конечно, всё можно ... но объясняться о нестандартной конфигурации системы придётся).
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: C11

Сообщение Bizdelnick »

Olej писал(а):
27.05.2016 19:44
musl - нестандартная приблуда

Да нет, musl — это как раз стандартная библиотека C.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Olej
Сообщения: 659
ОС: Fedora, Mint, Debian, QNX
Контактная информация:

Re: C11

Сообщение Olej »

Bizdelnick писал(а):
27.05.2016 19:46
Olej писал(а):
27.05.2016 19:44
musl - нестандартная приблуда

Да нет, musl — это как раз стандартная библиотека C.

Если вы такое утверждаете, то покажите: с какого времени? в каких дистрибутивах? как она сала стандартной?
(модной - это я знаю, понимаю ... как стала стандартной библиотека, 1-я релизная версия которой датирована серединой 2015 года? ... может я что-то и пропустил)
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: C11

Сообщение Bizdelnick »

Стандартная — значит реализующая стандарт. А если Вы под стандартной библиотекой подразумеваете ту, которая должна использоваться в соответствии с каким-то стандартом, то извините, таких стандартов я не знаю.
Вернёмся однако чуть назад. Вам не понравились мои слова
Bizdelnick писал(а):
27.05.2016 18:57
Что касается многопоточности, дело-то тут не за компилятором, а за libc.
Разве то, что я продемонстрировал, их не подтверждает? gcc у меня самый обыкновенный, только libc я взял ту, в которой поддержка этой части C11 есть.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Olej
Сообщения: 659
ОС: Fedora, Mint, Debian, QNX
Контактная информация:

Re: C11

Сообщение Olej »

Bizdelnick писал(а):
27.05.2016 21:32
Стандартная — значит реализующая стандарт. А если Вы под стандартной библиотекой подразумеваете ту, которая должна использоваться в соответствии с каким-то стандартом, то извините, таких стандартов я не знаю.

Стандартной я хотел бы считать библиотеку, которая по умолчанию установлена в любом дистрибутиве Linux, чтобы без всяких изысков и переустановок можно было бы выполнять приложения, использующи расширения C11.
А если мне нужно объяснять заказчику, что, перекроив с бубном 1/2 системы, он, пожалуй, сможет выполнить предлагаемую программу ... то вряд ли меня поймут.
Я явно с большим успехом могу параллелизм организовать, например, в коде Go ... но это не будет соответствовать теме обсуждения, C, C11 и т.д.

P.S. Кроме прочего, в соответствии musl стандартам и её совместимости существуют определённые сомнения, см. например Void Linux. Интермедия про musl (это конец 2015г.)


Bizdelnick писал(а):
27.05.2016 21:32
Вам не понравились мои слова
Bizdelnick писал(а):
27.05.2016 18:57
Что касается многопоточности, дело-то тут не за компилятором, а за libc.


Мне не "не понравилось", мне это просто неинтересно.
Меня занимает вопрос: насколько в окружении, доступном в любом дистрибутиве Linux реализована модель многопоточности в стиле C11? Начиная с каких версий дистрибутивов и инструментов в них? Насколько эта модель лучше/хуже по эффективности POSIX 1003b, насколько полно перекрывает её возможности?
(Для любого, непредвзято глядящего на многопоточную модель C11 понятно, что она принята в угоду Windows традициям, является в Linux какой-то обёрткой над POSIX ... может в чём-то заимствует подходы, наработанные в Apache Portable Runtime...).
Т.е. вопрос в том, насолько это ломает API POSIX?

Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: C11

Сообщение Bizdelnick »

Olej писал(а):
27.05.2016 21:58
Стандартной я хотел бы считать библиотеку, которая по умолчанию установлена в любом дистрибутиве Linux

Alpine Linux, вероятно, недостаточно любой дистрибутив, да? И Lilblue тоже?

Olej писал(а):
27.05.2016 21:58
чтобы без всяких изысков и переустановок можно было бы выполнять приложения, использующи расширения C11.

Я вроде ничего не переустанавливал, чтобы пример выше запустить. Не в Alpine, в Debian. Никаких там хитрых переменных окружения и прочих финтов ушами, я всё показал честно.

Olej писал(а):
27.05.2016 21:58
если мне нужно объяснять заказчику, что, перекроив с бубном 1/2 системы, он, пожалуй, сможет выполнить предлагаемую программу

У меня поначалу сложилось впечатление, что тема началась с чисто академического интереса. Если же очень сильно хочется прямо сейчас втюхать какому-нибудь заказчику софтину, использующую c11 threads, то могу посоветовать один простой способ...
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Olej
Сообщения: 659
ОС: Fedora, Mint, Debian, QNX
Контактная информация:

Re: C11

Сообщение Olej »

Bizdelnick писал(а):
27.05.2016 22:16
Alpine Linux, вероятно, недостаточно любой дистрибутив, да? И Lilblue тоже?

... и Void Linux, и OSv, и Sabotage, и LightCube OS, и starchlinux, и morpheus, и Snowflake...
Это всё экзотика и это всё не интересно. :blush:

Bizdelnick писал(а):
27.05.2016 22:16
У меня поначалу сложилось впечатление, что тема началась с чисто академического интереса. Если же очень сильно хочется прямо сейчас втюхать какому-нибудь заказчику софтину, использующую c11 threads, то могу посоветовать один простой способ...

Академический интерес мы оставим ВУЗ-овским пЫдагогам :laugh:
Интерес представляло не "втюхать", а решить для себя можно ли использовать в разработке декларируемые C11 механизмы многопоточности?
NickLion обещал тут усладить нас полётом творческой мысли... :drinks:
Но - увы! :unsure:
Ответ: нет, не можно, пока преждевременно.
Академически можно обсуждать вокруг-да-около хоть до опупения ... а практически оно непригодно.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: C11

Сообщение Bizdelnick »

Olej писал(а):
27.05.2016 23:00
Это всё экзотика

Смотря где. На докерхабе, например, официальный образ Alpine из других дистрибутивов по популярности уступает только Ubuntu, Debian и CentOS и уделывает Fedora.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu
Контактная информация:

Re: C11

Сообщение serzh-z »

Мне всё больше кажется, что C++ совсем продул любым другим современным языкам по соотношению 'накладные расходы/сложность'. И уже как-то фиолетово - какой там у него вышел стандарт, поддерживают ли его популярные компиляторы и появились ли в нём замыкания.

P.S.: это мнение достаточно давнего фаната C++.
Спасибо сказали:
Аватара пользователя
Olej
Сообщения: 659
ОС: Fedora, Mint, Debian, QNX
Контактная информация:

Re: C11

Сообщение Olej »

serzh-z писал(а):
27.05.2016 23:52
Мне всё больше кажется, что C++ совсем продул любым другим современным языкам по соотношению 'накладные расходы/сложность'. И уже как-то фиолетово - какой там у него вышел стандарт, поддерживают ли его популярные компиляторы и появились ли в нём замыкания.

P.S.: это мнение давнего фаната C++.

Трудно не согласиться :drinks: ... и именно поэтому развитие C повернуло от C++ в сторону Go.

Но...
... только тема была о C, а не C++, и о стандарте C11, а не C++11 ... и общего у них только год издания. :unsure:
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu
Контактная информация:

Re: C11

Сообщение serzh-z »

Olej писал(а):
28.05.2016 00:00
... только тема была о C, а не C++, и о стандарте C11, а не C++11 ...
И правда. =)
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: C11

Сообщение Bizdelnick »

Olej писал(а):
28.05.2016 00:00
общего у них только год издания

Ну где же только год издания? Все фичи C11 взяты из C++11.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Olej
Сообщения: 659
ОС: Fedora, Mint, Debian, QNX
Контактная информация:

Re: C11

Сообщение Olej »

serzh-z писал(а):
28.05.2016 00:07
Olej писал(а):
28.05.2016 00:00
... только тема была о C, а не C++, и о стандарте C11, а не C++11 ...
И правда. =)

C++11 - это тоже интересный предмет, но уже для другой темы форума.
Если стандарт C11 вызывает некоторое беспокойство, то в C++11 много полезных и приятных вещей.
Спасибо сказали:
Ответить