Hírek | Archívum | Fórum | IRC | Amiga | AmigaOS | FAQ | RSS

 - Fórumok - Regisztráció - Keresés - Statisztika - Szabályzat - Pegasos.hu fórum
forum.amigaspirit.hu / Fejlesztés / Free Pascal Compiler (classic és OS4 is)
<< . 1 . 2 . 3 . 4 . 5 . 6 . >>
Szerző Üzenet
dekanyz
Tag

# Elküldve: 2016. Ápr. 22. 14:25


Quoting: charlie
Próbálj meg egy multithreading, multiplatform alkalmazást írni C-ben meg Object Pascalban, úgy hogy fusson mondjuk amigán, Linuxon és Windowson, hátha akkor megváltozik a véleményed. :P

Konnyen el tudom kepzelni, hogy Pascal-ban ez jobban mukodik ismerve a C-s viszonoyokat... Ettol fuggetlenul meg mindig van egy homalyos emlekem a Pascal-rol meg a 90'es evekbol a fosulirol.

Na jo, annyira nem volt rossz, csak a C-t valahogy kapasbol jobban szerettem!

Yellow Dog
Tag

# Elküldve: 2016. Ápr. 22. 14:55 - Szerkesztve: yellowdog


A C-n mit lehet szeretni? Aki pl. a szintaxisát kitalálta az biztosan elmebeteg volt... és nőhiányban szenvedhetett ;-)

Chain-Q
Divatamigás

# Elküldve: 2016. Ápr. 22. 14:58 - Szerkesztve: charlie


Na jo, annyira nem volt rossz, csak a C-t valahogy kapasbol jobban szerettem!

Minden nyelv sokat változott és fejlődött a 90-s évek eleje óta... Ez a modern Pascal fő baja. A 90-s évek elejéről mindenki az 1992-s (és korábbi) Turbo Pascalra emlékszik, ami annyira jól sikerült, hogy kevésbé szerencsés helyeken még egészen a közelmúltban (szerintem még ebben az évtizedben is...) is túráztatták vele az embereket, szóval szitokszó lett és maradt... Pedig...

Szerk: az utolsó néhány hozzászólást az OS4.1 topicból átraktam ide. Itt lehet megvitatni, kérdezni. :)

dekanyz
Tag

# Elküldve: 2016. Ápr. 22. 15:15


Nekem is a TP-hoz volt szerencsem!

Nem tom... lehet, hogy a mostani mar egesz mas, de ha egyszer van C fordito (MOS-ra, a tobbi annyira nem erdekel), meg akad nemi kompetencia is hozza, mivel mujnkaban is ezt hasznalom, hat nem hiszem, hogy a FP annyira vonzani fog, akar volt noje anno az oreg Dennis-nek, akar nem! ;)

Chain-Q
Divatamigás

# Elküldve: 2016. Ápr. 22. 15:24 - Szerkesztve: charlie


A fő dolgok, amikre mindenki emlékszik, hogy fúj, és a TP7 óta fejlődtek a nyelvben:

- Pointerkezelés - ez minden C hívő netovábbja a Pascal ellen, az FPC hamar bevezette, aztán a Delphi a közelmúltban utána ment, hogy szinte C-szerű flexibilitással kezelhetők a pointerek, miközben a fordító továbbra is kiterjedt típusellenőrzést tud végezni, és így megvédeni néhány tipikus hibától, ha jól írod meg.
- Nincs már semmiféle 64K vagy 32K korlát. Ne feledjük, hogy a C fordítók amikkel az emberek ismerkedtek PC-n általában 32 bitesek voltak, szemben a 16 bites Turbo Pascallal...
-16bit integer korlát: az FPC (és a Delphi is), teljes 64bit aritmetikát tud, függetlenül attól, hogy hány bites procin futtatod (igen, az FPC simán fordít neked 64bites szorzást egy AVR mikrokontrollerre vagy egy i8086-ra is. És 68k-ra is, bár egyelőre helper függvénnyel, mert lusta voltam... :)

