Haiku - это не BeOS, или Приключения Мозиллы меж двух огней
SD 13 июля, 2008 - 00:39.Несмотря на то, что BeOS и Haiku бинарно совместимы, и программы, скомпилированные под BeOS, могут работать и под Haiku–OS, оказывается, это распространяется только на «правильно» написанные программы. Так как создатели Haiku стараются максимально придерживаться документации, а большую часть недокументированных приколов и ошибок им повторить трудно. Хотя да, некоторые такие ошибки приходиться поддерживать, до изобретения лучшего выхода, например некоторые особенности реализации файловой системы BFS.
Но пора вернуться к нашим зверюшкам, Креветке, Ящерице, Лисенку и Буревестнику. По мере совершеноствования Haiku–OS вдруг стало наблюдаться странное явление — безупречно работающие совместно под BeOS Mozilla–программы перестали работать вместе под Haiku. Запуск одной приводил к немедленному закрытию другой. Детективное расследование осложнялось именно тем фактом, что под BeOS всё работало, так что хоть разработчики Haiku кивали на код Mozilla, с нашей стороны все же было желание расследовать, в чем же на самом деле несоответствие. И оказалось, они были правы.
Неправильный код создавался в те времена, когда существовала только одна программа на основе системы Gecko, наследник Netscape Communcator, который тогда назывался просто Mozilla (потом Mozilla Suite, а ныне — SeaMonkey), и никому в голову не приходила идея запускать несколько одинаковых программ одновременно — да и не все платформы такое позволяли. Поэтому первые программисты, создававшие порт Suite для BeOS, просто не могли столкнуться с этой проблемой. А когда появились разные программы, все продолжало работать совместно по чистой недокументированной случайности.
Технические детали я пожалуй опущу, их можно поглядеть здесь и в блоге Bezilla, но коротко говоря, глобальные для всей OS объекты — порты (ports) получали имена, исходя из локальных адресов указателей на главный поток. А затем другие части программы искали этот порт по имени, полученным таким же образом. Так вот, в BeOS по случайности объекты мозилла–потоков получали разные адреса для разных программ — что никакой документацией не гарантируется, и гарантироваться не может, а в Haiku для указателей из библиотек с одинаковым кодом всегда теперь даются одинаковые локальные адреса. Так что каждая программа на основе Gecko стала получать одни и те же имена для портов, и соответственно, захватывать чужие порты. Что и приводило к описанным чудесам.
Когда суть дела выяснилось, для дерева 1.8 проблему удалось залатать буквально за один день, так что для желающих использовать одновременно разные мозилла–программы под Haiku (и гарантированно–безопасно — под BeOS), я выкладываю две сборки:
Firefox 2.0*
и
SeaMonkey 1.1*.
Кроме исправления описанного выше глюка, в обоих сборках поддерживается печать через постскрипт, имеются фильтры для нативного файл–менеджера, правильно распознаются типы файлов и убран глюк с «залипанием» мышки (когда теряется отпускание клавиши).
А вообще вышеописанная история — неплохая мораль для кодера — не надейтесь на «недокументированное счастье», а с глобальными для OS объектами — обращайтесь с утроенной осторожностью!:)
Бум пробовать
Бум пробовать на свежей Haiku
Грузится долго
Грузится долго (симонкей).
грузится —
грузится — в смысле запускается?
Да.
Да.
Странно, вроде
Странно, вроде уже быстрее запускается, может старые настройки как то влияли?
перед
перед инсталляцией «новой» версии обычно полезно почистить кэш, удалить файл XUL.mfasl и файл compreg.dat — и первый раз запустить из терминала через скрипт.
тогдк на второй раз уже должно запускаться быстро.
А файрфокс
А файрфокс у меня незапускается если не убрать папку настроек мозила.
а вот когда
а вот когда Дано делали, специально все недокументированные багофичи отслеживали?)
ну многое
ну многое там просто не менялось, а вообще, обратная совместимость по багофичам — это отдельная песня. 50% причин сверхожирения Виндовс наверное именно в этом:)
На самом деле,
На самом деле, может, и больше.
Я в своё время рассматривал исходники Винды 2000. Там попадались совершенно замечательные комментарии: «Вообще–то, это баг, но он оставлен в целях совместимости с продуктами фирмы Borland» Частично это упоминается в этой статье — лучшем из кратких обзоров исходников Win2000, который я видел.
вы вспомните как там G
вы вспомните как там GDI работает :)))
Чегото
Чегото посленяя мозила выкидывает, что такойто адресс ненайден (после выбора его из букмарков), далее сделав рефреш этот адресс находится. (BeOS bone)
В окнах
В окнах сохранения и тп внизу перекрываются (налазят друг на друга) кнопочки, меню листок (с выбором типа файла), область ввода названия файла. Также не видны папки и диски (для выбора куда сохронять).
нажми
нажми на кнопочку оптимизации размера на желтом таскбаре. которая переключает между максимальным и оптимальным размером
Не помогает,
Не помогает, вон:
ну
ну эт временное явление. пока можно за уголок растягивать.
а вообще кнопка OptimizeSize/MaximizeSize работает только если в окне есть содержимое.
Так что как нить потом код подкорректирую.
В том то и
В том то и дело, что в окне должно быть содержимое (стол то не пуст!).
В сравнении
В сравнении с файрфоксом:
xотя, при открытии картинки для сайта содержимое показывается:
А в композере
А в композере ни сохранить ни открыть окно непоказывает содержимого.
композер
композер SeaMonkey–вский или стрэнд–алон?
SeaMonkey?вский
SeaMonkeyвский
растяни окошко
растяни окошко и выбери в дроп–даун фильтре all (*.*) — тогда покажется.
так то фильтр показывает, как в вендах тех же в ФФ, только те типы, которые надо сохранить или открыть.
Спасибо,
Спасибо, появилось всё. Только думается папки то полюбому должны показыватся, чтоб направить сохранение в нужное место.
а я то думал, что это только для сохранения (не для отображения) типа файла (миме) эта менюшка.
а ты попробуй
а ты попробуй по линку еще раз скачай. там через день была заменена версия на ту, где папки всегда показываются:)
ты просто очень оперативным скачивальщиком оказался. Хотя может я на qube и забыл линк подкорректировать, но в bezilla.livejournal.com точно должен быть обновленный
Да, перекачал (с
Да, перекачал (с туташнего линка), директории счас всегда доступны. Спасибо.
Отправить комментарий