Aktualności: C64 Power - online od stycznia 2000 !

Autor Wątek: O matko!!! A może by tak otworzyć ramkę w C++17?!  (Przeczytany 818 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline qus

  • Level 3
  • ***
  • Wiadomości: 201
O matko!!! A może by tak otworzyć ramkę w C++17?!
« dnia: 05 Kwietnia 2018, 09:20 »
Wiem, że robię się nudny, ale jednak wciąż nie mogę przejść do porządku dziennego nad tym, że starzy komodorowcy to tacy dogmatyczni ortodoksi i z jednej strony wierzą, że jakieś rzeczy da się zrobić "tylko w języku maszynowym", a z drugiej zapominają, że każdy język kończy jako maszynowy...

No dobrze, z dzieleniem rastra w BASICu może nie był to dobry przykład i jeśli tego próbowaliście i nie wyszło, to nie wińcie mnie, ani Billa Gatesa, bo podobno chłopina starał się jak mógł (tak twierdzą ci, co analizowali kod BASICA V2), po prostu to nasz Commodore jest za wolny aby udało się to w interpreterze.

A czy ma to prawo udać się w kompilatorze? A najlepiej jakiegoś popieprzonego, gwałtownie tracącego na popularności języka? Dajmy na to... C++? 17?

"Nie da się" - powiecie "bo nie ma kompilatora, który miałby backend dla 6502" No cóż - jedni tak powiedzą, a inni się tym wcale nie przejmą, tak jak ten koleś, który w C++17 napisał grę na C64, szczegóły tutaj:

https://www.youtube.com/watch?v=zBkNBP00wJE

Spoiler alert:






Wykład przedstawia kodowanie prostej gry dla C64 w C++17. Złośliwy nerdzik napisał program wykorzystujący:

- obiekty

- metody

- delegacje konstruktora/destruktora

- lambdy

- destrukturyzację

- inliniowane wywołania funkcji

- templejty (rekursywne i z dowolną liczbą argumentów)

- algorytmy standardowe

WSZYSTKO TO Z ZEROWYM NARZUTEM. Cwaniak.

Nie polecam ludziom o słabych nerwach...
« Ostatnia zmiana: 05 Kwietnia 2018, 09:22 wysłana przez qus »



Offline KB777

  • Level 6
  • ******
  • Wiadomości: 2430
  • -profil nieaktywny-
Re: O matko!!! A może by tak otworzyć ramkę w C++17?!
« Odpowiedź #1 dnia: 05 Kwietnia 2018, 10:25 »
Stare. Tak się zastanawiałem gdzie pierwszy raz o tym czytałem - no, jak nic na CSDB. Tam jak widać, pochylili się nad tematem z wielkim "entuzjazmem" ;)
http://csdb.dk/forums/?roomid=11&topicid=119427&showallposts=1
-profil nieaktywny-

Offline qus

  • Level 3
  • ***
  • Wiadomości: 201
Re: O matko!!! A może by tak otworzyć ramkę w C++17?!
« Odpowiedź #2 dnia: 05 Kwietnia 2018, 10:44 »
Wiedziałem co jest w tamtym wątku, jeszcze zanim kliknąłem Twój link, aby go przeczytać...

Offline V-12/Tropyx

  • Level 7
  • *******
  • Wiadomości: 2765
  • 0ldsk00l 4ever!
    • http://www.riversedge.pl/
Re: O matko!!! A może by tak otworzyć ramkę w C++17?!
« Odpowiedź #3 dnia: 05 Kwietnia 2018, 13:17 »
Może nie do końca w temacie, ale Raf 10 lat temu popełnił demko w języku C  ;-) http://csdb.dk/release/?id=70559
http://www.riversedge.pl/ - zapraszam na nową stronę: recenzje, relacje, strefa C64.

Serwis Commodore 64/1541 - naprawa/diagnoza.
Zawsze aktualne!

Offline KB777

  • Level 6
  • ******
  • Wiadomości: 2430
  • -profil nieaktywny-
Re: O matko!!! A może by tak otworzyć ramkę w C++17?!
« Odpowiedź #4 dnia: 05 Kwietnia 2018, 14:36 »
Może nie do końca w temacie, ale Raf 10 lat temu popełnił demko w języku C  ;-) http://csdb.dk/release/?id=70559

