Recent

Author Topic: KOL library  (Read 10738 times)

Thaddy

  • Hero Member
  • *****
  • Posts: 16763
  • Ceterum censeo Trump esse delendam
KOL library
« on: January 11, 2024, 11:41:25 am »
I have updated KOL, the Key Objects Library, and kol64 to work with Windows 11 and FPC trunk and fixed some small bugs.
But is anybody on the forum still using it?
Then I will clone the latest into github.
Just 1 (one) positive reactions makes me do that.
I did NOT update MCK.(yet)

Point is, maybe the relevance of small code has evaporated over time but the quick start up of KOL applications is in my view still relevant. And you get a GUI application in about 60k, not 60m...

I really don't want to see Vladimir Kladov's and others work sink into the deep of abandonware.
« Last Edit: January 11, 2024, 11:48:04 am by Thaddy »
Changing servers. thaddy.com may be temporary unreachable but restored when the domain name transfer is done.

cdbc

  • Hero Member
  • *****
  • Posts: 2064
    • http://www.cdbc.dk
Re: KOL library
« Reply #1 on: January 11, 2024, 12:34:34 pm »
Hi
I see your point Thaddy, I too, don't want to see good code go to waste, but sadly, this is "Winders" only...
Personally I don't mind the object approach, did a lot of TP5.5 back in the day, but for youngsters / noobs it might be too steap a learning curve...
Regards Benny
If it ain't broke, don't fix it ;)
PCLinuxOS(rolling release) 64bit -> KDE5 -> FPC 3.2.2 -> Lazarus 3.6 up until Jan 2024 from then on it's both above &: KDE5/QT5 -> FPC 3.3.1 -> Lazarus 4.99

vercetti

  • New Member
  • *
  • Posts: 11
Re: KOL library
« Reply #2 on: January 11, 2024, 12:53:20 pm »
Hi.
I'm a newbie in free pascal. Please explain me. What will i lose using KOL/MCK in my applications. How is this small code achieved ?

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 12142
  • FPC developer.
Re: KOL library
« Reply #3 on: January 11, 2024, 12:57:57 pm »
You once told me that WinCE was a KOL strong hold, is there still usage there?

Same with other potentially constrained targets like embedded stuff ( which I for convenience define here as is too light to run Linux)

AlexTP

  • Hero Member
  • *****
  • Posts: 2557
    • UVviewsoft
Re: KOL library
« Reply #4 on: January 11, 2024, 01:26:10 pm »
If you don't want to publish it, then attach files here, and I will publish it on Github.

sfeinst

  • Full Member
  • ***
  • Posts: 236
Re: KOL library
« Reply #5 on: January 11, 2024, 02:11:07 pm »
Hi.
I'm a newbie in free pascal. Please explain me. What will i lose using KOL/MCK in my applications. How is this small code achieved ?

I had similar questions.  I found this:
https://wiki.freepascal.org/KOL

It mentions Delphi mostly, but at the end mentions freepascal as well.  The wiki implies Windows only, but I don't know enough to know if that is true for the freepascal version.

Thaddy

  • Hero Member
  • *****
  • Posts: 16763
  • Ceterum censeo Trump esse delendam
Re: KOL library
« Reply #6 on: January 11, 2024, 03:38:49 pm »
You once told me that WinCE was a KOL strong hold, is there still usage there?

Same with other potentially constrained targets like embedded stuff ( which I for convenience define here as is too light to run Linux)
Yes, you also saw it working on WINCE on a conference where we both were speaking.... I used a HP for my demo. I still have it and it still works.
 
BUT we haven't seen much activity and for about 4 years there were no questions on the forum.
Hence the question.
Maybe I should put it on github anyway.
« Last Edit: January 11, 2024, 03:51:08 pm by Thaddy »
Changing servers. thaddy.com may be temporary unreachable but restored when the domain name transfer is done.

Thaddy

  • Hero Member
  • *****
  • Posts: 16763
  • Ceterum censeo Trump esse delendam
Re: KOL library
« Reply #7 on: January 11, 2024, 03:40:42 pm »
If you don't want to publish it, then attach files here, and I will publish it on Github.
No. with due respect. I will publish it since I am one of the - second to Vladimir - principal developers.
I will post a github link later.
Changing servers. thaddy.com may be temporary unreachable but restored when the domain name transfer is done.

Thaddy

  • Hero Member
  • *****
  • Posts: 16763
  • Ceterum censeo Trump esse delendam
Re: KOL library
« Reply #8 on: January 11, 2024, 03:59:38 pm »
Hi.
I'm a newbie in free pascal. Please explain me. What will i lose using KOL/MCK in my applications. How is this small code achieved ?

I had similar questions.  I found this:
https://wiki.freepascal.org/KOL