És a (Free) Pascal egyéb előnyei:
- Bináris unitok. Ezeket sokáig hülyeségnek tartották, a legújabb, hogy a C/C++ is be akarja vezetni "modulok" néven, hogy ne kelljen minden objecthez ugyanazokat az - egyre bonyolultabb - headereket ötvenszer leparse-olni.
- Ezzel együtt a forrás is egyetlen fájlban van, nincsenek headerek.
- A hozzá adott library sokkal magasabb szintű mint a C-é, a C++ szintjén van, csak éppen szabványos, nincs ötvenféle belőle (BOOST, stdlib, mittudomén). Vannak objectek, classek, interface-ek, streamek.
- String kezelés. Short és Widestringek, valamint reference counted stringek a nyelv részei alapból. Listák, dinamikus tömbök, hashtáblák, legtöbbje mind reference counted.
- Van saját threading szabványunk kb. 15 éve... Asszem valamelyik friss (C11 talán?) szabványban a C-ben is lett, de a szintaxistól __szem __rákot() ___**((ka_pok())__. Egyébként elvileg a MorphOS-es GCC-k már tudják, talán... Az a GCC amivel az OWB-t fordították biztos, de nem tudom a threading része bekerült-e az SDK-ba.
- Olvasható az inline assembler...
- Nem kell Makefileokat írni, a fordító tud magától források közötti függőségépítést végezni és így lefordítani (attól még írhatsz Makefileokat, ha akarsz).
- FPC-hez: komplett HTTP(S) networking, webszerver, JSON és XML parsing, stb. (A HTTPS az OpenSSL-re épül és nem érhető el minden platformon, így egyelőre Amigán sem.)
- Van function és operator overloading.
- Van futásközbeni típusinformáció alapból. (RTTI)
- Vannak generic-ek.
- Vannak class property-k.
- Lamba/anonymous függvények jelenleg fejlesztés alatt (bár asszem Delphiben már van).
(Ezen utóbbiak vannak C++-ban is, de nem tudom, hogy library-függő-e, vagy szabványos és hogy fordítók között is megy-e, vagy hogy mikor vezették be.)
- Szintén FPC specifikus: a fordító többféle dialektust támogat, jelenleg TP, FPC, OBJFPC, MACPAS (régi Mac fordítók), DELPHI, DELPHIUNICODE (Delphi 2009 és újabb) és ISO Pascal módja van, valamint vannak extensionok pl. Mac OS X-en és iOS-en megírt Objective C kódhoz kapcsolódni. Szimulálja az egyes fordítók korlátait is, tehát amire a DELPHI vagy a TP hibát dobna, arra az FPC is, abban a módban. És több különböző stílusban megírt kódból is képes egyetlen .exe-t gyártani gond nélkül...

Vitatott feature-ok:
- Makrók. Bár az FPC ismeri a makrókat, sokkal ezek jóval limitáltabbak mint C-ben, és direkt olyanok, mert C-ben hajlamosak szétabuzálni a nyelvet makrókkal.
- Varargs. A Pascal nyelvben nincsenek varargs függvények, de a C nyelven írt varargs függvények meghívhatók (pl. külső library).
- Többszörös öröklés. Nincs.

Most így hirtelen ami eszembe jutott. :) Ha valakinek konkrét kérdése/kritikája/problémája van, válaszolok.

dekanyz
Tag

# Elküldve: 2016. Ápr. 22. 15:34


Mondjuk, ez igy nem hangzik rosszul... de azert maradnek a C-nel. Lassan tenyleg adnek egy programot tapizasra a nagyerdemunek amit 2014-ben kezdtem irni. Ha azt elolrol kezdenem FPC-ben, asszem soha nem ernek a vegeere!

Lazi
Mr. AmiCon

# Elküldve: 2016. Ápr. 22. 15:39


Akkor most melyik AS jo az FPC-nek?
Mindketto, vagy csak a hyp sdk-ban levo?

Chain-Q
Divatamigás

# Elküldve: 2016. Ápr. 22. 15:40 - Szerkesztve: charlie


@dekanyz:
Nem akarok meggyőzni senkit, hogy tegye le a C/C++-t és kezdjen el Object Pascalozni.

De szerintem a kezdőknek sokkal jobban fogja a kezét mint a C/C++, miközben tud olyan dolgokat, hogyha gyakorlott fejlesztő vagy, akkor sem fogod már aztmondani rá, hogy "na, itt valamit meg tudtam volna csinálni, csak az eszköz/nyelv korlátai miatt körbe kellett hekkelnem, bezzeg C-ben egyszerűbb lett volna".

Szóval inkább a TP miatt rajta ragadt "na, megint kezdik a hátulgombolós Pascallal", című "lesajnáló" mosolygással van problémám, ha érted mire gondolok, ezért írtam.

Chain-Q
Divatamigás

# Elküldve: 2016. Ápr. 22. 15:58 - Szerkesztve: charlie


@Lázi:
Mindkettővel működő kódot fogsz kapni, de a Hyperion SDK-ban lévő ajánlott részemről.

Amúgy ha minden jól megy, akkor Frank Wille-lel összetákoljuk a vasm supportot hamarosan (MorphOS-hez is), szóval akkortól nem fog kelleni a "gyári" SDK egyáltalán. (És egyelőre nem is álmodozom az internal assemblerről és linkerről, pedig rajta van a listán... :P)

dekanyz
Tag

# Elküldve: 2016. Ápr. 22. 16:11


Ertem...

Lazi
Mr. AmiCon

# Elküldve: 2016. Ápr. 22. 16:47


Nah, felraktam SDK-t. Nincs benne vlink.
Azt nem mondtad, hogy az a vbcc archiv-ban leledzik.

Egyebkent meg ezt mondja:

Error 19: Tool:fpc/units/powerpc-amiga/rtl/prt0.o: Global symbol __amigaos4__ from prt0.o is already defined in ldscript.
Wb:C/vlink failed returncode 20

WTF?

Lazi
Mr. AmiCon

# Elküldve: 2016. Ápr. 22. 16:48


Jah, azt nem mondtam, hogy OS4.1 u6, nem FE. Mert csak. :)

Chain-Q
Divatamigás

# Elküldve: 2016. Ápr. 22. 17:10 - Szerkesztve: charlie


Az elvileg mindegy. Szerintem még 4.0-n is menne... A linker errort este kijavítom, mert tudom mi okozza... (Hogy nekem miért ment, az rejtély. Mindegy. Biztos valami helyi változtatást nem vettem észre, amit úgy hagytam véletlenül.)

Workaround:

Ha leszeded a prt0.as fájt innen:
https://github.com/graemeg/freepascal/blob/master/rtl/amiga/powerpc/prt0.as

Majd kikommentezed (# a komment) az összes sort az __amigaos4__ symbol körül az alján (onnét kezdve hogy .globl __amigaos4__ végig, törölheted is, ha gondolod), és utána lefordítod újra úgy, hogy: as prt0.as -o prt0.o, majd az így kapott prt0.o fájlt bemásolod a másik helyére, akkor elvileg menni fog.

Lazi
Mr. AmiCon

# Elküldve: 2016. Ápr. 22. 17:31


Ohh, mukodik! Koszi!

Persze nem volt eletbevago, csak egy Hello World! :)

Egyebkent strip utan is 265512 byte az exe. Azt hittem szerenyebb lesz.

De meg mindig jobb lesz cli-bol futo egyszeru file i/o muveletes cuccokra, mint a Hollywood a maga 2,5 megajaval.

Lazi
Mr. AmiCon

# Elküldve: 2016. Ápr. 22. 17:38


Nem akarok szorozni, biztos meg van az oka, de megneztem c-bol 67418 byte.

Persze real Amigahoz kepest az is sok. :-)

Chain-Q
Divatamigás

# Elküldve: 2016. Ápr. 22. 19:38 - Szerkesztve: charlie


Nincs engedélyezve az ún. smartlinking OS4-hez, ami azt tenné lehetővé, hogy a system unit minden darabját külön objektbe tegye és végül az egészet egyetlen lib fájlba, hogy a linker okosabban kiválogathassa közüle ami kell. Windowson ezzel kb. 30K-s egy hello world, ha jól emlékszem.

Saját startup kóddal és runtime libbel (nem sokkal bonyolultabb mint C-hez), elvetemültek akár pár száz byte-ig lemehetnek. Classic Amigához tervezek egy "mini" RTL-t, ami pl. 1.3-on is menne, igény szerint, és csak a legszükségesebbek lennének benne. Hiszen az volt az eredeti tervem, hogy 64k introkat írok... :P

Ha lenne internal linker, akkor ezzel sem lenne gond, mert a függőségeket 1:1-ben lehetne a végső linkeléshez használni.

Chain-Q
Divatamigás

# Elküldve: 2016. Ápr. 23. 18:54 - Szerkesztve: charlie


Szeretem amikor egy terv működik: miután összetákoltam a fordítót nagyjából, elültettem Alb42 fülébe a bogarat, hogy lehet ám már fordítani OS4-re is...

