LINUX.ORG.RU

Всяких интересностей на С поиск

 


6

5

Не так давно, но уже и не так недавно встретил несколько проектов которые лично мне показались ну оочень интересными как в плане реализации таки в плане использования список их небольшой

  • KORE.io - веб разработка на С. Фреймворк https://kore.io позволяет делать высокопроизводительные сетевые сервисы, есть механизмы работы с БД, https по умолчанию, вебсокеты и много других плюшек, что позволяет слать всякие нодыжс в топку гореть.
  • libcello - высокоуровневая надстройка над С http://libcello.org, создана по приколу Даниелем Холденом для упрощения написания прикладного софта на С, есть отключаемый GC, работа со строками, foreach, таблицы, деревья и другие абстрактные типы. Позволяет писать железобетонный код шля в топку Ратоманов с их контролем памяти )

Есть у вас в закромах всякие удобные и полезные приколюхи на С ?

★★★★★

Последнее исправление: Dron (всего исправлений: 2)

Неплохо бы было дать более подробное описание или хотя бы ссылки на проекты указанные. Многие (как и я) из такого текста не поймут сути проектов, а гуглить поленятся, Ъ всё-таки.

А по теме — нет, к сожалению, кажется. С ходу, по крайней мере.

evilface ★★
()
Последнее исправление: evilface (всего исправлений: 1)
Ответ на: комментарий от xaizek

Вот для C.

Увидел там BerkeleyDB и так смешно стало. При многопроцессном доступе к базе даже при использовании блокировок дедлоки считаются нормальным явлением. Штатный способ их разрешения — специальная утилита, которая случайным образом отбирает блокировку у кого-нибудь. То, что после этого всё может кувырком пойти, проблемой не считается. SNAFU.

i-rinat ★★★★★
()
Ответ на: комментарий от Dron

О, стало _гораздо_ понятней и интересней, мне даже захотелось посмотреть. Спасибо. )

evilface ★★
()

Есть у вас в закромах всякие удобные и полезные приколюхи на С ?

C++ — Это офигительно удобный Си с некоторыми дополнительными нелепыми, но мощными фичами. Только обратите внимание, что С++ коверкает синтксис языка. Это не просто либа.

JacobTwoTwo
()
Ответ на: комментарий от i-rinat

Ого, интересный вариант разрешения дедлоков... Эти списки специфичные, годятся только как каталоги ссылок, на что можно глянуть.

xaizek ★★★★★
()

Странная тема. Чего только на сях не написали... Лучше бы спросил каких сишных либ людям не хватет.

Например, я бы глянул на сишный аналог pymorphy2.

anonymous
()
Ответ на: комментарий от xaizek

О, сейчас зачитаю ) Прикольно, спасибо )

Dron ★★★★★
() автор топика
Ответ на: комментарий от JacobTwoTwo

C++ — Это офигительно удобный Си

Не, плюсы мимо, плюсовики пихают фичи в сам язык, тут же любые фичи реализуются средствами самого языка без особого ущерба в понимании и использовании там где это выгодно,оправданно,удобно и можно (не всегда) довольно просто вдуплить реализацию фичи. Где то я хочу минимализм и я могу это, где то я хочу монстра и я могу это. Не в укор плюсам, но я тут про С )).

Dron ★★★★★
() автор топика
Ответ на: комментарий от conalex

Тыб хоть шапку прочитал :D

Dron ★★★★★
() автор топика

Есть одна удобная приколюха на питоне, которую я использую в коде на C. Когда надо сделать что-то, для чего макросов недостаточно, или надо нагенерить какой-то скучной копипасты, или заинлайнить файл - пользуюсь кодогенератором cog. Например, с его помощью можно нагенерить таблицу синусов/косинусов с нужной точностью и шагом. А код генерации останется в исходнике и когда надо будет что-то поменять - это будет легко и просто.

tim239 ★★
()
Ответ на: комментарий от tim239

Вот я не люблю питон, но это годная годнота по определению и факту, спасибо большое.

Dron ★★★★★
() автор топика

