News:

The new Release 25.03 is out! You can download binaries for Windows and many major Linux distros here .

Main Menu

The 09 February 2026 build (13785) is out.

Started by killerbot, February 09, 2026, 04:57:11 PM

Previous topic - Next topic

killerbot

We switched to gcc 15.1.0 (on 23 May 2025) --> download the new wx/mingw dll's see link below

Get the compiler we use here : https://github.com/brechtsanders/winlibs_mingw/releases/download/15.1.0posix-12.0.0-ucrt-r1/winlibs-x86_64-posix-seh-gcc-15.1.0-mingw-w64ucrt-12.0.0-r1.7z

Get quick announcements through the RSS feed http://www.codeblocks.org/nightly/CodeBlock_RSS.xml

Before you use a nightly make sure you understand how it works.

A link to the unicode windows wxWidget dll(s) for Code::Blocks : https://sourceforge.net/projects/codeblocks/files/Binaries/Nightlies/Prerequisites/wxmsw32u_gcc_cb_wx328_2D_gcc1510-mingw64.7z
A link to Mingw64 dll's needed by Code::Blocks : http://sourceforge.net/projects/codeblocks/files/Binaries/Nightlies/Prerequisites/Mingw64dlls15.1.0.7z


The 09 February 2026 build is out.
  - Windows :
   http://sourceforge.net/projects/codeblocks/files/Binaries/Nightlies/2026/CB_20260209_rev13785_win64.7z
  - Linux :
   none

The current SDK version is : 2.25.0

Resolved Fixed:


  • clangd_client: Apply ticket 1585 fixing stuck hover popup (thanks Christo)
  • clangd_client Move some of ticket 1585 to the correct position (thanks Christo)
  • clangd_client ClassBrowser Fix asserts caused by invalid wxTreeItemId(s)
  • wxSmith: Fix overriding of GetValueString() with wxWidgets 3.3.1 and newer.

Regressions/Confirmed/Annoying/Common bugs:




Xaviou

Hi.

32 bits version for Windows can be downloaded from my website.

Debian Trixie (64 bits) and Bookworm (32 and 64 bits) can be installed from my repo
The corresponding unsigned deb files can also be downloaded from the website page linked above.

Ubuntu-22.04, 24.10 and 25.10 versions can be installed from my ppa (they are now available for both amd64 and arm64 architectures).

Regards
Xav'
My wxWidgets's stuff : [url="https://wxstuff.xaviou.fr/"]https://wxstuff.xaviou.fr/[/url]

Xaviou

Hi.
I made some compilation tests with wxWidgets-3.3.x, and it seems there are problems:

  • with wxWidgets-3.3.1: The build went fine, but I suspect something wrong as the archive obtained has a really lower size, and inside, the total size of the "share" folder is about half the size of the one for wxWidgets-3.2.8. But it starts.
  • with wxWidgets-3.3.2 (recent git pull): It can't be built (I've attached the build log for the 64bits version, but I had the same problem with the 32 bits attempt)

Regards
Xav'
My wxWidgets's stuff : [url="https://wxstuff.xaviou.fr/"]https://wxstuff.xaviou.fr/[/url]

Miguel Gimenez

The squirrel error may be fixed including (in sc_wxtypes.cpp)
#include <wx/colour.h>

just before
#include <wx/filename.h>

Xaviou

Hi.
Quote from: Miguel Gimenez on February 16, 2026, 12:11:42 PM
The squirrel error may be fixed including (in sc_wxtypes.cpp)
#include <wx/colour.h>

just before
#include <wx/filename.h>

I doesn't : I still get the same error.

Regards
Xav'
My wxWidgets's stuff : [url="https://wxstuff.xaviou.fr/"]https://wxstuff.xaviou.fr/[/url]

Miguel Gimenez

Can you test changing wxColour to wxColourBase in lines 1079 to 1082?

Xaviou

Hi
Quote from: Miguel Gimenez on February 16, 2026, 07:09:16 PM
Can you test changing wxColour to wxColourBase in lines 1079 to 1082?
Tested, but it doesn't change anything : the error is still here

Regards
Xav'
My wxWidgets's stuff : [url="https://wxstuff.xaviou.fr/"]https://wxstuff.xaviou.fr/[/url]

Miguel Gimenez

#7
The only difference I see is the method declarations are "unsigned char Green()" instead of "ChannelType Green()". ChannelType is a typedef for unsigned char, but the compiler may be too picky.

Last shot: replace "wxColour::ChannelType" with "unsigned char" in calls to the NoParamGetterInt template.

EDIT: Another possibility (not fully compatible) is using
BindMethod(v, _SC("GetBlue"), NoParamGetterInt<int, wxColour, &wxColour::GetBlue>, _SC("wxColour::GetBlue"));

Xaviou

Quote from: Miguel Gimenez on February 18, 2026, 05:10:51 PM
The only difference I see is the method declarations are "unsigned char Green()" instead of "ChannelType Green()". ChannelType is a typedef for unsigned char, but the compiler may be too picky.

Last shot: replace "wxColour::ChannelType" with "unsigned char" in calls to the NoParamGetterInt template.

EDIT: Another possibility (not fully compatible) is using
BindMethod(v, _SC("GetBlue"), NoParamGetterInt<int, wxColour, &wxColour::GetBlue>, _SC("wxColour::GetBlue"));

None of these 2 worked:
Z:\wxWidgets\CodeBlocks\src\sdk\scripting\bindings\sc_wxtypes.cpp:1079:19: error: no matches converting function 'NoParamGetterInt' to type 'SQFUNCTION' {aka 'int (*)(struct SQVM*)'}
1079 |         BindMethod(v, _SC("Blue"), NoParamGetterInt<unsigned char, wxColour, &wxColour::Blue>, _SC("wxColour::Blue"));
      |         ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from Z:\wxWidgets\CodeBlocks\src\sdk\scripting\bindings\sc_wxtypes.cpp:17:
include/scripting/bindings/sc_utils.h:992:11: note: candidate is: 'template<class ReturnType, class ClassType, ReturnType (ClassType::* func)() const> SQInteger ScriptBindings::NoParamGetterInt(HSQUIRRELVM)'
  992 | SQInteger NoParamGetterInt(HSQUIRRELVM v)
      |           ^~~~~~~~~~~~~~~~

and
Z:\wxWidgets\CodeBlocks\src\sdk\scripting\bindings\sc_wxtypes.cpp:1079:19: error: no matches converting function 'NoParamGetterInt' to type 'SQFUNCTION' {aka 'int (*)(struct SQVM*)'}
1079 |         BindMethod(v, _SC("Blue"), NoParamGetterInt<int, wxColour, &wxColour::Blue>, _SC("wxColour::Blue"));
      |         ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from Z:\wxWidgets\CodeBlocks\src\sdk\scripting\bindings\sc_wxtypes.cpp:17:
include/scripting/bindings/sc_utils.h:992:11: note: candidate is: 'template<class ReturnType, class ClassType, ReturnType (ClassType::* func)() const> SQInteger ScriptBindings::NoParamGetterInt(HSQUIRRELVM)'
  992 | SQInteger NoParamGetterInt(HSQUIRRELVM v)
      |           ^~~~~~~~~~~~~~~~

Regards
Xav'
My wxWidgets's stuff : [url="https://wxstuff.xaviou.fr/"]https://wxstuff.xaviou.fr/[/url]

Miguel Gimenez

#9
Thanks for testing. The second should use GetBlue instead of Blue, they are different accessors.

EDIT:
The solution recommended by Gemini is the same but using "unsigned int"
BindMethod(v, _SC("GetAlpha"), NoParamGetterInt<unsigned int, wxColour, &wxColour::GetAlpha>, _SC("wxColour::GetAlpha"));

Xaviou

Hi
Quote from: Miguel Gimenez on February 18, 2026, 07:13:22 PM
EDIT:
The solution recommended by Gemini is the same but using "unsigned int"
BindMethod(v, _SC("GetAlpha"), NoParamGetterInt<unsigned int, wxColour, &wxColour::GetAlpha>, _SC("wxColour::GetAlpha"));

Well : I've also submitted the problem to an AI (Claude via the Codex extension of VSCode)  :-[ : it gave me a more complex solution (tested with rev 13793 and it worked) :

He told me to add 4 new functions (near other wrappers wxColour, for example, after wxColour_To_String) :
SQInteger wxColour_Blue(HSQUIRRELVM v)
{
    ExtractParams1<const wxColour*> extractor(v);
    if (!extractor.Process("wxColour_Blue"))
        return extractor.ErrorMessage();
    sq_pushinteger(v, extractor.p0->Blue());
    return 1;
}

SQInteger wxColour_Green(HSQUIRRELVM v)
{
    ExtractParams1<const wxColour*> extractor(v);
    if (!extractor.Process("wxColour_Green"))
        return extractor.ErrorMessage();
    sq_pushinteger(v, extractor.p0->Green());
    return 1;
}

SQInteger wxColour_Red(HSQUIRRELVM v)
{
    ExtractParams1<const wxColour*> extractor(v);
    if (!extractor.Process("wxColour_Red"))
        return extractor.ErrorMessage();
    sq_pushinteger(v, extractor.p0->Red());
    return 1;
}

SQInteger wxColour_Alpha(HSQUIRRELVM v)
{
    ExtractParams1<const wxColour*> extractor(v);
    if (!extractor.Process("wxColour_Alpha"))
        return extractor.ErrorMessage();
    sq_pushinteger(v, extractor.p0->Alpha());
    return 1;
}

And then, replacing the 4 "BindMethod" witch were causing the build error:
BindMethod(v, _SC("Blue"), wxColour_Blue, _SC("wxColour::Blue"));
BindMethod(v, _SC("Green"), wxColour_Green, _SC("wxColour::Green"));
BindMethod(v, _SC("Red"), wxColour_Red, _SC("wxColour::Red"));
BindMethod(v, _SC("Alpha"), wxColour_Alpha, _SC("wxColour::Alpha"));


Regards
Xav'
My wxWidgets's stuff : [url="https://wxstuff.xaviou.fr/"]https://wxstuff.xaviou.fr/[/url]

Miguel Gimenez


Miguel Gimenez


Xaviou

Hi.

There is also some few code modifications to the wxSmith plugin for wxWidgets-3.3.2.

Attached is a patch  from svn 13810.

Regards
Xav'
My wxWidgets's stuff : [url="https://wxstuff.xaviou.fr/"]https://wxstuff.xaviou.fr/[/url]

ollydbg

Quote from: Xaviou on March 05, 2026, 08:40:48 PM
Hi.

There is also some few code modifications to the wxSmith plugin for wxWidgets-3.3.2.

Attached is a patch  from svn 13810.

Regards
Xav'

Hi, Xaviou, I'm not sure why the "at" is preferred instead of "[]"?

We have some discussion here: New wxWidgets releases

Thanks.

If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.