Странные баги Mac версии
От: Khimik  
Дата: 20.11.23 07:48
Оценка: :)
Мне сторонний программист портировал мою Delphi программу на Lazarus и скомпилировал на Linux и Mac (он говорит что пришлось для этого вести параллельно два исходника). С Linux версией вроде всё нормально, а с Mac есть какие-то странные баги. На одном Mac Intel компьютере вроде работает, но невидимы многие кнопки и пункты меню (хотя на них можно кликать). На другом компьютере при выборе пунктов меню в определённой последовательности программа вылетает. Ещё один пользователь написал что программа периодически слетает, хотя в принципе пользоваться можно; а другой написал что слетает не только программа, но и другие программы, запущенные одновременно с ней. Ещё один написал, что dmg архив Mac версии повреждён и не запускается, хотя Intel версия работает нормально.
Я подозреваю, что всё дело в нестандартной инсталляции программы, которую я пока использую — через .dmg файлы (образы диска). Процедура инсталляции выглядит следующим образом:

1) Человек распаковывает dmg файл и копирует его содержимое на каталог на винчестере;
2) Чтобы система не помещала файл в карантин, можно набрать в терминале что-то вроде этого:

$ cd /Users/username/Downloads/Program/
$ xattr -d com.apple.quarantine Program_ARM.app

Другой вариант — кликнуть правой кнопкой на приложении и выбрать System settings -> Privacy & Security
3) После копирования нужно ещё размонтировать dmg файл.

Это всё является источником данных багов? Если да, как делать инсталлятор правильно? Россиянам это Apple вообще разрешит?
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Re: Странные баги Mac версии
От: temnik Россия  
Дата: 20.11.23 09:33
Оценка: +1
Здравствуйте, Khimik, Вы писали:

K>в нестандартной инсталляции программы, которую я пока использую — через .dmg файлы


Вообще-то для мака это как раз стандартная инсталляция. Весть почти софт устанавливается так — открывается образ диска, пользователю показывается окошко с ярлыком программы и ярлыком папки Приложения, и он должен перетащить ярлык программы на ярлык Приложения, после чего программа копируется в папку Приложения.
Лучший хостинг от 4 евро, VPS от 6 евро, разные локации, оплата картами без проблем, скидки до 20%.
50 бесплатных смс
Отредактировано 20.11.2023 9:39 temnik . Предыдущая версия . Еще …
Отредактировано 20.11.2023 9:39 temnik . Предыдущая версия .
Re: Странные баги Mac версии
От: _synapse_  
Дата: 20.11.23 09:53
Оценка:
Здравствуйте, Khimik, Вы писали:

K>Мне сторонний программист портировал мою Delphi программу на Lazarus и скомпилировал на Linux и Mac (он говорит что пришлось для этого вести параллельно два исходника). С Linux версией вроде всё нормально, а с Mac есть какие-то странные баги. На одном Mac Intel компьютере вроде работает, но невидимы многие кнопки и пункты меню (хотя на них можно кликать). На другом компьютере при выборе пунктов меню в определённой последовательности программа вылетает. Ещё один пользователь написал что программа периодически слетает, хотя в принципе пользоваться можно; а другой написал что слетает не только программа, но и другие программы, запущенные одновременно с ней. Ещё один написал, что dmg архив Mac версии повреждён и не запускается, хотя Intel версия работает нормально.

K>Я подозреваю, что всё дело в нестандартной инсталляции программы, которую я пока использую — через .dmg файлы (образы диска). Процедура инсталляции выглядит следующим образом:

K>1) Человек распаковывает dmg файл и копирует его содержимое на каталог на винчестере;

K>2) Чтобы система не помещала файл в карантин, можно набрать в терминале что-то вроде этого:

K>$ cd /Users/username/Downloads/Program/

K>$ xattr -d com.apple.quarantine Program_ARM.app

K>Другой вариант — кликнуть правой кнопкой на приложении и выбрать System settings -> Privacy & Security

K>3) После копирования нужно ещё размонтировать dmg файл.

K>Это всё является источником данных багов? Если да, как делать инсталлятор правильно? Россиянам это Apple вообще разрешит?


Атрибут карантина не должен влиять на программу, если она уже запущена.
А за что вы так своих пользователей не любите, купите за 99 долларов подписку разработчика и подписывайте, нотаризуйте свои программы.
Re: Странные баги Mac версии
От: DiPaolo Россия  
Дата: 20.11.23 10:14
Оценка:
K>Я подозреваю, что всё дело в нестандартной инсталляции программы, которую я пока использую — через .dmg файлы (образы диска).
Вполне обычная инсталляция наряду с инсталляцией из AppStore. Многие такой вариант используют.

K>1) Человек распаковывает dmg файл и копирует его содержимое на каталог на винчестере;

Обычно для этого делают окошко, где пользователь просто делает визуальный drag-n-drop.

K>2) Чтобы система не помещала файл в карантин, можно набрать в терминале что-то вроде этого:


K>$ cd /Users/username/Downloads/Program/

K>$ xattr -d com.apple.quarantine Program_ARM.app

Очень кривой путь. По-хорошему нужно просто подписать бинарники.

K>Другой вариант — кликнуть правой кнопкой на приложении и выбрать System settings -> Privacy & Security

Это нестандартный и тернистый путь для пользователя.

K>3) После копирования нужно ещё размонтировать dmg файл.

Это все мелочь и обычная практика. Пользователь сам потом сделает.

K>Это всё является источником данных багов? Если да, как делать инсталлятор правильно? Россиянам это Apple вообще разрешит?

Не похоже. Скорее похоже на кривость портирования (Lazarus или программист что-то неправильно сделал/недоделал). Плюс см. комментарии выше.
Патриот здравого смысла
Re: Странные баги Mac версии
От: drVanо Россия https://vmpsoft.com
Дата: 20.11.23 11:08
Оценка: +2
Здравствуйте, Khimik, Вы писали:

K>Мне сторонний программист портировал мою Delphi программу на Lazarus и скомпилировал на Linux и Mac


Пока вашу программу будет писать сторонний программист, а вы все свое свободное время будете тратить на обсуждение "мировых проблем" типа "Рост цен на жильё по категориям", "Цифровой рубль и банковский мультипликатор", "Биткоин vs Тонкоин" и прочую хрень, то вы никогда не будете прогрессировать как программист (раз уж вы себя таковым заявляете). А пока я вижу у вас только полнейшее отсутствие любых знаний, относящихся к программированию.
Re[2]: Странные баги Mac версии
От: falcoware Россия https://falcoware.com/rus/
Дата: 20.11.23 12:35
Оценка: -2
V>Пока вашу программу будет писать сторонний программист, а вы все свое свободное время будете тратить на обсуждение "мировых проблем" типа "Рост цен на жильё по категориям", "Цифровой рубль и банковский мультипликатор", "Биткоин vs Тонкоин" и прочую хрень, то вы никогда не будете прогрессировать как программист (раз уж вы себя таковым заявляете). А пока я вижу у вас только полнейшее отсутствие любых знаний, относящихся к программированию.

Себестоимость одного запроса ChatGPT стоит 4 цента. Чем сложнее система — тем она дороже. Может людям не по карману будет твой Протектор.
https://falcoware.com/rus/ — Бесплатные Игры!!!
Re[2]: Странные баги Mac версии
От: Khimik  
Дата: 20.11.23 14:02
Оценка:
Здравствуйте, DiPaolo, Вы писали:

DP>Очень кривой путь. По-хорошему нужно просто подписать бинарники.


Можно ликбез, подписать это что значит?
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Re[2]: Странные баги Mac версии
От: Khimik  
Дата: 20.11.23 14:06
Оценка:
Здравствуйте, DiPaolo, Вы писали:

K>>Это всё является источником данных багов? Если да, как делать инсталлятор правильно? Россиянам это Apple вообще разрешит?

DP>Не похоже. Скорее похоже на кривость портирования (Lazarus или программист что-то неправильно сделал/недоделал).

Если это так, то у меня объявление — ищу кого-то кто вылечит этот Lazarus код, предлагаю 80 000р за работу.
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Re[3]: Странные баги Mac версии
От: drVanо Россия https://vmpsoft.com
Дата: 20.11.23 14:07
Оценка: +2 :))
Здравствуйте, Khimik, Вы писали:

DP>>Очень кривой путь. По-хорошему нужно просто подписать бинарники.


K>Можно ликбез, подписать это что значит?


Re[3]: Странные баги Mac версии
От: DiPaolo Россия  
Дата: 20.11.23 15:29
Оценка:
K>Можно ликбез, подписать это что значит?

