LINUX.ORG.RU

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

Знаю. Так ты код-то смотрел? Человека, который его написал, никакой язык не остановит. Ну и да, то, что библиотека на си, один из факторов её популярности. Этого расту не добиться в обозримом будущем.

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

А _арифметика_ для этого зачем? Здесь тупое преобразование целого в адрес.

#define PAGE_SZ    1024
#define PAGE_MASK  0x3FF
#define PAGE_COUNT 8
#define STACK_SZ PAGE_SZ * PAGE_COUNT

...

void *buffer = malloc(STACK_SZ + PAGE_SZ - 1);
void *stack  = (buffer + PAGE_SZ) & ~PAGE_MASK;

/* use stack here */

Это не арифметика?

P.S. код наколеночный, не проверял на рабочесть

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

Ну вот тебе реальные уязвимости ядра.

http://www.cvedetails.com/vulnerability-list/vendor_id-33/product_id-47/Linux...

На первой же страничке один только buffer overflow упоминается 5 раз. Си-шечка во всей красе.

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

Часто переходил?

Там, где C или C++ не оправдывает себя - нужно переходить. И давно уже пора. И переходят. А вот именно в качестве замены C++... Сомнительно.

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

Ну вот тебе реальные уязвимости ядра.

а ты перепишешь на Rust без единой ошибки да ? :) фигня это все - микроядра не зря придуманы, ошибки невозможно полностью исключить.

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

А вот именно в качестве замены C++... Сомнительно.

Это то, о чем говорит мой опыт (о котором ты так долго выспрашивал), без оглядки на статистику и чужие мнения. А твои сомнения — это твое личное субъективное переживание, и к моему опыту они никакого отношения не имеют и иметь не могут. Странно, что ты вдруг решил о них упомянуть.

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

а ты перепишешь на Rust без единой ошибки да ? :)

Ну сколько ж можно мою персону прилетать? Я всего лишь привел факты, противоречащие тезису о надежности сишки при «нормальной квалификации» Почему вы так фапаете на этот Rust? (комментарий)

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

Rust - это идеальный язык. Такое отделенное светлое будущее, которое никогда не наступит, но с каждым днем оно все ближе и светлее. Писать на расте нельзя, а вот пофлудить про идеал - запросто. Сразу два зайца короче. И делать ничего не надо, и вроде как элита.

Лучше и не скажешь.

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

Тут нет противоречия. И не сишки, а плюсов. И не о надёжности, а о малом числе багов рассматриваемого характера по сравнению с общим числом багов.

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

Когда этот опыт успел появиться? Раст не вышел ещё, да и этим предварительным версиям всего ничего.

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

Я всего лишь привел факты, противоречащие тезису о надежности сишки при «нормальной квалификации»

вот тебе пример более реальный

http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/tree/sound/soc/fs...

встретились два барана - один neon в ядро сует, думает что если очень хочется то можно, второй вместо программ краш-тесты пишет, оба С используют. Думаешь Rust поможет ?

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

Вывод редакции - julia не предназдачена для написания программ. Это вообще не язык программирования, а интерактивный калькулятор с расширенными возможностями скриптования. Убедительная просьба в тредах о языках программирования эту поделку не поминать.

Увы, но похоже другие вычислительные языки ещё хуже. Достаточно сказать, что в некоторых (не будем показывать пальцем, но это конечно же R) даже комплексные числа нельзя написать иначе как complex(real = x, imaginary = y).

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

как во взрослых языках

Сишкобыдло на фортрановские слайсы залупается, совсем охренели, ляди.

не надо складывать матрицы так: X = A + B. Надо так: for col=1:n, row=1:n X[row, col] = A[row, col] + B[row, col]

Да он ещё и даун.

ps: ни строчки кода на julia не написал

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

Сишкобыдло на фортрановские слайсы залупается, совсем охренели, ляди.

С каких пор фортран считается чем-то хорошим?

quantum-troll ★★★★★
()
Ответ на: комментарий от peregrine

А знаешь, что все современные процессоры архитектуры i386 тащат в себе всё устаревшее говно из процессора 8080, просто ради обратной совместимости, в том числе все недостатки этой архитектуры. А для этой убогой архитектуры великолепно подходит С

С как раз и создавался чтобы код можно было скомпилировать на любой архитектуре, то есть вообще без привязок к конекретной архитектуре. И создавался вовсе не для х86. И когда он создавался никакой архитектуры х86 и в планах не было. И ничего специфичного что «учитывало» бы недостатки какой-либо архитектуры в С нет и быть не может. В самом С строго говоря даже ввода-выода нет, всё реализовано библиотечными функциям, а раз так то что может «учитывать» архитектуру?

mbivanyuk ★★★★★
()

Можно ли одним словом выразить фразу «язык программирования Rust, который установлен с дистибутивом Fedora Linux для Raspberry Pi» ?

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

