LINUX.ORG.RU
ФорумTalks

Техника портирования «за один день»


0

0
Кто какую методологию использует для того, чтобы спортировать кусок кода из одной слабознакомой среды, написанный на малознакомом языке, на другую малознакомую среду и столь же малознакомый язык, в минимально возможное время, но и чтобы добиться работоспособности?

У меня вот закипает моск по данному поводу.

★★★★★
ящик лимонаа "колокольчик" и расслабляющий музон типа Amethystium. Мне обычно помогает
AiFiLTr0 ★★★★★
()
>У меня вот закипает моск по данному поводу. от содержимого топика у любого вскипит
wfrr ★★☆
()
Я думаю, надо взять пару учебников для быдлокодеров типа "Assembler для тех, кого лоботомировали"
Quasar ★★★★★
()
эта... а проще задачи есть?

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

gunja
()
Ответ на: комментарий от AiFiLTr0
"Колокольчик", но не натощак.
Еще мультифруктовые соки, мясо.

А саму методологию - эвристику - лучше заточить под себя.
Она похожа на эвристический алгоритм обхода дерева (и не "в ширину", и не "в глубину").
pacify ★★★★★
()
Ответ на: комментарий от gunja
> а то перевести с малазийского на какое-нибудь наречие Новой Зеландии... не просто нетривиальная, а пипец какая-то задача для не знающего ни тот ни другой.

Ползволю уточнение. Языки не столь и малознакомые, но пользовался я ими давно. source=C, destination=C++. Надо перенести кой-чего с NetBSD на Darwin. Обе операционные среды мне знакомы общими принципами, в кишках не ковырялся.

Кстати, линуксячьи драйверы читать, это проще сверлом засверлиться сразу.

shimon ★★★★★
() автор топика
Ответ на: комментарий от shimon
> Ползволю уточнение. Языки не столь и малознакомые, но пользовался я ими давно. source=C, destination=C++. Надо перенести кой-чего с NetBSD на Darwin. Обе операционные среды мне знакомы общими принципами, в кишках не ковырялся.

hm. что именно перенести то?

> Кстати, линуксячьи драйверы читать, это проще сверлом засверлиться сразу.

"не читайте советских газет перед едой" (c)..

// wbr
klalafuda ★☆☆
()
> из одной слабознакомой среды, написанный на малознакомом языке, на другую малознакомую среду и столь же малознакомый язык

А мне не особо важно, я кроме основных принципов программирования ничего не знаю, а google - мой long time access memory. Остаётся только подгрузить синтаксис определённого языка, переписать и отладить.

anonymous
()
Ответ на: комментарий от klalafuda
> hm. что именно перенести то?

Надо создать IOKit Ethernet Driver, руководствуясь if_bge.c.

Считаю нужным отдать должное разработчикам NetBSD и OpenBSD, написавшим вменяемый код. Broadcom, отдавая драйвер в ядро Linux, постаралась написать его так, что плюются многие. Достаточно поискать tg3 porting и посмотреть на заплеванные списки рассылок.

shimon ★★★★★
() автор топика
Ответ на: комментарий от klalafuda
Ну и еще, вы будете смеяться, но Broadcom 44xx и Broadcom 57xx настолько между собой непохожи, что даже не знаю, стоит ли смотреть на сырцы от Apple или нет. То есть я смотрел, отличий найти не смог.
shimon ★★★★★
() автор топика
Ответ на: комментарий от shimon
s/отличий/наводящих вещей/, сорри.
shimon ★★★★★
() автор топика
Ответ на: комментарий от shimon
> Надо создать IOKit Ethernet Driver, руководствуясь if_bge.c.

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

понимаю, что быдлометод, часто даже долгий и не продуктивный. но иногда работает

gunja
()
Ответ на: комментарий от gunja
Нипакатит. Очень разная структура, кроме всего — мешает то, что разные языки. C != C++, даже если C++ используется лишь в качестве «C с классами».
shimon ★★★★★
() автор топика
Находишь в документации пример "Hello world!" и копируешь к себе. Работоспособность есть. Делает, правда, не то, что надо, но это - дело поправимое.
Miguel ★★★★★
()
Ответ на: комментарий от gunja
> извиняюсь, не совсем в теме... но я примерно сделал бы так. взял код начал собирать его на целевой платформе, подкручивая сначала до состояния собралось, потом слинковалось, потом завелось, потом ещё и правильно полетело.

я не знаю, как именно выглядит сетевой стек на дарвине, но, боюсь, что он не очень похож на NetBSD :) не пойдёт. тут IMHO как минимум нужно хорошо разбираться в этой железке и обоих стеках. ну C/C++ само собой разумеется нужно знать. даже не знаю, что посоветовать.

// wbr
klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda
> даже не знаю, что посоветовать.

ps: нет, ну на самом деле конечно же знаю - "забить" и спокойно идти пить пиво с незамутнённым всякой фигнёй разумом :)

// wbr
klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda
Ну, иптыть, пить пиво всегда хорошо, а что мой хакинтош сети не может увидеть — плёха! :)
shimon ★★★★★
() автор топика
Ответ на: комментарий от shimon
Ну что ж. Похоже, что тебе надо всё-таки поизучать всё это дело.

А ещё можешь открыть проект по унификации API драйверов для различных ОС , сделав прослойку с единым API ;)

Quasar ★★★★★
()
Ответ на: комментарий от Quasar
> А ещё можешь открыть проект по унификации API драйверов для различных ОС , сделав прослойку с единым API ;)

Прибыльнее будет открыть аттракцион со стеной и добровольцами в качестве Томми.

shimon ★★★★★
() автор топика
Ответ на: комментарий от troorl
> Заплати тому, у кого не закипает и он тебе всё сделает

Если б было много «заплатить», то куда проще взять аутентичный мак.

shimon ★★★★★
() автор топика
Ответ на: комментарий от shimon
shimon> Прибыльнее будет открыть аттракцион со стеной и добровольцами в качестве Томми.

Вот так на вполне серьёзное и перспективное предложение отвечает желающий решить проблему :)

Может лучше хакинтош снести?

Quasar ★★★★★
()
Ответ на: комментарий от Quasar
> Может лучше хакинтош снести?

Нихачу. В остальном оно just works.

shimon ★★★★★
() автор топика
> Кто какую методологию использует для того, чтобы спортировать кусок кода из одной слабознакомой среды, написанный на малознакомом языке, на другую малознакомую среду и столь же малознакомый язык

Ну ничего себе! С малознакомой на малознакомую? Лучше не браться, ИМХО.

alman ★★★
()
Это ж крайне похоже на обычный быдлокодерский рефакторинг! Функция глобальный поиск-и-замена наше все. И еще, конечно, помогает если результирующая среда умеет компилировать. А если есть набор тестов, которые можно пройти, то вообще вперед с пестнями!
gods-little-toy ★★★
()
Пиво для гуру ;-)
record ★★★★★
()
Ответ на: комментарий от gods-little-toy
Я тут давеча быдлокодерски рефакторил ITU-шные сорцы плавучего g729 кодека для обеспечения его thread-safe-ности. Чуть умом не тронулся. Хорошо по частям можно было сделать и тестовые вектора были, иначе бы полгода блох гонял.

Не было бы тествекторов - проще бы было написать заново.

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