https://developer.apple.com/library/archive/documentation/Security/Conceptual/CodeSigningGuide/Introduction/Introduction.html
https://wiki.lazarus.freepascal.org/Code_Signing_for_macOS
https://developer.apple.com/support/code-signing/
Патриот здравого смысла
Re[3]: Странные баги Mac версии
От: rudzuk  
Дата: 20.11.23 17:19
Оценка:
Здравствуйте, Khimik, Вы писали:

K> Если это так, то у меня объявление — ищу кого-то кто вылечит этот Lazarus код, предлагаю 80 000р за работу.


На моей памяти ты уже третий раз работу местным предлагаешь. Так и не нашел постоянного партнера?
avalon/3.0.2
Re[3]: Странные баги Mac версии
От: r0nd  
Дата: 20.11.23 17:42
Оценка:
Здравствуйте, Khimik, Вы писали:

K>Если это так, то у меня объявление — ищу кого-то кто вылечит этот Lazarus код, предлагаю 80 000р за работу.


Какой объем существующего кода? Можешь посчитать с помощью cloc? Вывод утилиты скинь сюда.
...<< Dementor 1.5.1 ✪ Lets Play a Game ⚁⚄⚅⚅⚅>>
Re[4]: Странные баги Mac версии
От: Khimik  
Дата: 20.11.23 19:05
Оценка:
Здравствуйте, r0nd, Вы писали:

K>>Если это так, то у меня объявление — ищу кого-то кто вылечит этот Lazarus код, предлагаю 80 000р за работу.


R>Какой объем существующего кода? Можешь посчитать с помощью cloc? Вывод утилиты скинь сюда.


Мне пока неохота скачивать cloc, в проекте около 300 модулей с общим размером 7 МБ (это размер всех .pas файлов).
Поскольку на rsdn не работает почта, мой email grandrienko[одомашненный волк]rmedprog.com
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Re[5]: Странные баги Mac версии
От: Shmj Ниоткуда  
Дата: 20.11.23 21:16
Оценка:
Здравствуйте, Khimik, Вы писали:

K>Мне пока неохота скачивать cloc, в проекте около 300 модулей с общим размером 7 МБ (это размер всех .pas файлов).


Это только .pas — т.е. написанный руками код? Или и автогенеренныый?

7 Мб рукописного кода — это значит проект делался несколько лет, минимум пару человеко-лет.
Отредактировано 20.11.2023 21:20 Shmj . Предыдущая версия .
Re: Странные баги Mac версии
От: Shmj Ниоткуда  
Дата: 20.11.23 21:27
Оценка: +1
Здравствуйте, Khimik, Вы писали:

K>Это всё является источником данных багов? Если да, как делать инсталлятор правильно? Россиянам это Apple вообще разрешит?


Многие разработчики забывают, что программы не математическая абстракця — ПРОГРАММЫ РАБОТАЮТ НА ДЕВАЙСАХ. И в первую очередь если вы рарабатываете ПО для некого девайса, пусть и с помощью т.н. кроссплатформы — вам нужно иметь этот девайс. Пусть б/у пусть старый и грязный — но иметь работающий девайс с установленной ОС. Скорее всего даже несколько девайсов с разными ОС, если такая поддержка планируется.

Причин может быть вагон и маленькая тележка. Просто даже собрать либу из исхдников — уже часто задача, кторая на несколько дней выходит.
Re[2]: Странные баги Mac версии
От: drVanо Россия https://vmpsoft.com
Дата: 21.11.23 03:50
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Многие разработчики забывают, что программы не математическая абстракця — ПРОГРАММЫ РАБОТАЮТ НА ДЕВАЙСАХ. И в первую очередь если вы рарабатываете ПО для некого девайса, пусть и с помощью т.н. кроссплатформы — вам нужно иметь этот девайс. Пусть б/у пусть старый и грязный — но иметь работающий девайс с установленной ОС. Скорее всего даже несколько девайсов с разными ОС, если такая поддержка планируется.


В большинстве случаев даже и девайс не нужен — достаточно поставить необходимую операционку на виртуалку прямо на рабочей машине.
Re[3]: Странные баги Mac версии
От: Shmj Ниоткуда  
Дата: 21.11.23 04:44
Оценка:
Здравствуйте, drVanо, Вы писали:

V>В большинстве случаев даже и девайс не нужен — достаточно поставить необходимую операционку на виртуалку прямо на рабочей машине.


MacOS не поставишь. Какой-нибудь хакинтош, который только со старой версией и то не все функции работают — возможно.

