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"}
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"}
Thank you very much!
Wolfgang
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
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
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.
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
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!
Malware was detected in one or more attachments included with this email message.
Action: All attachments have been removed.
XSharp.RT_fix.zip exe