Recent

Author Topic: KOL x64  (Read 7277 times)

fasdfasdfasdfasdfasdf

  • New Member
  • *
  • Posts: 45
KOL x64
« on: December 17, 2018, 11:30:19 pm »
Where to find the latest version that supports x64? Or is the project dead?

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 11383
  • FPC developer.
Re: KOL x64
« Reply #1 on: December 18, 2018, 10:10:55 am »
Probably they tried 64-bit, and the binaries were too big   >:D

fasdfasdfasdfasdfasdf

  • New Member
  • *
  • Posts: 45
Re: KOL x64
« Reply #2 on: December 18, 2018, 10:16:47 am »

Thaddy

  • Hero Member
  • *****
  • Posts: 14204
  • Probably until I exterminate Putin.
Re: KOL x64
« Reply #3 on: December 18, 2018, 10:21:26 am »
https://yadi.sk/d/Z0uMP31_67nJY is the latest. kol323-64 that I was involved in. The other link is more recent, but I don't know if they adapted it for 64 bit as well. Usually I did that.
I have a private fork that is cleaned up. I'll see if I can release that. (have to check 32 bit compat is not lost for that one)

@Marco still 20-50 times smaller than a LCL based executable.... About 60K ! for a simple 1 form application.
« Last Edit: December 18, 2018, 10:33:31 am by Thaddy »
Specialize a type, not a var.

fasdfasdfasdfasdfasdf

  • New Member
  • *
  • Posts: 45
Re: KOL x64
« Reply #4 on: December 18, 2018, 10:33:36 am »
Yes please release it if you can. Would be thankfull.

Some of the older versions had sysinit.pas as well.
https://github.com/rofl0r/KOL/blob/master/system/sysinit.pas

Thaddy

  • Hero Member
  • *****
  • Posts: 14204
  • Probably until I exterminate Putin.
Re: KOL x64
« Reply #5 on: December 18, 2018, 10:42:09 am »
About sysinit:
That would be part of the recompiled and refactored Delphi system unit. There is no version that works with FPC. We never refactored the FPC system unit.
What we did for FPC is made the complete Delphi RTL except the system unit FPC compatible at the compiler level: (basically the complete Delphi 7 RTL can be compiled with FPC.)
For KOL64 we have the essentials factored out to keep it small and fixed the Delphi Windows unit to work with FPC. The copyright for the Windows unit is Microsoft's, not Borland, and can be used freely.

As an aside: the refactored Delphi system units are compiled - or should be compiled! - with the GPL flag to not violate copyrights so that makes your application GPL'd too. Be aware of that. This is not the case for the windows units, these are free to use. Anyway rebuilding the Delphi system units is not for noobs.
[edit]
The other link is also 3.23, but seems to have some maintenance done. I did not check it any further, but from the header I can see that it includes my 64 bit patches so  if they did not break anything during maintenance it should be OK for 64 bit. After my merges the whole code base became 64 bit compatible - at that point.
I am no longer actively involved in the core KOL development so I am not aware of the current status.
« Last Edit: December 18, 2018, 11:01:37 am by Thaddy »
Specialize a type, not a var.

fasdfasdfasdfasdfasdf

  • New Member
  • *
  • Posts: 45
Re: KOL x64
« Reply #6 on: December 18, 2018, 12:38:46 pm »
I like the close to the metal approach very much. At least I know what's going on.

Guess this could be added as well to it.
http://blog.synopse.info/post/2010/01/18/Enhanced-System-Run-Time-for-Delphi-7-and-Delphi-2007

Thaddy

  • Hero Member
  • *****
  • Posts: 14204
  • Probably until I exterminate Putin.
Re: KOL x64
« Reply #7 on: December 18, 2018, 01:55:14 pm »
That is actually based on the KOL system unit code...... (and documented by mORMot that it originated from KOL)  :D :D
Specialize a type, not a var.

damieiro

  • Full Member
  • ***
  • Posts: 200
Re: KOL x64
« Reply #8 on: December 18, 2018, 02:23:06 pm »
One doubt.

Why LCL and KOL sizes are so different?

Is only code/mem size or are speed too?

Thaddy

  • Hero Member
  • *****
  • Posts: 14204
  • Probably until I exterminate Putin.
Re: KOL x64
« Reply #9 on: December 18, 2018, 02:46:46 pm »
One doubt.

Why LCL and KOL sizes are so different?

Is only code/mem size or are speed too?
The reason is that the KOL framework uses old school objects not classes, does not use RTTI and is highly optimized for size. It is also not cross-platform, except wince/win32/win64.
Also note it is a framework, you better not  - should not ever - use it together with LCL code, but it is a pretty rich framework on windows 32/64.
There is a speed advantage depending on application too, but it is not easy to write large KOL applications and KOL has a learning curve. Certainly for beginners.
The basics are well explained in the documentation.
« Last Edit: December 18, 2018, 02:51:07 pm by Thaddy »
Specialize a type, not a var.

fasdfasdfasdfasdfasdf

  • New Member
  • *
  • Posts: 45
Re: KOL x64
« Reply #10 on: December 18, 2018, 02:48:18 pm »
Wonder what is the minimum system.pas that compile with dcc32.

Thaddy

  • Hero Member
  • *****
  • Posts: 14204
  • Probably until I exterminate Putin.
Re: KOL x64
« Reply #11 on: December 18, 2018, 02:51:47 pm »
5-7 K depending on Delphi version gives you an empty executable. Starting from D3.
A one form application on windows32 shrinks to about 14K. K as in Kilobyte.
Optimal Delphi versions are D4,5,6 and 7. Even for those old versions there is full Unicode support too.

In FPC a minimal GUI application is about 30-50K.
« Last Edit: December 18, 2018, 02:59:18 pm by Thaddy »
Specialize a type, not a var.

damieiro

  • Full Member
  • ***
  • Posts: 200
Re: KOL x64
« Reply #12 on: December 18, 2018, 02:59:17 pm »
But...
Objects aren't deprecated?
On the other hand: 20-100 times it's too difference even for RTTI?. Does it go lower with bigger programs? (so RTTI would grow less...)

is it worth the pain for the size actually?

Thaddy

  • Hero Member
  • *****
  • Posts: 14204
  • Probably until I exterminate Putin.
Re: KOL x64
« Reply #13 on: December 18, 2018, 03:03:04 pm »
If you need the size? Yes.
It is very hard to create even a complex KOL application that is larger than a single form LCL application....
But it is not always easy for beginners. Any KOL user will confirm that the size estimates are correct: they are not percentages but actual fractions...

About objects being deprecated: that is a 20 year old nonsense... :D
« Last Edit: December 18, 2018, 03:05:35 pm by Thaddy »
Specialize a type, not a var.

fasdfasdfasdfasdfasdf

  • New Member
  • *
  • Posts: 45
Re: KOL x64
« Reply #14 on: December 18, 2018, 09:56:07 pm »
I did manage to compile a delphi app with just sysinit.pas & system.pas and the default size on 10.3. Rio is something like 45kb

Pretty huge!

 

TinyPortal © 2005-2018