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 ()
Последнее исправление: Dendy (всего исправлений: 2)

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

>>> недоучками-физиками

и ничего про онкологию не говорю.

Не следим за тем, что говорим? Может вы даже ведаете о финансировании лечения больных? Или откуда берутся деньги на это оборудование? И вообще о состоящии медицинской службы в целом? Если не компетентны, лучше и не начинать. Да и этот вопрос никакого отношения в линуксу/виндовсу никакого отношения не имеют, не находите?

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

> На ASM в любом случае этого не видно, но инструкции прописаны...

Речь шла вообще-то о том, как именно OC может влиять на результаты работы стороннего приложения. Один из вариантов такого влияния - кривая/неточная реализация математических функций. Не подумав о том, что кто-то может не знать про FSIN и причины по которым его не используют для вычислений синуса почти везде, а используют написанную руками функцию, я ляпнул про «синусы-косинусы». Отсюда и произошёл весь этот пустой флейм.

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

>>> недоучками-физиками >>>и ничего про онкологию не говорю.

Не следим за тем, что говорим?


Нет, просто кто-то не следит кого читает.

Я ничего про «недоучек-физиков» не говорил.

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

FPU с начала 486х уже все нормально обрабатывала. В архитектуре, считается 16 знаков после запятой, или 65536 байт в такте. Адресация ограничена также.Но математические функции все реализованы.Не вижу разницы в количестве мат. функций x64 архитектуры.

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

>Я конечно слышал, что у Нокии дела плохи, но не думал что настолько. Это уже агония.

Скорее микрософт им дал _ооооочень_ много денег. То есть за пользование WP7 заплатили не микросойту - а наоборот микрософт отдал свою венду и еще доплатил за пользование.

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

>>обработка FPU Exception и всякая эмуляция сопроцессора, если FPU нету

- прям в ядре и находятся.


в каком ядре? в ядре Виндовс? или в ядре МС-ДОС тоже была эмуляция

сопроцессора на случай его отсутствия для процессоров 8086-80386?



Ну да, в ядре виндовса. Откуда сопроцессор, например, в каком-нибудь древнем iPAQ?

Stanson ★★★★★
()
Ответ на: А это-то зачем? от anonymous

>получается что Qt на хрен ни кому не было нужно и не будет нужно (окромя кучки фанатов)

гомофилы такие гомофилы...

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

>Может и так) Сделали ставку на именитую торговую марку? )

Точнее нашли того кто смотрит на них не с таким отвращением как все остальные:)

r ★★★★★
()

Реквестирую финский грибной справочник и технологию хранения.

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

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

И что мы видим?

Вы не знали, что FSIN на практике не используют, и что для синуса практически везде написана своя функция которая быстрее и точнее чем FSIN?


gcc вовсю использует инструкции сопроцессора, что можно узнать, например, в пункте 3.17.15 Intel 386 and AMD x86-64 Options документации GCC.

Так круто сливать это надо уметь.

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

В винде используют FSIN. В GCC используют FSIN. в glibc используют FSIN. Может быть вам стоит остановиться и перестать врать?

anonymous
()

Возможно баян, НО: Кроме того, Элоп опроверг информацию о том, что штаб-квартира Nokia может переместиться в Силиконовую долину: «Это финская компания и она всегда ею будет». Глава Nokia также дал дополнительную информацию по устройству на базе MeeGo. Он говорил уклончиво. Судя по всему, первый MeeGo-смартфон станет пробным продуктом, устройством для энтузиастов, как в свое время Nokia N900. Отношение Nokia к этой платформе прояснится со временем. http://www.cnews.ru/news/line/index.shtml?2011/02/11/427114

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

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

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

> gcc вовсю использует инструкции сопроцессора, что можно узнать,

например, в пункте 3.17.15 Intel 386 and AMD x86-64 Options

документации GCC.



С чего бы это _компилятору_ не давать возможность использовать любые инструкции сопроцессора, если этого хочет пользовательн?

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

насколько помните или насколько нашли в гугле мало что понимая о предмете? пункт 4.2 правил форума не для вас писали?

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

Вроде пофиксили на атлонах и пентиумах. Иначе мы живем в математичеки неправильном мире. :)))

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

действительно с чего бы не использовать FSIN? я тоже удивляюсь. Ещё я удивляюсь на вас, уважаемый, ваша светлая персона за пару часов несколько раз уже изволила кардинально поменять своё мнение, сообщив массу недостоврной информации.

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

> В винде используют FSIN.

Не в курсе. Если используют - то идиоты.

В GCC используют FSIN.


GCC - это компилятор, а не ОС. Если я хочу по каким-то причинам использовать именно fsin - то компилятор обязан предоставить мне эту возможность.

в glibc используют FSIN.


Где? Я что-то не нашёл.
Даже в uClibc - и то fsin будет только если _специально_ __FAST_MATH__ включить.

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

подведём итоги.
вы наврали:
1) в процессорах интела нет синусов (но они там есть)
2) синусы есть, но их никто не использует (но используют и по умолчанию)
3) в glibc нет синусов интела (но они там есть)
3) в синусах есть ошибка ещё до пентиума, которую все повторяли (но ошибка была в делении у пентиума и никто её не повторял)

я за бан по 4.2

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

1) в процессорах интела нет синусов (но они там есть)

То, что там есть - не синус, а глюк.

2) синусы есть, но их никто не использует (но используют и по умолчанию)

Я нашёл только в uClibc если принудительно включить __FAST_MATH__

3) в glibc нет синусов интела (но они там есть)

Не нашёл. Где? файл:строчку кода на бочку.

3) в синусах есть ошибка ещё до пентиума, которую все повторяли (но ошибка была в делении у пентиума и никто её не повторял)

Не могу уловить смысл написанного.

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

кушай, тролль! желаю тебе приятного бана по 4.2

bubuntu@bubuntu-desktop:~$ cat test.c 
#include <math.h>
int main(int argc, char** argv)
{
	return (int)sin(argc);
}

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

bubuntu@bubuntu-desktop:~$ gdb a.out 
GNU gdb (GDB) 7.1-ubuntu
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/bubuntu/a.out...(no debugging symbols found)...done.

(gdb) break sin
Breakpoint 1 at 0x804836c

(gdb) run
Starting program: /home/bubuntu/a.out 

Breakpoint 1, 0x00137200 in sin () from /lib/tls/i686/cmov/libm.so.6

(gdb) disassemble
Dump of assembler code for function sin:
=> 0x00137200 <+0>:	fldl   0x4(%esp)
   0x00137204 <+4>:	fxam   
   0x00137206 <+6>:	fstsw  %ax
   0x00137209 <+9>:	mov    $0x45,%dh
   0x0013720b <+11>:	and    %ah,%dh
   0x0013720d <+13>:	cmp    $0x5,%dh
   0x00137210 <+16>:	je     0x137236 <sin+54>
   0x00137212 <+18>:	fsin   
   0x00137214 <+20>:	fnstsw %ax
   0x00137216 <+22>:	test   $0x400,%eax
   0x0013721b <+27>:	jne    0x137220 <sin+32>
   0x0013721d <+29>:	ret    
   0x0013721e <+30>:	xchg   %ax,%ax
   0x00137220 <+32>:	fldpi  
   0x00137222 <+34>:	fadd   %st(0),%st
   0x00137224 <+36>:	fxch   %st(1)
   0x00137226 <+38>:	fprem1 
   0x00137228 <+40>:	fnstsw %ax
   0x0013722a <+42>:	test   $0x400,%eax
   0x0013722f <+47>:	jne    0x137226 <sin+38>
   0x00137231 <+49>:	fstp   %st(1)
   0x00137233 <+51>:	fsin   
   0x00137235 <+53>:	ret    
   0x00137236 <+54>:	push   %ebx
   0x00137237 <+55>:	call   0x131517
   0x0013723c <+60>:	add    $0x1bdb8,%ebx
   0x00137242 <+66>:	call   0x1313a8 <__errno_location@plt>
   0x00137247 <+71>:	movl   $0x21,(%eax)
   0x0013724d <+77>:	pop    %ebx
   0x0013724e <+78>:	jmp    0x137212 <sin+18>
End of assembler dump.
(gdb) 
anonymous
()
Ответ на: комментарий от anonymous

И ещё для неугомонных ононимов:

test.c: -------------------

#include <math.h>
#include <stdio.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));
}
------------------------

$ gcc -lm -o test test.c
$ ./test
sin(43998769152.000000) is -4.0252920638371055e-09
fsin(43998769152.000000) is -4.0819367251002277e-09

Офигенно fsin синусы считает.

Если чо -
$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 2
model name : Mobile Intel(R) Celeron(R) CPU 2.40GHz
stepping : 9
cpu MHz : 2400.304
cache size : 256 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe cid xtpr
bogomips : 4801.15
clflush size : 64

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

Не можем никак успокоиться после всей лжи? пример показывает, что
1) fsin есть у интела
2) fsin используется в линуксах
3) fsin используется в GCC
4) fsin используеться в glibc
5) fsin используется по умолчанию без явного указания пользователем

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

За 4.2 надо банить анонимусов, причём превентивно.

Вот ещё, тот же код выдаёт:

$ ./test
sin(3.1415926535897931e+00) is 1.2246467991473532e-16
fsin(3.1415926535897931e+00) is 1.2246063538223773e-16

Этот FSIN не может даже sin(около pi) посчитать правильно.

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

