LINUX.ORG.RU

Несмотря на переход Nokia на Windows Phone, развитие Qt и MeeGo продолжится

 , , , ,


0

1

В открытом письме к разработчикам компания Nokia сделала сегодня несколько важных заявлений:

  • Windows Phone будет основной платформой для смартфонов Nokia (подробнее);
  • будут предоставлены руководства для портирования существующих приложений с платформ Nokia на Windows Phone;
  • сервисы Nokia и Microsoft будут интегрированы вместе, например Ovi Maps и Bing Maps будут слиты, магазины приложений и контента Nokia станут частью Microsoft Marketplace;
  • развитие Qt продолжится;
  • устройства на MeeGo будут выведены на рынок, они будут позиционироваться выше устройств на Windows Phone, MeeGo будет развиваться как платформа для энтузиастов и приверженцев Open Source;
  • устройства на Symbian будут продолжать продаваться, рекомендуется использовать для разработки под них только Qt, чтобы облегчить портирование на MeeGo.

>>> Подробности

★★★★

Проверено: svu ()

Ответ на: комментарий от anonymous

Результат при

double d = 43998769152.000000;
printf(«sin(%.16le) is %.16le\n», d, sin(d));
и при
printf(«sin(43998769152.000000) is %.16le\n», d, sin(43998769152.000000));

Одинаков.

-4.0252920638371055e-09
Так что и glibc и препроцессор gcc использует одинаковую функцию и без использования fsin
потому что fsin даёт
-4.0819367251002277e-09

uClibc на MIPS тоже даёт
-4.0252920638371055e-09

В принципе, могу и на ARM проверить, только уже лень....

Stanson ★★★★★ ()
Ответ на: комментарий от Stanson
bubuntu@bubuntu-desktop:~$ cat test.c
#include <stdio.h>
#include <math.h>
double fsin( double x )
{
register double res;
asm( "fsin" : "=t" (res) : "0" (x) );
return res;
}

int
main(int argc, char** argv)
{
printf("sin(43998769152.000000) is %.16le\n", sin(43998769152.000000));
printf("fsin(43998769152.000000) is %.16le\n", fsin(43998769152.000000));
}

bubuntu@bubuntu-desktop:~$ gcc -lm test.c

bubuntu@bubuntu-desktop:~$ ./a.out 
sin(43998769152.000000) is -4.0252920638371055e-09
fsin(43998769152.000000) is -4.0819367251002277e-09

bubuntu@bubuntu-desktop:~$ nano test.c 

bubuntu@bubuntu-desktop:~$ cat test.c
#include <stdio.h>
#include <math.h>
double fsin( double x )
{
register double res;
asm( "fsin" : "=t" (res) : "0" (x) );
return res;
}

int
main(int argc, char** argv)
{
printf("sin(43998769152.000000) is %.16le\n", sin(43998769152.000000*argc));
printf("fsin(43998769152.000000) is %.16le\n", fsin(43998769152.000000*argc));
}

bubuntu@bubuntu-desktop:~$ gcc -lm test.c

bubuntu@bubuntu-desktop:~$ ./a.out 
sin(43998769152.000000) is -4.0819367251002277e-09
fsin(43998769152.000000) is -4.0819367251002277e-09
anonymous ()
Ответ на: комментарий от Stanson

надо умножить на 1 (argc), тогда результат становится разным и неправильным, потому что выключается оптимизация и вызывается функция sin в процессе работы программы.

anonymous ()
Ответ на: комментарий от anonymous

Поздравляю, Ваша убунта неправильно считает синус. :)
А препроцессор gcc - правильно.

Stanson ★★★★★ ()
Ответ на: комментарий от Stanson

на убунте 386 sin и fsin дают одинаковые результаты. Так что «идиоты» есть и в линуксе такие же как в виндовс, по вашей терминологии, раз используют fsin в функции sin, что и подтверждает ассемблерный код и одинаковые результаты работы функций sin и fsin.

