Forum > Third party
KOL library
sfeinst:
--- Quote from: vercetti 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 ?
--- End quote ---
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:
--- Quote from: marcov 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)
--- End quote ---
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.
Thaddy:
--- Quote from: AlexTP 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.
--- End quote ---
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.
Thaddy:
--- Quote from: sfeinst on January 11, 2024, 02:11:07 pm ---
--- Quote from: vercetti 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 ?
--- End quote ---
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.
--- End quote ---
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.
Thaddy:
--- Quote from: vercetti 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 ?
--- End quote ---
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.
Navigation
[0] Message Index
[#] Next page
[*] Previous page