Не можем никак успокоиться после всей лжи? пример показывает, что
1) fsin есть у интела
2) fsin используется в линуксах
3) fsin используется в GCC
4) fsin используеться в glibc
5) fsin используется по умолчанию без явного указания пользователем

Бла-бла-бла.

--------------- test.c -------------------------------
#include <math.h>
#include <stdio.h>

double fsin( double x )
{
register double res;
asm( «fsin» : «=t» (res) : «0» (x) );
return res;
}

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

-----------------------------------------

$ gcc -lm -o test test.c
$ ./test
sin(3.1415926535897931e+00) is 1.2246467991473532e-16
fsin(3.1415926535897931e+00) is 1.2246063538223773e-16


Этот пример показывает, что для вычисления sin() не используется fsin имени интеля а используется куча кода, которая может быть разная в разных ОС, что может служить источником ошибок.

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

откуда там fsin взялся то? у Вас же его не было в принципе и в линуксах он не использовался, только в винде. Таки откуда он объявился?

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

> гыгыгы. ты хоть на калькуляторе проверял вывод своей программы?

sin(43998769152.000000) = 0.951056516


Радианы включи, чудо... На твоём калькуляторе есть радианы?

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

что ты так облажался? твой же текст

Не знаю как у вас, а у меня синус из интелевского FPU сидит в fsin() и никогда не используется, а что?

Ну нету double sin(double) в x86 FPU. Оно везде ручками написано. Ну хоть в сырцы libc гляньте для приличия.

Вы не знали, что FSIN на практике не используют, и что для синуса практически везде написана своя функция которая быстрее и точнее чем FSIN?

GCC тогда почему использует, лгунишка?

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

> откуда там fsin взялся то? у Вас же его не было в принципе и в

линуксах он не использовался, только в винде. Таки откуда он

объявился?



Где это я такое говорил?

Я утверждал, что :

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

А чем FPU на Linux так кардинально отличается от FPU на Windows?

Если FPU есть - то оно не на линуксе и не на винде, а в процессоре.

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


и косинусов нету.



Ибо fsin от интеля за синус считать никак нельзя. Даже выдернутый из убунты код libm для вычисления синуса почему-то содержит кучу всякой всячины, а не единственный fsin, который якобы синус сам по себе.
В винде, скорее всего, код sin будет другой.

Stanson ★★★★★
()

Linux, вперде!

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

Облажался не я, а кто-то другой.

Если sin === FSIN, то как тогда получается это:

$ ./test
sin(3.1415926535897931e+00) is 1.2246467991473532e-16
fsin(3.1415926535897931e+00) is 1.2246063538223773e-16

Любому идиоту понятно из этого примера, что для вычисления правильного sin() используется не команда сопроцессора FSIN, а какой-то код.

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

Убунта по умолчанию использует fsin интела. А ты что понаписал вранья кучу?

http://www.linux.org.ru/jump-message.jsp?msgid=5896513&cid=5899619
в x86 в FPU всяких синусов и косинусов нету.

http://www.linux.org.ru/jump-message.jsp?msgid=5896513&cid=5899653
Минуточку. в винде double sin(double) это FSIN?
Ахренеть.

http://www.linux.org.ru/jump-message.jsp?msgid=5896513&cid=5899662
Не знаю как у вас, а у меня синус из интелевского FPU сидит в fsin() и никогда не используется, а что?

Ну нету double sin(double) в x86 FPU. Оно везде ручками написано. Ну хоть в сырцы libc гляньте для приличия.

Вы не знали, что FSIN на практике не используют, и что для синуса практически везде написана своя функция которая быстрее и точнее чем FSIN?


http://www.linux.org.ru/jump-message.jsp?msgid=5896513&cid=5899695
Ну не пришло мне в голову, что кто-то знаменитый своим вечным багом FSIN/FCOS x87 может всерьёз воспринимать.

http://www.linux.org.ru/jump-message.jsp?msgid=5896513&cid=5899715
Не подумав о том, что кто-то может не знать про FSIN и причины по которым его не используют для вычислений синуса почти везде, а используют написанную руками функцию


http://www.linux.org.ru/jump-message.jsp?msgid=5896513&cid=5899734
С чего бы это _компилятору_ не давать возможность использовать любые инструкции сопроцессора, если этого хочет пользовательн?



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

В винде используют FSIN.

Не в курсе. Если используют - то идиоты.

в glibc используют FSIN.

Где? Я что-то не нашёл.

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

Это всё вообще к чему?
Ну посмотрели на бубунтов sin. Функция не состоит из единственного fsin, а состоит из кучи кода, как и утверждалось.
В винде используется такой же код?
В винде линуксе и пр. - может использоваться разный код?
Очевидно может. И если где-то он кривой - то это приведёт к ошибкам при вычислениях. Что не так?