Вердикт такой: если софт не приносит даже денег на компьютер разработчику — то нафиг он тогда нужен?
Re[4]: Странные баги Mac версии
От: drVanо Россия https://vmpsoft.com
Дата: 21.11.23 05:07
Оценка:
Здравствуйте, Shmj, Вы писали:

S>MacOS не поставишь. Какой-нибудь хакинтош, который только со старой версией и то не все функции работают — возможно.


Вот недавно поставил интеловскую macOS 14 (Sonoma) на VMware — все отлично работает.
Re[5]: Странные баги Mac версии
От: Shmj Ниоткуда  
Дата: 21.11.23 05:09
Оценка:
Здравствуйте, drVanо, Вы писали:

V>Вот недавно поставил интеловскую macOS 14 (Sonoma) на VMware — все отлично работает.


Но на железе от Apple типа M2 процессор?
Re[6]: Странные баги Mac версии
От: drVanо Россия https://vmpsoft.com
Дата: 21.11.23 05:18
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Но на железе от Apple типа M2 процессор?


Для тестов на М2, да — придется покупать сам девайс, но это как раз остаток от "большинства случаев", о которых я писал
Re[7]: Странные баги Mac версии
От: Shmj Ниоткуда  
Дата: 21.11.23 05:21
Оценка:
Здравствуйте, drVanо, Вы писали:

S>>Но на железе от Apple типа M2 процессор?

V>Для тестов на М2, да — придется покупать сам девайс, но это как раз остаток от "большинства случаев", о которых я писал

Вы на каком железе запустили Sonoma на VMware? Если железо не от Apple — там нужен VMWare macOS Unlocker и прочие прибамбасы, причем работает все криво, если вообще заработает.
Re[8]: Странные баги Mac версии
От: drVanо Россия https://vmpsoft.com
Дата: 21.11.23 05:49
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Вы на каком железе запустили Sonoma на VMware? Если железо не от Apple — там нужен VMWare macOS Unlocker и прочие прибамбасы, причем работает все криво, если вообще заработает.


Вы имеете ввиду железо на хостовой машине? У меня древний i7-4770. Для удаленной отладки под Intel мне вполне хватает даже виртуальной 10.9, которую я еще ставил на VirtualBox. Для реальных тестов под М2 есть свежий макбук.

P.S. Недавно проапгрейдил на билдсервере под ESXi 5.0 виртуальную macOS c 10.8.5 на 10.11.6. Тоже полет нормальный.
Отредактировано 21.11.2023 5:53 drVanо . Предыдущая версия . Еще …
Отредактировано 21.11.2023 5:52 drVanо . Предыдущая версия .
Re: Странные баги Mac версии
От: Wawan Россия http://www.wawan.ru/resume
Дата: 21.11.23 07:51
Оценка:
сделай прогу однопоточной
процессоры интела очень многие косяки программистов в синхронизации между потоками прощают, т.к. аппаратно сами синхронизируют все записи между кешами всех ядер
процессоры АРМ так НЕ делают, и потому многопоточность будет работать случайным образом и требует программерские скилы гораздо скиловее самых скиловых интелоских скилов Ж)
Отредактировано 21.11.2023 7:52 Wawan . Предыдущая версия .
Re[6]: Странные баги Mac версии
От: Khimik  
Дата: 21.11.23 08:12
Оценка:
Здравствуйте, Shmj, Вы писали:

K>>Мне пока неохота скачивать cloc, в проекте около 300 модулей с общим размером 7 МБ (это размер всех .pas файлов).


S>Это только .pas — т.е. написанный руками код? Или и автогенеренныый?


Ну да, то что я написал.
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Re[2]: Странные баги Mac версии
От: Khimik  
Дата: 21.11.23 08:13
Оценка:
Здравствуйте, Wawan, Вы писали:

W>сделай прогу однопоточной


В смысле не использовать всякие tthread? Ну мне это не требовалось.
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Re[4]: Странные баги Mac версии
От: vladrsdn http://vvh-ru.blogspot.com/
Дата: 21.11.23 08:33
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Здравствуйте, drVanо, Вы писали:


V>>В большинстве случаев даже и девайс не нужен — достаточно поставить необходимую операционку на виртуалку прямо на рабочей машине.


S>MacOS не поставишь. Какой-нибудь хакинтош, который только со старой версией и то не все функции работают — возможно.


