Version 0.90.0 released

Announcements about new releases and updates.
Post Reply
dkl
Site Admin
Posts: 3235
Joined: Jul 28, 2005 14:45
Location: Germany

Version 0.90.0 released

Post by dkl »

Hello!

Here's the new release, finally. It comes with multiple new features, and the amount of bug fixes is huge -- but see for yourself!

New Stuff
  • VIRTUAL and ABSTRACT methods, including virtual destructors, in UDTs extending OBJECT
  • STATIC member variables in UDTs
  • BYREF function results: FUNCTION F( ) BYREF AS INTEGER
  • '=>' is now allowed for assignments to solve syntax ambiguities with the '=' equality operator
  • IIF() now fully supports strings, UDTs, and mixing of different integer/float types
  • Unary and binary operations will now consistently promote their operands to INTEGER or UINTEGER (except for LONGINT/float)
  • INTEGER<n>/UINTEGER<n> with n=8/16/32/64 to explicitly choose integer types of a specific size
  • #If now accepts any normal constant FB expression
  • #assert statement for compile-time checks
  • LBound/UBound( array ) now return 0 and -1 for empty dynamic arrays
  • LBound/UBound( array, 0 ) now return 1 and the array's dimension count
  • BSAVE now has a bpp parameter, and defaults to 32bit instead of 24bit in 32bit screen modes.
  • Work-in-progress LLVM backend (-gen llvm)
  • fbc no longer depends on libbfd
  • Many headers for external libraries have been updated
Most Interesting (?) Fixes
  • The C backend has become stable, with many bugs fixed
  • Several code generation bugs in the ASM backend have been fixed
  • Using ThreadCall no longer causes internal compiler errors
  • Many bugs with temporary variables, destructor calls, parameter initializers, and SELECT CASE have been fixed
  • Linux X11 graphics GetKey/Inkey/ScreenEvent and DOS console-mode GetKey now return proper keycodes
  • On Win32, the graphics window will no longer be truncated to fit the screen
  • EXEPATH() no longer omits the slash at the end of root paths
  • DOS CURDIR() and COMMAND(0) now use backslashes and upper-case drive letters
  • Initialization of unions is now well-defined: only the first member can be initialized, as in C
  • In functions returning UDTs with constructors, the compiler now ensures that the function result is constructed once, instead of being left unconstructed or constructed twice.
  • Functions returning UDTs now correctly follow the GCC ABI on each platform
  • typeof() (and #print typeof()) is now reliable
  • Single-line IF statements will now open a scope, to prevent "leaking" variables to the outside
Check the included changelog.txt for the full list, and thanks to everyone who found and reported bugs and contributed to the development of patches and header updates!

Win32 Binaries Linux Binaries DOS Binaries Documentation Source Code All the downloads are hosted over at SourceForge.
Post Reply