It mentions Delphi mostly, but at the end mentions freepascal as well.  The wiki implies Windows only, but I don't know enough to know if that is true for the freepascal version.
The wiki entry is partioally incorrect. I will update that too.
One remark: there is limited support for Linux GTK for Intel 32. 
But consider it Windows only in practice.
« Last Edit: January 11, 2024, 05:49:01 pm by Thaddy »
Changing servers. thaddy.com may be temporary unreachable but restored when the domain name transfer is done.

Thaddy

  • Hero Member
  • *****
  • Posts: 16763
  • Ceterum censeo Trump esse delendam
Re: KOL library
« Reply #9 on: January 11, 2024, 04:06:28 pm »
Hi.
I'm a newbie in free pascal. Please explain me. What will i lose using KOL/MCK in my applications. How is this small code achieved ?
KOL is a complete framework, like the FCL/LCL, and supports ANSI and UNICODE16 . That means that in principle it is not possible to mix rtl/lcl classes with KOL code. It also has a kind of automatic memory management, actually preemptive mm for  its widgets/controls (AddToAutoFree).
What we did is create a old school object that can represent any windows control without inheritance(although inheritance is possible) and auxiliarly objects like streams, Lists, stacks, Queues, threads and more. It is really quite complete, even for complex programs. But NOT compatible with RTL/LCL. The mirror kit is able to show them as components and use them as components, though, but the mirror kit is not maintained by me: I never used it.
The small size is achieved by highly optimized code, on the border of being silly. It comes close to the size of pure assembler code with a penalty of just under 4k if all possible optimizations are used.
For newer programmers it is not as easy as for old hands that still remember object instead of class.
Another defining characteric is that it has some features of functional programming before that was main stream.
Most calls can be chained, since most are functions, so your sourcecode also becomes shorter.
The KOL sourcecode is a nightmare to read, but it is easy to generate documentation for it. It is possibly the hardest test for a Pascal parser, but both FreePascal and Delphi are supported. I know of only 5 people - including me -, most of them core developers, that can safely edit the sources.
« Last Edit: January 11, 2024, 05:37:23 pm by Thaddy »
Changing servers. thaddy.com may be temporary unreachable but restored when the domain name transfer is done.

white_zombie

  • New Member
  • *
  • Posts: 18
Re: KOL library
« Reply #10 on: January 11, 2024, 04:31:29 pm »
Quote
Yes, you also saw it working on WINCE on a conference where we both were speaking.

I used in the past the library KOL-CE (https://wiki.freepascal.org/KOL-CE) in WINCE, and I thought that this was a specific port for WINCE, because the original library from Vladimir Kladov does not support WINCE.

I am curious, as far as I understand from Thaddy, KOL is compatible with WINCE, so, what was the purpose of KOL-CE?

Thaddy

  • Hero Member
  • *****
  • Posts: 16763
  • Ceterum censeo Trump esse delendam
Re: KOL library
« Reply #11 on: January 11, 2024, 05:06:33 pm »
KOL-CE was/is a version of KOL that targets WINCE. We used it as the basis for KOL64 since it is written in pure Pascal, so we could get rid of all the I386-win inline assembler code. Since the KOL64 branch is forked from KOL-CE, The latest branch 3.2.3 of the official KOL release (323) is also compatible with WINCE .
So in history KOL->KOL-CE->KOL64. Kol64 supports win32, win64 and wince.
The newest version that I will make available will be 399 and just named KOL again just to avoid any confusion in the future.
« Last Edit: January 11, 2024, 05:10:34 pm by Thaddy »
Changing servers. thaddy.com may be temporary unreachable but restored when the domain name transfer is done.

white_zombie

  • New Member
  • *
  • Posts: 18
Re: KOL library
« Reply #12 on: January 11, 2024, 05:42:01 pm »
Quote
So in history KOL->KOL-CE->KOL64. Kol64 supports win32, win64 and wince.

Thanks Thaddy, everything is clear know.

Knowing that is compatible with WINCE, I would be glad if you publish your changes of KOL.

Fibonacci

  • Hero Member
  • *****
  • Posts: 663
  • Internal Error Hunter
Re: KOL library
« Reply #13 on: January 11, 2024, 05:46:31 pm »
Of course there is interest in alternatives to heavy LCL/VCL, so just put the code on github.

Thaddy

  • Hero Member
  • *****
  • Posts: 16763
  • Ceterum censeo Trump esse delendam
Re: KOL library
« Reply #14 on: January 11, 2024, 05:54:42 pm »
Will do this weekend and post the link. I send an email to Vladimir if he can confirm it as "official".
Changing servers. thaddy.com may be temporary unreachable but restored when the domain name transfer is done.

 

TinyPortal © 2005-2018