macos работает прекрасно в vmware player.
http://vvh-dev-ru.blogspot.com — Трудовые будни шароварщика http://vvh-ru.blogspot.com — Блог об оффлайне
Re[4]: Странные баги Mac версии
От: Khimik  
Дата: 21.11.23 10:44
Оценка:
Здравствуйте, rudzuk, Вы писали:

K>> Если это так, то у меня объявление — ищу кого-то кто вылечит этот Lazarus код, предлагаю 80 000р за работу.


R>На моей памяти ты уже третий раз работу местным предлагаешь. Так и не нашел постоянного партнера?


Да, хочу отдать всю свою работу на аутсорс, чтобы было больше времени изучать философию, физику, биологию, политологию, экономику и т.д.
Меня вообще раздражает это форумное сектантство, когда в каждом разделе сидит свой контингент, не интересующий ничем, кроме своей узкой специализации. Вам может быть интересно хоть что-то, кроме зарабатывния лишней штуки баксов?
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Re[5]: Странные баги Mac версии
От: rudzuk  
Дата: 21.11.23 14:07
Оценка: +1
Здравствуйте, Khimik, Вы писали:

K> R>На моей памяти ты уже третий раз работу местным предлагаешь. Так и не нашел постоянного партнера?


K> Да, хочу отдать всю свою работу на аутсорс, чтобы было больше времени изучать философию, физику, биологию, политологию, экономику и т.д.


Это верный способ угандошить продукт. Впрочем, дело твое, а меня скорее удивляет факт, что за все время ты не нашел постоянства.

K> Меня вообще раздражает это форумное сектантство, когда в каждом разделе сидит свой контингент, не интересующий ничем, кроме своей узкой специализации.


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

K> Вам может быть интересно хоть что-то, кроме зарабатывния лишней штуки баксов?


А то!
avalon/3.0.2
Re[2]: Странные баги Mac версии
От: wantus  
Дата: 21.11.23 14:44
Оценка:
Здравствуйте, Wawan, Вы писали:

W>процессоры интела очень многие косяки программистов в синхронизации между потоками прощают, т.к. аппаратно сами синхронизируют все записи между кешами всех ядер

W>процессоры АРМ так НЕ делают, и потому многопоточность будет работать случайным образом и требует программерские скилы гораздо скиловее самых скиловых интелоских скилов Ж)

Обана. А детали где почитать?
Re[3]: Странные баги Mac версии
От: Wawan Россия http://www.wawan.ru/resume
Дата: 21.11.23 15:50
Оценка: +1
Здравствуйте, wantus, Вы писали:

W>Здравствуйте, Wawan, Вы писали:


W>>процессоры интела очень многие косяки программистов в синхронизации между потоками прощают, т.к. аппаратно сами синхронизируют все записи между кешами всех ядер

W>>процессоры АРМ так НЕ делают, и потому многопоточность будет работать случайным образом и требует программерские скилы гораздо скиловее самых скиловых интелоских скилов Ж)

W>Обана. А детали где почитать?


в x86 все синхрится само
а в арм решили сэкономить энергию электричесткую но получили перерасход энергии программерской, синхронизация вручную

ключевое слово для поиска
cache coherence

команды для Data Synchronization Barrier operation
https://developer.arm.com/documentation/ddi0460/d/System-Control/Register-descriptions/Cache-operations?lang=en

https://events.static.linuxfound.org/sites/events/files/slides/slides_10.pdf
https://en.wikipedia.org/wiki/MESI_protocol
Отредактировано 21.11.2023 16:16 Wawan . Предыдущая версия . Еще …
Отредактировано 21.11.2023 16:12 Wawan . Предыдущая версия .
Отредактировано 21.11.2023 15:54 Wawan . Предыдущая версия .
Re[4]: Странные баги Mac версии
От: icezone  
Дата: 21.11.23 16:17
Оценка:
Здравствуйте, Wawan, Вы писали:

W>>>процессоры интела очень многие косяки программистов в синхронизации между потоками прощают, т.к. аппаратно сами синхронизируют все записи между кешами всех ядер

W>>>процессоры АРМ так НЕ делают, и потому многопоточность будет работать случайным образом и требует программерские скилы гораздо скиловее самых скиловых интелоских скилов Ж)

W>ключевое слово для поиска

W>cache coherence

А этим точно не операционка должна заниматься?
Re[5]: Странные баги Mac версии
От: Wawan Россия http://www.wawan.ru/resume
Дата: 21.11.23 16:42
Оценка:
Здравствуйте, icezone, Вы писали:

