Michael Clease
02-04-2008, 23:30
http://www.freebasic.net/index.php/download
Release date : 2008-03-29
Version 0.18.4 Beta:
[changed]
lang qb: keywords, data types, functions or macros not present in QB can now used by prefixing them with "__" (ie: "dim foo as __byte __ptr") (v1c)
lang qb: DATA should be allowed inside compound-statements (v1c)
lang qb: MKI/CVI/CINT now return 16-bit sized results (counting_pine)
lang qb: PRINT now appends a space when printing numbers (counting_pine)
lang qb: "IF...THEN REM ...", "IF...THEN : ..." are now single-line statements (counting_pine)
when finding binutils, fbc checks environment variables, then ./bin/<target>, then (on Linux only) if the sub-program was not found, fbc will invoke the system default (jeffm)
bug #1881320 - global operators defined within type body have to be disallowed until the feature is properly implemented (cha0s)
Linux/BSD file structure is now a lot more unix-friendly (cha0s)
INPUT no longer delimits with space/tab for strings (counting_pine)
ignore const correctness when passing to varargs, they aren't type safe anyway (jeffm)
[added]
INSTRREV - feature request #1244607 (jeffm)
'ENUM foo EXPLICIT' to allow the enum elements not to be imported to the current namespace (syntax suggested by Pritchard) (v1c)
CRT function: declare function mkstemp( byval template_ as zstring ptr ) as integer (cha0s)
SWAP now supports one or more bitfield variables (cha0s)
placement new: see wiki for details on syntax and usage (cha0s)
explicit ctor/dtor calling (WIP) (cha0s)
Statements can now be written directly after multi-line ELSE/ELSEIFs, like in QB (counting_pine)
fb.GFX_HIGH_PRIORITY flag for SCREEN/SCREENRES (jeffm)
fb.GET_HIGH_PRIORITY option for SCREENCONTROL (jeffm)
split bfd.bi by version and add support for binutils 2.18 (DrV)
[fixed]
lang qb: SLEEP with no arguments not handled correctly in gfx modes (jeffm)
lang qb: LINE -(x,y) was not being allowed due to parser changes (jeffm)
lang qb: Allow file.bi and datetime.bi headers (jeffm)
lang qb: Integer literals outside the range [-32768..32767] were being stored as 16-bit integers (counting_pine)
lang qb: OPEN not handling COM/LPT device names correctly (jeffm)
lang qb: #1905669 - DIM'ed variables not initialized at start of procedure (jeffm)
OPEN COM protocol parser was not handling default parameters (jeffm)
BLOAD could not use old-style image header when loading BMPs (counting_pine)
VAR was disregarding the extended type information (like const qualifiers), found by stylin
variables with const qualifier shouldn't have been accepting ANY as an initializer (cha0s)
FBC was crashing on invalid data types (e.g. INPUT 1) (counting_pine)
VALLNG was accepting invalid characters in hex/oct/bin numbers (counting_pine)
VAL now allows longint-sized hex/bin/oct numbers (counting_pine)
Many cases of badly-handled numbers in INPUT (counting_pine)
Faulty logic in optimizing signed integer division by powers of two greater than 1 (counting_pine)
initialization of a UDT should not invoke its LET operator if no casting is needed (jeffm)
const qualified data types were not being allowed with null ptr checks (jeffm)
str was trying to fold const qualified variables (counting_pine)
INPUT was incorrectly parsing floating-point numbers with the 'd' exponent specifier on non-win32 platforms (jeffm)
SCREENGLPROC returns NULL (instead of a linker error) if OpenGL support was not compiled in to the gfxlib (jeffm)
#1877440 - g++ name mangling for const qualifiers (jeffm)
#1877439 - const qualifier overloading with byref (jeffm)
#1872532 - fix null pointer access when parsing parameters and allow OVERLOAD in member proc declarations for consistency (jeffm)
#1876286 - constructor should not take byval arg of parent type as only parameter (jeffm)
#1891840 - Internal name mangling for function ptrs causing collision (jeffm)
#1890675 - dereferencing bogus casted expressions would cause a crash (cha0s)
#1891408 - forward references weren't taking the symbol-to-be-patched's const info into account when backpatching (cha0s)
#1892194 - gfxlib2 had screen 12 with a 256 color palette, instead of 16 (cha0s)
assignment of bitfields wasn't ensuring that the assignment wouldn't trash the parent variable, if a number too big was assigned (cha0s)
#1901102 - operator NEW wasn't working correctly when used directly in the body of a type (not in an explicit constructor) ex: type foo: as integer ptr a = new integer: end type (cha0s)
#1901924 - INPUTting large numbers to a floating-point were incorrectly allowing integer overflow before being casted to the floating-point type (cha0s)
#1900852 - bitfields used in variable initializers weren't handled properly (cha0s)
#1900586 - GET #/PUT # not returning errors for mismatched record lengths with RANDOM mode files or negative record numbers (jeffm)
#1825178 - reverted: gfxlib (win32 gdi/directx drivers) creates its windows with default thread priority like in 0.17 (jeffm)
#1865673 - symbols defined inside namespaces that had already been imported were throwing a duplicate definition (cha0s)
#1905284 - bitfield accessing wasn't always working when the optimizer would remove the field node (cha0s)
#1890693 - array and UDT initializers in TYPE's (jeffm)
#1905725 - wrong integer division code when used with implicit/explicit pointers plus constants (v1c)
#1906004 - fb_PageSet() was testing page requests against console limits, even in gfx mode (cha0s)
#1909925 - const qualifier with EXTERN should not have been expecting an initializer (jeffm)
#1919630 - fbc wasn't handling UNC paths on windows (jeffm)
Release date : 2008-03-29
Version 0.18.4 Beta:
[changed]
lang qb: keywords, data types, functions or macros not present in QB can now used by prefixing them with "__" (ie: "dim foo as __byte __ptr") (v1c)
lang qb: DATA should be allowed inside compound-statements (v1c)
lang qb: MKI/CVI/CINT now return 16-bit sized results (counting_pine)
lang qb: PRINT now appends a space when printing numbers (counting_pine)
lang qb: "IF...THEN REM ...", "IF...THEN : ..." are now single-line statements (counting_pine)
when finding binutils, fbc checks environment variables, then ./bin/<target>, then (on Linux only) if the sub-program was not found, fbc will invoke the system default (jeffm)
bug #1881320 - global operators defined within type body have to be disallowed until the feature is properly implemented (cha0s)
Linux/BSD file structure is now a lot more unix-friendly (cha0s)
INPUT no longer delimits with space/tab for strings (counting_pine)
ignore const correctness when passing to varargs, they aren't type safe anyway (jeffm)
[added]
INSTRREV - feature request #1244607 (jeffm)
'ENUM foo EXPLICIT' to allow the enum elements not to be imported to the current namespace (syntax suggested by Pritchard) (v1c)
CRT function: declare function mkstemp( byval template_ as zstring ptr ) as integer (cha0s)
SWAP now supports one or more bitfield variables (cha0s)
placement new: see wiki for details on syntax and usage (cha0s)
explicit ctor/dtor calling (WIP) (cha0s)
Statements can now be written directly after multi-line ELSE/ELSEIFs, like in QB (counting_pine)
fb.GFX_HIGH_PRIORITY flag for SCREEN/SCREENRES (jeffm)
fb.GET_HIGH_PRIORITY option for SCREENCONTROL (jeffm)
split bfd.bi by version and add support for binutils 2.18 (DrV)
[fixed]
lang qb: SLEEP with no arguments not handled correctly in gfx modes (jeffm)
lang qb: LINE -(x,y) was not being allowed due to parser changes (jeffm)
lang qb: Allow file.bi and datetime.bi headers (jeffm)
lang qb: Integer literals outside the range [-32768..32767] were being stored as 16-bit integers (counting_pine)
lang qb: OPEN not handling COM/LPT device names correctly (jeffm)
lang qb: #1905669 - DIM'ed variables not initialized at start of procedure (jeffm)
OPEN COM protocol parser was not handling default parameters (jeffm)
BLOAD could not use old-style image header when loading BMPs (counting_pine)
VAR was disregarding the extended type information (like const qualifiers), found by stylin
variables with const qualifier shouldn't have been accepting ANY as an initializer (cha0s)
FBC was crashing on invalid data types (e.g. INPUT 1) (counting_pine)
VALLNG was accepting invalid characters in hex/oct/bin numbers (counting_pine)
VAL now allows longint-sized hex/bin/oct numbers (counting_pine)
Many cases of badly-handled numbers in INPUT (counting_pine)
Faulty logic in optimizing signed integer division by powers of two greater than 1 (counting_pine)
initialization of a UDT should not invoke its LET operator if no casting is needed (jeffm)
const qualified data types were not being allowed with null ptr checks (jeffm)
str was trying to fold const qualified variables (counting_pine)
INPUT was incorrectly parsing floating-point numbers with the 'd' exponent specifier on non-win32 platforms (jeffm)
SCREENGLPROC returns NULL (instead of a linker error) if OpenGL support was not compiled in to the gfxlib (jeffm)
#1877440 - g++ name mangling for const qualifiers (jeffm)
#1877439 - const qualifier overloading with byref (jeffm)
#1872532 - fix null pointer access when parsing parameters and allow OVERLOAD in member proc declarations for consistency (jeffm)
#1876286 - constructor should not take byval arg of parent type as only parameter (jeffm)
#1891840 - Internal name mangling for function ptrs causing collision (jeffm)
#1890675 - dereferencing bogus casted expressions would cause a crash (cha0s)
#1891408 - forward references weren't taking the symbol-to-be-patched's const info into account when backpatching (cha0s)
#1892194 - gfxlib2 had screen 12 with a 256 color palette, instead of 16 (cha0s)
assignment of bitfields wasn't ensuring that the assignment wouldn't trash the parent variable, if a number too big was assigned (cha0s)
#1901102 - operator NEW wasn't working correctly when used directly in the body of a type (not in an explicit constructor) ex: type foo: as integer ptr a = new integer: end type (cha0s)
#1901924 - INPUTting large numbers to a floating-point were incorrectly allowing integer overflow before being casted to the floating-point type (cha0s)
#1900852 - bitfields used in variable initializers weren't handled properly (cha0s)
#1900586 - GET #/PUT # not returning errors for mismatched record lengths with RANDOM mode files or negative record numbers (jeffm)
#1825178 - reverted: gfxlib (win32 gdi/directx drivers) creates its windows with default thread priority like in 0.17 (jeffm)
#1865673 - symbols defined inside namespaces that had already been imported were throwing a duplicate definition (cha0s)
#1905284 - bitfield accessing wasn't always working when the optimizer would remove the field node (cha0s)
#1890693 - array and UDT initializers in TYPE's (jeffm)
#1905725 - wrong integer division code when used with implicit/explicit pointers plus constants (v1c)
#1906004 - fb_PageSet() was testing page requests against console limits, even in gfx mode (cha0s)
#1909925 - const qualifier with EXTERN should not have been expecting an initializer (jeffm)
#1919630 - fbc wasn't handling UNC paths on windows (jeffm)