Cytuj
User Comment
Submitted by Cruzer on 1 September 2008
High level programming not good for demos on a 64K 1MHz machine? Well, now I never!

User Comment
Submitted by JackAsser on 1 September 2008
@Raf: Your logic is faulty. This only proves that C is not good for demos. (And yeah, I did the same journey with Number Seven :)

/Spock

User Comment
Submitted by Raf on 31 August 2008
nah this was an experiment... at least it's realtime ;-) :P and it proves high level programming is good for applications, not for demos ;-)

User Comment
Submitted by Oswald on 31 August 2008
I kept wondering how can it be so slow, then I saw "this was done in c". aha :D

Tak w ogóle WDC ma w ofercie kompilator C na 65(c)02 i 65c816, ciekaw jestem kto tego używał - znaczy czy w "przemyśle" w ogóle praktykowano kodoklepanie w C na 6502 i pochodne. Bo hobbyści cc65 itp...
Na 8051 (które w zamierzchłych czasach było jednym z "industry standard" jeśli chodzi o 8 bitowe MCU) a i owszem, Keil/IAR na nich pewnie sporo zarobili ;)  Ale kod generowany (i to bez etapu pośredniego - x86 - tak jak w przypadku "złośliwego nerdzika"; a, przecież mamy też port Wolfensteina 3D na SuperCPU - z etapem rekompilacji z MIPSa) na architekturę tak nieprzystosowaną do języków wysokiego poziomu - w sumie się da, tylko hmm...
-profil nieaktywny-

Offline Raf

  • Master of disaster
  • Administrator
  • Level 7
  • **********
  • Wiadomości: 7333
  • Wolność, własność, sprawiedliwość
Re: O matko!!! A może by tak otworzyć ramkę w C++17?!
« Odpowiedź #5 dnia: 05 Kwietnia 2018, 19:48 »
Ja marze o IDE dobrze zintegrowanym z debugowaniem w VICE a tam typ mowi, ze kompiluje fully-featured c++ do pure 6502 - nie ogladalem jeszcze tegoz, ale jesli to faktycznie jest mozliwe to klekajcie narody.

Kto napisal cokolwiek w C, skompilowal z cc65 a potem chcial to debugowac np pod vice (gdyz nie da sie debugowac inaczej, nie ma polaczenia z gdb czy jakiegos symulatora/debugera do cc65 z prawdziwego zdarzenia) to wie jaki jest to bol...

Swego czasu pisalem prosty raycasting w C (gcc + biblioteka allegro) celem przeniesienia na c64, kompilujac z cc65 - chcialem w ten sposob zaliczyc na uczelni przedmiot grafika komputerowa czy jakos tak :) Ostatecznie zaliczylem, choc efekt byl daleki od zamierzonego, jesli znajde te zrodla to udostepnie, moze ktos bedzie mial ochote poprawic.
"Cokolwiek powiesz albo napiszesz, znajdzie się ktoś, kto słyszy lub czyta coś zupełnie innego i jeszcze bezczelnie wmawia Ci to"

Offline KB777

  • Level 6
  • ******
  • Wiadomości: 2430
  • -profil nieaktywny-
Re: O matko!!! A może by tak otworzyć ramkę w C++17?!
« Odpowiedź #6 dnia: 06 Kwietnia 2018, 10:28 »
Kompiluje, kompiluje... najpierw do x86 a potem translacja na 6502. To chyba więcej sensu by miało C++ do C (clangiem z C++ do bytecode, a potem llc żeby z tego wypluć C) i potem już CC65. Hgw, może nie będzie lepiej - trzeba by to zbadać w tzw. "wolnej chwili").

Taka ciekawostka:
https://youtu.be/zBkNBP00wJE?t=3772
Herb Sutter dorwał się do joy'a.
-profil nieaktywny-

Offline KB777

  • Level 6
  • ******
  • Wiadomości: 2430
  • -profil nieaktywny-
Re: O matko!!! A może by tak otworzyć ramkę w C++17?!
« Odpowiedź #7 dnia: 06 Kwietnia 2018, 12:09 »
Jak zwykle zaczynam od szukania dziury w całym. To z siódmej strony prezentacji "złośliwego nerdzika". Tak się zastanawiam nad tym "zero overhead" - w którym to miejscu można go znaleźć ;)
-profil nieaktywny-