Komentowana treść: GCC-Pack
[#1] Re: GCC-Pack
To wstyd żeby takie rzeczy musiał robić ktoś z zewnątrz. To powinno być niemal od zawsze w oficjalnym SDK. No ale taki to już "urok" AmigaOS 3.x. Bez drogi przez mękę oddzielającej chłopców od mężczyzn się nie obejdzie. Czy SDK AmigaOS 3.x nie może być tak przygotowane jak MorphOS SDK? Tak żeby po zainstalowaniu było kompletnym środowiskiem i faktycznie zachęcało do spróbowania czegoś? Przecież gdyby ktoś z zewnątrz chciał wejść w programowanie pod AmigaOS 3 (nie mylić z Amigą) to przecież się zniechęci po jednym dniu.

Całe szczęście, że są jeszcze w środowisku takie dobre i zdolne dusze jak Krashan, które czasem załatają jakąś dziurę tego dziwnego świata. Właściwie gdybym mógł wybrać kogoś to powinien coś takiego przygotować to bez zastanowienia wskazałbym Krashana. Zresztą tak samo wybrałby każdy kto używał czegokolwiek co wyszło spod młotka tego programisty. To zawsze jest porządne, dokładne, udokumentowane, kompletne, skończone i maksymalnie zgodne z filozofią AmigaOS.
Z mojego punktu widzenia Krashan ma tylko jedną wadę - za bardzo zna się na sprzęcie i elektronice. Byłoby lepiej gdyby nie miał o tym pojęcia.
1
[#2] Re: GCC-Pack

@MDW, post #1

W amigowym NDK 3.x nigdy nie było "w środku" żadnego kompilatora. W latach świetności królowały Dice, Maxon, Aztec, Hisoft, potem SAS – wszystkie komercyjne. Wsparcie AmigaOS pojawiło się dla GCC chyba w wersji 2.7.2, gdy Commodore właśnie upadło. W tym samym roku pojawił się VBCC. Aż do ukazania się "systemu" 3.9 nowszego NDK nie było, a ten również w zasadzie zawierał jedynie zaktualizowane pliki nagłówkowe i dokumentację.

NDK 3.2 nic w tej kwestii nie zmienił, można jeszcze "nieoficjalnie" zauważyć, że ekipa dłubiąca obecnie w 3.x nie używa GCC, po części dlatego, że nie chcą, po części dlatego, że - to moje przypuszczenie - źródła systemu nadal nie są w nim kompilowalne.

Powstaje więc pytanie, gdyby chciano dołożyć do NDK jakiś kompilator, to jaki? W przypadku MorphOS-a wybór był oczywisty, bo sam MorphOS kompilowany jest (a przynajmniej był, dopóki byłem w teamie, teraz nie wiem) GCC, a PowerPC chyba wciąż ma oficjalne wsparcie. Natomiast dla klasyka możnaby dać co? Zabytkowy GCC, przy czym wsparcie jest zerowe (o ile mi wiadomo architektura M68k ostatecznie wyleciała już z GCC). Druga możliwość, chyba najlepsza to VBCC. Jest wciąż rozwijany, chociaż moim zdaniem po prawie 30 latach rozwoju nadal widzi tylne światła zabytkowego GCC 2.95.3. Trzecia to SAS/C, słyszałem plotki o jakiejś petycji do SAS, żeby go uwolnić, ale nie wiem jak to się skończyło. Nawet gdyby, to z komercyjnym softem zawsze są jakieś problemy prawno-licencyjne.

Do tego dołóżmy fakt, że pewnie z 90% ludzi, którzy piszą w C na klasyka, posługuje się kross-kompilatorami na PC, czyli zazwyczaj GCC w znacznie nowszej wersji plus do tego mogą używać np. VSCode jako edytora. Więc oni mają serdecznie wyrąbane na to, czy w NDK jest jakiś natywny kompilator.

Powiedzmy sobie szczerze, GCC-Pack jest pewnie dla 5 ludzi na krzyż, a głównie i tak go zrobiłem dla siebie, bo mam (z emulatorami licząc) chyba z 6 środowisk developerskich i chciałem mieć wygodną paczkę do szybkiej instalacji...
2
[#3] Re: GCC-Pack

@Krashan, post #2

o ile mi wiadomo architektura M68k ostatecznie wyleciała już z GCC
Jednak źle mi było wiadomo i nie wyleciała. W GCC 12 wciąż jest.
[#4] Re: GCC-Pack

@Krashan, post #2

W amigowym NDK 3.x nigdy nie było "w środku" żadnego kompilatora. W latach świetności królowały Dice, Maxon, Aztec, Hisoft, potem SAS – wszystkie komercyjne.

Dice był Shareware z lekko ograniczoną funkcjonalnością w wersji demonstracyjnej, ale autor później udostępnił kompilator oraz jego kod źródłowy.

Wsparcie AmigaOS pojawiło się dla GCC chyba w wersji 2.7.2, gdy Commodore właśnie upadło.

Najwcześniejsza wersja GCC dla Amigi jaką posiadam to 2.5.8. Na płycie CDPD IV. Obraz tej płyty powinien znajdować się w serwisie Archive.org.

Z tego co wiem programiści, w których skład wchodził Fred Fish przygotowali port GCC i innych narzędzi na Amigę.

Fajny pakiet przygotowałeś. Ja wersję 2.95.3 mam bodajże na płycie z GoldED Studio AIX, ale tam instalator nie jest taki dobry.

GCC jest dobrym kompilatorem, aczkolwiek preferuję DICE v3.16. Moim zdaniem lepiej współpracuje z Amiga OS, szczególnie dlatego, że nagłówki biblioteki standardowej nie pochodzą z Unixa.

Format wstawek asemblerowych jest dla mnie problematyczny.

Faktem jest, że w NDK Amiga OS nie ma kompilatora. StormC znajduje się na płycie Amiga Developer CD v2.1, dedykowanej OS 3.5.

Mimo to uważam, ze na Amidze można sobie spokojnie skompletować potrzebne środowisko do pisania w językach C, AMOS, Asembler, bądź E. W Blitz Basicu nie pisałem, ale na podstawie działań kolegów programistów wiem, że i tutaj jest dobrze.

W zasadzie to właśnie porządnego instalatora kompilatora języka C brakowało, bo do reszty języków są.

P.S. Tutaj jak wygląda szuflada z GCC 2.5.8 z płyty CDPD IV. Płyty z tej serii mają bardzo fajnie poukładaną zawartość.



Ostatnia aktualizacja: 28.01.2024 18:00:17 przez Hexmage960
[#5] Re: GCC-Pack

@Krashan, post #2

Powstaje więc pytanie, gdyby chciano dołożyć do NDK jakiś kompilator, to jaki?

Jeżeli tak na to patrzeć to rzeczywiście sprawa nie jest prosta. Niezależnie od tego czy ktoś używa Amigi do pisania czegoś na Amigę czy jakiejś dzisiejszej maszyny, to jednak powinno się dać pisać i kompilować na Amidze.
Nowsze GCC nawet gdyby było dla AmigaOS 3 to odpada. Pochłania przeogromne ilości RAMu i kompilacja na jakimś 040 trwałaby chyba w nieskończoność. Na G4 1,67GHz nowe GCC daje radę tylko dlatego, że projekt mam podzielony na prawie 300 plików i zwykle buduje się max. kilka plików. Przebudowanie wszystkiego trwa chyba ze 20 minut. szeroki uśmiech

Powiedzmy sobie szczerze, GCC-Pack jest pewnie dla 5 ludzi na krzyż.

Coś mi się wydaje, że jednak więcej osób skorzysta. Tak czy inaczej to świetnie (i jakże nieamigowo), że się tym dzielisz ze światem. Normalnie człowiek coś takiego robi dla siebie i używa w takiej postaci mocno roboczej. Żeby coś udostępnić światu to jednak trzeba to trochę poukładać, dopracować żeby wstydu nie było. A to dodatkowa robota, której nikomu nie chce się robić.
1
[#6] Re: GCC-Pack

@Hexmage960, post #4

GCC jest dobrym kompilatorem, aczkolwiek preferuję DICE v3.16. Moim zdaniem lepiej współpracuje z Amiga OS, szczególnie dlatego, że nagłówki biblioteki standardowej nie pochodzą z Unixa.
Kompilator nie jest od współpracowania z systemem. To skompilowane nim programy mają współpracować z systemem. A to już zależy od autora. GCC można używać w ogóle bez biblioteki standardowej i jej nagłówków... Większość napisanych przeze mnie programów tak właśnie powstała.

Popatrz na to w ten sposób, sam system AmigaOS został pierwotnie napisany na komputerach pracujących pod Unixem i nie były to Amigi. Użyte kompilatory na pewno nijak z AmigaOS nie współpracowały.
2
[#7] Re: GCC-Pack

@Krashan, post #6

Kompilator nie jest od współpracowania z systemem. To skompilowane nim programy mają współpracować z systemem. A to już zależy od autora. GCC można używać w ogóle bez biblioteki standardowej i jej nagłówków... Większość napisanych przeze mnie programów tak właśnie powstała.

Te nagłówki z biblioteki standardowej dla systemu Unix różnią się od nagłówków z tej biblioteki dla Amiga OS. Jest kilka konfliktów, o których mowa w dokumentacji.

Sam chcąc np. zmierzyć czas za pomocą timer.device pod GCC napotkałem na problem z nagłówkami.

Przykładowo Unix ma swoją obsługę procesów za pomocą funkcji fork(), Amiga OS ma swoją w bibliotece exec.library. Te systemy operacyjne różnią się.

Język C jest językiem niezależnym od systemu. Ale środowiska systemów różnią się zasadniczo i nierzadko trzeba stosować kompilację warunkową dla projektów wieloplatformowych - Unix, Amiga, MS-DOS itp. mimo stosowania biblioteki standardowej.

Popatrz na to w ten sposób, sam system AmigaOS został pierwotnie napisany na komputerach pracujących pod Unixem i nie były to Amigi. Użyte kompilatory na pewno nijak z AmigaOS nie współpracowały.

Oczywiście, praca była wykonywana albo na pierwotnych systemach albo na prototypach. Dotyczy to każdego systemu operacyjnego.

Ja nie mam nic do Unixa, tylko jest różnica jeśli chodzi o integrację kompilatorów z systemem operacyjnym na przykładzie nagłówków systemowych czy formatu kodu w asemblerze w pośredniej reprezentacji kodu.

Dlatego ja preferuję DICE. DICE udostępnia sporo pomocniczych programów napisanych dla Amigi.

Czasami korzystam z SAS/C, który jest zdaje się ewolucją Lattice C. Ale Twoja paczka na pewno się przyda mnie i wielu innym.

Ostatnia aktualizacja: 28.01.2024 19:53:52 przez Hexmage960
[#8] Re: GCC-Pack
@Krashan

Chciałbym zapytać czym się różni twój pakiet od ADE z aminetu?

Pytam z czystej ciekawości Ja ADE mam zainstalowane i helo world udało mi się skompilować oraz jakieś inne proste kody źródłowe.
[#9] Re: GCC-Pack

@Wankowicz, post #8

Nie wiem czym się różni.
[#10] Re: GCC-Pack

@Krashan, post #9

ADE to płyta kompaktowa wydana przez Freda Fisha, zawierająca Geek Gadgets. Twoja paczka zdaje się być taką podręczną instalacją GCC, bo mieści się w 5MB.

Ostatnia aktualizacja: 28.01.2024 22:25:01 przez Hexmage960
1
[#11] Re: GCC-Pack

@Hexmage960, post #7

Twoja wypowiedź jest sprzeczna sama ze sobą. Dużo najpierw piszesz o tworzeniu programów przenośnych na różne platformy, a potem, że preferujesz Dice C. Używając GCC i jego biblioteki standardowej byłoby Ci dużo łatwiej pisać takie przenośne programy, ponieważ biblioteka standardowa GCC jest bliższa temu co oferują inne platformy.

Natomiast w momencie, gdy używamy bezpośrednio API AmigaOS, biblioteki standardowej można się pozbyć. W tym momencie poziom integracji wynikowego kodu z systemem niczym się nie różni od Dice, a GCC generuje bardziej zoptymalizowany kod i oferuje mimo wszystko nowszy standard języka C.
[#12] Re: GCC-Pack

@Krashan, post #11

Twoja wypowiedź jest sprzeczna sama ze sobą. Dużo najpierw piszesz o tworzeniu programów przenośnych na różne platformy, a potem, że preferujesz Dice C. Używając GCC i jego biblioteki standardowej byłoby Ci dużo łatwiej pisać takie przenośne programy, ponieważ biblioteka standardowa GCC jest bliższa temu co oferują inne platformy.

OK, ja poruszyłem tylko zagadnienie tego, że GCC ma swoje nagłówki z biblioteki standardowej języka C pobrane z projektu GNU oraz, że format asemblera akceptowany przez GCC różni się od przyjętego standardu z PhxAss, czy Asm-One.

Generalnie nie chciałem pisać o przenośnym kodzie, tylko wskazać na to, że środowisko w którym działa oprogramowanie GNU przeniesione na Amigę (Geek Gadgets) różni się troszkę od typowego amigowego.

Ja używam GCC sporadycznie - więc mogę mylić się. Szczególnie, że nowsze wersje, takie jak 2.95.3 są przygotowane dużo lepiej.

Nie piszę programów przenośnych w tej chwili (poza małymi wyjątkami). Pisałem o przenośności, dlatego że niedawno skompilowałem systemy gier tekstowych (pochodzące z Amigi, Unixa i MS-DOS) dla Unix/Linux oraz Windows.

Natomiast w momencie, gdy używamy bezpośrednio API AmigaOS, biblioteki standardowej można się pozbyć. W tym momencie poziom integracji wynikowego kodu z systemem niczym się nie różni od Dice, a GCC generuje bardziej zoptymalizowany kod i oferuje mimo wszystko nowszy standard języka C.

Zgadzam się w pełni z tym, że GCC jest kompilatorem, który produkuje wysokiej jakości kod. Problemy o których wspomniałem dotyczą pewnych szczególnych sytuacji.

Ostatnia aktualizacja: 28.01.2024 22:52:18 przez Hexmage960
[#13] Re: GCC-Pack

@Hexmage960, post #12

Szczególnie, że nowsze wersje, takie jak 2.95.3 są przygotowane dużo lepiej.






nowsze powiadasz?
[#14] Re: GCC-Pack

@michal_zukowski, post #13

Zbędny trolling. Pisał wcześniej o 2.5.8, nawet wrzucał screenshot. 2.95.3 jest nowszą od niej wersją, jak by nie patrzeć. A że obie to historyczne starocie, wiemy i bez kapitana rzookola. Niemniej działają, a moim zdaniem GCC 2.95.3 jest niezmiennie najlepszym natywnym kompilatorem C na klasyka.
1
[#15] Re: GCC-Pack
Czy te hardlinki są niezbędne czy można to zrobić inaczej lub opcjonalnie?
Czy lepiej używać ixemul 48 czy tej nowszej 63?
[#16] Re: GCC-Pack

@cholok, post #15

Czy te hardlinki są niezbędne czy można to zrobić inaczej lub opcjonalnie?
Można to zrobić inaczej, umieszczając kopię pliku pod dwiema nazwami (as i gas w bin), albo w dwóch miejscach (ld jest w GG:bin i w GG:lib/gcc-lib/m68k-amigaos/2.95.3/).
Czy lepiej używać ixemul 48 czy tej nowszej 63?
Słyszałem sporo negatywnych opinii o stabilności wersji 63, ale sam jej nie testowałem. Osobiście używam 48, nowsza wersja do niczego nie jest mi potrzebna.

Ostatnia aktualizacja: 29.01.2024 11:59:09 przez Krashan
[#17] Re: GCC-Pack

@Krashan, post #16

Wersja 63 to losowy port amigowego ixemula + jakie wlasne dodatki autora. Nie mogło się udać. Nowy ixemul byłby pomocny jakby ktos chcial korzystać z zaktualizowanych binutils, make etc., ale z uwagi na to że klasyk umarł programistycznie to pewnie niewarto.
[#18] Re: GCC-Pack

@Hexmage960, post #10

Chodziło mi o te ADE.
[#19] Re: GCC-Pack

@michal_zukowski, post #17

Ixemul 63.1 to spaczowany 48.x. Nic tu nie jest niestabilne. Powstawał przy portowaniu m.in. open red alert, wesnoth i z powodzeniem wielu innych.

Ostatnia aktualizacja: 03.02.2024 23:22:52 przez Artur Jarosik
2
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem