Цитата: http://lwn.net/Articles/414467/
People experiencing sound corruption or other strange bugs on recent distribution releases may want to have a look at this Fedora bugzilla entry. It seems that the glibc folks changed the implementation of memcpy() to one which, in theory, is more highly optimized for current processors. Unfortunately, that change exposes bugs in code where developers ignored the requirement that the source and destination arrays passed to memcpy() cannot overlap. Various workarounds have been posted, and the thread includes some choice comments from Linus Torvalds, but the problem has been marked "not a bug." So we may see more than the usual number of problems until all the projects with sloppy mempcy() use get fixed. (Thanks to Sitsofe Wheeler).
С переполнением буферов кое-как вроде справились, но то был отнюдь не последний сюрприз этого замечательного языка с богатейшим запасом неопределённых, неописанных и прочих не-поведений, заботливо разложенных на каждом шагу злым гением Ритчи.
:smoke:
Тьфу на вас...
Есть такой шутка (из тыщи подобных):
Цитировать
Thompson, Ritchie and Kernighan admit that Unix was a prank (http://www.stokely.com/lighter.side/unix.prank.html)
[...] Brian must be credited with the idea of having absolutely no standard I/O specification: this ensured that at least 50% of the typical commercial program would have to be re-coded when changing hardware platforms.
Brian was also responsible for pitching this lack of I/O as a feature: it allowed us to describe the language as "truly portable".
...
When we found that some programmers were simply not using pointers, we eliminated the ability to pass structures to functions, enforcing their use in even the simplest applications. We sold this, and many other features, as enhancements to the efficiency of the language. In this way, our prank evolved into B, BCPL, and finally C.
We stopped when we got a clean compile on the following syntax: for(;P("\n"),R-;P("|"))for(e=C;e-;P("_"+(*u++/8)%2))P("| "+(*u/4)%2);
At one time, we joked about selling this to the Soviets to set their computer science progress back 20 or more years.
[...]
Особенно последняя строчка порадовала :)
Кстати, а что было в советской компьютерной индустрии вообще? Когда буржуйские компьютеры начали попадать на советское пространство?
Цитата: jvarg от ноября 14, 2010, 12:05
Тьфу на вас...
Я на C давно уже не пишу. :green:
Цитата: RawonaM от ноября 14, 2010, 12:08
Кстати, а что было в советской компьютерной индустрии вообще? Когда буржуйские компьютеры начали попадать на советское пространство?
Какие языки были в ходу? Алголоиды, особенно любили творения Вирта, равно как и самого Вирта. Новосибирцы, например, сделали очень хороший оптимизирующий транслятор Модулы-2 (потом в него добавили поддержку Оберона-2). Слышал про Аду. На автокоде тоже писали, у меня даже учебник для ЕСки лежит.
Чёрт, про Фортран забыл. :)
Цитата: myst от ноября 14, 2010, 12:10
Цитата: jvarg от ноября 14, 2010, 12:05
Тьфу на вас...
Я на C давно уже не пишу. :green:
И правильно делаете.
"Си" задумывался как язык "среднего уровня". Нечто среднее между настоящими высокоуровневыми языками, и ассемблером.
Т.е. для написания драйверов, или самой ОС, "Си" - самое то.
Но писать на нем прикладные программы - это какой-то мазохизм....
Цитата: myst от ноября 14, 2010, 12:16
ЦитироватьКстати, а что было в советской компьютерной индустрии вообще? Когда буржуйские компьютеры начали попадать на советское пространство?
Какие языки были в ходу? Алголоиды, особенно любили творения Вирта, равно как и самого Вирта. Новосибирцы, например, сделали очень хороший оптимизирующий транслятор Модулы-2 (потом в него добавили поддержку Оберона-2). Слышал про Аду. На автокоде тоже писали, у меня даже учебник для ЕСки лежит.
Цитата: myst от ноября 14, 2010, 12:19
Чёрт, про Фортран забыл. :)
То есть, ничего своего у советов не было?
Цитата: RawonaM от ноября 14, 2010, 12:23
То есть, ничего своего у советов не было?
Теоретические - были, практические - нет.
Как обычно, с разработкой все было отлично, с внедрением - отвратительно.
Есть еще отакой жок:
http://www-users.cs.york.ac.uk/susan/joke/cpp.htm
Страуструп даже написал на сайте у себя, что это все неправда, потому как многие поверили...
Вообще он несколько параноидальный. Напоминает российских поцреотов :)
Цитата: jvarg от ноября 14, 2010, 12:19
"Си" задумывался как язык "среднего уровня". Нечто среднее между настоящими высокоуровневыми языками, и ассемблером
Задумывался, как же... Слабали на коленке.
Цитата: jvarg от ноября 14, 2010, 12:19
Т.е. для написания драйверов, или самой ОС, "Си" - самое то.
Ога, щазз.
Цитата: RawonaM от ноября 14, 2010, 12:23
То есть, ничего своего у советов не было?
Автокод для ЕСки же. :)
Я нипонил, срача не будет?! :(
Цитата: myst от ноября 14, 2010, 16:41
нипонил, срача не будет?! :(
Кокова? Тут есть патриоты С?
Как минимум Гринь. :)
Ты тоже мог бы зафанатеть на время.
Цитата: myst от ноября 14, 2010, 17:00
Ты тоже мог бы зафанатеть на время.
Я фанател от Си в году 95-ом. Парочку неплохих вирусов тоже писал на Си. :)
Вот скоро войду в него заново тогда похоливарим :)
Цитата: myst от ноября 14, 2010, 11:56
С переполнением буферов кое-как вроде справились
Это я погорячился, аттракцион продолжается: :green:
Цитата: http://marc.info/?l=openssl-announce&m=128992699401945&w=2
A flaw has been found in the OpenSSL TLS server extension code parsing which on affected servers can be exploited in a buffer overrun attack.
Не трогать Си! Основной инструмент моей работы.
Не на C# же прошивки микроконтроллеров писать?)))
Цитата: amdf от декабря 24, 2010, 09:53
Не трогать Си!
Не будем. Кактусы такой колючести на вес золота.