Не нравится sin(), потому что как бы есть fsin?
Ну давайте поговорим об arcsin()
Надеюсь утверждение, что arcsin реализован программно в математической библиотеке не вызовет аналогичного баттхерта?
Если не вызовет - то можно перейти к сути.
Итак, дадите гарантию, что в винде и линуксе и где-то там ещё код arcsin() одинаков и что этот код не может служить источником ошибок?

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

> Я уже писал выше что _уже_ юзаю порт Qt на Android для своих программ и внедряю на работе... http://code.google.com/p/android-lighthouse/ В настоящий момент готовится документация и размещаются Qt либы на Android Market. Но пользоваться можно уже сейчас.

Одно дело, когда разработка и поддержка ведется крупной корпорацией, которая имеет прямую выгоду с этого; совсем другое, когда это происходит несколькими фанатиками.

Eсли бы Nokia занялась этим, то это стало бы очередной очень вкусной фичей Qt, а так это 3rd-party-workaround, настоящее и будущее которого весьма туманно.

И потом, через пару лет Qt со всеми этими lighthouse устареют, через 4 года еще больше, баги будут копиться и висеть... зачем Нокии их чинить?

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

Ты утверждал, что fsin вообще нет. Потом что fsin есть, но не используется. Потом утверждал что использующие её люди являются идиотами. Потом что её нет в glibc.

Таким образом ты энергично сливал, пользовался гуглом. потом опять сливал и так много раз.

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

> Таким образом ты энергично сливал, пользовался гуглом. потом опять

сливал и так много раз.


Слил тут кто-то другой. Тот, кто пытается рассказать, что fsin в интеле - это синус, вместо того, чтобы понять, что речь шла вовсе не об этом.

Я, кстати, опечален тем, что в убунте кривой sin().
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43490
Правда, всех послали в glibc жаловаться на регрессию.
У меня вот sin() нормальный и fsin не использует, как оказалось.

Не нравится, когда оказывается, что интель выпускает не такие уж замечательные железки? Ну извиняйте, это не ко мне.

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

Синус который fsin - использует для уменьшения аргумента число пи с мантиссой 66 бит. В glibc видно (код я приводил), что там для уменьшения аргумента используется отдельная команда почему-то, которая загружает в FPU число пи, которое округляется по документации до 64 знаков. Уменьшение аргумента происходит с этим более грубым пи.

Поэтому есть основания доверять больше чистому fsin, а не реализации glibc, которая ещё от себя код добавляет.

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

какой из них нормальный? какими средствами, независимыми от линукса, виндовс, интела и амд проверялись? Откуда уверенность, что верно первое, а не второе?

sin(43998769152.000000) is -4.0252920638371055e-09
fsin(43998769152.000000) is -4.0819367251002277e-09

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

>У меня вот sin() нормальный

как это было доказано? какую использоали библиотеку, независимую от 80-битных чисел с плавающей точкой и процессоров интела и амд? Где взять точное значение вашего синуса хотя бы 20 значащих цифр, чтобы убедиться, что ваш синус правильный, а не чистый синус fsin?

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

Но мой-то sin() который без fsin даёт правильный результат, а чистый fsin даёт неправильный.

Если glibc где-то использует fsin - то это и есть доказательство того, что от системы зависит наличие ошибок в софтине. Софтина-то может и правильно считает, а вот синус ей даден неправильный. О чём с самого начала и шла речь.

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

Уверены, что результат правильный? Уверены, что у вас sin без fsin? на 32 разрядах по умолчанию FPU используется.

anonymous
()

>Windows Phone будет основной платформой для смартфонов Nokia (подробнее);

А-я-я-й. Нокла RIP.

развитие Qt продолжится;

В рамках KDE...

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

Не так. Ассемблерный код приведите вашего sin. В случае использования константы sin вообще не вызывается - компилятор туда константу забивает вычисленную заранее. Если константу умножить на argc (т.е. 1), то происходит вызов sin (там внутри fsin) и результат становится другой.

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

Уверен.
Вот результат с D-Link DIR-320 - он вообще MIPS и без всякого сопроцессора:
---------------- sin_test.c ------------------------
#include <math.h>
#include <stdio.h>

int
main(int argc, char** argv)
{
double d = 43998769152.000000;
printf(«sin(%.16le) is %.16le\n», d, sin(d));
}
------------------------------------------------------

# /tmp/sin_test
sin(4.3998769151999998e+10) is -4.0252920638371056e-09
# cat /proc/cpuinfo
system type : Broadcom BCM5354 chip rev 3
processor : 0
cpu model : BCM3302 V2.9
BogoMIPS : 237.56
wait instruction : no
microsecond timers : yes
tlb_entries : 32
extra interrupt vector : no
hardware watchpoint : no
VCED exceptions : not available
VCEI exceptions : not available

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