Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 18 reacties
Bron: Free Pascal, submitter: Loesje

Loesje liet de volgende submit achter in onze meuk queue:

Free Pascal is de delphi-compatible, open-source pascal compiler. Het is een cross-platform compiler voor onder andere Linux, BSD, Windows, MacOS X, Netware en OS/2 en is geschikt voor zowel i386- als PowerPC-processoren. In deze release is onder andere support voor x86_64/amd64 (Linux) geÔmplementeerd. In combinatie met de Lazarus IDE is Free Pascal de open-source Delphi-variant.

Enkele dagen geleden is Free Pascal 1.9.6 uitgekomen en deze mag tevens worden beschouwd als de eerste release candidate voor versie 2.0. Het changelog van deze release ziet er als volgt uit:

Compiler:
  • x86_64/amd64 (Linux) compiler
  • Sparc (Linux) compiler
  • PowerPC MorphOS support
  • MacOS (classic) compiler (for MPW)
  • Netware Libc support (-Tnetwlibc)
  • Register variable support (-Or) for all targets
  • MacPas compiler mode (-Mmacpas)
  • Better inlining support
  • For loop variable assignment is not allowed anymore
  • $fpctarget expands to - (except for 8.3 limited targets), old $target removed
  • Implicit loading of Variants unit
  • Lots of bug fixes
RTL:
  • x86_64/amd64 Linux support
  • Sparc Linux support
  • PowerPC MorphOS support
  • MacOS (classic) support (except Sysutils and its dependants)
  • Netware Libc support
  • New heap manager that releases memory back to the OS
  • TThread.Synchronize support
  • utf8bidi unit
  • GetHeapStatus added
  • GetProcessID added
  • SysUtils.GetEnvironmentVariableCount and SysUtils.GetEnvironmentString added
  • gpm unit does not need libgpm anymore
  • Further additions for improved Delphi compatibility
  • System.GetProcessID and System.GetThreadID added
  • Dos.GetMsCount added
  • Support for changing console resolution in Video for Win32
  • Support for using high memory (> 512 MB) under OS/2 (where available)
  • Removed MaxAvail, MemAvail, HeapSize due to their unreliability (bogus/misleading return values) in multitasking environment with swapping
FCL:
  • RTTIUtils unit added
  • fpcunit test-framework added
  • Lots of dbf and other db fixes
FV:
  • Updated to fvision implementation, first official release
IDE:
  • Lots of improvements and stability fixes
  • Support latest gdb 6.2.x and 6.3.x releases
Docs:
  • Lots of updates
  • Easier to navigate html documentation
  • fpDoc is used to generate all unit documentation
Misc:
  • Makefiles create units in a separate directory units/cpu-os/
  • More cross compilation improvements
Versienummer:1.9.6 (2.0 RC1)
Besturingssystemen:Windows 9x, Windows NT, Windows 2000, Linux, BSD, Windows XP, DOS, Mac OS Classic, macOS, OS/2
Website:Free Pascal
Download:http://sourceforge.net/project/showfiles.php?group_id=2174
Licentietype:GPL
Moderatie-faq Wijzig weergave

Reacties (18)

Turbo Pascal is de eerste programmeertaal die ik heb geleerd toen ik nog in het middelbaar zat. Heb er toen nog m'n eindwerkje mee gemaakt (wiskunde toepassing).

Anyway, wordt er momenteel nog wel iets gemaakt met die taal ? Als ik zo'n toepassing van een paar jaar geleden wil draaien, crasht dat gewoon tenzij ik die in dosbox of vmware DOS draai.
Er wordt zeer zeker nog het nodig gedaan met Pascalgebaseerde talen; onder Windows met name in de vorm van Borland Delphi (onderhand bij versie 2005). Wat mij betreft is Delphi nog altijd een van de meest veelzijdige OO-ontwikkelomgevingen waarmee probleemloos efficiŽnte executables geproduceerd kunnen worden (de performance zal iets achterblijven bij die van C++-executables, maar veel scheelt het niet). Bovendien is Delphi ideaal voor het snel ontwikkelen van prototypes; ik gebruik het alleen om deze reden al stukken liever dan Visual C++ (alhoewel het natuurlijk niet valt te ontkennen dat ook ik in het geval van grote projecten waarschijnlijk voor C++ zal kiezen (zij het noodgedwongen)). Just my §0,02.
de performance zal iets achterblijven bij die van C++-executables, maar veel scheelt het niet
Hoe kom jij tot deze conclusie? (runtime performance dus)

Met betrekking tot compile time performance is Pascal een van de snelste talen omdat je parser LL(1) is. Een aantal duizenden regels code zijn met een gemiddelde pascal compiler in een paar minuten gecompiled.
Vanmiddag nog een full build gedaan van een Delphi project met 480.000+ regels code, en dat deed 'ie binnen een minuut, op een Pentium 3 @ 1GHz en 512MB geheugen.
Niet slecht, dacht ik zo. :)
Het is denk ik niet zo dat er nog nieuwe dingen in worden geschreven, maar meer dat er onderhoudt wordt gepleegt op oudere applicaties.

Ik zie nog vaak genoeg bij mij op school dat er dingen geregistreerd worden in DOS applicaties, etc.
Het is voor mij ook al weer een aantal jaren geleden (nostalgie, hehe) dat ik hiermee wat geprutst heb. Was des tijds ook op school. En het zou me niks verbazen dat het nog steeds op scholen gebruikt wordt om leerlingen de basis te leren van gestructureerd programmeren.
Dat je programma's van toen niet meer draaien komt omdat oude TurboPascal programma's problemen kregen met de snellere processoren. Daar zijn fixen voor te vinden die ook je oude programma kan fixen zonder opnieuw te hoeven compilen.

Verder wordt Delphi (de opvolger van TurboPascal) nog in vele bedrijven gebruikt. Er is ook een klein zijstapje gemaakt naar Linux met Kylix. En ook de overstap naar .Net is al gemaakt met Delphi for .Net.
Delphi support Object Pascal, een OO taal die nog redelijk veel wordt gebruikt. Iedereen die wel eens VB(A) doet zou er goed aan doen eens te kijken naar Delphi. Op dit moment wordt de keuze van programmeer taal meer gegeven door de ontwikkel omgeving en of runtime omgeving van de te ontwikkelen applicatie. Voor het windows platform is Delphi een volwaardig alternatief voor de MS ontwikkel tools, zowel voor Win32 als .NET.
sorry, maar ik heb altijd geleerd dat delphi(pascal dus) onderwater C is i.v.m dat Delhi 'onder water' pointers gebruikt. Dus het klopt niet dat delphi/pascal eerst wordt vertaald naar C en dan naar machinecode?
Dat is geheel niet waar. TurboPascal, Delphi en FreePascal compilen direct naar x86 machinecode. In TurboPascal, Delphi een FreePascal kan je gewoon van pointers gebruik maken, boven en onderwater. En dat wordt regelmatig gedaan ook.
@El_Muerte_[TDS]

Wat betreft de runtime performance: mijn opmerking komt voort uit een onderzoek van een tijd geleden (ik zal eens zien of ik de link nog kan vinden) waarbij de runtime performance van een aantal programma's werd bepaald. Op basis van de snelheid is toen vastgesteld dat het in de regel zo is dat de compiler van Visual Studio (ik weet niet hoe het bijvoorbeeld bij GCC zit) over het algemeen iets verder gaat in zijn optimalisaties dan de compiler van Delphi (nogmaals: we hebben het - voor zover mij het artikel nog bijstaat - over zeer kleine percentages). Daar betaal je natuurlijk ook een prijs voor: vaak tergend lange compilatietijden. En dat is wederom een reden waarom ik Delphi doorgaans verkies boven Visual C++: compilatie is (zelfs in het geval van programma's van ca. 5.000 regels code verspreid over tientallen units) in veel gevallen slechts een kwestie van een paar seconden, niet eens minuten.
Het is dus een optimalizatie kwestie in de compiler. Niet programeer taal gerelateerd.

Ik vraag me af hoe het zit bij de GNU compiler (dat is dus niet alleen GCC: http://gcc.gnu.org/frontends.html ). Deze compiled de source code eerst naar een P-code (intermediate code) en daarna pas naar machine code. Op deze manier kunnen ze makkelijker meerdere programeer talen en machines ondersteunen. Ik vraag me dan af waar ze de compiler optimalisaties toepassen (voor of na de P-code generatie).
Ik vraag mij af hoe ver "delphi-compatible" gaat. Ik kan mij niet voorstellen dat de hele VCL en alle library units zijn nagebouwd.

Wellicht is er alleen support voor de Pascal taal, maar de taal die bij Delphi gebruikt wordt heet sinds versie 7 niet voor niets Delphi i.p.v. Object Pascal. Er zijn in diverse versies verschillende taaluitbreidingen geweest, waardoor het erg krachtig maar ook complex geworden is. Zo'n compiler bouw je niet even na.

Bovendien levert Borland zeer goede producten en als je jezelf serieus neemt, neem je geen genoegen met minder. Maar anyway elk (gratis) initiatief / alternatief juich ik toe, want dat houd de mensen scherp hun eigen producten te blijven verbeteren.
Dat Delphi-compatible gaat vrij ver. En ja, de hele VCL en alle library units zijn nagebouwd. Tenminste, dat is het doel. Nog niet alles is gedaan. Bv: het TBCD type is not niet geimplementeerd. Mooie van dit project is echter dat als je het wil hebben, je het zelf makkellijk toe kan voegen.

Wil je de hele VCL hebben moet je wel ook Lazarus erbij hebben. Freepascal levert de FCL mee, wat alle non-visual componenten van de VCL bevat, en met Lazarus krijg je de LCL met het visual-gedeelte van de VCL.

Verder kan je de Freepascal compiler in verschillende modi (dialecten?) zetten. Zo kan je hem instellen op Delphi, maar ook BP (Borland pascal 7.0), er is een Mac-pascal variant en er zijn de eigen dialecten. Een met OOP, en een zonder.

Dit project is ook niet even snel in elkaar gezet. De compiler is al 12 jaar oud.

En Borland levert zeker goede producten, maar als je support voor Linux of OS/X nodig hebt, valt Borland door de mand. (Kylix draait alleen als je precies de juiste libraries op je systeem hebt staan, in combinatie met de juiste kernel, en wordt niet echt meer doorontwikkeld) En al helemaal als het gaat om andere processors. Verder heeft Borland nog geen 64-bits support...

Als je geen multi-tier applicaties nodig hebt, of een van de andere features die Freepascal nog mist, maar je wil het wel cross-platform hebben. Dan moet je zeker eens naar Freepascal gaan kijken. (Of voor de lol, op een vrije avond. Het is toch leuk om aan een compiler te werken, en te zien hoe dat intern nou werkt)
Ken een software bedrijf dat software maakt voor de levensmiddelen industrie. Schrijft hoofdzakelijk hun software in pascal en delphi. Groot voordeel is dat het vrij robuust en snel werkt.
Dit is misschien een interesante paper voor mensen die niet echt bekend zijn met de echte Pascal:

The Pascal Programming Language - IV. Myths Uncovered
http://www.pascal-central.com/ppl/chapter4.html
Welke (recente) IDE met debugger word hiervoor aangeraden?

oh deze misschien http://www.lazarus.freepascal.org/
Delphi heeft een aantal 'langzamere' functies aan boord die door een actieve groep freaks ge-update worden. Voor de liefhebber:

http://dennishomepage.gugs-cats.dk/FastCodeProject.htm

en

http://dennishomepage.gugs-cats.dk/Libraries.htm

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True