Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation on 03/12/24 in all areas

  1. JonRobertson

    Delphi and "Use only memory safe languages"

    I do, and I suspect many others do as well. What I was mostly disappointed about was the statement below. The company promoted in that link and the accompanying webinar was DerScanner. I watched the webinar last September and it intrigued me enough to ask approval to pursue having a small project analyzed and review the results. Their home page had a short form to request a trial. Instead of providing a trial, I received an email that I will share, since it is typical marketing: I responded that I requested a trial from their home page. The reply was that my request for a trial was forwarded and included a whitepaper that "describes the key features of DerScanner". One of the key features was that DerScanner could analyze 36 programming languages, "even obsolete Delphi, COBOL and Visual Basic 6.0". I also noticed that the short form on their home page was changed from a trial request to "Get a Demo". They did provide a trial account and I submitted the project along with a couple third-party libraries (with each vendor's permission). The resulting report contained thousands of incorrect analysis. One of the more prominent and obnoxious was “hardcoded encryption key”, for code such as "ctrlKey := GetKeyState(VK_Control) < 0", and every other line of code that contained these three characters in sequence: k e y, including static text. The analysis that DerScanner provided was a complete joke and a total waste of time. The trial included two scans for free (I only used one), additional scans after the trial were $1,000 per scan. Sure, my employer can say "Yes, we are concerned about security. We had our application analyzed by a third-party that specializes in code analysis. They used a highly sophisticated tool named grep to analyze our code for vulnerabilities." I am particularly disappointed in the recent statement because I had direct contact with Ian regarding my frustrating experience, and the laugh that I had after reviewing the generated report.
  2. Angus Robertson

    ICS V9.1 announced

    ICS V9.1 has been released at: https://wiki.overbyte.eu/wiki/index.php/ICS_Download ICS is a free internet component library for Delphi 7, 2006 to 2010, XE to XE8, 10, 10.1, 10.2, 10.3, 10.4, 11 and 12 and C++ Builder 10.4, 11 and 12. ICS supports VCL and FMX, Win32, Win64 and MacOS 32-bit targets. Beware Mac OS-X and C++ have not been tested recently due to lack of support from such users. The distribution zip includes the latest OpenSSL 3.0.13. 3.1.5 and 3.2.1, for Win32 and Win64. The highlights of V9.1 were posted in this topic two weeks ago, and are included in the download page. The full release notes for V9.1 are at https://wiki.overbyte.eu/wiki/index.php/ICS_V9.1 There is also a new page https://wiki.overbyte.eu/wiki/index.php/Updating_projects_to_V9.1 to help with migrating existing projects. The main ICS readme9.txt has the installation section rewritten to explain the new common groups and packages used for Delphi 10.4 and later, so you won't find any dedicated ICS packages for Delphi 11 or 12. The readme now also explains all defines in the .\Source\Include\OverbyteIcsDefs.inc file that control how OpenSSL is loaded. All ICS active samples are available as prebuilt executables, to allow ease of testing without needing to install ICS and build them all. There are four separate zip files split into clients, servers, tools and miscellaneous samples which can be downloaded from https://wiki.overbyte.eu/wiki/index.php/ICS_Samples Angus
  3. Very strange you never heard about FidoLib: the best library after the invention of programming (and Sprign4d, for sure ) jokes apart, Thanks for your help!
  4. Lajos Juhász

    How to quickly hash growing files

    Why not keep the file locked while writing into it? In that case you have to do the hashing only when the file is done.
  5. Stefan Glienke

    RTTI Context can't find an interface

    Nice, never heard of it before but I enjoy looking at libraries that have Spring as their dependency I submitted some improvement suggestions in the area we discussed here.
  6. Rollo62

    Delphi and "Use only memory safe languages"

    Exactly, that's why I laughed about that whole discussion, because the core question is pretty clear. Maybe I should add an <irony> tag, to make that more clear to everybody. The core question: Delphi is NOT memory-safe ... period. If some institutions think otherwise, and Embarcadero likes to use that statement for marketing purposes, ... so what?! Do you expect Embarcadero shall deny and contradict such an official statement from the government? Probably not, I wouldn't do either. Let's embrace these statements and use them as marketing for Delphi too. Every help from inside and outside is welcome, IMHO.
  7. I'm looking at extracting compiler options from .dproj files, and looked for an existing "map" of options to PropertyGroup entries, but came up blank, so I figured I'd create one. I'm hoping that others could help verify what I've come up with as well as fill in some blanks. The following was created from the output of the help from dcc32, and from looking through the DCCStrs unit for what appears to match. The value from DCCStrs is on the line following each option. The numbers after some of the DCCStrs value are what also appear in the DCCStrs source. Those I couldn't match are signified with: ??? Compiler Options: -A<unit>=<alias> = Set unit alias DCC_UnitAlias -B = Build all units DCC_BuildAllUnits -CC = Console target DCC_ConsoleTarget -CG = GUI target ??? -D<syms> = Define conditionals DCC_Define -E<path> = EXE/DLL output directory DCC_ExeOutput -F<offset> = Find error DCC_FindError -GD = Detailed map file DCC_MapFile -GP = Map file with publics DCC_MapFile -GS = Map file with segments DCC_MapFile -H = Output hint messages DCC_Hints -I<paths> = Include directories DCC_IncludePath -J = Generate .obj file DCC_ObjOutput -JPHNE = Generate C++ .obj file, .hpp file, in namespace, export all ??? -JL = Generate package .lib, .bpi, and all .hpp files for C++ ??? -K<addr> = Set image base addr DCC_ImageBase -LE<path> = package .bpl output directory DCC_BplOutput -LN<path> = package .dcp output directory DCC_DcpOutput -LU<package> = Use package DCC_UsePackage -M = Make modified units DCC_MakeModifiedUnits -NU<path> = unit .dcu output directory DCC_DcuOutput -NH<path> = unit .hpp output directory DCC_HppOutput -NO<path> = unit .obj output directory DCC_ObjOutput -NB<path> = unit .bpi output directory DCC_BpiOutput -NX<path> = unit .xml output directory DCC_XmlOutput -NS<namespaces> = Namespace search path DCC_Namespace -O<paths> = Object directories DCC_ObjPath -P = look for 8.3 file names also DCC_OldDosFileNames -Q = Quiet compile DCC_Quiet -R<paths> = Resource directories DCC_ResourcePath -TX<ext> = Output name extension DCC_OutputExt -U<paths> = Unit directories DCC_UnitSearchPath -V = Debug information in EXE DCC_DebugInfoInExe -VR = Generate remote debug (RSM) DCC_RemoteDebug -VT = Debug information in TDS DCC_DebugInfoInTDS -VN = TDS symbols in namespace ?? -W[+|-|^][warn_id] = Output warning messages DCC_Warnings -Z = Output 'never build' DCPs DCC_OutputNeverBuildDcps -$<dir> = Compiler directive DCC_Define Compiler Toggles: A8 Aligned record fields DCC_Alignment (0, 1, 2, 4, 8) B- Full boolean Evaluation DCC_FullBooleanEvaluations C+ Evaluate assertions at runtime DCC_AssertionsAtRuntime D+ Debug information DCC_DebugInformation (0, 1, 2) [Depending on platform?] G+ Use imported data references DCC_ImportedDataReferences H+ Use long strings by default DCC_LongStrings I+ I/O checking DCC_IOChecking J- Writeable structured consts DCC_WriteableConstants L+ Local debug symbols DCC_LocalDebugSymbols M- Runtime type info DCC_RunTimeTypeInfo O+ Optimization DCC_Optimize P+ Open string params DCC_OpenStringParams Q- Integer overflow checking DCC_IntegerOverflowCheck R- Range checking DCC_RangeChecking T- Typed @ operator DCC_TypedAtParameter U- Pentium(tm)-safe divide DCC_PentiumSafeDivide V+ Strict var-strings DCC_StrictVarStrings W- Generate stack frames DCC_GenerateStackFrames X+ Extended syntax DCC_ExtendedSyntax Y+ Symbol reference info DCC_SymbolReferenceInfo (0, 1, 2) [Depending on platform?] Z1 Minimum size of enum types DCC_MinimumEnumSize (1, 2, 4)
  8. Stefan Glienke

    RTTI Context can't find an interface

    It is because the compiler does not keep typeinfo of types that are only used as generic parameters in generic types in the public typeinfo list (which is what FindType with a qualified name iterates). If you had included the code for that Unmarshal I could probably give more advice on how to implement it best given that you seem to have support for spring collections in there
  9. Lajos Juhász

    Where is the installer for RAD Studio ?

    The install files are located at my.embarcadero.com (registered products portal).
  10. Lars Fosdal

    TFrame versus SubForm

    We use a lot of frames, but we almost always instantiate, reparent and connect them at runtime. Usually, we have a panel as a "host" for the frame, which lets the panel deal with the in-form alignment, so that the frame can use alClient. As @Davide Angeli mentions, loss of events has been a key factor for deciding to do it that way.
  11. Davide Angeli

    TFrame versus SubForm

    Yes I totally agree I'm using frames in my projects sometimes in descendant forms and this is the biggest problem I have encountered. Especially in managing events on descendant frame components that often become disconnected. At some point I started managing and connecting them at runtime.
  12. Lots of options! Command-line parameter validation fixed for Delphi--pull request made. Generated a few different sized files for testing, the last two: 100-million row file created in 9 seconds 1-billion row file created in 2 minutes, 23 seconds.
  13. Hey Cornelius, I was actually considering this one: VSoft.CommandLineParser That one seems to be a self contained thing without dragging much more. But also had these in the back burner: rcmdline FDC.CommandLine.pas GpCommandLineParser.pas But now I need to add that one to my list since I don't have it 😃 Thanks !! Cheers, Gus
  14. Hey Cornelius, I was gonna make that version myself using a package to take care of the command line params. But then my brain entered stooopid mode, someone else offered to make it and I just went with it. The fact that Free Pascal has TCustomApplication that has inbuilt params parsing and checking makes it a breeze to use out of the box. I'm just sad that Delphi hasn't invested in something like that out of the box and leaves the programmer a bit in the lurch to do the same boilerplate stuff every time. I'll be waiting for your PR!! Cheers, Gus
  15. I almost made a pull request last night but then backed it out after I made another test. The generator program parses the parameters and checks to make sure they're valid but in Delphi, the way it's done adds a CR/LF which causes 'h' <> 'h$D$A' and thus fails even a valid command-line. I fixed that but didn't take into account that some parameters have a second part (like --line-count or --input-file) so I need to add that. I'll certainly make a PR when it's ready.
  16. I'm hoping the momentum will continue. I've been using the v12 and Tomato integrations have been good, CodeInsight solid, IDE stable just a couple of crashes over a few weeks. Multi-thread compile finally working out of that box without need for TwinCompile.
  17. Uwe Raabe

    TFrame versus SubForm

    Are SubForms problem free? It boils down to what your are trying to achieve. Recently I developed a VCL application for a customer that is almost solely build on frames. You need forms for dialogs and tool windows, but even those are just containing a frame. The IDE itself is built on frames, too. (OK, that may not really count for problem free)
  18. Stefan Glienke

    Delphi and "Use only memory safe languages"

    This would be called Tracing garbage collection. But as Dalija already explained the crux is not which way of automatic memory reclamation is being used but the fact that it would be a mix of different ones that don't play together nicely.
  19. Stefan Glienke

    Can LoadResString be done according to language ?

    Yes, it can if you are using resource DLLs - see https://docwiki.embarcadero.com/RADStudio/Athens/en/Localizing_Applications
  20. So assuming that your code scales linearly it will only take 92 days for 1 billion rows
  21. Best of luck with that. The issue with these challenges isn't the problem they aim to solve, but rather, who on earth has the time for them.
  22. HTML Library / SQL framework: 0.33s. Zero lines of code)
  23. Stefan Glienke

    What new features would you like to see in Delphi 13?

    Niklaus Wirth just turned over in his grave about this proposal.
  24. Anders Melander

    What new features would you like to see in Delphi 13?

    Nonsense. Windows developers have been able to create professionally looking applications that for decades without the aid of layout controls. The main reason for amateurish looking applications is amateurish developers. The DevExpress layout control is tightly coupled to the rest of their library but even if it had been possible to separate it from the rest then it would be a terrible idea. Embarcadero does not have the resources or expertise to maintain and evolve something as complex as TdxLayoutControl. Just look at the state of the 3rd party libraries they already have incorporated into Delphi. I wouldn't mind a rudimentary layout control as a part of the VCL but if they can't even get something as simple as TGridPanel to work properly then I think it's better they not even try.
  25. Actually, it hasn't. What was missing has happened before, i.e. it does not automatically download iOS support (weird). From the Xcode menu select Settings, then the Platforms tab. For the iOS 17.2 item, click Get: (which I have already done in this picture) Even weirder: while downloading it says "simulator". Once that completes, deployment should work.
×