anonymous ()
Ответ на: комментарий от Stanson

значит препроцессор gcc не использует glibc.

anonymous ()
Ответ на: комментарий от Stanson

Таким образом имеем использование fsin в Линуксах, в glibc, и её функция sin имеет ошибки. А винда не имеет ошибки, как вы подвердили.

Вывод: Линукс - глючное дерьмо и не готово для вычислений :))) Что и требовалось доказать. Кто там плохо про винду писал недавно? Не вы ли?

anonymous ()
Ответ на: комментарий от anonymous

Блин. Всё просто.

Если написать
double d = 1234;
printf(«%.16le»,sin(d));
И не включать оптимизацию, то вызовется функция.

08048404 <main>:
8048404: 8d 4c 24 04 lea 0x4(%esp),%ecx
8048408: 83 e4 f0 and $0xfffffff0,%esp
804840b: ff 71 fc pushl -0x4(%ecx)
804840e: 55 push %ebp
804840f: 89 e5 mov %esp,%ebp
8048411: 51 push %ecx
8048412: 83 ec 14 sub $0x14,%esp
8048415: b8 00 00 00 e0 mov $0xe0000000,%eax
804841a: ba 0f 7d 24 42 mov $0x42247d0f,%edx
804841f: 89 45 f0 mov %eax,-0x10(%ebp)
8048422: 89 55 f4 mov %edx,-0xc(%ebp)
8048425: 83 ec 08 sub $0x8,%esp
8048428: ff 75 f4 pushl -0xc(%ebp)
804842b: ff 75 f0 pushl -0x10(%ebp)
804842e: e8 09 ff ff ff call 804833c <sin@plt>
.....

Если написать прям внутри синуса или включить -O2 - то посчитает препроцессор gcc, потому что он умеет sin.

080483c0 <main>:
80483c0: 8d 4c 24 04 lea 0x4(%esp),%ecx
80483c4: 83 e4 f0 and $0xfffffff0,%esp
80483c7: ff 71 fc pushl -0x4(%ecx)
80483ca: 55 push %ebp
80483cb: 89 e5 mov %esp,%ebp
80483cd: 51 push %ecx
80483ce: 83 ec 10 sub $0x10,%esp
80483d1: 68 da 49 31 be push $0xbe3149da
80483d6: 68 87 89 6b fd push $0xfd6b8987
80483db: 68 0f 7d 24 42 push $0x42247d0f
80483e0: 68 00 00 00 e0 push $0xe0000000
80483e5: 68 c0 84 04 08 push $0x80484c0
80483ea: e8 fd fe ff ff call 80482ec <printf@plt>
80483ef: 83 c4 20 add $0x20,%esp
80483f2: 8b 4d fc mov -0x4(%ebp),%ecx
80483f5: c9 leave
80483f6: 8d 61 fc lea -0x4(%ecx),%esp
80483f9: c3 ret

Stanson ★★★★★ ()
Ответ на: комментарий от Stanson

Убунта x86 10.04 LTS, полностью обновлённая несколько часов назад, неправильно считает синусы. Вот так вот, господа присяжные заседатели :))))

anonymous ()
Ответ на: комментарий от anonymous

> Вывод: Линукс - глючное дерьмо и не готово для вычислений :))) Что и

требовалось доказать. Кто там плохо про винду писал недавно? Не вы

ли?



Пока только выяснили, что Интель глючное дерьмо и Убунта, которая использует Интелевский fsin глючное дерьмо.

А про винду я писал следующее:

http://www.linux.org.ru/jump-message.jsp?msgid=5896513&cid=5899582

Ну и разумеется реализация системных математических функций. Честно

скажу - с ошибками в математической библиотеке винды я не


сталкивался. Может быть тут у микрософта всё хорошо. Это три.



