Jump to content

dummzeuch

Members
  • Content Count

    3018
  • Joined

  • Last visited

  • Days Won

    108

Posts posted by dummzeuch


  1. 2 hours ago, Tommi Prami said:

    Hello, 

    In case of I get Invite, if someone can make good guess to get JCL to install and compile on the beta. I would download it just in case.

    -Tee-

    So far most of the libraries only needed very little changes when a new Delphi version came out. Mostly it was adding a new compiler version to a central include file. In the case of the JCL that file would be jedi.inc.

     

    Hypothetically somebody else might have done that already when you join a beta program and posted a link to the updated version in the also hypothetical internal communication channel.

     

    (Hypothetically because 1. I am not in the current beta (Haven't received an invitation yet) 2. Even if I were, the NDA would prevent me from telling about it, but it stands to reason.)


  2. I filed a support ticket with Embarcadero two days ago regarding a problem with license hosting on the ELC.

    I haven't heard from them yet. How long does it usually take them to get back on such issues?

     

    Previously I got an answer from Embarcadero Germany with a similar problem, but since Matthias Eissing is no longer with us, hopefully somebody else has taken over that job.


  3. I still don't understand the problem of detecting whether dcc32 of a CE installation can compile anything. What does it do if you give it an empty .dpr file to compile from a cmd window? Does it just silently fail? No error message? But even if that is the case, you could at least try to compile said empty .dpr file and check whether an executable is created.

     

    Not quite an elegant solution but it should work.

    • Like 1

  4. 24 minutes ago, dmitrybv said:

    Actually I need to determine the edition of RAD Studio from an external program, from my installer program, in order to understand whether I can use dcc32.exe to compile the library source codes to generate packages for installation or not.
    RAD Studio 12.3 Community Edition does not support compilation via dcc32.exe.
    I am trying to understand how I can determine in advance in the LibInstaller program whether I can generate packages and install the library in the IDE or not.

    Does the executable dcc32.exe exist in that case? If not, there's your answer. If yes and it only outputs an error message or something, you could do exactly that: Call it and check for that error.


  5. 1 hour ago, DelphiUdIT said:

    In the past time (surely prior 12.x) I was used to do this, but I stopped 'cause many times the change of the "symbol" define seems that not apply to all units where the symbol was used. It was like if some untis were not compiled.

    And that was most likely the reason. The compiler only compiles units that have changed. Changing the include file does not change the units. To ensure that a unit is recompiled after a change to an include file, you must do a complete build of the project(s).

     

    The same applies to defines set in the .dproj file btw. Changing them does not trigger a complete rebuild.

     

    If you want to be really paranoid about this, delete all units from the unit output path. This ensures that every unit will be recompiled. I do that once in a while.

    • Like 1

  6. You cannot define a symbol in the .dpr file to be available in the units (it will be available in the .dpr file itself though). You must put it into the .dproj file (Project -> Options).

     

    Alternatively you can define it in an include file and include that file in all units that require the symbol. That latter approach is used by most libraries because a library cannot add anything to the project options.

    • Like 2

  7. 2 minutes ago, pyscripter said:

    Can you test again with Delphi 10.4 

    Interesting:

    Completed: 205, Succeeded: 205, Failed: 0
    ✓ All tests passed!
    
    ✖  float\double-dot-02.toml
    ✖  float\double-point-2.toml
    
    Completed: 529, Succeeded: 527, Failed: 2

    I was expecting the same failures as in Delphi 11, but got two different ones.

    • Thanks 1

  8. When compiled with Delphi 11 3 of the tests fail:

    ✖  comment\after-literal-no-ws.toml: 'inf' is not a valid floating point value
    ✖  float\inf-and-nan.toml: 'nan' is not a valid floating point value
    ✖  spec-1.0.0\float-2.toml: 'inf' is not a valid floating point value
    
    Completed: 205, Succeeded: 202, Failed: 3
    
    
    Completed: 529, Succeeded: 529, Failed: 0
    ✓ All tests passed!

    No idea how to fix that.

    (On the other hand I am not that bothered because I don't really use Delphi 11 anyway.)

     

    I hope that feedback was useful for you. And thanks a lot for the effort you put into that library.


  9. TJsonObjectReader was apparently introduced in Delphi 10.4 so I got a bit further and then hit the next error:

    [dcc32 Error] Tests.dpr(112): E2003 Undeclared identifier: 'Contains'

    That's TStrings.Contains which doesn't find. And that apparently was introduced in Delphi 12. But the reaplacement would be really simple:

    b := List.Contains(S)
    // becomes
    b := IndexOf(S) >= 0;

    And now it compiles.


  10. 11 minutes ago, dummzeuch said:

    I also noticed that you removed the IsBufferValid call. I'll try to compile with Delphi 10.2 again.

    No luck, now it's

    [dcc32 Error] TOML.Parser.pas(178): E2149 Class does not have a default property

    I added ".Items" in 4 places in that unit and then got

    [dcc32 Error] TOML.pas(130): E2003 Undeclared identifier: 'TJsonObjectReader'

    So I guess making it compatible with 10.2 would be quite a lot of effort (And I'm not even talking about Delphi 2007 which I would have tried next. 😉 )


  11. 37 minutes ago, pyscripter said:

    @dummzeuch  Fixed (I think).  Could you please try again.

    The tests from files-toml_1.0.0 now all pass.

     

    Should those from files-toml_1.1.0 also pass? They don't:

    ✖  datetime\no-seconds.toml: Error at 2:26: Expected ":", got "EOL"
    ✖  inline-table\newline-comment.toml: Error at 5:2: Expected "ID", got "End of Line"
    ✖  inline-table\newline.toml: Error at 4:2: Expected "ID", got "End of Line"
    ✖  spec-1.1.0\common-12.toml: Error at 1:54: Invalid string escape char: "x"
    ✖  spec-1.1.0\common-29.toml: Error at 1:24: Expected ":", got "Z"
    ✖  spec-1.1.0\common-31.toml: Error at 1:24: Expected ":", got "EOL"
    ✖  spec-1.1.0\common-34.toml: Error at 1:12: Expected ":", got "EOL"
    ✖  spec-1.1.0\common-47.toml: Error at 5:5: Expected "ID", got "End of Line"
    ✖  string\escape-esc.toml: Error at 1:9: Invalid string escape char: "e"
    ✖  string\hex-escape.toml: Error at 3:21: Invalid string escape char: "x"
    
    Completed: 214, Succeeded: 204, Failed: 10
    
    
    Completed: 524, Succeeded: 524, Failed: 0
    ✓ All tests passed!

    But I guess that's because it's  TOML v1.0.0 compliant, not v1.1.0.

     

    I also noticed that you removed the IsBufferValid call. I'll try to compile with Delphi 10.2 again.


  12. It compiles with Delphi 12. I downloaded the tests from

    https://github.com/toml-lang/toml-test/tree/main/tests

    put them into the tests subdirectory and run the Tests.dpr project.

    I got 6 errors:

    ✖  datetime\local-time.toml: '00.555' ist kein gültiger Gleitkommawert
    ✖  datetime\local.toml: '00.555' ist kein gültiger Gleitkommawert
    ✖  datetime\milliseconds.toml: '56.123' ist kein gültiger Gleitkommawert
    ✖  spec-1.0.0\local-date-time-0.toml: '00.999' ist kein gültiger Gleitkommawert
    ✖  spec-1.0.0\local-time-0.toml: '00.999' ist kein gültiger Gleitkommawert
    ✖  spec-1.0.0\offset-date-time-0.toml: '00.999' ist kein gültiger Gleitkommawert
    
    Completed: 205, Succeeded: 199, Failed: 6
    
    
    Completed: 529, Succeeded: 529, Failed: 0
    ✓ All tests passed!

    Is that the expected result?

    ("ist kein gültiger Gleitkommawert" means "is not a valid floating point value")


  13. 5 minutes ago, gioma said:

    I searched for the exe and it is actually in this folder:

     

    C:\Program Files (x86)\Embarcadero\Studio\23.0\bin64\

    In my installation there are two different executables with that name, one is in bin the other in bin64.

     

    I guess the one in bin64 is the experimental 64 bit compiler while the one in bin is the regular 32 bit compiler (both for generating 64 bit output).

    • Like 1

  14. 9 hours ago, DelphiUdIT said:

    A 16 year leap (especially external packages) will be laborious and not cheaper.

    Did you ever try that? The biggest hurdle in updating any packages for a new Delphi version was moving from 2007 to 2009, where string changed from AnsiString to Unicode. But even that was easier than I expected for most components suites. With most packages you need to update some central include file and create new package projects. The source code will compile fine most of the time. Usually that takes at maximum an hour (but I have had cases where the Update took me several days due to some problems I introduced myself).

     

    But this will only work if you bought the source code, which I have always recommended because you never know when some 3rd party vendor might go out of business. And you  won't get the latest features of course.

×