Menu

GCSTUDIO changes since Nov 2025

Anobium
2026-09-10
2026-09-12
  • Anobium

    Anobium - 2026-09-10

    GCSTUDIO changes since Nov 2025

    Every header-file and compiler change to GCSTUDIO since November 2025, in one timeline. Build is the GCSTUDIO release-note index number (from release_notes.xlsx); Rev is the linked SourceForge SVN revision.

    # Month/Year Build Rev File / Area Change
    1 Nov 2025 1527 r1803 Compiler Config file parser bug fix — ReverseCfgFileLookup now populates all CVALUE entries per CSETTING
    2 Dec 2025 1530 r1805 Compiler Macro errors now report the source line inside the macro, not the caller
    3 Dec 2025 1526 r1807 pwm.h Isolated 9/10-bit CCP1 bits
    4 Dec 2025 1533 r1809 usart.h Added ChipSubFamily=15006 TX1REG redirection
    5 Dec 2025 1529 r1810 a-d.h Isolated legacy clock sources (16F175xx)
    6 Dec 2025 1535-1536 r1813-r1815 Compiler .S header caching + DFP search performance improvements
    7 Dec 2025 1537-1541 r1816-r1817 Compiler /AO and /D switches, colour output
    8 Dec 2025 1542 r1818 Compiler DIM-with-assignment syntax: Dim x As type = value
    9 Dec 2025 1543 r1820 system.h Support for 16F7xx chip frequencies
    10 Dec 2025 1544 r1821 Compiler DFP search via %UserProfile% for PIC-AS
    11 Jan 2026 1545 r1823 Compiler BANK handling for PIC16F 15001 family
    12 Jan 2026 1529 r1826 a-d.h, picas.h Further isolation of legacy clock sources (16F175xx)
    13 Jan 2026 1548 r1827 lcd.h Support for LCD_IO 10
    14 Jan 2026 1547 r1828 hwi2c.h AVRDXTWI0MODE now pulls I2C bus low; cache TWI ControlB register
    15 Jan 2026 1549 r1829 usart.h SAMEVAR for USART2-5 SPnBRG/SPnBRGH
    16 Jan 2026 1550-1551 r1830 Compiler GCASM Page-0 ORG allocation fix
    17 Jan 2026 1547 r1832 hwi2c.h Corrected AVR I2C mode init (byte support)
    18 Jan 2026 1553 r1833 usart.h Improved Comport handling in subs/functions
    19 Jan 2026 1555 r1835 hwi2c.h Added 328PB SAMEVAR support
    20 Feb 2026 1557 r1836 ~100 header files Bulk copyright-year update (no functional change)
    21 Feb 2026 r1840 picas.h Fixed _LINE() assignment of LINE()
    22 Feb 2026 1559 r1841 Compiler HTML report RAM-usage section
    23 Feb 2026 r1843 Compiler Major: new UserCodeOnlyEnabled bare-metal compilation mode for AVR
    24 Feb 2026 1562 r1846 glcd.h Added DWIN GLCD support
    25 Feb 2026 1565 r1847 Compiler New #OPTION STARTUPMETHODSDISABLED
    26 Feb 2026 1566 r1848 Compiler PIC-AS UNC filename support via compileUNC.bat
    27 Feb 2026 1567-1568 r1848-r1850 Compiler DATA BLOCK table handling fixes (word/byte tables, alignment, Progmem placement)
    28 Apr 2026 1570 r1852/r1853 glcd_st7567.h New power-control methods
    29 Apr 2026 1571-1575 r1854,r1856 Compiler RecalcSubSizes() accuracy improvements; basic 18FxxQ35 compiler support added; GCASM AVR HEX file size reporting
    30 May 2026 1578 r1861-r1862 Compiler New #OPTION REMOVEAVRVECTORS directive
    31 May 2026 1584,1588 r1866,r1870 Compiler AVR SysBitTest bug fixes
    32 May 2026 1585-1587 r1867-r1869 Compiler Register R0-R31 handling fix; table-string parsing rewrite; bit-tests on array elements
    33 May 2026 1590 r1872 Compiler New SHIFT command
    34 May 2026 1592 r1875 Compiler AVR Table code optimisation (saves 14 words)
    35 May 2026 1593 r1877 Compiler Table data trailing-comma support
    36 May 2026 1595 r1881 PCA9685.h Resolved PCA9685_WriteChannel(); added new file ds18b20mulltiportRes.h
    37 Jun 2026 1597 r1883 system.h Corrected AVRDX memory clear-down
    38 Jun 2026 1598 r1884 Compiler Data Block memory-map reporting added to HTML/console output
    39 Jun 2026 1598-1601 r1886-r1888 Compiler Collapsible HTML report tables; new HXL output file support
    40 Jun 2026 1603 r1890 Compiler String escape-character support
    41 Jun 2026 1603 r1891 DS18B20.h Reduced RAM requirements
    42 Jun 2026 1604 r1892,r1894 Compiler Ambiguous-constant/register CDF reporting; ESC-char handling fix for #include/#insert paths
    43 Jun 2026 1605 r1893 timer.h Isolated Timer constants from register.bit names
    44 Jul 2026 1606 r1896 Compiler Major: EnablAmmbiguityInspection compiler check plus ReportDuplicateConstants/PrintDuplicateConstants
    45 Jul 2026 1607 r1897 Compiler Multi-variable DIM support
    46 Jul 2026 1608 r1898 Compiler Multiple commands per line
    47 Jul 2026 1609 r1899 Compiler Array-DIM declaration detection fix
    48 Jul 2026 1609 r1900 hwi2c.h, pwm.h, system.h, timer.h, usart.h hwi2c: SAMEVAR to script; pwm: fixed errant CCP1PWM handling; system: AVRDX clear-down + PROGREAD Q10; timer: unique SOSC bit check (10Fxxx); usart: isolation of var/bits
    49 Jul 2026 1610 r1901 Compiler TableString optimisation
    50 Jul 2026 1610 r1902 Compiler Improved ERROR.TXT handling
    51 Jul 2026 1613 r1903 glcd_SSD1306.h Added GLCD_TYPE_SSD1306_64x32 low-memory support
    52 Jul 2026 1612 r1904 a-d.h Isolated ANSELB/ANSELC for PIC16F180xx
    53 Aug 2026 1614 r1905 Compiler PICKitPlus semaphore inspection during programming
    54 Aug 2026 1615 r1906 Compiler Table data trailing-comma fix
    55 Aug 2026 1616 r1907 Compiler PICKITCOMMANDLINE / /A:PIC-AS / GetModuleFileName fixes
    56 Aug 2026 1616 r1908 eeprom.h, hwi2c.h, pwm.h 18FxxQ35 library/dat updates
    57 Aug 2026 1617 r1909 Compiler 18FxxQ35 DAT files + DFP-missing message
    58 Aug 2026 1619 r1911 system.h Added 18FxxQ35 constant
    59 Aug 2026 1619 r1911 Compiler Same commit: GCASM #rawasm comment fix, INFO statements in scripts, CalcLineSize fix, XC8 directory-not-found fix
    60 Sep 2026 1620 r1912 Compiler/data AVR DA/DB/DD chipdata corrections
    61 Sep 2026 1621 r1913 Compiler BuildMemoryMap for EraseRAM + #Include Trim fix
    62 Sep 2026 1622 r1914 Compiler Linux build support — env-var based paths, ExePath instead of Windows-only API
    63 Sep 2026 1622 r1915 Compiler Linux folder-management fix
    64 Sep 2026 1623 r1916 Compiler Improved LST reporting
    65 Sep 2026 r1917 chipdata.def, hwspi.h, string.h, system.h, glcd.h/.dat, TC77.h, clearram.h, glcd_SSD1309.h SPI baud-rate calc rewrite (legacy + modern SPI1CON0 peripherals); Str32 optimised asm implementation; new SSD1309 GLCD type; new TC77 SPI temperature sensor driver; new ClearRAM library
    66 Sep 2026 r1918 Help Updated Help CHM
    67 Sep 2026 r1919 Repo Removal of legacy version folders from SVN
    68 Sep 2026 1624 r1920 Compiler Added support for multiple values in a single Case statement (e.g. Case 0, 1, 2)
    69 Sep 2026 1625 r1921 usart.h New HSerSendBytes(byte1, byte2, ...) overloads, sending 2-16 bytes over the hardware USART in a single call
    70 Sep 2026 1626 r1922 Compiler Fix: overloaded Sub/Function calls with a single-character string literal argument (e.g. HSerSendBytes(ch1,"R",ch3,ch4)) could silently pick the wrong overload and drop arguments; a call matching no overload at all now fails to compile with a clear error instead
    71 Sep 2026 1627 r1923 Compiler New: a missing essential file listed in lowlevel.dat (broken/incomplete install) now stops compilation with a clear "Essential file missing" error naming the file, instead of silently continuing with the library's commands unknown to the compiler
    72 Sep 2026 1628 r1924 glcd_dwin.h, ZCD.h New: added glcd_dwin.h (DWIN GLCD driver) and ZCD.h libraries to trunk - synced from the NextRelease build folder, previously uncommitted
    73 Sep 2026 1628 r1925 Compiler Fix: a missing #include file now stops compilation with an error, instead of only warning and compiling a program with that file's content silently absent
    74 Sep 2026 1629 r1926 Compiler Fix: a 0x or 0b numeric literal with no digits after the prefix is now reported as an error, instead of silently converting to a meaningless value and compiling to wrong code
    75 Sep 2026 1630 r1927 Compiler New: HSerPrintList, Ser1PrintList, Ser2PrintList, Ser3PrintList commands - one statement sends a list of mixed-type values (string/byte/word/integer/long) as a sequence of calls to the existing typed HSerPrint/SerNPrint overloads, dispatched entirely by the compiler; no new library overloads required
    76 Sep 2026 r1931 Help Updated Help CHM
    77 Sep 2026 1630 r1933 Compiler Fix: NoClosingQuote error message corrected to "Missing closing double quote in String or Table source" - the underlying check fires for any unterminated string literal, not only inside a Table
    78 Sep 2026 GCcode (VS Code extension) Fix: GCB.tmLanguage.json (both installed copies of the extension - a stale duplicate was found shadowing the maintained one) was missing the HSerPrintList/HSerSendBytes/Ser1-3PrintList/DisplaySegment/Sqrt keywords; #chip's argument and numeric literals with a trailing unit (31k, 10ms, 10usec, etc.) were splitting into two colours instead of one; and Alloc/Array/AND/OR/XOR/BIT/Byte/Integer/Long/Medium/NOT/Set/String/Word were invisible because the active theme has no colour mapping for the scopes originally used - retargeted to scopes the theme actually colours (types/math in blue, logical operators in red)
    79 Sep 2026 SynWrite autocomplete (F1 help) Fix: GCBasic.acp was missing F1-help lookup entries for HSerPrintList/HSerSendBytes/Ser1-3PrintList (F1 fell back to the generic intro page for those commands); also fixed a pre-existing MEDUIM -> MEDIUM typo
    80 Sep 2026 1631 r1934 Compiler Fix: IntOn/IntOff could hang the compiler indefinitely on malformed usage (e.g. IntOn with an argument) - a Continue Do in CompileIntOnOff skipped advancing past the current line; now advances first, so malformed usage fails fast with a normal syntax error instead of hanging forever
    81 Sep 2026 1632 r1935 gcbasic.bas, variables.bi, messages.dat New: using a single letter reserved for assembler status/destination-bit operands (B,C,F,H,N,S,T,V,W,Z) as a variable/parameter/Sub/Function name now explains why it's rejected instead of a bare "Invalid variable name". New: a genuine syntax keyword (For, Dim, Sub, etc.) used as a variable/parameter/Sub/Function name is now caught and reported clearly, checked against a small curated keyword list rather than the full library-command reserved-word list (which would otherwise reject legitimate self-named return variables like ReadAD's own READAD). Fix: the Data Block(s) memory summary could show a non-integer value (e.g. "1.5") for an odd byte count - missing rounding, now fixed in both console and HTML report summaries
    82 Sep 2026 1633 r1935 gcbasic.bas Fix: a missing comma in a Select Case value list (e.g. Case 1 2) was silently reinterpreted as a single number (12) with no warning. The compiler now detects a Case value that is nothing but digits and spaces and reports it as a likely missing comma instead, without false-positiving on Case 1 To 3 or comma-separated lists
    83 Sep 2026 1633 r1936 preprocessor.bi Fix: an inline /* comment that starts after real code on a line but does not close with */ on that same line (e.g. Dim Foo As Bar /* continues on the next line) was not recognized as opening a multi-line block comment at all. The continuation line(s) were parsed as code (spurious syntax errors), and - worse - if the comment followed a Dim ... = value assignment on the same line, an existing but unrelated "still inside a comment" fallback would re-comment the entire line, silently dropping the whole Dim/assignment from the compiled program with no error. Both are now handled correctly; verified against demos\first-start-sample.gcb, which triggers exactly this pattern
    84 Sep 2026 1636 r1939 preprocessor.bi Fix:Disable Overloaded subs rejection

    84 changes: 33 header-file, 48 compiler/toolchain, 2 IDE tooling (no SVN revision). Rows sharing a build number were logged together in the same GCSTUDIO release note.

     
    🎉
    1
  • Anobium

    Anobium - 2026-09-10

    This is update is very exciting. We hope you enjoy and that you like the new capabilities.

     
    ❤️
    3
  • Fabrice Engel

    Fabrice Engel - 2026-09-10

    For sure, thank for that update :)

     
  • Anobium

    Anobium - 2026-09-11

    Issue in 1635

    We will be fixing an identified bug in the handling of C-style comments. There is one extreme case that needs fixing. If you hit this issue it is easily resolveable. But, build 1636/7 will fix this.

     
  • Anobium

    Anobium - 2026-09-12

    Build 1637: Stricter Overload Arguments Checking

    What's changed

    GCBASIC now checks the number of arguments you pass to an overloaded Sub or Function
    call. If a call supplies more arguments than any version of that command supports —
    counting optional parameters — the compiler now stops with a clear error instead of
    silently compiling something unexpected.

    This change was implemented some time ago but testing was throwing up errors and it took some time to complete integrated testing.

    Why I made this change

    Previously, a call with too many arguments c silently could
    produce incorrect behavior at runtime that was hard to trace back to the actual
    mistake. Now the compiler catches with a message naming the command involved — turning a confusing runtime bug hunt into an immediate compile error.

    Impact on you

    Existing code that calls commands with the correct number of parameters are unaffected. Only calls that were already passing more arguments than any overload
    declares will now fail to compile.

    If you need to disable it

    If you hit a case where this check fires and you need to compile anyway while you
    investigate, add this before the call:

    #DEFINE DISABLE1637
    

    This downgrades the error to a warning — your program will still compile, and you'll
    still see the warning logged so the issue is

    Reporting an issue

    If you believe this check is firing incorrecvalid,
    please report it on this GCBASIC discussion forum (https://sourceforge.net/p/gcbasic/discussion/)
    with a minimal example, for instance:

    #chip 16F1938
    
    Dim rVar As Integer
    rVar = Scale(100, 0, 1023, 0, 255)   ' <- the exact call that triggers the error
    

    Include the exact error message and the command/chip you're targeting.

    Documentation

    This behavior is documented in the Help under Subroutines and Constraints and Error Messages (NoMatchingOverload).

     

    Last edit: Anobium 2026-09-12

Log in to post a comment.