Главная

Haiku - это не BeOS, или Приключения Мозиллы меж двух огней

Несмотря на то, что 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)

В окнах

В окнах сохранения и тп внизу перекрываются (налазят друг на друга) кнопочки, меню листок (с выбором типа файла), область ввода названия файла. Также не видны папки и диски (для выбора куда сохронять).

нажми

нажми на кнопочку оптимизации размера на желтом таскбаре. которая переключает между максимальным и оптимальным размером

Не помогает,

Не помогает, вон:
Free Image Hosting at www.ImageShack.usQuickPost

ну

ну эт временное явление. пока можно за уголок растягивать.
а вообще кнопка OptimizeSize/MaximizeSize работает только если в окне есть содержимое.
Так что как нить потом код подкорректирую.

В том то и

В том то и дело, что в окне должно быть содержимое (стол то не пуст!).

В сравнении

В сравнении с файрфоксом:

Free Image Hosting at www.ImageShack.us

… xотя, при открытии картинки для сайта… содержимое показывается:

Free Image Hosting at www.ImageShack.us

А в композере

А в композере ни сохранить ни открыть окно непоказывает содержимого.

композер

композер SeaMonkey–вский или стрэнд–алон?

SeaMonkey?вский

SeaMonkey–вский

растяни окошко

растяни окошко и выбери в дроп–даун фильтре all (*.*) — тогда покажется.
так то фильтр показывает, как в вендах тех же в ФФ, только те типы, которые надо сохранить или открыть.

Спасибо,

Спасибо, появилось всё. Только думается папки то полюбому должны показыватся, чтоб направить сохранение в нужное место.
… а я то думал, что это только для сохранения (не для отображения) типа файла (миме) эта менюшка.

а ты попробуй

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

ты просто очень оперативным скачивальщиком оказался. Хотя может я на qube и забыл линк подкорректировать, но в bezilla.livejournal.com точно должен быть обновленный

Да, перекачал (с

Да, перекачал (с туташнего линка), директории счас всегда доступны. Спасибо.

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Allowed HTML tags: <a> <em> <i> <img> <strong> <b> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.

Подробнее о форматировании

CAPTCHA
Введите перечисленные символы, чтобы мы убедились, что вы не робот. Не требуется для зарегистрированных пользователей.
T
L
x
w
6
r
Enter the code without spaces and pay attention to upper/lower case.