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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.