Eleinte tiltakozott, hogy az AROS meg a MorphOS meg a classic Amiga mellé nagyon sok lenne még az OS4 is, nincs ideje, nem ér rá, nem érdekli, de aztán csak addig baszta a csőrét, hogy elkezdte az OS4 specifikus unitokat legyártani... Lett egy "os4units" csomag és exec már van. Egyelőre nem sok, de kezdésnek nem rossz.

És szintén egyelőre csak interfészek-nélküli classic szintaxissal működik, de mindent a maga idejében... Valószínűleg a többi platformhoz való kompatibilitás miatt, az FPC-hez csomagolt dolgok úgyis így maradnak, ezt fogják használni.

Chain-Q
Divatamigás

# Elküldve: 2016. Ápr. 30. 16:24 - Szerkesztve: charlie


Alb42 nem unta meg, szóval OS4-et is beterrorizáltuk a szöveges módú Túrós Paszkál klón IDE-vel. :) Persze a külön parancssori fordító továbbra is elérhető.



Bővebben a blogján:
http://blog.alb42.de/2016/04/30/fp-ide-for-amigaos4/

Chain-Q
Divatamigás

# Elküldve: 2016. Máj. 01. 19:15 - Szerkesztve: charlie


Naszóval, Alb42 elképzelhetetlen sebességre kapcsolt, és már a MUI és a hálózat is működik OS4-en FPC-vel. Így pl. az FPC csomagokban lévő példa webszerver is. A threading szintén működni látszik, valamint bekapcsoltuk a resource-ok támogatását is.



Nightly experimental release csomagok OS4-re elérhetők elérhetők Alb42 oldaláról, csakúgy mint egyéb Amiga platformokra. Bővebben a kapcsolódó blogbejegyzésben.

Ha bárki valaha ki akarta próbálni az FPC-t OS4-en, akkor most jött el az ideje. Ez a verzió kb. az első számottevő OS4 release, és sokkal jobb mint az én 2006-os buildem, ami még mindig elérhető az OS4Depotról.

Chain-Q
Divatamigás

# Elküldve: 2016. Máj. 05. 15:41 - Szerkesztve: charlie


Na, Alb42 halad tovább. Elkezdett működni az LCL (Lazarus Component Library, kb. mint a QT C++-hoz) OS4 alatt. Erre olyan nagyobb lélegzetvételű dolgok épülnek aztán mint pl. Delphi-szerű Lazarus IDE. Ennek örömére gyorsan ki is adta az egyéb amigás rendszerekre már elérhető ColorIt és FPCMines nevű játékait.

Screenshotware:



Letölthetők a blogjából.

Chain-Q
Divatamigás

# Elküldve: 2016. Máj. 05. 16:07 - Szerkesztve: charlie


BTW, csak megjegyzem, ahhoz képest hogy ez a téma rendszeresen felmerült, hogy miért nincs (nem volt) FPC OS4-re, a letöltési számok messze alulmúlják egyelőre a többi platformot.

Egyébként erről beszéltem más fejlesztőkkel is, akik csak user kérésre portolnak dolgokat OS4-re, és rendszeresen ez a helyzet. Kiadsz valamit X platformra, van valamekkora feedback, egyből elindul a hangos rinya, e-mailben és fórumokban, hogy jaj jaj bezzeg OS4-re miért nincs, ezajövő, OfficialAmiga, megcsinálod, extra szopás, mert a platform és a toolok 1 fos (már elnézést) aztán kb. alig van feedback és a kutyát nem érdekli.

Lazi
Mr. AmiCon

# Elküldve: 2016. Máj. 05. 18:46 - Szerkesztve: lazi


Az ilyen kommentek pedig minden bizonnyal inspiraloan hatnak, nem? :)

Nyugtasson a gondolat, hogy az OS4 tabor most epp Pascal konyveket olvas. Amint vegeztek vele, mennek letolteni.

En biztosan fogok vele foglalkozni, de az persze meg nem jelenti, hogy megerte a melo. :)

BSzili
Tag

# Elküldve: 2016. Máj. 05. 20:00


Általában a különböző fejlesztőeszközökért addig van tolongás, amíg elérhetővé nem válnak :)

Chain-Q
Divatamigás

# Elküldve: 2016. Máj. 05. 20:03 - Szerkesztve: charlie


@Lazi:
Ja hidd el, ha eleg sokaig dolgozol egy Pascal forditon, akkor mar nem erdekelnek az ilyen kommentek.

Mert ugye, ha leirod hogy "egy Pascal forditon dolgozom" ebbol mindenki azt latja, hogy "Pascal" == "hatulgombolos", nem pedig azt hogy bazeg egy irtal egy forditot. :) Erted... Na mindegy, nem rinyalok. :)

Ha van feedback, azt orommel veszem, ahogy Alb42 is. Pl. most elovettem a hello world (es altalaban a kod/exe) meretenek csokkentese temat, ami eddig nem volt prioritas. Csak hogy erezd, hogy a feedback nem megy a levesbe. :)

@BSzili:
Ugy ugy. :)

Chain-Q
Divatamigás

# Elküldve: 2016. Máj. 29. 16:35 - Szerkesztve: charlie


Alb42 gőzerővel dolgozik azon, hogy megmutassa mit is lehet FPC-vel és egy kis hozzáértéssel Amigás rendszereken. Legújabb fejlesztése a Mapparium, egy OpenStreetMap viewer.



Letölthető AROS-ra és MorphOS-re innen: http://blog.alb42.de/programs/mapparium/

OS4 verzió lehetséges, ha valaki kéri (Lázi? :D), az OS3.x verzió sajnos elég lassú valódi amigán, sőt még UAE-n is, így még optimalizálásra szorul kiadás előtt.

Lazi
Mr. AmiCon

# Elküldve: 2016. Máj. 30. 21:48


Huha! Ez nagyon jonak igerkezik!
Szerintem meg raer az OS4 verzio, inkabb dolgozzon csak tovabb rajta, ne vacakoljon a portolassal, ha megoly egyszeru is.

Azt nem tudom ez az open streetmap mit tud, de ha utvonalat es tavolsagot is, akkor Arexx-el jol jonne a tervezett utvonalnyilvantartohoz.

Chain-Q
Divatamigás

# Elküldve: 2016. Máj. 31. 15:14 - Szerkesztve: charlie


ne vacakoljon a portolassal, ha megoly egyszeru is.

Kb. újrafordítás egy crosscompilerrel a feladat. Nem véletlenül az FPC elve a "write once, compile anywhere". :)

Az ARexx jó ötlet, majd javaslom neki.

Chain-Q
Divatamigás

# Elküldve: 2017. Jan. 06. 00:43 - Szerkesztve: charlie


Pl. most elovettem a hello world (es altalaban a kod/exe) meretenek csokkentese temat, ami eddig nem volt prioritas.

Na szopunk vele kozosen egy ideje Frank Willevel, a vasm/vlink irojaval, de talan jutunk valahova. Szoval akkor ezt most csak ugy letennem ide:



Lazi, ennyi lett, maradhat? :)

Lazi
Mr. AmiCon

# Elküldve: 2017. Jan. 06. 14:11 - Szerkesztve: lazi


Wow!
Igen, koszonom, csomagolhatod! :)

Quoting: Charlie
Na szopunk vele kozosen egy ideje Frank Willevel

Bezzeg a gyerekeimnek nem tudok olyat mondani, ami erofesziteseket valt ki beloluk. :)

Chain-Q
Divatamigás

# Elküldve: 2017. Máj. 27. 12:34 - Szerkesztve: charlie


Na, a heten meghekkeltem, hogy 8x8-as font is legyen az FPC IDE-ben, ergo sima 640x256 PAL kepernyon is hasznalhato legyen. Ez egyreszt jot tesz a sebessegnek, ha valaki feltetlenul AGA-n/ECS-en akarja hasznalni (neha en is megteszem), masreszt ha valaki RTG-n tolna, akkor most mar lehet 80x50-es "nagyfelbontasu textmod"-szeruen hasznalni, ami nyilvan hasznos mert sokkal tobb forraskod latszik a kepernyon.

Ma meg veglegesitettem a valtoztatasokat, es bekerult az SVN-be is, szoval ha valaki igenyt tart ra, a holnapi nightly buildben (szokas szerint leszedhetoen Alb42 oldalalrol) mar benne lesznek.

Es a szukseges screenshotware(tm) a vegere:



(A font meret az IDE inditasa elott kornyezeti valtozoban adhato meg, az FPC_VIDEO_BUILTINFONT kornyezeti valtozot kell "vga8"-ra allitani. Van meg "vga14" es "vga16" is, ez utobbi a font ami eddig is benne volt.)

<< . 1 . 2 . 3 . 4 . 5 . 6 . >>
forum.amigaspirit.hu / Fejlesztés / Free Pascal Compiler (classic és OS4 is)
 
 

Powered by online community script miniBB™ © 2001-2017