avva: (Default)
[personal profile] avva
(эта запись будет понятна только программистам)

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

Так что война будет почти на равных. Долгая, кровопролитная, тяжелая. И в конце концов... они нас победят.

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

И тогда инопланетяне посмотрят на нас, прищурятся хитро и скажут:

"А помните, когда вы на 64-битные компьютеры перешли, а int 32-битным оставили?"

Date: 2007-10-11 06:43 pm (UTC)
From: [identity profile] amarao-san.livejournal.com
Да, да, а ещё земляным червяком! Т.е. до сих пор есть в серверных процессорах команда "перепаковать число в форме для показа на девятисегментном индикаторе".

Date: 2007-10-11 06:45 pm (UTC)
From: [identity profile] os80.livejournal.com
А эта запись всем программистам понятна?

Date: 2007-10-11 06:51 pm (UTC)
From: [identity profile] avva.livejournal.com
Не знаю, но для тех, кто не понимает, могу ссылочку подкинуть.

Date: 2007-10-11 06:52 pm (UTC)
spamsink: (Default)
From: [personal profile] spamsink
С этой стороны как раз все в порядке. А вот когда на 32-битной машине пишут long, рассчитывая на его 32-битность, то на 64-битной как жахнет!

Date: 2007-10-11 06:58 pm (UTC)
From: [identity profile] its-probably-me.livejournal.com
Да-да-да. А еще сыграет свою роль баг со временем в юниксе.

Date: 2007-10-11 07:07 pm (UTC)
From: [identity profile] itman.livejournal.com
Зато у нас есть u_int64_t!

Date: 2007-10-11 07:07 pm (UTC)
From: [identity profile] zvantsev.livejournal.com
32-битным... До сих пор постоянно натыкаюсь на чудесное число 65535. И больше - ни-ни.

Date: 2007-10-11 07:24 pm (UTC)
spamsink: (Default)
From: [personal profile] spamsink
Вот бы им еще и пользовались...

Date: 2007-10-11 07:31 pm (UTC)
From: [identity profile] qehgt.livejournal.com
хм...

А что, в 64-битном GCC, sizeof(int) - тоже равен 4?

Date: 2007-10-11 07:33 pm (UTC)
From: [identity profile] avva.livejournal.com
Ну да. LP64 называется.

Date: 2007-10-11 07:41 pm (UTC)
From: [identity profile] faceted-jacinth.livejournal.com
А вот не факт.
Если про С или плюсы говорить, то это ужасно плохо из-за pointer arithmetic, в которой получается нечто весьма странное, когда с одной стороны вокруг инты, а с другой -- пойнтеры всё-таки 64битные.

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

Date: 2007-10-11 07:58 pm (UTC)
From: [identity profile] malaya-zemlya.livejournal.com
Когда Sony впервые выпустила библиотеки для PS3, то там, как это подобрает архитектуре нового поколения, все int-ы были 64-битными. Все честно-благородно. У всех девелоперов, бибилиотеки, естественно, поломались, а сроки поджимают, а консоль без игр никому не нужна. Поднялся такой шум, что Sony в следующем же релизе библиотек вернулась 32-битному int-у.
Так и живем.

Date: 2007-10-11 08:10 pm (UTC)
ak_47: (Default)
From: [personal profile] ak_47
Это ещё что. Потом они другим глазом прищурятся хитро и добавят:

"А помните, когда вы на 64-битные компьютеры перешли, вы ещё long 32-битным оставили?"

И вот тут уже не будет нам прощенья. Разверзнутся инопланетные трансглюкаторы и громы с молниями поглотят нерадивое человечество.

