-
31. Data: 2013-03-05 17:29:54
Temat: Re: Nowy polski procesor
Od: Michoo <m...@v...pl>
On 05.03.2013 07:48, Zbych wrote:
> Normalna firma to kupi za parę groszy (w porównaniu z licencją na rdzeń)
> kompilator keila.
To ten w którym trzeba było oznaczać funkcje jako reentrant, bo inaczej
zarówno argumenty jak i zmienne pakował jako statyczne?
> A od niego to wielu programistów asemblerowych może
> się uczyć optymalizacji kodu.
A to z większością kompilatorów tak jest.
--
Pozdrawiam
Michoo
-
32. Data: 2013-03-05 19:59:11
Temat: Re: Nowy polski procesor
Od: Zbych <z...@o...pl>
W dniu 05.03.2013 17:29, Michoo pisze:
> On 05.03.2013 07:48, Zbych wrote:
>
>> Normalna firma to kupi za parę groszy (w porównaniu z licencją na rdzeń)
>> kompilator keila.
>
> To ten w którym trzeba było oznaczać funkcje jako reentrant, bo inaczej
> zarówno argumenty jak i zmienne pakował jako statyczne?
A wolałbyś żeby od razu użył programowej emulacji stosu dla argumentów?
>> A od niego to wielu programistów asemblerowych może
>> się uczyć optymalizacji kodu.
>
> A to z większością kompilatorów tak jest.
W przypadku gcc czasem ciężko zauważyć.
-
33. Data: 2013-03-06 10:32:02
Temat: Re: Nowy polski procesor
Od: "Wojtek" <w...@l...plll>
> Normalna firma to kupi za parę groszy (w porównaniu z licencją na rdzeń)
> kompilator keila. A od niego to wielu programistów asemblerowych może się
> uczyć optymalizacji kodu.
>
tak.... to ciekawe dlaczego jak piszę w asm to kod mam 1kB a po przepisaniu
na ci skompilowaniu mam 1,7kB i to po wielkich bojach z optymalizacją.....A
programista ASM ze mnie żaden.
Kompilator ma pare udanych implamantacji ale ogólnie też kulfony robi przy
generowaniu kodu.
--
wojtek
-
34. Data: 2013-03-06 19:53:28
Temat: Re: Nowy polski procesor
Od: "Anerys" <s...@s...pl>
Użytkownik "Wojtek" <w...@l...plll> napisał w wiadomości
news:kh72eg$ltj$1@news.task.gda.pl...
> tak.... to ciekawe dlaczego jak piszę w asm to kod mam 1kB a po
> przepisaniu na ci skompilowaniu mam 1,7kB i to po wielkich bojach z
> optymalizacją.....A programista ASM ze mnie żaden.
> Kompilator ma pare udanych implamantacji ale ogólnie też kulfony robi przy
> generowaniu kodu.
W ogóle jest jakaś dziwna tendencja chyba we wszystkim, czy prawie
wszystkim, że praktycznie identyczne, czy podobne programy, obrastają w craz
większy kod wynikowy, nie usprawiedliwiony np. dodawanymi funkcjami. Różne
kompilatory dla dokładnie takiego samego kodu wejściowego produkują
całkowicie różny w objętości kod.
Weźmy z Pascala np. (darujcie "interpunkcję", ostatni raz rzeźbiłem 20 lat
temu...)
program hello; (niektóre kompilatory OIDP pozwalają na pominięcie tej
deklaracji)
begin
writeln ('Dzien dobry');
end.
jeden kompilator dał 30-kilka kB kodu, inny ok. 7, dla ciekawości powiedzmy,
że "przeportowałem" to na mocno niszowego "Zdzicha" (dostępny w necie, dla
DOS) kompilat był poniżej 100B (tak, bajtów, nie kilo, czy mega...). A
robiły dokładnie to samo. Zero dołączeń, zero innych deklaracji, itp. a
doklejały kilkadziesiąt kB ch.j wie czego, psu na budę potrzebnego...
Jestem niemal pewien, że gdyby tu i ówdzie poobcinać fuzle, to programy
zrobiły by się mniejsze... tylko może kompilatory powinny rzetelniej
generować kod? Nie doklejać czegoś, co programowi nie jest potrzebne. A jak
zdążyłem się zorientować, pamięć w naszych projektach (ja się nie zajmuję,
nie to zdrowie... Ale może kiedyś?) :)) bywa towarem deficytowym...?
... no dobra... nic nie mówiłem...
--
Pod żadnym pozorem nie zezwalam na wysyłanie mi jakichkolwiek reklam,
ogłoszeń, mailingów, itd., ani nawet zapytań o możliwość ich wysyłki.
Nie przyjmuję ŻADNYCH tłumaczeń, że mój adres e-mail jest ogólnodostępny
i nie został ukryty. Wszelkie próby takich wysyłek potraktuję jako stalking.
-
35. Data: 2013-03-06 20:26:32
Temat: Re: Nowy polski procesor
Od: Sebastian Biały <h...@p...onet.pl>
On 2013-03-06 19:53, Anerys wrote:
> writeln ('Dzien dobry');
> [...]
> Nie doklejać czegoś, co programowi nie jest potrzebne.
Przecież dokleileś I/O. Zapewne z cała duperelowatością obsługi różnych
typów, printowania floatów itp. Pisz ostrożnie a zobaczysz że nic złego
się nie ssa samoczynnie. Kompilatory nie są aż takie złe.
-
36. Data: 2013-03-06 21:20:54
Temat: Re: Nowy polski procesor
Od: Michoo <m...@v...pl>
On 06.03.2013 19:53, Anerys wrote:
> W ogóle jest jakaś dziwna tendencja chyba we wszystkim, czy prawie
> wszystkim, że praktycznie identyczne, czy podobne programy, obrastają w
> craz większy kod wynikowy, nie usprawiedliwiony np. dodawanymi
> funkcjami.
W końcu są "różne".
> Różne kompilatory dla dokładnie takiego samego kodu
> wejściowego produkują całkowicie różny w objętości kod.
A to zależy od wielu opcji czasu kompilacji.
> Weźmy z Pascala np. (darujcie "interpunkcję", ostatni raz rzeźbiłem 20
> lat temu...)
> program hello; (niektóre kompilatory OIDP pozwalają na pominięcie tej
> deklaracji)
> begin
> writeln ('Dzien dobry');
> end.
> jeden kompilator dał 30-kilka kB kodu,
Bardziej rozbudowana lub nie stripowana biblioteka.
> inny ok. 7,
Mniej rozbudowana (albo np wolniejsza) biblioteka. 30 kB to żaden
rozmiar, więc w czym problem?
> dla ciekawości
> powiedzmy, że "przeportowałem" to na mocno niszowego "Zdzicha" (dostępny
> w necie, dla DOS) kompilat był poniżej 100B (tak, bajtów, nie kilo, czy
> mega...).
Stripowana biblioteka, brak nagłówka PE (pliki .exe zawierają w sobie
m.i. plik com piszący, że "ten program jest pod windę", brak
importowanych bibliotek, etc...
> A robiły dokładnie to samo. Zero dołączeń,
a writeln to skąd się niby wzięło?
> zero innych
> deklaracji, itp. a doklejały kilkadziesiąt kB ch.j wie czego, psu na
> budę potrzebnego...
A potem jak się trochę więcej napisało to nagle ten pierwszy tył o
dodatkowe kilka kB kodu a ten drugi o kilkadziesiąt.
> Jestem niemal pewien, że gdyby tu i ówdzie poobcinać fuzle, to programy
> zrobiły by się mniejsze... tylko może kompilatory powinny rzetelniej
> generować kod? Nie doklejać czegoś, co programowi nie jest potrzebne.
Po grzyba ktoś ma optymalizować kompilator pod kątem minimalnego
programu, który nic nie robi?
--
Pozdrawiam
Michoo
-
37. Data: 2013-03-06 21:34:49
Temat: Re: Nowy polski procesor
Od: Marek Borowski <m...@...borowski.com>
On 2013-03-06 21:20, Michoo wrote:
> On 06.03.2013 19:53, Anerys wrote:
>
>
> Mniej rozbudowana (albo np wolniejsza) biblioteka. 30 kB to żaden
> rozmiar, więc w czym problem?
>
W tym ze do zapewnienie dzialania zgodnie z wymaganiami wystarczy 1kB.
Niektorzy po prostu lubia miec rzeczy "szyte na miare" a nie na
wszystkie mozliwe okazje.
>> Jestem niemal pewien, że gdyby tu i ówdzie poobcinać fuzle, to programy
>> zrobiły by się mniejsze... tylko może kompilatory powinny rzetelniej
>> generować kod? Nie doklejać czegoś, co programowi nie jest potrzebne.
>
> Po grzyba ktoś ma optymalizować kompilator pod kątem minimalnego
> programu, który nic nie robi?
>
j.w.
Generalnie inzynieria programowania jest niewolnikiem ekomomi i pojecia
"dobry" "optymalny" program sie zdewaluowaly. Teraz dobry program to ten
na ktorym da sie jak najwieciej zarobic w jak najktorszym czasie przy
spelnieniu wymagan specyfikacji. A kiedys dobry program to taki ktory
zrobi to co jest w specyfikacji w jak najktorszym czasie i zajmnie jak
najmniej miejsca. Ni huhu nie pasuje do wspolczenej wszechobecnej
komercji gdzie TTM jest najwazniejszym parametrem.
Pozdrawiam
Marek
-
38. Data: 2013-03-06 22:34:27
Temat: Re: Nowy polski procesor
Od: "Grzegorz Niemirowski" <g...@p...onet.pl>
Marek Borowski <m...@...borowski.com> napisał(a):
> W tym ze do zapewnienie dzialania zgodnie z wymaganiami wystarczy 1kB.
> Niektorzy po prostu lubia miec rzeczy "szyte na miare" a nie na wszystkie
> mozliwe okazje.
Na miarę czego? Komputera z 4 GB RAMu? Co za różnica ile zajmie hello world?
Może powiesz, że są mikrokontrolery z 1 kB RAMu albo mniej. Tak, dlatego
pytam co to za miara. Ale teraz tych kostek jest mnóstwo, są tanie i nie ma
sensu walczyć o każdy bajt. Poczytaj sobie
http://thedailywtf.com/Comments/That-Wouldve-Been-an
-Option-Too.aspx
> j.w.
> Generalnie inzynieria programowania jest niewolnikiem ekomomi i pojecia
> "dobry" "optymalny" program sie zdewaluowaly. Teraz dobry program to ten
> na ktorym da sie jak najwieciej zarobic w jak najktorszym czasie przy
> spelnieniu wymagan specyfikacji. A kiedys dobry program to taki ktory
> zrobi to co jest w specyfikacji w jak najktorszym czasie i zajmnie jak
> najmniej miejsca. Ni huhu nie pasuje do wspolczenej wszechobecnej komercji
> gdzie TTM jest najwazniejszym parametrem.
> Pozdrawiam
> Marek
A ten najkrótszy czas i najmniejsze miejsce to nie była ekonomia? Z jakiego
powodu, jeśli nie ekonomicznego, ten program musiał być mały i szybki? Teraz
ekonomia działa tak samo, tylko sprzęt jest trochę inny. Zobacz sobie jakie
możliwości ma Raspberry Pi i przy jakiej cenie.
--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
Uptime: 19 days, 12 hours, 2 minutes and 14 seconds
-
39. Data: 2013-03-07 00:33:05
Temat: Re: Nowy polski procesor
Od: "Anerys" <s...@s...pl>
Użytkownik "Michoo" <m...@v...pl> napisał w wiadomości
news:kh88ul$sbc$1@mx1.internetia.pl...
> On 06.03.2013 19:53, Anerys wrote:
>
>> W ogóle jest jakaś dziwna tendencja chyba we wszystkim, czy prawie
>> wszystkim, że praktycznie identyczne, czy podobne programy, obrastają w
>> craz większy kod wynikowy, nie usprawiedliwiony np. dodawanymi
>> funkcjami.
>
> W końcu są "różne".
Nie mówię, że nie...
>
>> Różne kompilatory dla dokładnie takiego samego kodu
>> wejściowego produkują całkowicie różny w objętości kod.
>
> A to zależy od wielu opcji czasu kompilacji.
Bezbajerowo. Jeszcze pod DOSem. TP 3 dawał ok. 30 kilku kB, TP7 już poniżej
10.
>
>> Weźmy z Pascala np. (darujcie "interpunkcję", ostatni raz rzeźbiłem 20
>> lat temu...)
>> program hello; (niektóre kompilatory OIDP pozwalają na pominięcie tej
>> deklaracji)
>> begin
>> writeln ('Dzien dobry');
>> end.
>> jeden kompilator dał 30-kilka kB kodu,
>
> Bardziej rozbudowana lub nie stripowana biblioteka.
Tylko po co ona, gdy jedynym zadaniem programu było krok po kroku wyrzucić
kilkanaście znaków na ekran... w C64 schodziłęm poniżej 50 bajtów włącznie z
danymi (fakt, skakałem do podprogramu... ale gdzieś widziałem listing, który
bezpśrednio dawał... i nie obrosło to w zbędny kod. Ale to w C64 był mus,
liczył się każdy bajt. I dobrze.
>
>> inny ok. 7,
>
> Mniej rozbudowana (albo np wolniejsza) biblioteka. 30 kB to żaden rozmiar,
> więc w czym problem?
Choćby w czasach, w których to robiłem, że taka różnica była istotna. A
jeśli program spokojnie może byc mały, to nie widzę powodów, aby był duży.
>
>> A robiły dokładnie to samo. Zero dołączeń,
>
> a writeln to skąd się niby wzięło?
Z treści programu. Nic nie było definiowane w treści przez include, żadnej
dyrektywy dołączającej, nic, poza tymi 4 liniami.
>
>> zero innych
>> deklaracji, itp. a doklejały kilkadziesiąt kB ch.j wie czego, psu na
>> budę potrzebnego...
>
> A potem jak się trochę więcej napisało to nagle ten pierwszy tył o
> dodatkowe kilka kB kodu a ten drugi o kilkadziesiąt.
Klepałem trochę, ale już zapomniałem szczegółów... tylko czemu wspomniany
przeze mnie Zdzich umiał się zachować i nie tył zanadto?
>> Jestem niemal pewien, że gdyby tu i ówdzie poobcinać fuzle, to programy
>> zrobiły by się mniejsze... tylko może kompilatory powinny rzetelniej
>> generować kod? Nie doklejać czegoś, co programowi nie jest potrzebne.
>
> Po grzyba ktoś ma optymalizować kompilator pod kątem minimalnego programu,
> który nic nie robi?
Robi - wyświetla na ekranie "Dzien dobry" (bez ogonka, bo wtedy ich prawie
nie znano(1991))
Ja chcę od programu, aby mając tekst j.w., program zrobił:
Licząc od pierwszego do ostatniego znaku, pobrał je po kolei i wyrzucił na
ekran. Niech 100 bajtów kodu pobiera te znaki, drugie 100 wyprowadzi na
ekran, trzecie 100 utrzyma to w całości. Już nie będę aż tak skąpy. Ale,
żeby to nie było po 10 kB, bo co by te 10 kB robiło w swojej części
zadania... czy ile tego było... skoro setka poradziłą sobie równie dobrze...
to co robi pozostałe 9900 bajtów? Ja je chcę wyrzucić. Tylko tyle.
--
Pod żadnym pozorem nie zezwalam na wysyłanie mi jakichkolwiek reklam,
ogłoszeń, mailingów, itd., ani nawet zapytań o możliwość ich wysyłki.
Nie przyjmuję ŻADNYCH tłumaczeń, że mój adres e-mail jest ogólnodostępny
i nie został ukryty. Wszelkie próby takich wysyłek potraktuję jako stalking.
-
40. Data: 2013-03-07 00:48:24
Temat: Re: Nowy polski procesor
Od: "Anerys" <s...@s...pl>
Użytkownik "Marek Borowski" <m...@...borowski.com> napisał w wiadomości
news:kh899i$1fs$1@news.task.gda.pl...
> On 2013-03-06 21:20, Michoo wrote:
>> On 06.03.2013 19:53, Anerys wrote:
>>
>>
>> Mniej rozbudowana (albo np wolniejsza) biblioteka. 30 kB to żaden
>> rozmiar, więc w czym problem?
>>
> W tym ze do zapewnienie dzialania zgodnie z wymaganiami wystarczy 1kB.
> Niektorzy po prostu lubia miec rzeczy "szyte na miare" a nie na wszystkie
> mozliwe okazje.
Trafnie to ująłeś. Program ma KONKRETNE zadanie. Dajmy na to, ma drapać się
po dupie. Nie potrzebuję więc sprawdzania, czy przypadkiem nie mruga oczami,
czy nie rosną mu białe włosy, nie potrzebuję dołączania biblioteki machania
nogami. Program ma tylko i wyłącznie drapać się po dupie, a co za tym idzie,
zawierać tylko i wyłącznie procedury drapania się po dupie (i zintegrowane,
albo w oddzielnym pliku, dane do drapania się po dupie, czyli dupa jest tu -
współrzędne x,y,z, razem śjakieś powiedzmy, 12 bajtów, zakładając hojne
32-bitowe określanie pozycji każdej ze współrzędnych, punkt początkowy
x1,y1,z1, punkt końcowy x2,y2,z2, a cały ruch drapania jest prostym ruchem
między początkiem a końcem. Przez wyrzucenie wszystkiego niepotrzebnego chcę
osiągnąć, by program, opierając się możliwie o najmniejszą możliwą ilość
pamięci, przez brak konieczności zajmowania się zbędnymi kawałkami kodu, był
w stanie w czasie rzeczywistym przeliczać ruch ręki do drapania się po dupie
tak, aby nie musia korzystać z predefiniowanych tablic określających kolejne
pozycje drapaka. W razie czego pozwalam sobie jedynie na pętlę
spowalniającą, jeśli ruch byłby za szybki. Oraz prostą procedurę
sprawdzającą, czy ciąg między początkiem i końcem nie wychodzi poza dupę.
Zgrubnie szacuję taki program na 300-500 bajtów.
>> Po grzyba ktoś ma optymalizować kompilator pod kątem minimalnego
>> programu, który nic nie robi?
>>
> j.w.
>
> Generalnie inzynieria programowania jest niewolnikiem ekomomi i pojecia
> "dobry" "optymalny" program sie zdewaluowaly. Teraz dobry program to ten
Ja już od dawna tak to widzę.
> na ktorym da sie jak najwieciej zarobic w jak najktorszym czasie przy
> spelnieniu wymagan specyfikacji. A kiedys dobry program to taki ktory
> zrobi to co jest w specyfikacji w jak najktorszym czasie i zajmnie jak
Nie inaczej.
> najmniej miejsca. Ni huhu nie pasuje do wspolczenej wszechobecnej komercji
> gdzie TTM jest najwazniejszym parametrem.
Hmm... nie wiem, w czym był pisany Norton Commander, ale na XT 4.77/8
startował poniżej sekundy. GW-Basic (ok. 60kB) startował natychmiast. A z
dyskietki przez czas potrzebny do odczytania kodu programu.
Dzisiaj... mam maszynę 3 GHz dwurdzeniową, Total Commander startuje
dłużej...
--
Pod żadnym pozorem nie zezwalam na wysyłanie mi jakichkolwiek reklam,
ogłoszeń, mailingów, itd., ani nawet zapytań o możliwość ich wysyłki.
Nie przyjmuję ŻADNYCH tłumaczeń, że mój adres e-mail jest ogólnodostępny
i nie został ukryty. Wszelkie próby takich wysyłek potraktuję jako stalking.