March 29, 2024, 12:55:28 AM

News:

Own IWBasic 2.x ? -----> Get your free upgrade to 3.x now.........


Aurora update Alpha 3 Rev 3

Started by Ionic Wind Support Team, May 22, 2006, 01:38:35 AM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

Ionic Wind Support Team

The Aurora compiler has just been updated.  To get the update redownload from the link provided when purchasing.

Changes / Additions:
----------------------------
- A bug concerning the 'this' pointer was fixed.
- Comments can now appear after an #endif statement.
- #option preprocessor command added.  "FLOAT" or "DOUBLE" are the availble options.  Determines whether a floating point literal is treated as a float or double precision number.
- You can now define float, double, string, wstring constants.  for example #define STR_CONST "a constant"
- Initializer now allowed with global numeric variables. 
- CTabCtrl::SetItemText was broken.  Fixed.
- UINT, DWORD, BOOL and LONG are now standard typedef's.
- Accelerators would not work for an MDI frame if a child window was open. Fixed.
- Auto indentation added to IDE. 
- Brace highlighting added to IDE.  Placing a the caret next to an opening or closing brace, parenthesis, or bracket will either highlight both braces if a match is found, or the offending brace in red if no match is found. 
- The color of numeric values in the IDE can now be set in "Editor Options".

Notes:
---------
About global initializers.... A global variable defined outside of function scope previously would ignore initializers.  Basic math operators are allowed but the final value must be a constant as the initial value of a global variable must be known at compile time.  A single initializer must be typed the same as the variable.

Example:


float gflTiming = 0.10f;  // the assignment previously ignored

global sub main()
{
    print(gflTiming);
    while GetKey() = "";
}


Initialized global variables are stored in the data segment of the executable, not that it matters to your program, just for information of course.  String initializers on global variables are not currently allowed and will be added later.

Aurora also allows basic math operations on a global initialzer, something C complains about:


float gflTiming = 0.10f + 1/2.0;

global sub main()
{
    print(gflTiming);
    while GetKey() = "";
}


The initializer is evaluated by the compiler.  All operands of the initializer must resolve to a constant value.

----------------------
The demo version has been updated as well.
Ionic Wind Support Team

sapero

wow thanks, now I have additional work to remove all external constants from c headers ;D

Do you plain to add inline comparision and copying for structures?
I mean instead comparing GUID using functions, just use '=='
mov esi, &struct1
mov edi, &struct2
mov ecx,sizeof(struct)
repe cmpsb
je  isequal...

Ionic Wind Support Team

You can copy structures by assignment now.  But the comparison is a good idea.
Ionic Wind Support Team

sapero

Before I forgot: in ddraw.inc found a mistake in all error constants:
CONST DDERR_ALREADYINITIALIZED = 0x8876 | 5;

should be 0x88760000 (MAKE_DDHRESULT(0)) ;D
This is not important since we all use only DS_OK (or only we two?)

in gui.inc - all *_CHARSET are 16 times "shifted" left, why?
I guess it should be easier to create a LCID without shifting ?

Ionic Wind Support Team

The charset values are shifted because they are ored in with the flags parameter of SetFont.  I use the lower 16 bits for styles and check the upper 16 for charset values.
Ionic Wind Support Team