Date: 2007-10-11 08:23 pm (UTC)
From: [identity profile] gaius-julius.livejournal.com
ну будем надеяться что к тому времени все уже успеют на 64-битное время перейти... (-:

Date: 2007-10-11 08:29 pm (UTC)
From: [identity profile] iratus.livejournal.com
Все ХОРОШИЕ программисты всегда пользуются uint64_t uint32_t и так далее...

Date: 2007-10-11 08:37 pm (UTC)
From: [identity profile] kidd79.livejournal.com
УЖасы какие вы рассказываете.

Date: 2007-10-11 08:48 pm (UTC)
From: [identity profile] deadkittten.livejournal.com
Дык курите стандарты, как говорится. Там ясно сказано, что пойнтер обязан помещаться в unsigned long, а то что он раньше помещался в int -- не более чем совпадение. (Да и stdint.h и limits -- вещи небесполезные).

Date: 2007-10-11 08:54 pm (UTC)
From: [identity profile] alesk.livejournal.com
Уверен, они и про PHP напомнят

Date: 2007-10-11 09:01 pm (UTC)
From: [identity profile] dzz.livejournal.com
Ой, я даже знаю, когда это будет! В 2038 году! :)))

Date: 2007-10-11 09:13 pm (UTC)
From: [identity profile] itman.livejournal.com
Те, кто думают о совместимости именно им и пользуются родимым.

Date: 2007-10-11 09:28 pm (UTC)
From: [identity profile] itman.livejournal.com
Кстати, да, там при переходе с версии на версию (как сейчас помню) какие-то чудеса со знаковой "4-х байтной арифметикой" на 4х байтных машинах наблюдались :-)

Date: 2007-10-11 11:57 pm (UTC)
From: [identity profile] omnibee.livejournal.com
Ужос. Сколько программирую, а в инте 64битном необходимости не испытывал :)

Date: 2007-10-12 12:08 am (UTC)
From: [identity profile] msh.livejournal.com
Ну откуда ж у них более развитая технология, если они используют int там где важна разрядность? Да уже многие земляне types.h освоили!

Date: 2007-10-12 01:15 am (UTC)
From: [identity profile] dejavit.livejournal.com
Надеюсь, у инопланетных захватчиков те же проблемы. Иначе наше самое главное оружие -- эппловский вирус -- окажется бесполезным.

Date: 2007-10-12 04:18 am (UTC)
From: [identity profile] kot-ivanovich.livejournal.com
Ну так наоборот еще хуже бы получилось. Берём старую программу (не такую, где всё посвящено обработке строчек, а чтобы считала что-нибудь) перекомпилируем – и из-за int и указателей рабочее множество возрастает почти в два раза. Что, скорее всего, означает, что она становится медленнее в два раза – в наше время CPU занят в основном тем, что ждёт память... И вообще по идее int – не самое большое, а самое быстрое (и не очень маленькое) целое в данной архитектуре. 32 бита на эту роль IMHO лучше подходят.

Мудаков, которые писали for (int i = strlen(s); ... или указатель на int кастили, конечно, жалко, но ведь мудак он всё равно найдёт способ как убиться, какой длины ты ему int ни приделывай. Так что войну с пришельцами мы и так и так проиграем :(

Date: 2007-10-12 05:53 am (UTC)
From: [identity profile] execve.livejournal.com
> пойнтер обязан помещаться в unsigned long

?

ISO/IEC 9899:1999 6.3.2.3.6.
Any pointer type may be converted to an integer type. Except as previously specified, the
result is implementation-defined. If the result cannot be represented in the integer type,
the behavior is undefined. The result need not be in the range of values of any integer
type.

Date: 2007-10-12 05:57 am (UTC)
From: [identity profile] deadkittten.livejournal.com
Хмм... Перепроверю; может быть, я и ошибся.

Date: 2007-10-12 06:02 am (UTC)
From: [identity profile] dmttrr.livejournal.com

Софт для боевых роботов следует писать на ассемблере)

Date: 2007-10-12 06:33 am (UTC)
From: [identity profile] tantv.livejournal.com
Лучше на brainfuck-е

Date: 2007-10-12 07:22 am (UTC)
From: [identity profile] dmttrr.livejournal.com

И сразу сдаваться.

Date: 2007-10-12 08:35 am (UTC)
From: [identity profile] lolthv.livejournal.com
это первое, что мне вдолбили в голову на работе - никаких int'ов!

Date: 2007-10-12 09:03 am (UTC)
From: [identity profile] v743.livejournal.com
Можно подумать, что int на хотя бы только 32-битных компьютерах совместимости добавляет :)) int - зло ;)

Date: 2007-10-12 09:09 am (UTC)
From: [identity profile] deadkittten.livejournal.com
Перепроверил для С++; был неправ, извиняюсь...

