-
Content Count
597 -
Joined
-
Last visited
-
Days Won
7
Everything posted by Tommi Prami
-
Why does Delphi 12 marginally bloat EXE file size compared to 11.1?
Tommi Prami replied to PaulM117's topic in RTL and Delphi Object Pascal
How much this will add overhead at runtime? -
Call for Delphi 12 Support in OpenSource projects.
Tommi Prami replied to Tommi Prami's topic in Delphi Third-Party
JCLK and JVCL should support D12 in their repository received commits today. -
Yellow, Now that there is "Public" Beta of Delphi 12. ( https://blogs.embarcadero.com/delphi-supports-android-api-33-via-yukon-beta/ ) Some OSS component/library supporters have already made "Educated guess" what there need to be done to support D12, making packages and so. If possible/time/willing to make such a guess, please do, I think it would make everyone's job easier to test the Beta, since almost all of products made with Delphi, use some kind of Open source libs. I think it would just help all people in beta, even if maintainer would not be. In some cases making packages are trivial thing, but quite waste of time if everyone in Beta will do it themselves. Like the great folks maintaining: https://github.com/EtheaDev/SVGIconImageList https://github.com/skia4delphi/skia4delphi (Just to mention two I've noticed) -Tee-
-
Thank you very many 😉 -Tee-
-
Intel Simd-sort library
Tommi Prami replied to Tommi Prami's topic in Algorithms, Data Structures and Class Design
Good point. Mainly in real life apps I've been working with almost every time sorting is been for strings. Then some quite small portion been list of objects or records. -Tee- -
Call for Delphi 12 Support in OpenSource projects.
Tommi Prami replied to Tommi Prami's topic in Delphi Third-Party
That is perfectly OK. Especially if Embarcadero knows that this person/company is using Delphi certain way, change possibly breaks it or makes better, let them test first etc... That is smart I think. Beta should be, at first for small group of people, to keep amount of messages and bugreports at bay etc... I was referring to the communication channel/channels to take full advantage of the Public Beta. Also if there would be private repository for Beta testers of open code that is ready for the future release. Would make testing with everyone's own products faster and more efficient. -
Feature request for EMbarcadero, vote if you care
Tommi Prami posted a topic in RTL and Delphi Object Pascal
Yellow, https://quality.embarcadero.com/browse/RSP-42524 Delphi comes with very old PCRE (8.45) and it'll wont get any updates according to pcre.org. Latest 10.4.2 : https://github.com/PCRE2Project/pcre2/releases -Tee- -
Feature request for EMbarcadero, vote if you care
Tommi Prami replied to Tommi Prami's topic in RTL and Delphi Object Pascal
With Library I mean PCRE and the it's Delphi wrapper. -Tee- -
Call for Delphi 12 Support in OpenSource projects.
Tommi Prami replied to Tommi Prami's topic in Delphi Third-Party
Then this system should change, I think... -Tee- -
Call for Delphi 12 Support in OpenSource projects.
Tommi Prami replied to Tommi Prami's topic in Delphi Third-Party
Interesting... I've been in beta couple of time in past 20+ years, and first time I hear about this. -
Call for Delphi 12 Support in OpenSource projects.
Tommi Prami replied to Tommi Prami's topic in Delphi Third-Party
While back I was pondering this situation again. When new Delphi comes out, it takes sometimes quite a long time we get it into the production, because have to wait some of the dependencies to release updates. We can fix those ourselves, but not always. IT can be pretty hard to familiarize the third party code that needs a fix (it maybe somewhat obscure considering the problem how to actually fix it). So I would propose that there would be some faster channel among of the Beta testers. Many of those in Beta provide some Open/Closed Source -code to others in community. If there would be common place to exchange those fixes, privately, and preferably also chat about how the beta is going etc, this would guess also lead to better bug reports and so on. Something like private Discord-server/channel (Or something similar) and/or forum similar to this. I mean that now people and companies doing beta test are separate islands of information that does not spread. And I think it would, in long run, help everyone. -Tee- -
I need advice on converting a 500k lines 32bit Delphi 7 application to 64bit
Tommi Prami replied to Yaron's topic in General Help
I would (did not think this too much) something like this. Go code trough with D7, make it is modern at it can get. (Few refactoring rounds, get rid of code that is not in active use etc) Update all 3rd party components and libraries. Get rid of those not available for modern delphi versions anymore and not supported Get rid of all visual components that are not absolutely needed. In legacy app there might be visual components form 5 different libraries or something like that. If can get byt, use stock Delphi components as much as you can. Mainly just reduse code base as small as you can, before start using new Delphi. Move to the new delphi and make 32bit app with that. Refactor and further modernice as much as you can. Do 64bit port as last step. -Tee- -
Getting RDSEED with Delphi
Tommi Prami replied to Tommi Prami's topic in Algorithms, Data Structures and Class Design
Added instruction test routines by DelphiUdIT into the repository -Tee- -
Getting RDSEED with Delphi
Tommi Prami posted a topic in Algorithms, Data Structures and Class Design
I never really done anything with ASM, and it is more than less magic to me, did ton of googling and landed this far... This seems to work, but I have no idea is it even remotely correct. function RDSEED64: UInt64; asm DB $48, $0F, $C7, $F8 // RDSEED 64bit value (if correct magic numbers) // The 64-bit result is already in RAX end; I think it would need as per Intel documentation some short, maybe constant loop, Apparently RDSEED returns 0 if it fails (Too many calls in short period of time). Also possibility checking the instruction availability would be nice. I've got even less idea how to port this to 64bit compiler. This is purely "academic" (Read hobby stuff) for me if seems too much work don't bother, but if someone really needs it and someone could help, I think there could be appreciation of some sorts. -Tee- -
Getting RDSEED with Delphi
Tommi Prami replied to Tommi Prami's topic in Algorithms, Data Structures and Class Design
Please make Pull request. -Tee- -
Getting RDSEED with Delphi
Tommi Prami replied to Tommi Prami's topic in Algorithms, Data Structures and Class Design
Made repository for this: https://github.com/TommiPrami/Delphi.RdRand/ So easier to pass fixes or enhancements to all... -
Getting RDSEED with Delphi
Tommi Prami replied to Tommi Prami's topic in Algorithms, Data Structures and Class Design
What I can't understand how it worked on 32bit app, or at least it did not fail or die... Because I need 64bit random seed. So 32bit version should do some bit fiddling to make two calls and make 64bit value from two 32bit value? Something like: {$IF NOT Defined(WIN64)} function RDSEED64(const ARetryCount: UInt32 = 10): UInt64; var LValue1: UInt32; LValue2: UInt32; begin LValue1 := RDSEED32(ARetryCount); LValue2 := RDSEED32(ARetryCount); Result := UInt64(LValue1) shl 32 or LValue2; end; {$ENDIF} -Tee- -
Getting RDSEED with Delphi
Tommi Prami replied to Tommi Prami's topic in Algorithms, Data Structures and Class Design
Thanks will test those out... -Tee- -
An interesting read on implementing some data structures
Tommi Prami posted a topic in Algorithms, Data Structures and Class Design
Yellow, Never pondered what happen when memory gets fragmented. Bit hard to test maybe. But if there would be easy way, could give good info of performance when environment is in challenging state. https://johnnysswlab.com/faster-hash-maps-binary-trees-etc-through-data-layout-modification/ -Tee- -
For some reason lot of units show on top of each other. Even if fixed, would be handy to have some hint, to give some info on the unit while hovering over, with maybe bigger font (Normal UI font), if zoomed to very small, then could check colored ones.... etc... Also this island at top left is bit strange.
-
Very nice. Hope you continue to make it better. For one I would not need "relaxed search" from the Graph. Like type search 'settings custom' Would give me all units from the graph that would match those words. Like the Delphi Search for units... (Ctrl + F12). You can put everything you just remember the unit you are looking for. Because there is huge number of unis in big projects, and finding from the Graph (without filtering) just my 0.02€... Very good. Thanks. -Tee-
-
Yellow, Stumbled upon these: https://github.com/YWtheGod/ZSTD4Delphi https://github.com/DenisAnisimov/ZSTD.pas No idea will they work and so, if someone has need and/or interest, here you are... -Tee- Benchmarks For reference, several fast compression algorithms were tested and compared on a server running Arch Linux (Linux version 5.5.11-arch1-1), with a Core i9-9900K CPU @ 5.0GHz, using lzbench, an open-source in-memory benchmark by @inikep compiled with gcc 9.3.0, on the Silesia compression corpus. Compressor name Ratio Compression Decompress. zstd 1.4.5 -1 2.884 500 MB/s 1660 MB/s zlib 1.2.11 -1 2.743 90 MB/s 400 MB/s brotli 1.0.7 -0 2.703 400 MB/s 450 MB/s zstd 1.4.5 --fast=1 2.434 570 MB/s 2200 MB/s zstd 1.4.5 --fast=3 2.312 640 MB/s 2300 MB/s quicklz 1.5.0 -1 2.238 560 MB/s 710 MB/s zstd 1.4.5 --fast=5 2.178 700 MB/s 2420 MB/s lzo1x 2.10 -1 2.106 690 MB/s 820 MB/s lz4 1.9.2 2.101 740 MB/s 4530 MB/s lzf 3.6 -1 2.077 410 MB/s 860 MB/s snappy 1.1.8 2.073 560 MB/s 1790 MB/s
-
Call for Delphi 12 Support in OpenSource projects.
Tommi Prami replied to Tommi Prami's topic in Delphi Third-Party
Was just thinking, Can anyone figure out why Embarcadero could/would/should not publish rtl, compiler etc versions and codename for the beta, just as they include first outsider to the beta test? Those things are not that big of an secret. or allow publishing trivial work done with beta versions. Like the packages or support for IDE plugins (with some limitations maybe??). -Tee- -
Call for Delphi 12 Support in OpenSource projects.
Tommi Prami replied to Tommi Prami's topic in Delphi Third-Party
I get the points raised. But if you are in not under NDA, making a guess what defines you might need to tweak into .inc file or put into the package, can't violate the NDA. If you are under NDA and just publish packages and/or project files etc, Emba would shoot them self to the foot if they would enforce it in that case, IMHO. But seen stupider things done, so never know 😄 Problem of the NDA is, I assume, that you can't even ask for help, from lets say, how to add D12 support for the Jcl. But I might be cunning and ask how did you make support for the D11,x And try to duplicate the process. And this is kind of funny, because everyone knows few people that has D12 beta, and are under NDA most likely. And Embarcadero it self leaks that information. But person can't say anything and has to dance around. I understand that there must be some kind of limitations under beta, but making things too tight sure puts everyone in beta in position that they have to do more work that they should. Also most likely can't test everything that they would like to, But this is just pointless rambling because it will not affect the company policy for sure... -Tee- -
Delphi feature request of compiler directives (vote if care)
Tommi Prami posted a topic in Delphi IDE and APIs
https://quality.embarcadero.com/browse/RSP-42119?filter=18708 Add hint/warning/error setting for use of Abbreviated compiler directives. I know most of you won't care too much of this. When you come across code that has lot of abbreviated compiler directives is very hard to see what and why, -Tee-