В итоге имеем: От реализации системных математических функций зависит работа приложения. Если в ОС кривая реализация математики, то даже прямо написанная софтина будет выдавать лажу. С чем тут долго и упорно не хотели анонимусы соглашаться.

Stanson ★★★★★ ()
Ответ на: комментарий от Stanson

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

anonymous ()
Ответ на: комментарий от Stanson

>Честно скажу - с ошибками в математической библиотеке винды я не сталкивался.

Я тоже не сталкивался. А в Линуксе теперь столкнулся. Так позорно Линукс сливает винде, на каком-то синусе! Это надо постараться криворуким линуксовым разработчикам :)))

anonymous ()
Ответ на: комментарий от Stanson

Этож каким лохом нужно быть, что бы линукс на сервера ставить. Он даже 2+2 сложить врядли сможет без ошибок. :(

anonymous ()
Ответ на: комментарий от anonymous

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

Когда речь зашла о том, что,

я всегда наивно думал, что ошибки вычислений происходят от ошибок в

прикладных программах, а не в ОС.


я написал тут: http://www.linux.org.ru/jump-message.jsp?msgid=5896513&cid=5899582 что встречал ошибки при работе винды с TLB, и при работе ядра винды с юзерскими буферами при чтении из устройств. И написал что есть ещё возможность влияния ОС на ошибки вычислений при корявой реализации системных мат. функций, причём честно написал, что с последним в винде не сталкивался.

После чего анонимусы взбесились и давай флеймить за корявый интелевский fsin.

В итоге выяснилось, что ОС всё-же может давать ошибки вычислений из-за ошибок в мат.функциях, только оказалость что в этом случае ошибки обнаружились в линуксе.

И в чём же я был не прав?

Stanson ★★★★★ ()
Ответ на: комментарий от Stanson

Очень радует, что упомянутые ранее физики так называемый «процесс распада в ядерной реакции» считают под надёжной Виндовс, а не под Линуксом с его кривыми синусами. Так ведь и ядерную катастрофу можно вызвать с этими линуксовыми ошибками в математических библиотеках :)) ))

anonymous ()
Ответ на: комментарий от Stanson

>И в чём же я был не прав?

В этом и не прав. Твои же слова.. " только оказалость что в этом случае ошибки обнаружились в линуксе." ))))

anonymous ()
Ответ на: комментарий от Stanson

К стати, как там в Линуксе 4/3*3 Все так же криво считает?

anonymous ()
Ответ на: комментарий от anonymous

Ну ошибки в синусе, да ещё и не во всех линуксах как-то меньше беспокоят, чем проблемы с менеджментом памяти в винде :) В конце-концов поправят glibc и проблема будет решена. А к XP-то сервиспаков больше не будет.

Как в том анекдоте. «Я-то завтра протрезвею, а у тебя ноги кривые так и останутся»

Кстати, не факт, что калькулятор в винде использует системные функции.
Если у кого есть VC - проверьте, что там в системе на самом деле.

Stanson ★★★★★ ()
Ответ на: комментарий от anonymous

perl -e 'print 4/3*3 . «\n»;'
4
Всё хорошо, успокойтесь.

Stanson ★★★★★ ()
Ответ на: комментарий от Stanson

>Ну ошибки в синусе, да ещё и не во всех линуксах как-то меньше беспокоят

А меня беспокоит. Какой мне Линукс ставить на атомной электростанции, а какой для космических вычислений. :( Или виртуалки поднимать для каждой задачи?

anonymous ()
Ответ на: комментарий от Stanson

Вы неправы в очернении Виндовс и расхваливании глючного Линукса, который даже синусы считать не умеет :))

Также было заявление

Отличаются математические библиотеки, ибо в x86 в FPU всяких синусов и косинусов нету.


Библиотеки действительно отличаются. Как и было наглядно показано. :)) И не в пользу Линукса они отличаются.
Но синусы и косинусы есть в FPU, тут уж вы облажались конкретно с этим заявлением. Они даже в glibc есть эти синусы от FPU.