4 A pointer can be explicitly converted to any integral type large enough to hold it. The mapping function is
implementationdefined
[Note: it is intended to be unsurprising to those who know the addressing structure
of the underlying machine. ]
5 A value of integral type or enumeration type can be explicitly converted to a pointer.60) A pointer converted
to an integer of sufficient size (if any such exists on the implementation) and back to the same pointer type
will have its original value; mappings between pointers and integers are otherwise implementationdefined.

Особенно примечание понравилось -- "to be unsurprising" :)

Date: 2007-10-12 09:09 pm (UTC)
From: [identity profile] tigra74.livejournal.com
Хорошие программисты не говорят ВСЕГДА.

Есть типы для вычислений, а есть для представления данных в бинарном виде с сохранением разрядности.

Date: 2007-10-12 10:44 pm (UTC)
From: [identity profile] slobin.livejournal.com
Вы меня опередили! ;-)

... Оловянный пацифистик ...

Date: 2007-10-13 03:07 pm (UTC)
From: [identity profile] lykac.livejournal.com
А вы подскажите мне, где можно почитать документацию по ассемблеру для 64 разрядных компов на русском?

Date: 2007-10-13 05:48 pm (UTC)
From: [identity profile] oblomov-jerusal.livejournal.com
ׂПомню, в Watcom C при переходе с одной версии на другую поменяли тип char по умолчанию с signed на unsigned (или наоборот?) и с битовыми полями в структурах что-то подобное.

Date: 2007-10-13 06:13 pm (UTC)
netch: (Default)
From: [personal profile] netch
Во-первых, эти индикаторы были семисегментными (у некоторых - точка, восьмым сегментом). Во-вторых, десятичная арифметика нужна не только для индикаторов.

Date: 2007-10-13 06:15 pm (UTC)
netch: (Default)
From: [personal profile] netch
И правильно сделали, что оставили.
Потому что пора понимать, что нефиг держать один int на все случаи жизни...

... и вообще думать на всяких там сях.

Date: 2007-10-16 06:16 pm (UTC)
From: [identity profile] syarzhuk.livejournal.com
Было дело. У нас в базе хранился размер файла. Оказалось, бывают видеофайлы больше 4 гигабайт.

Date: 2007-10-16 09:51 pm (UTC)
From: [identity profile] omnibee.livejournal.com
Не, ну никто не говорит что 64битные скаляры не нужны. У меня тоже размеры файлов и смещения в них хранятся в 64 битах, но это же не int, а совсем другой тип, ну и пусть он будет другим. А int пусть остается для тех вычислений, которые спокойно в 32бита умещаются. В 99% случаях этого хватит, а для остальных случаев есть другие типа.

Если бездумно сделать все intы 64битными, памяти слишком много зря будет расходоваться. Сплошные нули...

Date: 2007-10-18 08:35 am (UTC)
From: [identity profile] risecomplete.livejournal.com
ждем начала 38-го года...

в догонку

Date: 2007-10-18 08:43 am (UTC)
From: (Anonymous)
mysql> select UNIX_TIMESTAMP('2037-12-31 23:59:59');
+---------------------------------------+
| UNIX_TIMESTAMP('2037-12-31 23:59:59') |
+---------------------------------------+
| 2145909599 |
+---------------------------------------+
1 row in set (0.00 sec)

mysql> select UNIX_TIMESTAMP('2038-01-01 00:00:00');
+---------------------------------------+
| UNIX_TIMESTAMP('2038-01-01 00:00:00') |
+---------------------------------------+
| 0 |
+---------------------------------------+
1 row in set (0.00 sec)

а ведь 107-й год на дворе!

Date: 2007-10-20 11:11 am (UTC)
From: [identity profile] nebenbei.livejournal.com
в плен, ага. этих роботов. и пленившие их пришельцы сойдут с ума

Date: 2007-10-21 03:16 pm (UTC)
From: (Anonymous)
Вообще-то с переходом на 64-битные процессоры программисты могут совладать используя Viva64.

February 2026

S M T W T F S
1 2 3 4 5 67
8 9 10111213 14
15 16 17 18192021
2223 2425262728

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 24th, 2026 05:48 pm
Powered by Dreamwidth Studios