I>Здравствуйте, Wawan, Вы писали:


W>>>>процессоры интела очень многие косяки программистов в синхронизации между потоками прощают, т.к. аппаратно сами синхронизируют все записи между кешами всех ядер

W>>>>процессоры АРМ так НЕ делают, и потому многопоточность будет работать случайным образом и требует программерские скилы гораздо скиловее самых скиловых интелоских скилов Ж)

W>>ключевое слово для поиска

W>>cache coherence

I>А этим точно не операционка должна заниматься?


думаю этим занимаются в реализации std mutex и иже с ними
просто многие любят lock free алгоритмы а на арме их надо отлаживать заново

ключевые слова
arm lock-free
https://preshing.com/20120612/an-introduction-to-lock-free-programming/
Отредактировано 21.11.2023 16:47 Wawan . Предыдущая версия .
Re[6]: Странные баги Mac версии
От: drVanо Россия https://vmpsoft.com
Дата: 21.11.23 16:55
Оценка:
Здравствуйте, Wawan, Вы писали:

W>думаю этим занимаются в реализации std mutex и иже с ними

W>просто многие любят lock free алгоритмы а на арме их надо отлаживать заново

А вы точно ARM и ARM64 не путаете?

_InterlockedExchangePointer от MSVC:
0000000180001700 adrp x16, 000000018003E000 → _AtomicsV81Support@PAGE
0000000180001704 ldr w16, [x16,#9C0] → _AtomicsV81Support@PAGEOFF
0000000180001708 tbz w16, #0, 0000000180001718 ↓
000000018000170C swpal x1, x0, [x0]
0000000180001710 dmb ish
0000000180001714 ret
0000000180001718 cbz x16, 0000000180001734 ↓
000000018000171C ldaxr x2, [x0]
0000000180001720 stlxr w16, x1, [x0]
0000000180001724 cbnz w16, 000000018000171C ↑
0000000180001728 dmb ish
000000018000172C mov x0, x2
0000000180001730 ret


Тут вам аж 2 варианта: через атомарный SWPAL (для более новых процов) и LDAXR/STLXR (для старых).
Отредактировано 21.11.2023 17:09 drVanо . Предыдущая версия . Еще …
Отредактировано 21.11.2023 17:01 drVanо . Предыдущая версия .
Re[7]: Странные баги Mac версии
От: Wawan Россия http://www.wawan.ru/resume
Дата: 21.11.23 17:13
Оценка:
Здравствуйте, drVanо, Вы писали:

V>Здравствуйте, Wawan, Вы писали:


W>>думаю этим занимаются в реализации std mutex и иже с ними

W>>просто многие любят lock free алгоритмы а на арме их надо отлаживать заново

V>А вы точно ARM и ARM64 не путаете?


V>_InterlockedExchangePointer от MSVC:

V>
V>0000000180001700 adrp x16, 000000018003E000 → _AtomicsV81Support@PAGE
V>0000000180001704 ldr w16, [x16,#9C0] → _AtomicsV81Support@PAGEOFF
V>0000000180001708 tbz w16, #0, 0000000180001718 ↓
V>000000018000170C swpal x1, x0, [x0]
V>0000000180001710 dmb ish
V>0000000180001714 ret
V>0000000180001718 cbz x16, 0000000180001734 ↓
V>000000018000171C ldaxr x2, [x0]
V>0000000180001720 stlxr w16, x1, [x0]
V>0000000180001724 cbnz w16, 000000018000171C ↑
V>0000000180001728 dmb ish
V>000000018000172C mov x0, x2
V>0000000180001730 ret
V>


я хотел сказать лишь что при переходе с интела на арм надо перепроверить синхронизацию потоков
конкрентно какие отличия это надо мучать гугл, я про все варианты работы процессоров не копенгаген
судя по случайным глюкам у ТС это похоже оно
Re[8]: Странные баги Mac версии
От: drVanо Россия https://vmpsoft.com
Дата: 21.11.23 17:30
Оценка: +2
Здравствуйте, Wawan, Вы писали:

W>я хотел сказать лишь что при переходе с интела на арм надо перепроверить синхронизацию потоков


Я ХЗ что там перепроверять если пользоваться алгоритмами из коробки.

W>судя по случайным глюкам у ТС это похоже оно


У ТС вообще особый случай — там может быть вообще все что угодно, да и Lazarus/FPC у меня лично доверия вообще не вызывают.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.