Но ведь этого мало, чтоб утверждать, что переход поможет. Нужен опыт перехода.

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

Если тебе похрен на производительность, безусловно нерелевантно.

Ты сэкономил 2 вызова malloc и 2 вызова free на иммутабельной структуре, но у тебя там же 2 вызова strlen. Как это скажется на производительности программы - ХЗ.

Кстати, а как вообще управлять памятью без адресной арифметики?

Для того, чтобы вызвать malloc или free, адресная арифметика не нужна.

Или «кастомные аллокаторы не нужны»?

Если нужны (реально нужны) - нет проблем их сделать. На Rust, ага. По специальному разрешению, выдаваемому старшими.

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

в ядре kernel null pointer dereference часто косвенный признак бага совсем иного рода, собственно никто не мешает обмазываться

В ядре kernel null pointer dereference всегда имеют ровно де же причины, что и программах пользовательского уровня.

никто не мешает обмазываться

http://lxr.free-electrons.com/source/include/asm-generic/bug.h#L55

Бгг. Ну да, никто не мешает проверять данные всегда-всегда. Но если не проверишь, компилятору Си совершенно пофиг.

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

В ядре kernel null pointer dereference всегда имеют ровно де же причины, что и программах пользовательского уровня.

Бгг, С плохой и надо на Rust переписывать - «Не спать, не спать. Косить, косить!»

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

posix_memalign() и aligned_alloc() для кого стандартизировали?

Для юзерспейса POSIX-совместимых систем. Понимаешь?

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

void *stack = (buffer + PAGE_SZ) & ~PAGE_MASK;

Ну да, формально тоже арифметика над адресом. Но, с другой стороны, это тупо смещение в массиве. А я говорю о Ъ-хардкорной адресной арифметике в духе:

struct header {
  int32_t sign;
  int32_t nitems;
};

struct foo {
 /* ... */
};

struct bar {
  /* ... */
};

int f(void *pkt)
{
  struct header *h = pkt;

  if (h->sign == SIGNATURE) {
    int i;
    int32_t *ptag = (int32_t *)(h +1);
    struct foo *pfoo;
    struct bar *pbar;

    for (i = 0; i < h->nitems; i++) {
      void *pdata = ptag + 1;

      switch (*ptag) {
      case TAG_FOO:
        pfoo = pdata;
        process_foo(pfoo);
        ptag = (int32_t *)(pfoo+1);
        break;
      case TAG_BAR:
        pbar = pdata;
        process_bar(pbar);
        ptag = (int32_t *)(pbar+1);
        break;
      default:
        error("invalid tag %#x", *ptag);
      }
    }
    return i;
  }
  else
    return -1;
}

это разбор пакета формата (header, [(int32, foo | bar)])

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

Тупой анонимус такой тупой

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

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

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

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

tailgunner ★★★★★
()

Я про раст мало чего знаю, но постоянно вижу на лоре новости в духе «В раст запилили то», «Из раста выпилили се» или «В расте поменяли синтаксис», из чего возникает вопрос: у создателей этого языка вообще есть хоть какое-то вИденье, каким язык должен быть, или его разрабатывают методом «давайте че-нить прилепим, может че годное и выйдет»?

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

«В раст запилили то», «Из раста выпилили се» или «В расте поменяли синтаксис»

Экспериментируют. Это плохо?

у создателей этого языка вообще есть хоть какое-то вИденье

Rust is a modern systems programming language focusing on safety and speed. It accomplishes these goals by being memory safe without using garbage collection.

Вам сюда.

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

постоянно вижу на лоре новости в духе «В раст запилили то», «Из раста выпилили се» или «В расте поменяли синтаксис», из чего возникает вопрос: у создателей этого языка вообще есть хоть какое-то вИденье

Да. Язык концептуально не меняется последние полтора-два года. Просто не-концептуальные изменения несовместимы.

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

Тогда хорошо, я-то думал, его разрабатывают по заветам создателей gtk.

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

белочки такие симпатяшки

Ну и да, если б ты внимательно читал, а не рвал из контекста - там вначале было «на кого охотились». «Белку в глаз со 100 шагов» - была такая специальная олимпиада среди промысловиков, если ты не в курсе.

slackwarrior ★★★★★
()

Ух ты! Стоит день не заходить на лор, как тут появляется здоровенный трололо-срач про раст и еще парочка тем. Понадобится время, что бы всю эту хрень теперь прочитать. Классно! :D

Но не взлетит же, согласитесь!

Зависит от определения «взлетит», а то под этим сильно разное можно понимать: кто-то, например, считает, что go и haskell не взлетели, а кто-то - наоборот. Мне хватит и относительно скромного «взлета» - что бы Rust более-менее отшлифовали и он обзавелся нужными мне библиотеками, что бы поменьше всего приходилось писать самому. Я не знаю причины, по которой Ржавчина была бы на 100% обречена на провал - все виденные мной доводы в пользу провала очень спорны.

