Kamrad.ru
 
 
дневники | кабинет | регистрация | календарь | участники | faq | правила | поиск | фотоальбом | каська | выйти
Kamrad.ru Kamrad.ru » Форумы общей тематики » Флейм » Первая партия микропроцессоров "Эльбрус"
новая тема  ответить следующая тема | предыдущая тема
Автор
  << < 1 2 3 > >>
obruboff - offline obruboff
15-06-2005 10:42 URL сообщения        Профиль    Поиск    Контакт-лист   Редактировать
Камрад



Anafay
Как максимум разрабатываемая. Причем это еще громко сказано - они заявляют, что только начали портировать Линукс
Это уточнение моей фразы или контр-аргумент?

Это зачастую единственный способ
Примеры?

Компилятор не ловит даже явное приведение типа, не говоря уже о магическом преобразовании int** - void* - int*

Знал, что ты упомянешь приведение типов. Но это опять же непрофессионализм и/или неаккуратность.
Честно говоря, твой пример смахивает на саботаж и вредительство... Будут примеры необходимости использования таких конструкций?

Про боеголовки они ничего не говорят

Кто ж про них говорить-то станет? Хотя, думаю, у устройств типа ноутбуков, наладонников, GPS-привязчиков и т.п. ТТХ похожие получатся...

первым делом, как у Моторолы, создаются кросскомпилятор и эмулятор на PC, дабы параллельно с работами с железом можно было продвигать и софтовую часть

http://www.elbrus.ru/mcst/eng/mod_pr.shtml

Anafay - offline Anafay
15-06-2005 12:12 URL сообщения      K-Mail    Профиль    Поиск    Контакт-лист   Редактировать




obruboff
Это уточнение моей фразы или контр-аргумент?
Это уточнение. Желание портировать Линукс говорит только о том, что они хотят сделать, а не о том, что есть или что будет в итоге.

Примеры?
1) Lint. То бишь стоит выбор между надежностью и портабельностью
2) Разное расположение хедеров.
3) Потребность в типах определенного размера
4) Отсутствие необходимых типов вроде __int64
5) Особенности компиляторов и стандартных библиотек
6) Совместимость
7) Порядок следования байт

Знал, что ты упомянешь приведение типов. Но это опять же непрофессионализм и/или неаккуратность.
Честно говоря, твой пример смахивает на саботаж и вредительство... Будут примеры необходимости использования таких конструкций?

Пжалста. Как-то давно мне пришлось писать гуй на С под WinAPI. Оконная процедура MDI-client'а должна была каким-то образом по HWND получать структуру, с которой должна работать. Грубо говоря, надо было реализовать получение указателя на структуру по HWND и ассоциация HWND с указателем.
Сие было сделано с помощью двух функций - оберток над SetWindowLong. Решение нормальное и рабочее. При необходимости 64 бит, хоть я тогда над этим и не думал, требуется изменить эти две функции и регистрацию класса окна. Но в чистом виде, просто перекомпиляцией, работать не будет.

По поводу перехода int** - void* - int* еще проще: при работе с бинарным потоком. Где типов нет вообще, есть только область памяти.

Кто ж про них говорить-то станет?
Тогда на чем основывается твое утверждение?

первым делом, как у Моторолы, создаются кросскомпилятор и эмулятор на PC, дабы параллельно с работами с железом можно было продвигать и софтовую часть
http://www.elbrus.ru/mcst/eng/mod_pr.shtml


Приведенная тобой ссылка подтверждает мои слова: процессор вроде как есть, а эмулятора еще нет, хотя он должен в нормальной ситуации появиться задолго до первого экземпляра процессора.

obruboff - offline obruboff
16-06-2005 05:54 URL сообщения        Профиль    Поиск    Контакт-лист   Редактировать
Камрад



Anafay
1) Lint. То бишь стоит выбор между надежностью и портабельностью

Не понимаю, почему "между"? Когда вышел 64битный Solaris, именно линтом прекрасно находились кривые приведения в программах.