anonymous ()
Ответ на: комментарий от anonymous

Не понял.
Я наверно тупой как валенок.
Ошибки вычислений в программах не могут происходить по вине ОС?

Stanson ★★★★★ ()
Ответ на: комментарий от Stanson

>Всё хорошо, успокойтесь.

Ну слава Богу хоть примитив считать умеет.

anonymous ()
Ответ на: комментарий от anonymous

> Библиотеки действительно отличаются. Как и было наглядно показано.

:)) И не в пользу Линукса они отличаются.


Кто сказал? Тут пока ещё никто не скомпилил под винду тестик.
Калькулятор может и свою математику использовать.

Но синусы и косинусы есть в FPU, тут уж вы облажались конкретно с

этим заявлением.



синус, который даёт ошибку в проценты - это не синус.
Или тут как на войне? Во время атаки синус может быть и 2 и даже 3?

Они даже в glibc есть эти синусы от FPU.


Хорошо что не везде. И плохо что эти «синусы военного времени» где-то есть.
А виноват - интель.

Stanson ★★★★★ ()
Ответ на: комментарий от Stanson

>А виноват - интель.

В том что Виндовс кривая или Линукс? Ты меня уже совсем запутал. :(

anonymous ()
Ответ на: комментарий от Stanson

И где хвалёная мега-скорость исправления ошибок в Линуксе? Эти синусы - это же даже не дыра, а огромная дырища с точки зрения математических вычислений. Когда же пропатчат? Может попросить квалифицированных программистов Майкрософта потратить пару часов и исправить glibc, раз уж линуксоиды тормозят и не умеют ничего делать :)))

anonymous ()
Ответ на: комментарий от anonymous

>раз уж линуксоиды тормозят и не умеют ничего делать :)))

Линуксоиды могут только кричать-откройте свой код, у нас ничего не получается.

anonymous ()
Ответ на: комментарий от anonymous

> В том что Виндовс кривая или Линукс?

Ну у меня, положим, линукс не кривой. Ни на ноуте, ни на роутере. Про винду не знаю - никто почему-то не хочет собрать тест под виндой и выложить результат. Боятся, наверно.

Ты меня уже совсем запутал. :(


А кому сейчас легко?

Stanson ★★★★★ ()
Ответ на: комментарий от anonymous

Ну всё, анонимусы, доигрались.
Я винду нашёл с компилятором.

C:\Drova>sin_test.exe
sin(4.3998769152000000e+010) is -4.0819367251002277e-009

Windows XP Porfessional Service Pack 3 версия 2002

И кто это будет исправлять?

Stanson ★★★★★ ()
Ответ на: комментарий от Stanson

>Ну всё, анонимусы, доигрались. Я винду нашёл с компилятором.

Со своим кривым глибсом? ))

anonymous ()
Ответ на: комментарий от Stanson

Ошибка 2002 года в Виндовс теперь есть и в Линуксе! Это успех Линукса. Это реальная победа. Теперь Линукс может гордиться - он таки догнал Виндовс :)))

anonymous ()
Ответ на: комментарий от anonymous

msvcrt.dll это glibc?
О как.
Продолжайте, это забавно :)

Stanson ★★★★★ ()
Ответ на: комментарий от anonymous

Ну дайте мне rdesktop на Win7 с компилятором, поглядим что там...
Дело-то нехитрое.

Stanson ★★★★★ ()
Ответ на: комментарий от Stanson

Да забавен твой бред. Ты бы еще ДОС вспомнил, которая с производства снят.

anonymous ()
Ответ на: комментарий от tommy

>а я только хотел купит ьодин смартфончик на Symbian.

Та же беда)) Но в итоге - ведроид.

drSchur ★★★ ()
Ответ на: комментарий от Stanson

>Ну дайте мне rdesktop на Win7 с компилятором, поглядим что там... Дело-то нехитрое.