Так же, как не взлетел Nemerle и иже с ним.

Nemerle вообще не про то. Тут уже много кто, вроде, отписался, что Rust лучше многих конкурентов подходит на роль альтернативы Си или C++ - сравнимая скорость выполнения, интересная концепция владения, безопасность в обычном коде и возможность делать любую черную магию в unsafe-секциях.

Лично мне Ржавчина так интересна, потому что мне нравится разработка игр, но вот с С++, мне бы хотелось проводить поменьше времени. На работе, конечно, никому сейчас Ржавчина не нужна и там от С++ в низкоуровневом коде не убежишь, но вот для моих личных проектов она уже сейчас неплохо подходит и я вполне готов мириться с ее сыростью.

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

Т.е. у тебя реально существенная доля багов связана с переполнением буфера, утечками памяти и разыменованием нулевого указателя?

Самые проблемные баги «у меня» действительно связаны с переполнением буфера и т.д. Ну и с race condition.

Только надо понимать, что в реальном коде есть легаси, есть всякие менее опытные программисты и т.д. И даже ревью и тесты не всегда спасают.

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

«Мальчик, ты дурак?» (с) Это про хищность «няшных» белок был контрпример (птенцов они жрут - это просто факт). А то что люди охотились и охотятся на белок ты не знал? Перечитывай исходный псто до просветления - может дойдет, если ты умеешь не только в буквы, но и в контекст.

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

Крокодилы в Др. Египте аватарки одного из богов, если что. А в Европе с крокодилами напряжонка была до тех пор, пока мореплаватели с шилом в жопе не выяснили, что «псоглавцев нету, и края земли нету». (Но ты вообще не в теме истории вопроса - поэтому задаешь такие вопросы.)

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

у создателей этого языка вообще есть хоть какое-то вИденье, каким язык должен быть

Ну я не телепат, но «основная фича» (borrow checker/region inference) как была так и осталась. И ради неё язык и нужен. Экспериментируют с синтаксисом и т.д.

Да и в чём проблема? Неужели лучше как в D, где сначала «зарелизили» язык, потом сделали несовместимую версию D2?

Или как в С++, где добавление новых фич требует изобретения отдеьного страшного синтаксиса, чтобы не поломать существующий код?

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

Какие вопросы? Няшные ли крокодилы? Если у тебя есть сомнения на счёт ответа на этот вопрос, то у меня для тебя плохие новости.

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

Няшные ли крокодилы?

https://ru.wikipedia.org/wiki/Себек - просвещайся лалка, или похудей

http://planeta.moy.su/_bl/171/97188874.jpg - Себек няшен. С т. зрения любого египтянина.

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

Чё? В ниле жили крокодилы, абсолютно логично, что бог нила и разлива выглядит как крокодил. Но если ты любой мадаме скажешь, что она красива как крокодил, ну… попробуй чё.

nanoolinux ★★★★
()
Ответ на: комментарий от quantum-troll

Увы, но похоже другие вычислительные языки ещё хуже.

Был один няшный язык http://lush.sourceforge.net/ - быстрый, гибкий, расширяемый, но не взлетел, т. к. лисп. Хотя в репозитории до сих пор какая-то активность теплится. А так ему бы синтаксис погуманее, типа как в Математике, и был бы суперязык.

С другой стороны, вычислительная тусовка - те ещё говноеды. Фортран, матлаб, такое впечатление, что для них чем хуже, тем лучше.

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

Чё?

5.1 через плечо - не горячо? :) Я тебе заебусь объяснять разницу между твоими предрассудками, основанными на ЧСВ «белого чилавека»(ТМ) (и блондинок, которые, по определению, не египтянки). «Няшность» - относительна и обусловлена культурным багажом. Для египтян крокодил няша. Давай оспорь, «попробуй чё» (с) :) А если тебя в детстве пугали крокодилами и мыли моск Чуковским («Крокодилище» - негативно-оценочное слово и по тексту крокодил «плохой-плохой», «ахахах, солнце скрал, бида-бида») - да, ты будешь крокодила бояцца и ненавидеть (пофиг, что египтяне, которых он жрал гораздо дольше и больше чем европейцев считали крокодила немножко еще и воплощением бога солнца Ра - т.е. Чуковский слышал звон, но нипса не понял, «инженер душ», лол :) Как и твои эти твои «мадамы» с одноклеточным моском. (Ну да, щасные психолухи вангуют у египтян «стокгольмский синдром», но и у европейцев есть свои скелеты в шкафу - геральдические звери по-твоему откуда? Это общий для всех приматов «стокгольмский синдром» :))

slackwarrior ★★★★★
()
Последнее исправление: slackwarrior (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.