2) Разное расположение хедеров.

Не вижу проблемы - Makefile на что?

3) Потребность в типах определенного размера
4) Отсутствие необходимых типов вроде __int64


typedef
Указатель + malloc()

5) Особенности компиляторов и стандартных библиотек

Насколько я знаю, компилятор должен поддерживать определенный стандарт языка. Если такой компилятор не реализован на платформе - какие вопросы к ОС?
Какие особенности библиотек имеются ввиду?

6) Совместимость

Мы про ОС говорим? Совместимость кого с чем?

7) Порядок следования байт

Должен выравниваться в аппаратно-зависимой части.

Моя позиция проста - если сказано, что есть аппаратно-зависимая и -независимая части - подели код. В том, что это невозможно в принципе ты меня пока не убедил.

Пжалста. Как-то давно мне пришлось писать гуй на С под WinAPI. ... При необходимости 64 бит, хоть я тогда над этим и не думал, требуется изменить эти две функции и регистрацию класса окна. Но в чистом виде, просто перекомпиляцией, работать не будет.

Я не большой специалист по Windows, может, на момент написания тобой этой программы такой функции не было, но тем не менее, никто не говорит, что старому коду не надо делать cleanup
[url=http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/windowclasses/windowclassreference/windowclassfunctions/setwindowlong.asp]This function has been superseded by the SetWindowLongPtr function. To write code that is compatible with both 32-bit and 64-bit versions of Microsoft Windows, use the SetWindowLongPtr function.[url]

added: че-т урл не получился, короче, гуглом - первая ссылка по "SetWindowLong"

По поводу перехода int** - void* - int* еще проще: при работе с бинарным потоком

Я, конечно, понимаю, что проще разными указателями ссылаться на кусок памяти, но проверять при этом размер все-таки стоит...

Кто ж про них говорить-то станет?
Тогда на чем основывается твое утверждение?


Врожденная склонность к конспирологии и преувеличениям...

Приведенная тобой ссылка подтверждает мои слова: процессор вроде как есть, а эмулятора еще нет, хотя он должен в нормальной ситуации появиться задолго до первого экземпляра процессора.

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

Anafay - offline Anafay
16-06-2005 11:20 URL сообщения      K-Mail    Профиль    Поиск    Контакт-лист   Редактировать




obruboff
Не понимаю, почему "между"? Когда вышел 64битный Solaris, именно линтом прекрасно находились кривые приведения в программах.
У него иногда сносит крышу. От тайпдефов как минимум. Поэтому:
#ifndef lint
typedef signed short sb2;
#else
#define sb2 signed short
#endif
(с) %ORACLEHOME%\oci73\include\oratypes.h

Не вижу проблемы - Makefile на что?
Использовать его для определения, что инклудить, Types.h или sys/types.h?

typedef
Указатель + malloc()

И дефайны, дефайны... Так как если некий компилятор поддерживает тип, то лучше пользоваться его реализацией, что опять приводит к #if defined(_MSC_VER)...

Насколько я знаю, компилятор должен поддерживать определенный стандарт языка. Если такой компилятор не реализован на платформе - какие вопросы к ОС?
Какие особенности библиотек имеются ввиду?

Те, которые не освещены стандартами или оставлены как implementation details.
Например, какой формат использовать для вывода printf'ом 64-битного целого? У меня с этим была целая эпопея, когда результат работы SE 1.0 падал при выдаче отладочной информации: при разработке не учли наличие такого компилятора, как bcc.
Или вообще перл:
#ifdef sparc
# define SIZE_TMAXVAL SB4MAXVAL /* This case applies for sun4 */
#else
# define SIZE_TMAXVAL UB4MAXVAL /* This case applies for others */
#endif /* sparc */
Источник тот же

Мы про ОС говорим? Совместимость кого с чем?
Мы говорим про ifdef'ы. Совместимость - это, например, потребность в KR-style, что тоже отдельный блок ifdef'ов, с перечислением, кому в каком виде отдавать.

