Author Topic: The 26 June 2011 build (7257) is out.  (Read 39663 times)

Offline killerbot

  • Administrator
  • Lives here!
  • *****
  • Posts: 5490
The 26 June 2011 build (7257) is out.
« on: June 26, 2011, 11:08:36 pm »
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 for Code::Blocks : http://prdownload.berlios.de/codeblocks/wxmsw28u_gcc_cb_wx2812_gcc452-TDM.7z

For those who might need this one (when no MingW installed on your system) : the mingw10m.dll : http://prdownload.berlios.de/codeblocks/mingwm10_gcc452-TDM.7z

The 26 June 2011 build is out.
  - Windows :
   http://prdownload.berlios.de/codeblocks/CB_20110626_rev7257_win32.7z
  - Linux :
   none

Resolved Fixed:

  • fix regex to be not to gready
  • make sure textcontrol is initiallly focused in editpath-dialog (see http://forums.codeblocks.org/index.php/topic,14810.msg99247.html#msg99247).
  • CC: Redesign ParserThread locker
  • CC: Add locker for ParseBuffer function
  • CC: Fix function arguments parsing error, function overloading related
  • CC: Re-designed the TokensTree locker for solve CC crash
  • CC: Fix hang on linux
  • added $TO_83_PATH macro to concert absolute paths into 8.3 notation (Windows only), similar to $TO_ABSOLUTE_PATH
  • added $GET_DATA_DIR macro to compiler/linker options that maps to the wxWidgets wxStandardPaths/GetDataDir function
  • added $GET_LOCAL_DATA_DIR, $GET_DOCUMENTS_DIR, $GET_CONFIG_DIR, $GET_USER_CONFIG_DIR (accordingly)
  • added $GET_USER_DATA_DIR, $GET_USER_LOCAL_DATA_DIR, $GET_TEMP_DIR (accordingly)
  • CC: Remove all RAII object on the heap
  • CC: No critical section needed in the Parser's dtor now
  • CC: Fix hang occured open an workspace through from open menu (Linux x64bit)
  • partial merge from debugger branch: added PLUGIN_LOADING_COMPLETE event to SDK
  • multiselectdlg: do not ask to un-select previous selections if there are none
  • projectmanager: do not rebuild the tree if app is shutting down (not needed and massively saves time on shutdown)
  • projectmanager: verify the treeitem selection to be OK (as stated in the wx docs this should be done!)
  • advanced compiler options: added new option "use 8.3 path notation for windres" (Windows only, by default enabled for Cygwin and MinGW compiler)
  • fixed bug in "file groups and masks" that the file mask list grows endlessly - thus making the config file huge over time
  • cb_share_config: added "abbreviations" ("auto-complete"), "mime types" and "default code" to backup options
  • added global function to make a wxArrayString array unique in it's elements (case sensitive/insensitive)
  • make C::B correctly detect the Windows version up to Win7
  • compilers: make extra paths not appear multiple times in the list (thus, remove duplicates)
  • (hopefully) fix a bug, where files are not correctly opened, if an 'undefined references'-error occurs during linking, see: http://forums.codeblocks.org/index.php/topic,14562.0.html and http://forums.codeblocks.org/index.php/topic,14855.msg
  • Add stack size argument for thread pool
  • CC: Increase parsing thread stack size
  • envars plugin: exposed the following functions to scripting: EnvvarGetEnvvarSetNames, EnvvarGetActiveSetName,
    EnvVarGetEnvvarsBySetPath, EnvvarSetExists, EnvvarSetApply, EnvvarSetDiscard, EnvvarApply, EnvvarDiscard
  • * Remove all memory pool reference, In currently, memory pool is not thread-safe
  • CC: Improved parser event sending
  • Increase SDK version number
  • thread_search: support sorting of the list control
  • thread_search: add menu item to focus the thread search entry box in the list view, useful if the user wants to assign a key shortcut for thread searching;
  • don't start dwell if the mouse was moved or the application was deactivated; this should fix bug #17745 ( http://forums.codeblocks.org/index.php/topic,13763.0.html )
  • CC: Improve AddCompilerPredefinedMacros function
  • CC: Improve first full parsing
  • CC: Improve GetGCCCompilerDirs function, fix possible candidate hang
  • updated AStyle plugin so that all options are available as needed (following AStyle 2.02 reference)
  • make CScope plugin work in a path with spaces

Regressions/Confirmed/Annoying/Common bugs:



    Offline Jenna

    • Administrator
    • Lives here!
    • *****
    • Posts: 7255
    Re: The 26 June 2011 build (7257) is out.
    « Reply #1 on: June 27, 2011, 06:50:10 am »
    Debian packages (binaries and sources) for 32-bit and 64-bit systems can be found in my repo.

    Offline Lelouch

    • Single posting newcomer
    • *
    • Posts: 6
    Re: The 26 June 2011 build (7257) is out.
    « Reply #2 on: June 27, 2011, 08:07:59 am »
    I'm a student, and sometimes I need to choose some certain files not parsed..

    but when I choose not to "compile"/"link" those files, they are still parsed and the symbols there still show in Symbols and in CC

    well..it's not a big problem..but I'm still looking for a solution..

    Is it possible for current svn, or it could be added later?

    thanks..CB is really a fantastic job~~~

    Offline Agetian

    • Multiple posting newcomer
    • *
    • Posts: 16
    Re: The 26 June 2011 build (7257) is out.
    « Reply #3 on: June 27, 2011, 12:32:56 pm »
    I noticed a rather serious regression in code completion, at least on Windows when using MinGW (tried with 4.4.1 and 4.5.2-tdm). On the older
    (April and before) builds, typing this:

    std::string s;
    s.

    activates the code completion for the string object; on the latest nightly, it does nothing. This is also true for several other test scenarios,
    especially with C++ objects and classes (and especially STL). For instance, in the older builds, this:

    std::cout.

    activates the completion while in the latest nightly it doesn't. Tested both with the "std::" prefixation and without it when using "using namespace std".

    - Agetian

    Offline ollydbg

    • Developer
    • Lives here!
    • *****
    • Posts: 5910
    • OpenCV and Robotics
      • Chinese OpenCV forum moderator
    Re: The 26 June 2011 build (7257) is out.
    « Reply #4 on: June 27, 2011, 02:52:44 pm »
    I noticed a rather serious regression in code completion, at least on Windows when using MinGW (tried with 4.4.1 and 4.5.2-tdm). On the older
    (April and before) builds, typing this:

    std::string s;
    s.

    activates the code completion for the string object; on the latest nightly, it does nothing. This is also true for several other test scenarios,
    especially with C++ objects and classes (and especially STL). For instance, in the older builds, this:

    std::cout.

    activates the completion while in the latest nightly it doesn't. Tested both with the "std::" prefixation and without it when using "using namespace std".

    - Agetian

    Hi, thanks for the report, I can confirm this bug.
    I'll check it.
    which version did you remember it works OK?
    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.

    Offline Agetian

    • Multiple posting newcomer
    • *
    • Posts: 16
    Re: The 26 June 2011 build (7257) is out.
    « Reply #5 on: June 27, 2011, 03:33:09 pm »
    Hi, thanks for the report, I can confirm this bug.
    I'll check it.
    which version did you remember it works OK?

    It looks like the May 14 build (rev 7143) from here works: http://forums.codeblocks.org/index.php/topic,14689.0.html
    I tried the earlier June build but it didn't function correctly for me already. Hope this helps! :)

    - Agetian
    « Last Edit: June 27, 2011, 03:37:06 pm by Agetian »

    Offline ollydbg

    • Developer
    • Lives here!
    • *****
    • Posts: 5910
    • OpenCV and Robotics
      • Chinese OpenCV forum moderator
    Re: The 26 June 2011 build (7257) is out.
    « Reply #6 on: June 27, 2011, 03:45:54 pm »
    so, the bug should be introduced from: rev 7143 to rev 7255.
    So, need to do a binary search :D
    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.

    Offline ollydbg

    • Developer
    • Lives here!
    • *****
    • Posts: 5910
    • OpenCV and Robotics
      • Chinese OpenCV forum moderator
    Re: The 26 June 2011 build (7257) is out.
    « Reply #7 on: June 28, 2011, 04:39:16 am »
    after debugging for about two hours, I found that the bug is related to the parserthread. here is the screenshot:

    see the image above, the "Ancestors" is empty, this is wrong.
    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.

    Offline ollydbg

    • Developer
    • Lives here!
    • *****
    • Posts: 5910
    • OpenCV and Robotics
      • Chinese OpenCV forum moderator
    Re: The 26 June 2011 build (7257) is out.
    « Reply #8 on: June 28, 2011, 05:26:08 am »
    Ok, one hour more, I find the bug:
    Quote
    mortenmacfly  2011-5-22 23:25:37           
    * CC: renamed "up-front" into "priority" for better understanding
    * CC: massively updated testing tool to allow to parse into includes
    - CC: code-cleanup

    Then look at the code snippet:
    Code
    void TokensTree::RecalcInheritanceChain(Token* token)
    {
        if (!token)
            return;
        if (!(token->m_TokenKind & (tkClass | tkTypedef | tkEnum | tkNamespace)))
            return;
        if (token->m_AncestorsString.IsEmpty())
            return;

        token->m_DirectAncestors.clear();
        token->m_Ancestors.clear();

        TRACE(_T("RecalcInheritanceChain() : Token %s, Ancestors %s"), token->m_Name.wx_str(),
              token->m_AncestorsString.wx_str());

        // TODO (MortenMacFly#5#): Can we safely ignore local tokens here?
    //    if (!token->m_IsLocal) // global symbols are linked once
    //    {
            TRACE(_T("RecalcInheritanceChain() : Removing ancestor string from %s"), token->m_Name.wx_str());
            token->m_AncestorsString.Clear();
    //    }

        wxStringTokenizer tkz(token->m_AncestorsString, _T(","));

    You have clear the string before tokenize it.
    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.

    Offline ahui886

    • Multiple posting newcomer
    • *
    • Posts: 29
    Re: The 26 June 2011 build (7257) is out.
    « Reply #9 on: June 28, 2011, 07:38:19 am »
    great job ,thanks

    Offline MortenMacFly

    • Administrator
    • Lives here!
    • *****
    • Posts: 9694
    Re: The 26 June 2011 build (7257) is out.
    « Reply #10 on: June 28, 2011, 07:42:10 am »
    You have clear the string before tokenize it.
    Ooops - that indeed slipped in and was a patch of yours, btw. ;-)

    This one should therefore be reverted. However, I can't do it as I don't have SVN access atm.
    Compiler logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"
    C::B Manual: https://www.codeblocks.org/docs/main_codeblocks_en.html
    C::B FAQ: https://wiki.codeblocks.org/index.php?title=FAQ

    Offline oBFusCATed

    • Developer
    • Lives here!
    • *****
    • Posts: 13413
      • Travis build status
    Re: The 26 June 2011 build (7257) is out.
    « Reply #11 on: June 28, 2011, 07:57:48 am »
    Give me a diff and I'll revert muahahaha
    (most of the time I ignore long posts)
    [strangers don't send me private messages, I'll ignore them; post a topic in the forum, but first read the rules!]

    Offline ollydbg

    • Developer
    • Lives here!
    • *****
    • Posts: 5910
    • OpenCV and Robotics
      • Chinese OpenCV forum moderator
    Re: The 26 June 2011 build (7257) is out.
    « Reply #12 on: June 28, 2011, 08:37:16 am »
    here it is:
    Code
    Index: token.cpp
    ===================================================================
    --- token.cpp (revision 7257)
    +++ token.cpp (working copy)
    @@ -1036,6 +1036,7 @@
     
         token->m_DirectAncestors.clear();
         token->m_Ancestors.clear();
    +    wxStringTokenizer tkz(token->m_AncestorsString, _T(","));
     
         TRACE(_T("RecalcInheritanceChain() : Token %s, Ancestors %s"), token->m_Name.wx_str(),
               token->m_AncestorsString.wx_str());
    @@ -1047,7 +1048,7 @@
             token->m_AncestorsString.Clear();
     //    }
     
    -    wxStringTokenizer tkz(token->m_AncestorsString, _T(","));
    +
         while (tkz.HasMoreTokens())
         {
             wxString ancestor = tkz.GetNextToken();
    it is too simple. :D.

    You have clear the string before tokenize it.
    Ooops - that indeed slipped in and was a patch of yours, btw. ;-)
    I nearly forgot my patch :D
    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.

    Offline Agetian

    • Multiple posting newcomer
    • *
    • Posts: 16
    Re: The 26 June 2011 build (7257) is out.
    « Reply #13 on: June 28, 2011, 09:01:26 am »
    Good job, thanks for the fix and for all your work on C::B, definitely the most enjoyable C/C++ coding environment for me! :)

    - Agetian

    Offline Loaden

    • Lives here!
    • ****
    • Posts: 1014
    Re: The 26 June 2011 build (7257) is out.
    « Reply #14 on: June 28, 2011, 09:05:42 am »
    here it is:
    Code
    Index: token.cpp
    ===================================================================
    --- token.cpp (revision 7257)
    +++ token.cpp (working copy)
    @@ -1036,6 +1036,7 @@
     
         token->m_DirectAncestors.clear();
         token->m_Ancestors.clear();
    +    wxStringTokenizer tkz(token->m_AncestorsString, _T(","));
     
         TRACE(_T("RecalcInheritanceChain() : Token %s, Ancestors %s"), token->m_Name.wx_str(),
               token->m_AncestorsString.wx_str());
    @@ -1047,7 +1048,7 @@
             token->m_AncestorsString.Clear();
     //    }
     
    -    wxStringTokenizer tkz(token->m_AncestorsString, _T(","));
    +
         while (tkz.HasMoreTokens())
         {
             wxString ancestor = tkz.GetNextToken();
    it is too simple. :D.

    You have clear the string before tokenize it.
    Ooops - that indeed slipped in and was a patch of yours, btw. ;-)
    I nearly forgot my patch :D

    It seems not the best way.
    ollydbg, could you checking you mail?
    I have some question need talk to you.