Ненене, Девид Блеин. Что-то сделанное на си не тобой это тот же питон, токо в профиль. Си для того и си, чтобы делать на нем снуля и самому. Даже линкедлист или дерево из gtk — это уже не тру, если не юзаешь сам фреймворк. Не надо ничего готового на си. Надо сам си!

anonymous
()
Ответ на: комментарий от anonymous

Отчасти ты прав ) Но тут важны реализации идей. Надо всё же жить в реальности, с нуля это круто и похвально, но посмотреть на что-то эдакое тоже приятно и интересно )

Dron ★★★★★
() автор топика
Ответ на: комментарий от xaizek

описывал как сделать авто-регистрацию на C (тут). Наркомания, где-то в области libcello, но я успешно пользуюсь

Но с __attribute__((constructor)) же намного проще. Достаточно просто затребовать с пользователя в TEST() передавать имя теста в формате, пригодном для идентификатора, и вот проблема уникальности имён решена. И main в такой библиотеке можно сделать слабым символом, чтобы автоматически включалась, если в тесте нет своей main.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Но с __attribute__((constructor)) же намного проще.

Это же расширение, а хотелось именно на стандартном C (даже в M$VC работало, когда проверял).

xaizek ★★★★★
()

что позволяет слать всякие нодыжс в топку гореть

Лол :-) Зачем кому-то в здравом уме связываться с малоизвестным WEB-фреймворком на C, если есть широкоиспользуемая и протестированная в WEB платформа на JavaScript? :-) Ну глупо же :-) Как будто серьёзным людям заняться больше нечем, кроме как инвестировать время в какой-то Kore, вместо всем известного Node.js :-)

anonymous
()
Ответ на: комментарий от anonymous

Как будто серьёзным людям заняться больше нечем

Тут не совсем серьёзный топик ). Но когда говорят что что-то не серьёзное, а другое серьёзное то это тоже не серьёзно, я серьёзно говорю.

Dron ★★★★★
() автор топика
Последнее исправление: Dron (всего исправлений: 1)

прикольно что в ANSI-C

int __stdcall foo()
  int result_of_previous_function
{
 ...
}
что позволяет писать совершенно неочевидные вещи

MKuznetsov ★★★★★
()
Ответ на: комментарий от Dron

плюсовики пихают фичи в сам язык, тут же любые фичи реализуются средствами самого языка без особого ущерба в понимании и использовании там где это выгодно,оправданно,удобно и можно (не всегда) довольно просто вдуплить реализацию фичи.

Если так мелкомасштабно взять, то как некая эмуляция фичи языка — когда-то придумал для себя «нулл-терминированные массивы указателей». Реально удобно получается, писал шелл (csh), где практически никакой массив не имел прилагающейся дины — обработка заканчивалась нахождением NULL.

evilface ★★
()
Последнее исправление: evilface (всего исправлений: 2)
Ответ на: комментарий от anonymous

На С нет аналога OpenCV, поэтому приходится велосипедить.

anonymous
()
Ответ на: комментарий от anonymous

Это ж каким надо быть идиотом, чтобы на сервак жабоскрипт запихать?

Ты еще скажи серваки на жабке писать!

anonymous
()

libcello

Когда-то упарывался, делая на си фичи C++ - объекты, исключения, шаблоны. Добился работы чего-то вроде:

VECTOR_DEF(Vec, int);

Vec v;
Vec_iterator it;
Vec_init(v);

TRY() {
  try_enter();
  Vec_push_back(v, 42);
  try_leave();
} CATCH() {
  catch_enter();
  if (object_is(exception(), TYPE(bad_alloc))
    puts("no memory");
  else
    printf("Error: %s\n", exception()->what);
  catch_leave();
}

for (Vec_iterator_assign(it, Vec_begin(v)); Vec_iterator_ne(it, vec_end(v)); Vec_iterator_inc(it))
  printf("%d\n", Vec_iterator_get(it));
Vec_destroy(v);
... и тут меня дошло что лучше писать на C++ %)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.