Должен выравниваться в аппаратно-зависимой части.
Во время сохранения в файл, который должен быть переносимым? Разве БД никому не нужны? Здесь за порядком байт в целых должен следить тот, кто пишет.

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

Я не большой специалист по Windows, может, на момент написания тобой этой программы такой функции не было
Ее действительно не было, но пример все равно вышел неудачным - оно будет работать простой перекомпиляцией. Тем не менее, идея понятна - сохранение указателя в не зависящем от прикладного кода хранилище фиксированного размера, которого в настоящий момент времени достаточно для хранения этого указателя.

но тем не менее, никто не говорит, что старому коду не надо делать cleanup
Это как раз верно. Но отрицает идею абсолютной портабельности как таковой.

Я, конечно, понимаю, что проще разными указателями ссылаться на кусок памяти, но проверять при этом размер все-таки стоит...
Это означает, что ты либо туда засовываешь размер, либо хочешь скорости.

Сам подумай - есть у тебя мат. модель, ты разрабатываешь реальную железку - в процессе разработки в проект вносятся изменения (что естественно), это влечет изменения мат. модели - пока камень не объявлен готовым в серию, проект создания эмулятора закончен быть не может в принципе. Если проект значится текущим, из этого не следует, что там еще конь не валялся
То есть процессора как такового нет, и они кричали ура зря? Я от разработки железа далек, но просто в голове не укладывается, как, например, можно делать что-то, если не знаешь результата...

P.S. Предлагаю закрыть тему ifdef'ов - каждый все равно останется при своем мнении.

obruboff - offline obruboff
16-06-2005 12:12 URL сообщения        Профиль    Поиск    Контакт-лист   Редактировать
Камрад



Anafay
Использовать его для определения, что инклудить, Types.h или sys/types.h?

Нет, я имел ввиду инклудить хедер из аппаратно-зависимой части, в котором и описывать ifdef'ы по платформам. Собственно, и вся мысль сводилась к тому, чтобы локализовать такие "узкие" места в аппаратно-зависимой части кода, а не размазывать по всем файлам. На этом, пожалуй, с ifdef'ами действительно можно закончить

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

Линукс тоже делали под POSIX, но не во всем этот принцип удалось соблюсти. Так и здесь - делаешь одно, получается немного другое. Опять же, мало ли случаев, когда из-за бага переписывали man-page И иногда это бывает оправдано.

Тарантул - offline Тарантул
17-06-2005 13:13 URL сообщения Дневник     K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Верховный Инквизитор



и тут остапов понесло...

LazyFox - offline LazyFox
17-06-2005 13:21 URL сообщения      K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



Как учит нас известный толкователь звуко-буквенных девиаций чего-то-там-"академик" Фоменко - надо просто поиграть с вариантами..
Эльбрус - Эль-брус - Эль-бурс - эль-буср - эль-баср - эль-Басра - этакая-фига-в-кармане - дразнилка американцев по поводу Ирака...

multivak - offline multivak
17-06-2005 13:58 URL сообщения      K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Камрад



LazyFox
муха - мура - тура - тара - кара - каре - кафе - кафр - каюр - каюк - крюк - урюк - урок - срок - сток - стон - слон

Otto-Laringolog - offline Otto-Laringolog
17-06-2005 15:42 URL сообщения      K-Mail    Профиль    Поиск    Контакт-лист   Редактировать
Banned



мозговой начался штурм ...

Текущее время: 14:34 << < 1 2 3 > >>
новая тема  ответить следующая тема | предыдущая тема
 
Перейти:

версия для печати   отправить эту страницу по e-mail   подписаться на эту тему

 
Powered by: vBulletin Version 2.0.1
Copyright ©2000, 2001, Jelsoft Enterprises Limited.
Любое использование материалов сайта
возможно только с разрешения его администрации.


 

Рейтинг@Mail.ru
Рейтинг@Mail.ru