Board.KolibriOS.org

Official KolibriOS board
It is currently Mon Sep 23, 2019 9:07 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 70 posts ]  Go to page Previous 1 2 3 4 5 Next
Author Message
PostPosted: Fri Oct 04, 2013 2:09 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Quote:
Я так понимаю, что динамическая линковка будет большой проблемой для MSVC
Она и сейчас проблематична. Для MSVC надо выстраивать свою инфраструктуру. Пока её видно. Проприетарность компилятора создаёт много сложностей. Он не предназначен для создания приложений для других систем (интересно, есть ли в EULA прямой запрет), часто использует встроенные функции, которых нет в открытых исходниках. Их дизассемблирование из бинарников и конвертация в исходный код сомнительна по лицензионной чистоте (привет ac97wav!). Математическая библиотека закрыта полностью, её надо писать заново.


Top
   
PostPosted: Fri Oct 04, 2013 2:49 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Serge
Что то я не понял. Раз мы купили (ну пусть арендовали, мелкософт нынче эту идею задвигает) инструмент, то как это так мы не имеем полных прав на производный продукт? О_о

Вот мы купили молоток (ну пусть арендовали, "дядядебил лимитед" нынче эту идею задвигает) и чо мы теперь имеем право забивать гвозди только фирмы "дядядебил лимитед" и только в материалы продаваемые фирмой "дядядебил лимитед"? Это же маразм полнейший! Раз так, то следующего человека, который будет настаивать, что компилятор MSVC лучший компилятор во всех отношениях я буду посылать далеко.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Fri Oct 04, 2013 3:08 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5061
Mario_r4 wrote:
Serge Это же маразм полнейший! Раз так, то следующего человека, который будет настаивать, что компилятор MSVC лучший компилятор во всех отношениях я буду посылать далеко.

Серж не утверждал. РеактОС, например, юзает их компилятор.

_________________
Через тернии к звездам


Top
   
PostPosted: Fri Oct 04, 2013 3:46 pm 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
Mario, частенько в инструкциях к фирменным инструментом пишут "гарантия распространяется только на отказы, связанные с использованием сертифицированных расходных материалов". Это я, к примеру, про обжимки говорю. Не удивлюсь, если с молотками точно так же.

Serge, MSVC EULA:
Quote:
General License Grant. Microsoft grants to you as an individual, a personal, nonexclusive license to make and use copies of the SOFTWARE PRODUCT for the sole purposes of designing, developing, and testing your software product(s) that are designed to operate in conjunction with any Microsoft operating system product.

Так что использование MSVC для Колибри - прямое нарушение лицензии.


Top
   
PostPosted: Fri Oct 04, 2013 3:58 pm 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
Мх, в разных версиях EULA по-разному написано. Где-то просто:
Quote:
Microsoft grants to you as an individual, a personal, nonexclusive license to make and use copies of the SOFTWARE PRODUCT for the purpose of designing, developing, and testing your software product(s).

И точка.


Top
   
PostPosted: Fri Oct 04, 2013 4:23 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Reactos отдельная тема.
MSVC один из лучших оптимизирующих компиляторов, но всё это богатство только под Windows по естественной причине.
Компиляция программ для других систем обещает массу проблем. Для mingw приходится отменять встроенные defines _Win32 _WIN32 WIN32 _MSC_VER иначе условная компиляция подключает микрософтские инклюды и предназначенные для Windows куски кода. Кроссплатформенность превращается в кошмар. Многие вещи написаны только под gcc и с msvc не дружат.
Короче у меня большие сомнения в применимости msvc для сборки больших проектов в Колибри.


Top
   
PostPosted: Fri Oct 04, 2013 4:37 pm 
Offline
Kernel Developer
User avatar

Joined: Thu Sep 03, 2009 1:52 pm
Posts: 1620
Serge wrote:
Продолжение. TLS

Однопоточные приложения могут использовать библиотеки, которые будут создавать дополнительные потоки. Поэтому TLS предлагается создавать всегда, независимо от числа потоков в программе.
  • fs:0 хранит id текущего потока
  • fs:4 зарезервирован для id процесса/адресного пространства
  • fs:8 нижняя граница стека потока
  • fs:12 верхняя граница стека потока
  • fs:16-1020 доступны приложениям

Линейный адрес сегмента fs не предусмотрен? Указатель на fs:0 получить невозможно?

_________________
Сделаем мир лучше!


Top
   
PostPosted: Fri Oct 04, 2013 5:19 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
CleverMouse
Нет, я предполагал tls для хранения указателей, а не структур данных. Если необходимо, можно занять fs:0, сдвинув остальное.


Top
   
PostPosted: Fri Oct 04, 2013 7:19 pm 
Offline
Kernel Developer
User avatar

Joined: Thu Sep 03, 2009 1:52 pm
Posts: 1620
Кодогенератор MSVC может выдавать обращения к fs:0 и fs:2Ch. Если их зарезервировать под что-нибудь, потом могут быть большие проблемы. Ядро Linux, если я правильно помню, не резервирует никаких данных в fs и вообще устанавливает fs только по просьбе программы, зато резервирует целых три TLS-селектора, один для glibc, один для Wine, один на всякий случай.

_________________
Сделаем мир лучше!


Top
   
PostPosted: Fri Oct 04, 2013 8:26 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
CleverMouse
Хорошо, тогда fs:0 и fs:2Ch будут оставлены для msvc/wine.
А адрес сегмента tls нужен ?


Top
   
PostPosted: Fri Oct 04, 2013 9:28 pm 
Offline
Kernel Developer
User avatar

Joined: Thu Sep 03, 2009 1:52 pm
Posts: 1620
Я думаю, стоит адрес сегмента tls хранить.

_________________
Сделаем мир лучше!


Top
   
PostPosted: Fri Oct 04, 2013 9:34 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
CleverMouse
Хорошо, тогда
  • fs:0 зарезервировано
  • fs:4 линейный адрес tls
  • fs:8 pid
  • fs:12 зарезервировано
  • fs:16 нижняя граница стека
  • fs:20 верхняя граница стека
  • fs:2Ch зарезервировано
Ещё есть предложения / замечания ?


Top
   
PostPosted: Fri Oct 04, 2013 11:11 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Еще у меня предложение/замечание написать потому EXAMPLE.ASM с пояснениями какие поля не понадобятся для типичной средней программы.
А то я от вашего "птичьего" языка уже запутался. :wink:

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Fri Oct 04, 2013 11:22 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Если не будет замечаний по заголовку, для простой программы не использующей PE DLL, не понадобятся поля import и eimport. Неиспользуемые поля заголовка должны быть нулевыми.


Top
   
PostPosted: Sat Oct 05, 2013 1:14 am 
Offline
Kernel Developer
User avatar

Joined: Fri Aug 14, 2009 1:46 am
Posts: 1342
Serge wrote:
Ещё есть предложения / замечания ?

Так как насчет указателя очереди GUI-запросов?


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 70 posts ]  Go to page Previous 1 2 3 4 5 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited