Free Pascal linking (Developers)
(msvcrt, tcc and mingw use msvcrt)
I've no idea what mingw does. I don't use it. I use a few embedded (as in 8-bitters) C compilers, and occasionally a bit of VS 2003 to wrap a C++ dll in plain C. That's it.
The only times I'm busy with mingw is to @$@%#%)(*#*(*@ try to convince it to compile binutils cross to a bunch of platforms. (which is not one of my favourite excercises)
msvcrt doens't contain that much interesting stuff anyway.
> Sounds like an ideal candidate for HX! 
FPC has as a pro that it has very few dependancies. The main dependancy is the auto-dependancy. On non windows also as and ld, but no runtime requirements.
> I don't know how much GCC uses minimum, but I know that 4.x has much
> greater optimizations, so -O2 can use a lot more than 3.x ever did.
It's a fairly useless comparison. In FPC less stuff like locale is initialised for each binary, and the datasegment is by default a bit smaller. So it is really about startup memory (and less aggressive heapgrowing) rather than real differences. However because so many languages use glibc for everything, the difference is suddenly very pronounced.
Note that if you have a somewhat sane compiler (FB/FPC/gcc c/c++), the memory manager and the speed of primitives like memcpy() are more likely to impact performance, than this or that odd ball optimization.
> > > It's even mentioned on their wiki as a known issue. I mean, for now,
> > "UPX
> > > is your friend" (sorry, Japheth, but it's true!).
> >
> > FPC does not recommend UPX, unless it is 100% required. And usually it
> is
> > not, see http://wiki.freepascal.org/Size_Matters
>
> For DOS, it's perfectly fine (very small decomp stub too).
If you are interested in binary size, maybe. I lost that in about 1998 when I threw out the last 100MBish HD. You need to compress an awful lot of binaries to make room for a handful mp3's.
Even when I was on dialup I never used UPX. Real compressors compressed better, and I didn't have to transfer a stub with it.
> For Win32,
> there is the "no shared pages" crudola, but that only applies if you
> intend to run tons of instances (e.g. make or bash).
No, the fact that compressed pages also add to the commit charge, while memory mapped do not is still there. And memory is more expensive than disk by about a factor 1000.
> The only time I've seen it slow down is DOS-packed stuff on Windows (only
> noticable when e.g. DJGPP itself is fully packed, and that may be more of
> an NTVDM issue) or huge (> 1 MB) LZMA-packed .EXEs on my old 486.
Well, I never had a harddisk size problem that was solved by compressing a few binaries.
> > > Ideally, we should be comparing something like FreeBASIC or DJGPP
> > > (GCC) or GPC vs. FreePascal (using the same LIBC, I assume).
> >
> > FPC doesn't use any libc. Not even on Unix. It is not a Unix/C compiler
> in
> > disguise, but a multiplatform compiler.
>
> FreeBASIC (DOS, at least) does use DJGPP's LIBC.A although it is not a GCC
> frontend (although plans to dually output C are in the works). Just like
> FPC, the compiler proper is written in itself. It does, however, use (G)AS
> and LD (from BinUtils) for its dirty work.
FPC also uses as and ld on most platforms (though not on windows) including Dos, but that is perfectly possible without using libc.a
> But FreeBASIC is still not quite
> as portable as FPC (officially only three hosts/targets).
FB seems to have chosen a different direction. Not as independant as FPC, but also not as dependant as full gcc ports as GPC. I'm curious how this works out, and such issues are one of the reasons why I monitor the FB fora.
> > However FPC doesn't really train on small binary size, it just has a
> > slight example, specially with benchmarky programs like "hello world"
> due
> > to its architecture.
>
> The real whiners about size tend to be assembly programmers because they
> know what can be accomplished in the comparable amount of code.
I daily program microcontrollers with 4-8kb of memory and 32kb of flash. This is perfectly fine in plain C, until you really ship a million of these devices and a bit of asm optimizing can get you a slightly smaller flash size.
But even there the difference between 32kb and 64kb is getting lower and lower, and even that will end.
> Sure,
> nobody cares as much anymore now that multi-gigabyte HDs are universal,
> but some people still have the ideal that it shouldn't take 10x more space
> than it used to take unless there's a really good reason.
Ah well, there are also people that think they should live as cavemen, and that think that anything beyond carving into a rock with another rock should be done unless there is a really good reason.
Loonies are everywhere.
Complete thread:
- BIG "C" compiler comparison thread - DOS386, 04.03.2008, 02:07 (Developers)
![Open in board view [Board]](img/board_d.gif)
![Open in mix view [Mix]](img/mix_d.gif)
- BIG "C" compiler comparison thread - Steve, 04.03.2008, 05:08
- BIG "C" compiler comparison thread - DOS386, 09.03.2008, 02:11
- BIG "C" compiler comparison thread - Steve, 09.03.2008, 09:40
- BIG "C" compiler comparison thread - DOS386, 09.03.2008, 02:11
- BIG "C" compiler comparison thread - Japheth, 04.03.2008, 09:38
- BIG "C" compiler comparison thread - rr, 04.03.2008, 10:02
- BIG "C" compiler comparison thread - Rugxulo, 04.03.2008, 14:53
- BIG "C" compiler comparison thread - Japheth, 04.03.2008, 18:32
- BIG "C" compiler comparison thread - Rugxulo, 04.03.2008, 18:57
- No cheats please! - Japheth, 05.03.2008, 11:02
- No cheats please! - Rugxulo, 05.03.2008, 14:07
- No cheats please! - Japheth, 05.03.2008, 11:02
- BIG "C" compiler comparison thread - Rugxulo, 04.03.2008, 18:57
- BIG "C" compiler comparison thread - Japheth, 04.03.2008, 18:32
- BIG "C" compiler comparison thread - Steve, 04.03.2008, 20:41
- BIG "C" compiler comparison thread - Rugxulo, 05.03.2008, 01:11
- BIG "C" compiler comparison thread - Steve, 05.03.2008, 02:05
- BIG "C" compiler comparison thread - rr, 05.03.2008, 09:57
- BIG "C" compiler comparison thread - rr, 05.03.2008, 10:01
- BIG "C" compiler comparison thread - Steve, 05.03.2008, 02:05
- BIG "C" compiler comparison thread - Rugxulo, 05.03.2008, 01:11
- BIG "C" compiler comparison thread | evil TCC - DOS386, 09.03.2008, 02:17
- BIG "C" compiler comparison thread | evil TCC - Japheth, 09.03.2008, 08:41
- BIG "C" compiler comparison thread | evil TCC - rr, 09.03.2008, 22:20
- BIG "C" compiler comparison thread | evil TCC - Rugxulo, 10.03.2008, 03:29
- BIG "C" compiler comparison thread - marcov, 07.04.2008, 14:30
- BIG "C" compiler comparison thread - Rugxulo, 07.04.2008, 23:57
- BIG "C" compiler comparison thread - marcov, 15.04.2008, 10:43
- BIG "C" compiler comparison thread - Rugxulo, 25.07.2008, 06:55
- BIG "C" compiler comparison thread - Rugxulo, 25.07.2008, 23:15
- BIG "C" compiler comparison thread - Steve, 26.07.2008, 00:27
- BIG "C" compiler comparison thread - Rugxulo, 25.07.2008, 23:15
- BIG "C" compiler comparison thread - Rugxulo, 25.07.2008, 06:55
- BIG "C" compiler comparison thread - marcov, 15.04.2008, 10:43
- BIG "C" compiler comparison thread - Rugxulo, 07.04.2008, 23:57
- BIG "C" compiler comparison thread - Rugxulo, 04.03.2008, 14:53
- BIG "C" compiler comparison thread - Khusraw, 04.03.2008, 21:51
- BIG "C" compiler comparison thread - Rugxulo, 05.03.2008, 01:06
- BIG "C" compiler comparison thread - Steve, 05.03.2008, 01:50
- BIG "C" compiler comparison thread - Khusraw, 05.03.2008, 08:01
- BIG "C" compiler comparison thread - Rugxulo, 05.03.2008, 14:04
- BIG "C" compiler comparison thread - Khusraw, 05.03.2008, 15:46
- BIG "C" compiler comparison thread - Rugxulo, 06.03.2008, 04:40
- BIG "C" compiler comparison thread - Japheth, 06.03.2008, 07:52
- BIG "C" compiler comparison thread - tom, 08.03.2008, 21:50
- BIG "C" compiler comparison thread - Rugxulo, 09.03.2008, 00:53
- BIG "C" compiler comparison thread - Steve, 09.03.2008, 09:36
- BIG "C" compiler comparison thread - tom, 10.03.2008, 12:59
- BIG "C" compiler comparison thread - Rugxulo, 09.03.2008, 00:53
- BIG "C" compiler comparison thread | WC 1.52 - DOS386, 09.03.2008, 03:02
- BIG "C" compiler comparison thread | WC 1.52 - marcov, 07.04.2008, 14:39
- BIG "C" compiler comparison thread | WC 1.52 - Rugxulo, 08.04.2008, 00:09
- BIG "C" compiler comparison thread | WC 1.52 - marcov, 08.04.2008, 14:34
- BIG "C" compiler comparison thread | WC 1.52 - Rugxulo, 08.04.2008, 16:13
- Free Pascal linking - rr, 09.04.2008, 11:40
- Free Pascal linking - marcov, 10.04.2008, 10:40
- Free Pascal linking - rr, 10.04.2008, 12:18
- Free Pascal linking - Rugxulo, 11.04.2008, 06:32
- Free Pascal linking - marcov, 11.04.2008, 14:20
- Free Pascal linking - Rugxulo, 11.04.2008, 16:16
- Free Pascal linking - marcov, 11.04.2008, 20:14
- compression / size wars - Rugxulo, 12.04.2008, 01:13
- compression / size wars - DOS386, 01.05.2008, 04:49
- compression / size wars - Rugxulo, 01.05.2008, 05:32
- FAT OGG - DOS386, 01.05.2008, 05:44
- compression / size wars - Rugxulo, 01.05.2008, 05:32
- compression / size wars - DOS386, 01.05.2008, 04:49
- compression / size wars - Rugxulo, 12.04.2008, 01:13
- Free Pascal linking - marcov, 11.04.2008, 20:14
- Free Pascal linking - Japheth, 11.04.2008, 16:39
- Free Pascal linking - Steve, 12.04.2008, 05:19
- Free Pascal linking - marcov, 12.04.2008, 14:41
- Free Pascal linking - Steve, 12.04.2008, 16:09
- Free Pascal linking - marcov, 13.04.2008, 23:42
- Compression - Steve, 14.04.2008, 06:27
- Compression - marcov, 14.04.2008, 11:03
- Compression - Steve, 14.04.2008, 13:32
- Compression - Rugxulo, 14.04.2008, 20:00
- Compression - Steve, 14.04.2008, 20:16
- Compression - marcov, 15.04.2008, 10:40
- Compression - Steve, 15.04.2008, 12:24
- Compression - marcov, 15.04.2008, 15:43
- Compression - Steve, 16.04.2008, 11:32
- Compression - marcov, 15.04.2008, 15:43
- Compression - Steve, 15.04.2008, 12:24
- Compression - marcov, 15.04.2008, 10:40
- Compression - Steve, 14.04.2008, 20:16
- Compression - Rugxulo, 14.04.2008, 20:00
- Compression - Steve, 14.04.2008, 13:32
- Compression - Rugxulo, 14.04.2008, 19:55
- Compression - Steve, 14.04.2008, 20:44
- Compression - marcov, 15.04.2008, 09:59
- Compression - Steve, 15.04.2008, 11:55
- Compression - marcov, 15.04.2008, 15:24
- Compression - Rugxulo, 16.04.2008, 01:13
- Compression - Steve, 16.04.2008, 10:54
- Compression - marcov, 16.04.2008, 16:24
- Compression - Steve, 16.04.2008, 21:27
- Compression - marcov, 16.04.2008, 23:38
- Compression - Steve, 17.04.2008, 12:10
- Compression - marcov, 16.04.2008, 23:38
- Compression - Steve, 16.04.2008, 21:27
- Compression - marcov, 16.04.2008, 16:24
- Compression - marcov, 15.04.2008, 15:24
- Compression - Steve, 15.04.2008, 11:55
- Compression - marcov, 14.04.2008, 11:03
- Compression - Steve, 14.04.2008, 06:27
- Free Pascal linking - marcov, 13.04.2008, 23:42
- Free Pascal linking - Steve, 12.04.2008, 16:09
- Free Pascal linking - marcov, 12.04.2008, 14:41
- Free Pascal linking - Rugxulo, 11.04.2008, 16:16
- Free Pascal linking - marcov, 11.04.2008, 14:20
- Free Pascal linking - marcov, 10.04.2008, 10:40
- BIG "C" compiler comparison thread | WC 1.52 - marcov, 08.04.2008, 14:34
- BIG "C" compiler comparison thread | WC 1.52 - Rugxulo, 08.04.2008, 00:09
- BIG "C" compiler comparison thread | WC 1.52 - marcov, 07.04.2008, 14:39
- BIG "C" compiler comparison thread - tom, 08.03.2008, 21:50
- BIG "C" compiler comparison thread - Khusraw, 06.03.2008, 10:41
- BIG "C" compiler comparison thread - Japheth, 06.03.2008, 07:52
- BIG "C" compiler comparison thread - Rugxulo, 06.03.2008, 04:40
- BIG "C" compiler comparison thread - Khusraw, 05.03.2008, 15:46
- BIG "C" compiler comparison thread - Rugxulo, 05.03.2008, 14:04
- BIG "C" compiler comparison thread - Rugxulo, 05.03.2008, 01:06
- BIG "C" compiler cmp | the "scientific" facts ore out DW - DOS386, 09.03.2008, 02:49
- BIG "C" compiler cmp | the "scientific" facts ore out DW - Japheth, 09.03.2008, 08:56
- BIG "C" compiler cmp | the "scientific" facts ore out DW - Steve, 09.03.2008, 12:40
- BIG "C" compiler cmp | the "scientific" facts ore out DW - Japheth, 10.03.2008, 09:04
- BIG "C" compiler cmp | the "scientific" facts ore out DW - Steve, 10.03.2008, 13:52
- Ich nix verstehen - andere Baustelle! - Japheth, 10.03.2008, 14:43
- Ich nix verstehen - andere Baustelle! - Steve, 11.03.2008, 10:17
- Ich nix verstehen - andere Baustelle! - marcov, 07.04.2008, 14:44
- Ich nix verstehen - andere Baustelle! - Steve, 08.04.2008, 01:43
- Ich nix verstehen - andere Baustelle! - marcov, 08.04.2008, 14:36
- Ich nix verstehen - andere Baustelle! - Steve, 08.04.2008, 01:43
- Ich nix verstehen - andere Baustelle! - Japheth, 10.03.2008, 14:43
- BIG "C" compiler cmp | the "scientific" facts ore out DW - Steve, 10.03.2008, 13:52
- BIG "C" compiler cmp | the "scientific" facts ore out DW - Japheth, 10.03.2008, 09:04
- BIG "C" compiler cmp | the "scientific" facts ore out DW - rr, 09.03.2008, 22:10
- BIG "C" compiler cmp | the "scientific" facts ore out DW - Rugxulo, 10.03.2008, 03:39
- BIG "C" compiler cmp | the "scientific" facts ore out DW - DOS386, 10.03.2008, 09:08
- BIG "C" compiler cmp | the "scientific" facts ore out DW - rr, 10.03.2008, 12:31
- BIG "C" compiler cmp | DELTREE - DOS386, 01.05.2008, 04:32
- BIG "C" compiler cmp | DELTREE - rr, 02.05.2008, 16:20
- BIG "C" compiler cmp | DELTREE - DOS386, 01.05.2008, 04:32
- BIG "C" compiler cmp | the "scientific" facts ore out DW - rr, 10.03.2008, 12:31
- BIG "C" compiler cmp | the "scientific" facts ore out DW - Steve, 10.03.2008, 06:24
- BIG "C" compiler cmp | the "scientific" facts ore out DW - RayeR, 10.03.2008, 11:39
- BIG "C" compiler cmp | the "scientific" facts ore out DW - DOS386, 10.03.2008, 12:07
- BIG "C" compiler cmp | the "scientific" facts ore out DW - Steve, 10.03.2008, 13:58
- BIG "C" compiler cmp | the "scientific" facts ore out DW - DOS386, 01.05.2008, 05:30
- BIG "C" compiler cmp | the "scientific" facts ore out DW - Steve, 02.05.2008, 00:47
- BIG "C" compiler cmp | the "scientific" facts ore out DW - rr, 02.05.2008, 16:22
- BIG "C" compiler cmp | the "scientific" facts ore out DW - Steve, 03.05.2008, 08:16
- BIG "C" compiler cmp | the "scientific" facts ore out DW - rr, 02.05.2008, 16:22
- BIG "C" compiler cmp | the "scientific" facts ore out DW - Steve, 02.05.2008, 00:47
- BIG "C" compiler cmp | the "scientific" facts ore out DW - DOS386, 01.05.2008, 05:30
- BIG "C" compiler cmp | the "scientific" facts ore out DW - RayeR, 10.03.2008, 17:55
- BIG "C" compiler cmp | the "scientific" facts ore out DW - Rugxulo, 10.03.2008, 20:49
- BIG "C" compiler cmp | the "scientific" facts ore out DW - RayeR, 10.03.2008, 21:41
- BIG "C" compiler cmp | the "scientific" facts ore out DW - marcov, 07.04.2008, 14:52
- BIG "C" compiler cmp | the "scientific" facts ore out DW - Rugxulo, 10.03.2008, 20:49
- BIG "C" compiler cmp | the "scientific" facts ore out DW - Steve, 10.03.2008, 13:58
- BIG "C" compiler cmp | the "scientific" facts ore out DW - Khusraw, 10.03.2008, 16:00
- BIG "C" compiler cmp | the "scientific" facts ore out DW - RayeR, 10.03.2008, 17:42
- BIG "C" compiler cmp | the "scientific" facts ore out DW - Khusraw, 10.03.2008, 17:50
- BIG "C" compiler cmp | the "scientific" facts ore out DW - RayeR, 10.03.2008, 17:56
- BIG "C" compiler cmp | the "scientific" facts ore out DW - marcov, 07.04.2008, 14:55
- BIG "C" compiler cmp | the "scientific" facts ore out DW - Rugxulo, 08.04.2008, 00:02
- BIG "C" compiler cmp | the "scientific" facts ore out DW - Khusraw, 10.03.2008, 17:50
- BIG "C" compiler cmp | the "scientific" facts ore out DW - RayeR, 10.03.2008, 17:42
- BIG "C" compiler cmp | the "scientific" facts ore out DW - DOS386, 10.03.2008, 12:07
- BIG "C" compiler cmp | the "scientific" facts ore out DW - Rugxulo, 11.03.2008, 19:29
- BIG "C" compiler cmp | the "scientific" facts ore out DW - Steve, 12.03.2008, 08:01
- BIG "C" compiler cmp | the "scientific" facts ore out DW - Rugxulo, 12.03.2008, 20:13
- BIG "C" compiler cmp | the "scientific" facts ore out DW - Steve, 13.03.2008, 04:10
- BIG "C" compiler cmp | INTEL - DOS386, 01.05.2008, 04:43
- BIG "C" compiler cmp | INTEL - Steve, 02.05.2008, 00:51
- BIG "C" compiler cmp | the "scientific" facts ore out DW - Rugxulo, 12.03.2008, 20:13
- BIG "C" compiler cmp | the "scientific" facts ore out DW - marcov, 07.04.2008, 14:58
- BIG "C" compiler cmp | the "scientific" facts ore out DW - Rugxulo, 07.04.2008, 23:38
- BIG "C" compiler cmp | the "scientific" facts ore out DW - marcov, 10.04.2008, 10:22
- BIG "C" compiler cmp | the "scientific" facts ore out DW - Rugxulo, 11.04.2008, 06:27
- BIG "C" compiler cmp | the "scientific" facts ore out DW - marcov, 11.04.2008, 20:18
- BIG "C" compiler cmp | the "scientific" facts ore out DW - Rugxulo, 11.04.2008, 06:27
- BIG "C" compiler cmp | the "scientific" facts ore out DW - marcov, 10.04.2008, 10:22
- BIG "C" compiler cmp | the "scientific" facts ore out DW - Rugxulo, 07.04.2008, 23:38
- BIG "C" compiler cmp | the "scientific" facts ore out DW - DOS386, 01.05.2008, 04:41
- BIG "C" compiler cmp | the "scientific" facts ore out DW - Steve, 12.03.2008, 08:01
- BIG "C" compiler cmp | new facts ore out: OW TCC CC386 - DOS386, 01.05.2008, 04:30
- BIG "C" compiler cmp | new facts ore out: OW TCC CC386 - Rugxulo, 01.05.2008, 05:27
- BIG "C" compiler comparison thread - Steve, 04.03.2008, 05:08
Mix view