XSharp Bandol 2.3b

Today we have released a new installer for XSharp Bandol 2.3b to our FOX subscribers.

Most of the changes in this release were listed in our post from last week.

{rsfiles path="fox/Compiler/XSharpSetup23bFox.zip"}

 


10 comments

  • I have some problems with DWORD substracted from date or usual. I get out of range exceptions. I believe that before it behaved differently. Today I will reinstall the previous version and test it.
    LOCAL _dJahrAnfang AS DATE
    LOCAL _nErstTag AS DWORD // int

    _dJahrAnfang := ConDate( _nJahr, 1, 1 )
    _nErstTag := DoWEuro( _dJahrAnfang )
    _dJahrAnfang := _dJahrAnfang + 8 - _nErstTag



    local uRowNo as usual

    local iPos as dword
    ipos := 1
    uRowNo := -iPos
  • I have reinstalled version 2.3a and everything works as before. We have many places like this in our program (for example substraction of a for variable that must be defined as dword). So can you please lower the restrictions of this kind of operation?
  • Arne,

    Performing a unary minus operation on a unsigned integer value is a bit tricky indeed.

    In X# 2.3b we made a change in this area to make sure that unary operations (such as the binary XOR: b := ~b) would not result in a changed type for the result.

    Unfortunately for unary minus this is not the wanted result.
    We will change the behavior for this operator to:
    - for signed integers there is no problem for the unary minor. The return value will have the same type as the original value

    - for unsigned integers we will "promote" the result to a signed integer type that is larger so we can be sure it is large enough to hold the result:
    - minus BYTE will become a SHORT (8 -> 16 bits)
    - minus WORD will become a INT (16 -> 32 bits)
    - minus DWORD will become a INT64 (32 -> 64 bits)
    - minus UINT64 will become a System.Double (since the result could overflow a INT64 for large values).

    Robert
  • Thank you very much.

    I understand how difficult it is to make a safe secure system that has to in account the VO history. Some weeks ago I had an error running our X#-compiled program. The error was clearly understandable. What was not understandable why VO could reach go on assuming that nothing bad had happened.
  • Arne,
    Yes it is complicated. And on top of that we also need to / try to emulate the decisions that we/Don did for Vulcan.

    For example the /vo11 compiler option (compatible numeric conversions). This is relatively "simple" when it comes to rounding of floats, but it also controls the result of binary operations where the left hand side of the operator is not of the same type as the right hand side. Such as:

    DWORD + SHORT
    BYTE * LONG
    etc.

    And on top of that: some of the other dialects have not specified/ documented how they behave in these kind of situations at all.

    We'll get there (eventually) but sometimes it is 2 steps forward and one step back.

    Robert
  • Arne, not sure if you have received my fix for DATEs and DWORDs? Robert has also fixed the unary DWORD issue, we should soon have a complete update for this.
  • Hi Chris, thank you for advising me. I asked me already what happened to you, since normally you give immediately answer. So I put a comment in here.

    Now I have found your email in the junk mail folder without any attachments. The attachments have been removed by the Outlook filter. Now it has become difficult to send binaries via emails.
    It is ok for me to wait for an official download.

    Making public your comment in the email to the whole world mainly locked down:
    > Yeah, doing fine, hope you guys are all safe as well!
    Yes, we all safe and ok, thank you, although not very happy feeling a bit "imprisoned" and being afraid about the news outside. At least I have enough time to go on with programming!
  • By the way. This was what the Outlook filter was thinking about your fix - nothing is safe anymore. Or we or our computers become attacked by a virus or the Antivirus activities get limiting our live...

    Malware was detected in one or more attachments included with this email message.

    Action: All attachments have been removed.

    XSharp.RT_fix.zip exe
  • Hi Arne, thanks for the info! Yeah, we live in crazy times, in general and in specific aspects now. I am pretty sure the virus pandemic world situation will improve a lot soon, but I am certain the tech-virus frenzy will never do :). Usually I double zip attachments, but felt adventurous with my email to you yesterday :). Anyway, indeed better just please wait until we release a complete update (soon).