Permalink
Commits on Mar 1, 2017
  1. doc: wiki snapshot

    dkl committed Mar 1, 2017
Commits on Feb 28, 2017
  1. fbdoc: Remove inconsistent custom TRUE/FALSE #defines

    and rely on FB built-in true/false instead.
    dkl committed Feb 28, 2017
  2. fbdoc: Solve out checks against TRUE

    dkl committed Feb 28, 2017
  3. fbdoc: Fix pcre usage for 64bit

    dkl committed Feb 28, 2017
  4. fbhelp: Fix Next var typo

    From: mandian <mandian@users.sf.net>
    dkl committed Feb 28, 2017
Commits on Feb 4, 2017
Commits on Feb 2, 2017
  1. inc: winapi: Fix winnt.h SECURITY_*_AUTHORITY initializers

    They're initializers for SID_IDENTIFIER_AUTHORITY which is a UDT
    containing a byte array.
    dkl committed Feb 2, 2017
Commits on Feb 1, 2017
  1. Stop using Common Shared in fbc sources

    Dim Shared/Extern is better because it doesn't rely on linker tricks
    to work.
    dkl committed Feb 1, 2017
  2. tests: Fix namespace/cpp for 64bit

    dkl committed Feb 1, 2017
  3. Fix compiler crash on type<>() initializer for non-UDT global var

    1. astTypeIniIsConst/hExprIsConst wanted to do checks against the global
    var symbol when checking a global var init, however the TYPEINI sym can be
    NULL in case of something like type<integer>(0), so it crashed. To fix it,
    I moved the checks out of astTypeIniIsConst. astLoadStaticInitializer/
    hFlushExprStatic had a similar problem, but since the basesym is passed
    there next to the TYPEINI, it's easier to fix.
    (Normally a TYPEINI like type<integer>(0) would have a temp var sym, but
    global var inits aren't processed by astTypeIniUpdate.)
    
    2. Refactor code in parser-decl-var.bas to use same global var init
    validation checks for both Dim and Var.
    dkl committed Feb 1, 2017
Commits on Oct 23, 2016
  1. Fix wstring constant merging check to calculate buffer size correctly

    We check the internal string length to see whether we can use hEscapeW().
    Since all this is internal and based on the host Wstring type, we have to
    check against host Wstring size.
    dkl committed Oct 23, 2016
Commits on Oct 5, 2016
  1. Remove stray $ from log-tests makefile

    (caused MSYS2 make on Win32 to show an error)
    dkl committed Oct 5, 2016
  2. Fix surrogate pair truncation in UTF32 -> Windows WString conversion

    Make the UTF32 -> Windows WString case consistent with other UTF32 -> UTF16
    cases in FB rtlib: When the destination buffer is too small to hold a
    surrogate pair, only the low (second) surrogate is written, and the high
    (first) surrogate is omitted.
    
    This is pretty strange (producing invalid UTF16 instead of failing),
    so I don't want to document this in detail (it should probably be changed),
    but at least FB's UTF16-generation cases are now consistent with regards
    to the handling of truncating surrogate pairs.
    
    Previously this code just wrote the low 16bit of the code point, which is
    invalid aswell.
    dkl committed Oct 5, 2016
  3. Fix bad surrogate pair values when converting UTF32 to UTF16

    UTF16_HALFBASE wasn't subtracted from the codepoint before splitting into
    high and low surrogate values, resulting in bad high surrogate. This bug
    only existed in conversions from UTF32; the code for conversions from UTF8
    did it correctly already.
    
    http://www.freebasic.net/forum/viewtopic.php?p=225217#p225217
    dkl committed Oct 5, 2016
Commits on Oct 1, 2016
  1. Ensure to truncate 32bit jump table index to 32bit

    astBuildJMPTB() calculated -minval * env.pointersize with
    minval=&hFFFFFFFFll, resulting in &hFFFFFFFC00000004. This must be
    truncated to 32bit to get the wanted result of 4. The value is later
    assigned to some Integer in emit_x86.bas or somewhere else, so it happened
    to work in 32bit fbc, but not in 64bit fbc.
    
    The solution is to ensure to truncate this precomputed index offset to
    32bit in case of 32bit Select Case As Const.
    
    Ideally the ASM backend would behave the same for 32bit and 64bit (i.e. use
    LongInts instead of Integers), but that's a different issue.
    
    Test case for 64bit fbc cross-compiling to 32bit:
      select case as const 0u
      case -1
      end select
    
      jmp dword ptr [.LT_0008+eax*4-17179869180]
    
      1.asm:31: Error: value of -17179869116 too large for field of 4 bytes at 60
    dkl committed Oct 1, 2016
  2. Fix code generation for SELECT CONST with CASE -1 on 64bit

    fbc used a For loop like "For value As ulongint = minval To maxval",
    but this fails (infinite loop) in case maxval = &hFFFFFFFFFFFFFFFFull,
    which happens when for example Case -1 is used in the Select Case As Const.
    
    The bad code existed in both ASM and C backends, but since it only affects
    64bit (because on 32bit, the Case values are truncated to 32bit UInteger,
    which fits into ULongInt just fine), the ASM backend doesn't trigger the
    issues.
    
    http://www.freebasic.net/forum/viewtopic.php?p=225109#p225109
    dkl committed Oct 1, 2016
Commits on Sep 11, 2016
  1. Unix rtlib: Use PTHREAD_MUTEX_RECURSIVE without _NP

    Looks like glibc provides PTHREAD_MUTEX_RECURSIVE under _GNU_SOURCE.
    Other libcs like musl only provide PTHREAD_MUTEX_RECURSIVE.
    dkl committed Sep 11, 2016
Commits on Aug 27, 2016
  1. doc: Disable user input query for "make refresh"

    This allows "make refresh" to be used on build servers.
    dkl committed Aug 27, 2016
Commits on Aug 26, 2016
  1. rtlib: Remove use of "long double" __builtin_floorl/fabsl

    - With latest DJGPP setup (DJGPP 2.05 and current gcc), __builtin_floorl()
      results in a call to floorl() but that isn't provided by DJGPP.
    - I don't think it's necessary to use the "long double" functions here,
      the "double" versions should be good enough.
    dkl committed Aug 26, 2016
Commits on Aug 25, 2016
Commits on Aug 19, 2016
  1. doc: wiki backup

    dkl committed Aug 15, 2016
Commits on Jul 29, 2016
  1. travis: Remove 32bit build

    - The test suite needs 32bit X11 libs, no idea how to install those
      together with the 64bit ones on Ubuntu 12.04.
    - It'd be nice to test more fbc builds than just linux-x86_64, but can't
      test all cases anyways.
    dkl committed Jul 29, 2016
  2. travis: Fix fbc paths

    dkl committed Jul 29, 2016