-
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
atman.pl!.POSTED!not-for-mail
From: Sebastian Biały <h...@p...onet.pl>
Newsgroups: pl.misc.elektronika
Subject: Re: Czas na Windows 10
Date: Fri, 27 Jan 2017 23:40:42 +0100
Organization: ATMAN - ATM S.A.
Lines: 98
Message-ID: <o6gi9h$cal$1@node1.news.atman.pl>
References: <1...@4...net>
<a...@n...neostrada.pl>
<o633fo$nt8$1@node1.news.atman.pl>
<a...@n...neostrada.pl>
<o636ld$kch$1@node2.news.atman.pl>
<a...@n...neostrada.pl>
<o65eru$3sk$1@node1.news.atman.pl>
<a...@n...v.pl>
<o65iil$7iq$1@node1.news.atman.pl>
<a...@n...v.pl>
<o683l1$dsn$1@node2.news.atman.pl>
<a...@n...neostrada.pl>
<o68dlc$470$1@node1.news.atman.pl>
<a...@n...v.pl>
<o6art4$3r7$2@node2.news.atman.pl>
<a...@n...v.pl>
<o6df52$kdf$1@node2.news.atman.pl>
<a...@n...v.pl>
<o6ep2i$h7h$1@node1.news.atman.pl>
<a...@n...v.pl>
<o6ga44$alt$1@node2.news.atman.pl>
<a...@n...v.pl>
NNTP-Posting-Host: 176.115.85.233
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: node1.news.atman.pl 1485556849 12629 176.115.85.233 (27 Jan 2017 22:40:49
GMT)
X-Complaints-To: u...@a...pl
NNTP-Posting-Date: Fri, 27 Jan 2017 22:40:49 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows NT 6.0; WOW64; rv:45.0) Gecko/20100101
Thunderbird/45.6.0
In-Reply-To: <a...@n...v.pl>
Xref: news-archive.icm.edu.pl pl.misc.elektronika:712074
[ ukryj nagłówki ]On 2017-01-27 22:55, slawek wrote:
>> C++ w programie na linuxa.
> Czyli języku bez GC i bez maszyny wirtualnej. W którym błąd "null
> pointer" wywołuje panikę programistów.
Nie bądź zdziwiony. Tutaj jest o tym mowa. Zaryzykuje również że jeśli
mowa o Linuxie to 95% softu takie jest. Zastanawiające że próbujesz
zachowac twarz uciekając w jezyki z GC skoro była jasno mowa o Linuxie.
Za chwile się okaże że wzrocowa jest maszyna wirtualna javy bo przecież
wątek jest o Javie. A jest, nie?
> Owszem. Tyle że - jak już misiu nauczysz się jak wygląda obsługa
> wyjątków w Javie/C#/Delphi a nawet C++ - wytegolenie się połowy programu
> nie oznacza że program musi przestać działać.
Wyjątki w C++ znam w szczegółach, czesto debuguje cieżkie przypadki i
bywa że robie to na poziomie asm. Jako misio nie zauważyłem aby C++
łapał try catch wyjątki dereferencji nulla. Być może w paralernym
wszechświecie w którym istniejesz. Tak, są implementacje C++ które
pozwalają łapać wyjątki systemowe przez niestandardowe rozszerzenia. Nie
mają za dużego związku z C++ i nie powodują że algorytm z automatu da
się popchnąc dalej. W zasadzie są dośc katastrofalne w skutkach ponieważ
zazwyczaj byle jak lub zupełnie nie zwijają stosu zostawiając stos w
stanie niestabilnym. RAII idzie do piachu.
> Zwłaszcza jeżeli jest
> event driven. Dla przykładu: null pointer bo nie ma drukarki, ale
> przecież nie musisz drukować jak nie ma drukarki. Ważne aby dało się
> dane zapisać. I gdy już podłączysz drukarkę dostaniesz drugą szansę...
> śliczny pointer nie null. I to bez przerwy w działaniu całego programu.
Fascynujące. Opisujesz wysokopoziomowy projekt jakiegos mechanizmu i
jednoczesnie zarzucasz mi brak rozumienia co to jest null pointer
dereference? No weź przestań. Chyba nie chcesz tego mechanizmu
implementowac przechwytując wyjatki SIGSERV? No no, szacun. To jakiś
nowy wzorzec projektowy, null pointer oriented programming może by go
nazwać?
>> Oczywiście że się kończą. Aby to sprawdzić możesz poświęcić 4
> minuty.
> A to porozmawiaj o tym z moim programem, który przez dwa dni liczył
> sobie na inf'ach i nan'ach. Nie kończył się... Ale może to wina
> Fortranu? Bo procesor całkiem zwyczajny I7.
Dzielenie przez zero powoduje wyjatek sprzetowy. Używanie do obliczeń
Nan *może* powodować wyjątek jesli chcesz, albo nie. To cecha wielu FPU.
I mozna tym sterowac z poziomu kodu. Mozna tez sobie dodać ifa w kodzie
wynikowymj przy kompilacji a przed dzieleniem i samodzielnie w runtime
wygenerować exception jak chcesz a potem mówić że dzielenie przez zero
nie zatrzymuje aplikacji.
Tu masz wyjasnione:
http://stackoverflow.com/questions/18118408/what-is-
difference-between-quiet-nan-and-signaling-nan
Nie ma się co dziwic że istnieją *jakieś* niepopularne języki
programowania gdzie bugi są suppresowane na poziomie kompilatora i
runtime używając spacjalnego bitu w liczbie nan. A może wystarczy flaga
do kompilatora aby to zachowanie zmienić.
>> char *a = 0;
>> chat x = *a;
>
> Rozumiem że miało być char?
>
> W czym problem? Pierwsza linijka to niechlujstwo, ale w C++ może
> przejść.
Nie, to dzień jak codzień. Inicjowanie pointera na null jest bezpieczne.
I częste.
> Druga linijka powinna wywołać wyjątek.
Moze. Nie musi. To jest UB. Może rownie dobrze odkręcić kran w piwnicy
albo zajodłować.
Wiele OSów aby silnie zdefiniować to UB stawia pułapkę sprzętową na tym
adresie (0) i zabija aplikację. Natychmiast o ile nie przechwycisz
*specjalnego* wyjątku systemowego. Tylko że w złozonym programie po jego
przechwyceniu niewiele da się zrobić poza poskładaniem tego co się da
*ewentualnie* poskładać i wyjściem z racji faktu że ten wyjątek
systemowy ma głeboko w d... RAII.
> I jak ten wyjątek
> olejesz, to faktycznie program zwyczajowo się kończy. Ale cały myk że
> możesz nie olewać, tylko zrobić coś mądrego.
Co?
> No wiem że akurat tobie
> będzie trudno zrobić coś mądrego.
Więc pokaz jak zrobić coś madrego w tej sytuacji w C++. Jeśli nie znasz
skladni możesz to opisać słowami. W C++, prosze.
Skoro postanowiłes się kompromitować to ciągnijmy to dalej, niechaj
będzie troche pośmiewiska.
Następne wpisy z tego wątku
- 28.01.17 08:08 slawek
- 28.01.17 08:18 slawek
- 28.01.17 08:21 slawek
- 28.01.17 08:27 slawek
- 28.01.17 08:41 Sebastian Biały
- 28.01.17 08:43 Sebastian Biały
- 28.01.17 08:44 Sebastian Biały
- 28.01.17 08:45 Sebastian Biały
- 28.01.17 09:21 slawek
- 28.01.17 09:58 slawek
- 28.01.17 10:02 slawek
- 28.01.17 10:16 slawek
- 28.01.17 10:45 Sebastian Biały
- 28.01.17 10:47 Sebastian Biały
- 28.01.17 10:52 slawek
Najnowsze wątki z tej grupy
- Zrobił TV OLED z TV LCD
- Zasilacz USB na ścianę.
- Gniazdo + wtyk
- Aliexpress zaczął oszukiwać na bezczelnego.
- OpenPnP
- taka skrzynka do kablowki
- e-paper
- 60 mA dużo czy spoko?
- Dziwne zachowanie magistrali adresowej w 8085
- Współczesne mierniki zniekształceń nieliniowych THD audio, produkują jakieś?
- Jaki silikon lub może klej?
- Smar do video
- Litowe baterie AA Li/FeS2 a alkaliczne
- "ogrodowa linia napowietrzna"
- jaki zasilacz laboratoryjny
Najnowsze wątki
- 2025-03-03 Gliwice => Ekspert IT (obszar systemów sieciowych) <=
- 2025-03-03 Gliwice => IT Expert (Network Systems area) <=
- 2025-03-03 Mińsk Mazowiecki => Area Sales Manager OZE <=
- 2025-03-03 Warszawa => Spedytor Międzynarodowy <=
- 2025-03-03 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2025-03-03 Katowice => Key Account Manager (ERP) <=
- 2025-03-02 Tusk idzie na rekord deportacji po 1989 [Będzie popyt na prawników]
- 2025-03-01 Obywatel telefonuje 112 lub 986
- 2025-03-01 detektyw (?) Rutkowski działał jako prasa
- 2025-03-01 "Policjant został ujęty obywatelsko..."
- 2025-03-01 zatrzymanie zbyszka maja
- 2025-03-01 Warszawa => Expert Recruiter 360 <=
- 2025-03-01 Chrzanów => NodeJS Developer <=
- 2025-03-01 Warszawa => Gen AI Engineer <=
- 2025-03-01 Wrocław => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i