Ты бы тут не игрался с виндой, а лучше бы пошел да умом занялся, поддерживая своих опенсурсников.

anonymous ()
Ответ на: комментарий от anonymous

> Ты бы тут не игрался с виндой, а лучше бы пошел да умом занялся,

поддерживая своих опенсурсников.


Что, как очередной глюк в винде нашёлся, так сразу не надо её трогать, надо идти линукс пилить? :)

Stanson ★★★★★ ()
Ответ на: комментарий от Stanson

Конечно Вам надо идти пилить Линукс. Раз уж Вы так хорошо разбираетесь в данных вопросах, то и исправьте это позорище с синусом. Покажите виндузятникам скорость исправления ошибок опенсорсным сообществом.

anonymous ()
Ответ на: комментарий от anonymous

> Эти синусы - это же даже не дыра, а огромная дырища с точки зрения

математических вычислений.

...

Может попросить квалифицированных программистов Майкрософта потратить

пару часов и исправить glibc



C:\Drova>sin_test.exe
sin(4.3998769152000000e+010) is -4.0819367251002277e-009

Не, лучше не надо. Они наисправляют...

Stanson ★★★★★ ()
Ответ на: комментарий от Stanson

Это Виндовс 7 с последними обновлениями? Или виндовс 2002 года?

anonymous ()
Ответ на: комментарий от anonymous

> Конечно Вам надо идти пилить Линукс. Раз уж Вы так хорошо

разбираетесь в данных вопросах, то и исправьте это позорище с синусом.


Так у меня-то с синусом всё в порядке. И на x86, и на MIPS.
Что я в багзиллу писать буду?
«Вы знаете, тут на ЛОРе у какого-то анонимуса glibc в убунте синусы неправильно считает».

Stanson ★★★★★ ()
Ответ на: комментарий от anonymous

Это XP SP3 Других виндовсов доступных у меня не нашлось.

На Win7 что-то никто не хочет тестик прогнать.

Скомпилённый еxe'шник не предлагаю, на винде это вроде как неприлично.

Stanson ★★★★★ ()
Ответ на: комментарий от Stanson

>сначала выпустили 387. потом через достаточно продолжительное время оказалось, что он неправильно (с недостаточной точностью) считает синус и косинус при определённых диапазонах аргумента. т.к. сопроцессоров уже было выпущено дофига, и софт подстроили под этот глюк, то в следующих сопроцессорах fsin и fcos решили оставить как есть, с ошибкой.

Что-то незаметно, что софт подстроили под этот глюк. Линукс до сих пор не подстроен, хотя эта ошибка идёт с 387 процессоров, то есть с середины 80-ых годов, это если вам верить. Т.е. критические ошибки в Линуксе не исправляются по 25 лет! Он уже дефектный родился и так им и остался.

anonymous ()
Ответ на: комментарий от Stanson

>Что я в багзиллу писать буду?

Да вы оказывается просто халявщик, батюшка, а не фанатик-линуксоид? В Винде 2002 года ошибки-это ОС виновата, те же ошибки в Ляпихе-Интел.

anonymous ()
Ответ на: комментарий от anonymous

А, можно проще сделать.

На этой XP SP3 версия msvcrt.dll - 7.0.2600.5512
Размер - 343040 байт.

А на Win7 какая версия?

Stanson ★★★★★ ()
Ответ на: комментарий от Stanson

>Это XP SP3 Других виндовсов доступных у меня не нашлось.

Сколько вы зарабатываете, что не можете купить приличную ОС?

anonymous ()
Ответ на: комментарий от anonymous

> Т.е. критические ошибки в Линуксе не исправляются по 25 лет! Он уже

дефектный родился и так им и остался.


У меня нет ошибки в Линуксе.
Есть в винде и у какого-то анонимуса в убунте.
Мне надо анонимусу с убунтой исправить ошибку?

Stanson ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.