Details
Date 2008-03-29
Version 0.18.4 Beta
Summary New fblite dialect, improved QB compatibility, many bug fixes, and new options for installing fbc to an absolute directory on Linux (/usr/local).
Changelog 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)




Copyright © 2004-2008 The FreeBASIC development team.